News:

11 March 2016 - Forum Rules

Main Menu

Brand New Game

Started by lordbrucegiles, July 21, 2012, 12:36:25 PM

Previous topic - Next topic

lordbrucegiles

Thanks in advance for any help.  My ultimate goal is to write a completely new game.  This site seems built for modifying games.  My guess is that someone should start with a modification to get their feet wet, but does anyone have any suggestions on the road that one should take if they want to write their own game?  I imagine the two answers are, "Yes, you can write a game from scratch by...," or, "No, you would have to have Nintendo licensed compilers, headers, and etc., so you will have to be content with modifying a game close enough to what you want to the point that it is a new game."

Klarth

Here's a few questions to get you started.

1. Do you know any programming languages?  If not, then you're highly encouraged to use an RPGMaker-esque type engine and build programming skills via scripting.
2. Do you care about the platform?  If not, then programming for Windows is generally the easiest and totally free.  Microsoft's XNA comes with a few sample games with full source code and content.
3. Do you have art/music skills?  If not, then you should keep your scope very, very small.

Ryusui

Quote from: Klarth on July 21, 2012, 01:35:07 PM
1. Do you know any programming languages?  If not, then you're highly encouraged to use an RPGMaker-esque type engine and build programming skills via scripting.

I strongly recommend Stencyl, unless you are trying to make an RPG.
In the event of a firestorm, the salad bar will remain open.

lordbrucegiles

#3
Klarth, I have five and a half years of C/C++.  Most of that time was spent developing with COM, ATL, MFC, and DirectShow.  I have the same number of years, off and on, of C#.  I also have sparse Java, VB 6.0, VB.NET, and so on.  I'm quite inexperienced with assembler though.  I also have very little experience with deployment as that part was always abstracted from us.  I have no hardware experience so getting the game to a cartridge would be completely new to me.  A little disclaimer:  I'm not interested in selling afterward.  I would just love to have a finished product that I made myself.  Anyway, on to question two.  I want to first develop an NES game.  If that goes well, I would like to make a sequel on SNES or Sega Genesis, N64, and probably stop there.  Maybe even a prequel on an Atari 2600.  That should take a number of years altogether.  haha.  It's not about what is easy for me, so I'm not really interested in XNA at the moment.  It's more about making an NES game that can be played on a console (even if only on non 10NES systems).  Lastly, I have no art or music skills.  However, I have plenty of friends that do and would be willing to pay them to help.

July 21, 2012, 03:00:13 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Ryusui, my idea lends itself greatly as an RPG, so I appreciate the advice.  However, the gameplay will have to be a little more action-game-based at times.  Think Battle Toads while riding the flying vehicles as an idea of how one of the characters will move.  A little different than that but something similar.  Add a controllable vertical aspect to it and that's more like it.  If you're not really interested, you can stop reading here.  The character in question is a griffon that also has the ability to cast spells.  He needs both a flying attack and magic-casting attack.  He's a character in a book series I really like.  Seeing as they aren't very popular I would like to make a game for myself.  Maybe some sequels and so on.

LostTemplar

Then knowing the system you're going to develop for is most certainly the most important skill. This skill can be acquired by trial and error coding your own game, but I myself would recommend doing some ROM hacking first - that way you can achieve your first successes pretty fast, and it's probably not as frustrating. Older systems are in no way forgiving, especially with everything related to timing, and you have to know exactly what you're doing. If you accumulate experience by poking around in some commercial games you get a feeling for this and you can imitate whatever they're doing.

Furthermore, for any console prior to PSX/N64 you probably have to develop in assembly due to their restrictive environments, especially the NES and similar systems. But practice makes perfect, so this shouldn't keep you from trying.

lordbrucegiles

LostTemplar, thanks.  I figured that was the answer is to get my feet wet with ROM hacking.  I guess I just needed confirmation that I wasn't going down the wrong path.  Do you know offhand if there are any crosscompilers that go from a higher level language to the 6502 assembler language?  I will look myself, but I figured I would ask in case it was an easy question.

Ryusui

It helps to work directly in assembler. Trust me. I had experience with Visual Basic and C++ before I first started working in assembly. Many of the principles are the same; it's just that being closer to the metal changes things up a bit.
In the event of a firestorm, the salad bar will remain open.

Klarth

In addition to material at this site, here are some leads.

For NES, you can start at nesdev
For SNES, you can find some good information at the SNES development homepage

So here's a simplified description of developing for these systems.  The CPU (6502 for NES) is your coding language for algorithms and whatnot.  The actual hardware (picture processing unit, audio processing unit, etc) are like your specialized APIs.  You have to learn both to develop a game.  The CPU speaks to the hardware using registers.  The code looks like you're reading/writing to a memory address, but the system bus is wired so that these memory addresses are redirected to hardware registers rather than memory.

Since you have a lot of programming experience, I'd suggest you look at some tutorials first, alongside an opcode list for the console's processor and a hardware register list.  Others should be able to recommend what utilities you use to build your games with, as the ones I used a long time ago are probably out of date.

As far as compiling C to the NES, I'd strongly oppose doing so even if there is a compiler (there probably is for the Commodore 64, which was also a 6502 processor).  The NES has a processor that runs at approx 1.78MHz, so you're already strapped for CPU time.

snarfblam

I'm working on an NES homebrew game right now, in 6502 ASM. There is also the option to program in C, but if you want to get the most out of the NES, you'll want to go the ASM route.

Two things that you'll want to very seriously consider:
1. Debugging/ASM hacking is a great way to get a good handle on asm. Not the only way, but I already felt really comfortable with ASM when I started my game, thanks to the hacks and debugging I've done. On the same note, it can be a good way to get used to the hardware, depending on what you are hacking.
2. Do something small first. You might have an amazing RPG all planned out in every detail in your head, but if you just start banging out code, you're going to be running into roadblocks left and right until you begin to dread working on the project. Making a small, simple, but complete game gives you a feel for the process and boosts the odds of your efforts coming to fruition considerably.

Like Klarth said, definitely check out nesdev. Very talented, helpful people over there.