views:

1179

answers:

7

I know the basics of C++, and I am currently working a bit with the Win32 API.

I feel the next step I want to take is game development. I have looked around, and I have a basic idea of how I would get started, but I would like to see if any of you guys have resources or suggestions that will help me out.

What I would really like to do is create a 2D side-scrolling RPG (something similar to Mario or MapleStory I guess), but I am aware I will have to start smaller :]

Thanks,
Coal

+4  A: 

I highly suggest diving into the community at http://gamedev.net. They are mostly c++ programmers and helped me tremendously when I was starting off. Join the forums, or chat up in IRC.

Karan
+7  A: 

I'd suggest that you start with SDL programming; it is simple and you can create 2d games with it.

http://www.lazyfoo.net/SDL_tutorials/index.php

Go through all of these tutorials, they're great.

Russ Frank
+1  A: 

If you're just looking to learn how to do everything yourself then GameDev.net is a great place to go.

Once you're ready to actually make your game you might also want to check out GarageGames and the Torque Game Builder. As an Indie, for $250 you get the source code for a complete, robust 2D game engine with everything you need to make games plus a bunch of tools. You can also find a lot of good resources there even if you don't buy their engine.

Gerald
+28  A: 

Actually, I would stay away from SDL, Torque, or any other 3rd party game development tools or libraries. Focus on programming in pure C++. Focus on the architecture of a game, and object oriented programming concepts. Focus on understanding pointers. Focus some of your effort using different data structures.

Sure, this part isn't the "FUN" part... But I guarantee it will save you wasting time in the future, and possible burnout.

So what I would recommend is to build a text based adventure game. Create good object classes. Dabble in inheritance and polymorphism. Complete a working game. Document your code. Along your trip, ask questions on GD.net, and even here for C++ concepts you don't really understand. Ask for advice.

When you get that done, go onto www.gamedev.net and post your game/source in the forum. Let people play it. Let people into your source code, and look for those individuals that are willing to give you feedback on it. They're around. Start networking with the people there.

Once you finish that, jump into the 2D realm with Simple DirectMedia Layer library to create a pong, breakout, a simple shooter game, or a rpg using the principles you've learned.

I give this advice simply because if you just dive right into 2D, or god forbid, 3D, you will seriously risk burning yourself out in frustration. Walking before you really crawl will face plant you in the intensive care unit when you're dealing with game programming. That said, I would also polish up on your math. ;)

David McGraw
I second this. I regret jumping into opengl 2 weeks into learning java. Now I've strengthened my base that was so weak at the beginning, but It's a hacky understanding. Now that i'm learning c++ from the start, i'll be sticking to console based programs only and strengthening my base understanding.
Karan
Also this lets you experiment in implementing your own data structures and algorithms (i.e. what is contained within the STL). I did this and it taught me a lot!
Daemin
That is some spot on good advice. Text game, fully working and critiqued. Afterwards diving into games that is pretty basic to write.
Mossa Nova
+2  A: 

Keep in mind the basics of game design and start small. Event processing, solid data structures, modularity, etc.

For any game of significant length, learn to write the engine and the game SEPERATE. Particularly any game with a narrative should have a game engine and a editor. Make a program that allows you to make games. I'd suggest learning this up front as it will help you significantly.

For example, Snake is a classic. You know, where you have a snake that goes around eating things as it gets longer until it runs into something and dies? Once you've made the game, make an editor. Make sure you can create variable field sizes. Define the rate at which food appears. Add walls and obstacles onto your map. Save this to a file.

Keep in mind too, that 90% of modern games is assets. Art, music, voice, etc. Sure you can use programming to make up for a lot of this, but if you're serious about building games as an independent, find like minded people who can cover skills you don't have. You can make the most awesome game engine ever, but if there's no sound and you're moving around @, you're really only going to appeal to people who wrote ZZT games. :)

Drew
A: 

Hey Coal, although the idea of starting small is good. In my case when I began learning Arm assembly for the GameBoyAdvance, my first game was Pong (what else), but my second game was an action-side-scroller ninja game with wall jumping, climbing, acrobatics and rhythm-game style spell casting, far from an unambitious project. But thanks to that I really grokked the system and pushed my self to learn much more than if I had kept on making simple games.

So I'd recommend you get started on your RPG ASAP. It'll be better fro you in the long run, and you'll grow much more than making clones of classic games of the 70's.

Robert Gould
Got your game hosted somewhere? I wanna run it in an emulator and check this baby out.
KingNestor
Not hosted, but I could drag it out of cold storage. It only had 2 levels though, and graphics from NinjaKid, but it was about gameplay not content
Robert Gould