Learning the NES??

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

Post Reply
User avatar
Nadia
Posts: 92
Joined: Thu Nov 05, 2009 8:31 am

Learning the NES??

Post by Nadia »

I know its too early for me to ask this question on this forum coz I am still a newbie w.r.t. a lot of things related to NES.

How can one justify learning to program for the NES and doing stuff related to NES in an age when the video game and the computer industry have reached so far.

Its particularly difficult to justify why one who has a full time job(which takes about 10 hrs a day) and family responsibilties is spending time for learning a very old system like NES.

Before asking a new question I always browse through the existing answers. Today, while doing so, I saw this topic Justifying this hobby. And this was when this question popped up in my mind.

Please let me know your views.


Cheers.
doppelganger
Posts: 183
Joined: Tue Apr 05, 2005 7:30 pm

Post by doppelganger »

Justify it? You speak as if learning to program for the NES is somehow immoral.

Seriously, though, the only "justification" one needs to pursue a hobby like NES development is that said person enjoys it.

People who ask why waste time with something that doesn't make money, well, in my opinion, they see the price of everything and the value of nothing (I don't mean you, Nadia, I'm just stating a general opinion about people who think that way). Pursuing an idea and turning it into reality, that's its own reward. Figuring out how code works for its own sake is its own reward. Not everything in the world is about money. People who go into NES development hoping to make money completely miss the point, as do people who avoid it entirely because it doesn't make money (exceptions like Battle Kid notwithstanding).

I know your post wasn't specifically asking about that, though I thought I'd clear that up before somebody else brought it up. There's no reason I can think of, however, why one can have a 10-hour job and family and NOT be able to do NES development if they really wanted to. Of course you gotta keep everything in balance so you don't lose your job or your family, but if you spend too much time at work, you'll get burned out. Family's not so bad, except you might want some alone time now and again.

And as far as there not being any marketable skills obtained from it, I wouldn't say that's entirely true. In the time that I've spent researching, doing development on the NES and other 6502-based platforms, I've learned all sorts of ways to solve problems, and novel approaches that wouldn't have occurred to me before to come up with algorithms to such problems. Plus, learning how to code in assembly for one processor makes it easier to learn to code for other processors. Shoot, even if I never bother with other processors (which I am), there's still somebody out there using a 6502 somewhere.

And as far as how far video games and the computer age have advanced, bear in mind that NES development has bore a pretty large part in that advancement, both on the hardware and software ends. In fact, the NES itself pretty much saved the videogame market from oblivion back in the mid 80's.
Be whatever the situation demands.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

doppelganger wrote:Justify it? You speak as if learning to program for the NES is somehow immoral.

Seriously, though, the only "justification" one needs to pursue a hobby like NES development is that said person enjoys it.

