Learning the NES??
Moderator: Moderators
Learning the NES??
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.
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.
-
- Posts: 183
- Joined: Tue Apr 05, 2005 7:30 pm
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.
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.
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: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
- Work (earning money)
- Hygiene
- School (earning a diploma from an accredited institution)
- House/yard work
- Play (here's where TV, playing video games, and making video games fit in)
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."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
Families become dysfunctional when your idea of balance and someone else's differ.Of course you gotta keep everything in balance so you don't lose your job or your family
ARM, I've been told, is marketable, and it's fairly easy to pick up if you know both 6502 and C.Plus, learning how to code in assembly for one processor makes it easier to learn to code for other processors.
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."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.
- GradualGames
- Posts: 1106
- Joined: Sun Nov 09, 2008 9:18 pm
- Location: Pennsylvania, USA
- Contact:
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.
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.
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.
"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.
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.
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.
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.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.
"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.
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.
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.
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.
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.
That justifies Mario Improvement and Lunar Magic, not necessarily hacking from scratch, but I see your point.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"
Bregalad: You might want to check out the Blender topic I started over in NES Graphics.
Re: Learning the NES??
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.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.
Re: Learning the NES??
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.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.
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".tepples wrote:That justifies Mario Improvement and Lunar Magic, not necessarily hacking from scratch, but I see your point.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"
Then I found that programming from scratch was loads easier than modifying a pre-existing game.