Page 1 of 2

Should I even bother?

Posted: Tue Jun 29, 2010 9:17 pm
by fvgazi
I'm addicted to working on random projects (especially related to videogames and or music). Lately I've fixed some controllers, worked on restoring game gears, and built an arcade stick.

Now I would like to tackle.... programming!
I've been toying around with the idea of creating an xbox indie game or possibly a game for an older system such as Dreamcast, NES, or SNES. The only problem is I have basically no experience programming. I built some websites like 10 years ago, but haven't done anything since.

Is it going to be a waste of time for me to start learning stuff like JAVA and C# (i'm 25)? How hard is this stuff?

Can anyone point me in the right direction? I've downloaded Visual C# from the XNA website.

Re: Should I even bother?

Posted: Tue Jun 29, 2010 9:56 pm
by MrPopo
fvgazi wrote:I'm addicted to working on random projects (especially related to videogames and or music). Lately I've fixed some controllers, worked on restoring game gears, and built an arcade stick.

Now I would like to tackle.... programming!
I've been toying around with the idea of creating an xbox indie game or possibly a game for an older system such as Dreamcast, NES, or SNES. The only problem is I have basically no experience programming. I built some websites like 10 years ago, but haven't done anything since.

Is it going to be a waste of time for me to start learning stuff like JAVA and C# (i'm 25)? How hard is this stuff?

Can anyone point me in the right direction? I've downloaded Visual C# from the XNA website.

The actual assembly of code? It's not terribly hard (though I'm probably not the best barometer, as I do it for a living). The really difficult thing is the design work. You need to plan out how all the pieces of your application will work before you start writing the actual code. The design is the level just above the actual coding work, and is independent of the language you choose. Then when you write the code you translate the semantic statement "iterate over your list and remove any items with a creation_date newer than one day ago" into whatever language you chose. And that's where the real difficulty of the game development is.

For example, back in junior high I took a two week course on DirectX (specifically it focused on DirectDraw). By the end I had a functioning version of Missile Command. Here's a rough outline of my program flow:

  • Program start: load all the graphical resources from the disc
  • Initial setup of the window
  • Begin the event loop (the next several commands are in this event loop)
  • Check for player input, if input is valid take the appropriate action (quit, begin a player missile launch)
  • Iterate through the list of enemy missiles in flight and update position if enough time has elapsed
  • Iterate through the list of player missiles in flight and update position if enough time has elapsed
  • If a player missile has reached the end point turn it into an explosion
  • Advance all explosions to the next frame as appropriate (or remove)
  • Check for collision with enemy missiles, if so remove enemy missile
  • End event loop
The graphics were incredibly simple. I drew a simple bitmap background once, and the explosions were a series of still frames I created in Paint. A missile was created by drawing a dot every frame (and not refreshing the overall display) and then when a missile was destroyed I would "erase" it by drawing on top of it using dots the same color as the background.

If you want to make a game I'd first recommend you go with Xbox Indie. Stay away from older consoles, as they are developed in Assembly. The NES is pretty well documented, but the chip is incredibly limited (it makes x86 seem amazingly feature rich) and you have to use lots of different tricks to make it do what you want. With Indie you get to use a nice high-level language like C#, which lets you focus on the actual game design. Before you even look into the programming part first start with the very high level game idea. Is it a shmup or a platformer? What will set it apart from other games? If you can come up with an initial hook and start to flesh out the mechanics a bit (again, from a very high level like you might see in a detailed review) you're ready to tackle turning it into a program. To do so pick up a book on Object Oriented Design and a book on Algorithms and Data Structures. The syntax of whatever language you use is the easy part to pick up; what you need is to understand is how to model a large system in a method a computer can understand.

At this point you'll want to start breaking down how the game actually will function. It will probably have a similar outline to what I detailed above, in terms of having an event loop where you continuously process player input and update the state of all the objects in the game world. The tricky part is how all the enemy objects are updated. Missile command is the simplest. You generate an enemy missile with a random start point and a random end point and then just move it X units every time interval. With a game like Raiden, though, it gets much more complicated, as different enemies move in different ways (though all still have an incredibly simple pattern). Once you can plan things out to this degree you'll be good to start learning a language and turning these semantical elements into actual code.

One final thing; hold off on graphics as long as you can. When you initially prototype the game just draw colored boxes (which are pretty trivial to create) and make sure the mechanics work well. At that point you can start doing fancier stuff like transparencies and all the other pieces of graphical sugar. And I'd also recommend you stay away from 3D graphics for your first project, as those are a completely different beast from sprite stuff.

Re: Should I even bother?

Posted: Tue Jun 29, 2010 10:19 pm
by RokstaEnSweden
I just have to throw in my few cents because I'm in a similar boat. Just started tinkering around with Python making simple games because I can. My first one, Dice Combat Heroes X, is a fun waste of time and I hope to do more. I have incredibly limited programming experience, so this was a new venture for me, and I gotta say it's pretty rewarding! I am also 25, so take heart!

Re: Should I even bother?

Posted: Tue Jun 29, 2010 10:41 pm
by Ziggy
If you wanna mess around with hacking some ROMs, romhacking.net has some good tutorials to get you started.

Re: Should I even bother?

Posted: Tue Jun 29, 2010 11:01 pm
by RyaNtheSlayA
The only game's ive made have been in BASIC. Not too hard, made a few small games here and there on rainy days and sleepless nights. I'm particularily proud of my 3D missle command game, although I need to get some good 3D models.

Re: Should I even bother?

Posted: Wed Jun 30, 2010 12:42 am
by CRTGAMER
Another simple route, won't help in learning programing though.
http://en.wikipedia.org/wiki/Game_Maker

Looks similar to a very old Gamemaker called Klik n Play, anyone try that one?
I made a game inspired by a couple very old Arcade games Blasto and SpaceWars.

Thanks for reminding me of this old game I made years ago.
Well with the help of Klik n Play. SPACE TANKS, Its here:
http://www.racketboy.com/forum/viewtopic.php?t=22784

Re: Should I even bother?

Posted: Wed Jun 30, 2010 2:38 am
by Octopod
Is the a web site like http://www.w3schools.com/ for programming languages?

That would be p nice.

Re: Should I even bother?

Posted: Wed Jun 30, 2010 2:46 am
by MrPopo
Octopod wrote:Is the a web site like http://www.w3schools.com/ for programming languages?

That would be p nice.

I don't think there's a resource quite as nice as w3 schools. Most programming languages tend to have sites dedicated to describing the various APIs available, but for actually getting started with a language your best bet is to google and see if you hit upon a tutorial website which may or may not be written well.

Re: Should I even bother?

Posted: Wed Jun 30, 2010 3:41 am
by J T
I'm more about writing a good story and making pretty pictures, and less about programming. I've always wanted to use a simpler utility like RPG maker or Fighter Maker that takes out a lot of the programming work, so I can focus on the game story. I don't really have the time though, so I have not yet explored these in much depth.

RPG Maker: http://tkool.jp/products/rpgxp/eng/
Fighter Maker: http://www.gamespot.com/ps2/action/figh ... index.html

Re: Should I even bother?

Posted: Wed Jun 30, 2010 4:29 am
by Octopod
I have RPG Maker for the PS1 I have always wanted to mess with but never have. Do people upload games they make with that anywhere?