People who ask why waste time with something that doesn't make money, well, in my opinion, they see the price of everything and the value of nothing
The problem comes when other members of the household want to "borrow" me for house/yard work, and they can't see the difference between creating software for the NES and any other form of recreation performed on a PC. They evaluate my pursuits on what appears to be a ladder, where higher trumps lower:
  1. Work (earning money)
  2. Hygiene
  3. School (earning a diploma from an accredited institution)
  4. House/yard work
  5. Play (here's where TV, playing video games, and making video games fit in)
People who go into NES development hoping to make money completely miss the point, as do people who avoid it entirely because it doesn't make money
Money as a motivator moves making games from the "play" line to the "work" line, so that I can turn down trivial "Hey Pino, could you help me with this? I'd do it, but my hands are dirty" interruptions with "I'm on the clock. If you want, I'll do it when I leave work."
Of course you gotta keep everything in balance so you don't lose your job or your family
Families become dysfunctional when your idea of balance and someone else's differ.
Plus, learning how to code in assembly for one processor makes it easier to learn to code for other processors.
ARM, I've been told, is marketable, and it's fairly easy to pick up if you know both 6502 and C.
And as far as how far video games and the computer age have advanced, bear in mind that NES development has bore a pretty large part in that advancement, both on the hardware and software ends. In fact, the NES itself pretty much saved the videogame market from oblivion back in the mid 80's.
Only in North America did video games "crash" in the 1980s. In Europe, talk of this gaming recession might result in "What oblivion? We had our own video game systems: the C=64, the Speccy, the ST, and the Amiga."
User avatar
GradualGames
Posts: 1106
Joined: Sun Nov 09, 2008 9:18 pm
Location: Pennsylvania, USA
Contact:

Post by GradualGames »

There are two good reasons for learning to program the NES: getting challenging realtime programming jobs, and experiencing the reward of creating programs for it. Detailed blather follows:

Since my post in the "Justifying this hobby" thread you mentioned, in which I mentioned getting a job having demoed some NES-related projects I did, I got another job, also from demoing NES-related material (this time, the current version of my in-development game). Even though it is old, there are a lot of non-trivial programming challenges that come up while programming the NES which I think should get the attention of any prospective employer. I think perhaps it is particularly good if you want a position in the embedded systems field: programming the NES can teach you a little bit about the perils of multithreaded programming (in other words, how to handle manipulating data outside of vblank, locking it, and then uploading it during vblank), compression, optimization...and also presents the challenge of maintaining relatively complex software (for a hobby). If you can talk intelligently to your interviewers about what you create, and show them some demos, it is sure to impress. Few people program in any sort of assembly language anymore, so it definitely gives off the aura of you being a pretty dedicated programmer.

So...at least on the job getting side of things, it is definitely justifiable.

If your goal is to make money FROM A GAME, you probably shouldn't quit your day job, though Sivak and a few others have shown you can make some money from developing an NES game. I doubt that is the reason they did it though---I know if I do the same it will be primarily for the nostalgic thrill of seeing my game on a real cartridge.

As for having a day job---I have a day job, am married, and have a house. I've got a lot of responsibilities, yet I'm finding that I can make enough time to pursue this hobby and make decent progress. So...at least for me this hobby has found a very appropriate place in my life and I believe it can and does for many others here at nesdev.

I recommend it.
User avatar
Kasumi
Posts: 1293
Joined: Wed Apr 02, 2008 2:09 pm

Post by Kasumi »

When people who care so much about the possibility of me wasting my time with NES development AS A HOBBY rather than PC development, or anything else that'd make money, I say something like the following.

"It's easier to compete with x old game than y new game."

"It's easier to compete with Gun.Smoke than Red Dead Redemption."

"It's easier to compete with Super Mario Bros. 3 than Super Mario Galaxy 2."

Personally, I probably could not create wonderful 3d models and worlds, compose orchestral music, and craft a brilliant and beautiful 3d experience alone.

I could however, possibly create some 2bpp 8x8 tiles, track some public domain songs, and craft a brilliant and beautiful 2d experience alone.

But really, "Because I enjoy it," should be all the answer that's needed. I don't know why it isn't.
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

Alot of the same concepts apply to game development regardless of the platform you choose. As it was mentioned it's alot easier to complete a game that feels at home on the NES than it is to complete a game on the PS3/Xbox 360. Games today require massive teams that cost millions in development. No one is going to make a modern console game on their own on the same level as say Grand Theft Auto 4.

And then there is the fact that alot of the people that spend their time on NES development related things grew up playing the system and its games.

Perhaps you are questioning your own reasons for taking an interest in the NES. If you have something else you'd rather do with your time, you should do that instead. Do what you really want to do. You can always continue to learn more and change your mind later, or do something else and come back to NES later.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

MottZilla wrote:it's alot easier to complete a game that feels at home on the NES than it is to complete a game on the PS3/Xbox 360. Games today require massive teams that cost millions in development. No one is going to make a modern console game on their own on the same level as say Grand Theft Auto 4.
In theory, that's why there are XNA Creators Club for the smallest budgets and WiiWare for budgets slightly bigger than that. For example, Capcom made two Mega Man games with NES graphics for WiiWare. But as I understand it, XNA development does require a substantially more powerful PC than NES development; I do much of my NES development on a netbook.

"Wonderful 3D models and worlds" can still serve as prototypes for your NES art. For example, I'm prototyping some of my characters in Blender to make sure I get the proportions correct from all eight angles.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Post by Bregalad »

Man I really wish I could do something with blender, but it is just SO complex that even doing, for example, a table, takes about an hour. An human is not made of spheres or of cubes so it'll be very complex to do.

If you're able to prototype graphics in 3D and then convert them to 2D you'll end with something like Donkey Kong Country.

On the other hand games with 3D graphics uses pre-rendered 2D sprites with a lot of possible angles and hardware scaling to simulate 3D sprites. This has the advantage to decrease polygon count, while being able to repair aliasing/artifacts introduced by the 3D rendering. I believe Final Fantasy IX does this but I'm not sure, I don't remember where I read this and I don't know of much tool to reverse-engineer the game. Someone that could provide a better example would be great.
Useless, lumbering half-wits don't scare us.
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Post by Drag »

Because I can.

No seriously, that's really all I need to say to justify it. It's like collecting stamps, or being super-knowledgeable in automobiles; it's a hobby.

In addition, it's just one thing I like to brag about; I have the ability to say "I can make an NES game", "I can write code in assembly", etc.

Other people do it for the nostalgia factor; we grew up with the NES, and now I get to write games for it, just like I always wanted. ("Man, it'd really be cool to make levels for this game, I'd put the powerup here and a wall here, and blah blah blah")

Not everything in the world is done for money, a great deal is done for the sheer joy of doing it.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Drag wrote:"Man, it'd really be cool to make levels for this game, I'd put the powerup here and a wall here, and blah blah blah"
That justifies Mario Improvement and Lunar Magic, not necessarily hacking from scratch, but I see your point.

Bregalad: You might want to check out the Blender topic I started over in NES Graphics.
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Learning the NES??

Post by Memblers »

Nadia wrote: How can one justify learning to program for the NES and doing stuff related to NES in an age when the video game and the computer industry have reached so far.
Until there is some big revolution in the way computers work, the NES will remain fundamentally the same as any computer/game systems. After learning 6502 assembly, I had been able to learn how to program any CPU in assembly that I've wanted (and now C). After messing around with mappers and carts enough, I learned how to make PCBs. Making an NES cart is relatively simple, but still comparable to making a PCI or AGP card for a PC.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Learning the NES??

Post by tepples »

Memblers wrote:After messing around with mappers and carts enough, I learned how to make PCBs. Making an NES cart is relatively simple, but still comparable to making a PCI or AGP card for a PC.
But the difference is that on the NES, you have to solder not only to make computer peripherals but also just to distribute copies of software to the public.
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Post by Drag »

tepples wrote:
Drag wrote:"Man, it'd really be cool to make levels for this game, I'd put the powerup here and a wall here, and blah blah blah"
That justifies Mario Improvement and Lunar Magic, not necessarily hacking from scratch, but I see your point.
Haha, yep, funny story, I started out by using rom hacking tools from zophar, to change the levels in games. Then a few years later, I was thinking to myself "I'm pretty sure I can make a couple of ASM hacks by now".

Then I found that programming from scratch was loads easier than modifying a pre-existing game.
Post Reply