views:

561

answers:

13

Much like the author of Give me an assignment in C, I'm looking to learn game programming and I learn best by doing, but I don't have any good ideas for games to program which will teach me the skills and for whom the graphics are freely available.

I have written a basic pacman game but apart from that I haven't done any other games.

Ideally I would like 2-3 or more assignments, each more advanced than the previous one, so perhaps the first game would be something very basic, the next would be more advanced, and the 3rd even more advanced, and so on.

I want to use Java applets as the platform for the games, but that shouldn't matter too much, most games which can be written in C/flash etc should also be translatable to java.

Thanks

+3  A: 

You can try Game of Life which is a very good example of coding state machines. 3d Rubik's Cube would be fun too!

Zepplock
+1  A: 

For a starting console game, few things beat Nim. Why? It's basic game strategy + AI programming + math skills

Ólafur Waage
+3  A: 

Since you already wrote pac-man, why not write a 3D multi-player pac-man game.

James Black
Multiplayer pacman is definitely a good idea
Click Upvote
+1  A: 

I'm guessing since you already programmed a basic pacman game you already know important things like double buffering. For the next project you could advance to more complex game worlds which require collision detection and simulation of a lot of NPCs. For example, a simple racing game to learn more about handling user input, detecting collisions, a simple AI for the opponents and, of course, a little gaming-physics.

Marc Müller
+2  A: 

I Would go for a 2D Platform game, and then for a 3D Game.

davidrobles
+3  A: 

Just fire up your closest console or handheld game system and open one of your favorite games... inside you'll probably have mini-games, just go ahead and try to duplicate one of those.

In Bioshock there was the "hacking" mini-game, in Phantom Hourglass there was the salvage mini-game, examples are all over.

Most of these mini-games have fairly simple mechanics, you should be able to implement the basic functionality very quickly. Most of them also have a high level of polish, so you can spend time trying to get your copy to behave correctly. For example, a first-pass of the salvage mini-game would have 1:1 control... later you could add physics to make the control be a little sloppier and the game more challenging.

Just look at the games that you enjoy and try to copy, then eventually improve them.

jessecurry
+10  A: 

Make a basic "run away from the monster for as long as possible" game. Then:

  • Add path planning, so the monster can follow you through through a more complex map.
  • Add multiple monsters. For bonus points: add swarming behavior, bosses, monster generators, and rival monster clans.
  • Add multiple players (and some client bot programs to test things).
  • Add power-ups.
  • Add guns, so you can fight back.
  • Add a plot - you need to collect a number of items to defeat the monster.
  • Make the environment modifiable.
  • Modify the physics engine (acceleration, etc) - does the monster need better AI?
  • Port the graphics to OpenGL, but leave the game mechanics 2D. I hate 3D game mechanics (except simulators and shooters).
  • Move the game mechanics to 3D, and destroy the simple game-play. Sigh.
  • Add vehicles.
  • Add allies.
  • Add levels, skills, and other RPG stuff (so the losers who play for 12 hours a day will win).
  • Add proceedural content generation.
wisty
You forgot a couple of items: Get a publisher to help, sell your game, and party with the money you get. :D
RCIX
Not programming related :p
wisty
+1  A: 

Here's two ideas for basic games:

  • The "Memory" Game - tiles of pictures that you turn over to find a pair
  • 8 Tile Puzzle Game - the one where you slide tiles around until they make a picture
Dave
+4  A: 

Being a Computer Science Student, we actually were given game creating assignments! :D

You should try implementing features of a game before implementing a game. I spent a lot of time building my own framework before i actually started on a game.

Try things like:

  • Making an object fall with increasing speed (Simple physics, enough for a 2d platformer)
  • Make a character that can shoot a bullet

Then combine both:

  • Make a grenade launcher that shoots grenades affected by your simple physics.

Then get even more advanced:

  • Make the grenades detonate. Perhaps after a few bounces? Perhaps using a remote detonation button? Colliding with an enemy?

This is the sort of methodology I use when creating games. Start small, make each feature work with each other, then combine features for the actual game mechanics you want! :D

SevenT2
+1  A: 

Write a simple 2d top down view game where you control some aircraft and have to avoid infrared guided missiles by making them collide into each other, shooting them yourself, or using decoys. The missiles (and your aircraft) should go in curvy paths so you'll need to use some trigonometry to make things look nice. You can add all sorts of things like power ups, new types of missiles, other ships, better tracking AI, etc. You could also make it 3D or multiplayer.

Firas Assaad
Can you eleborate on using decoys?
Click Upvote
@Click Upvote: Like if you could release missiles or other objects that would attract the attention of the guided missiles and distract them for a while. Normal guided missiles would go for your decoys but more advanced guided missiles might have better systems that don't respond to decoys as easily.
Firas Assaad
+2  A: 

In an advanced Functional Programming course we were assigned to write a Rogue-like. The reason for this is that there is a lot of documentation to be found about the algorithms used. You can make it as hard as you want. You'll learn a lot about algorithms, AI writing (again, you can make it as hard as you like) and game rules without being distracted by creation fancy designs for your interface.

TheGrandWazoo
Plus, sounds fun and do-able. If I weren't already working on making web games, I'd love this assignment. :p
Tchalvak
+2  A: 

Why do you want to learn game programming, if you don't already have games that you want to make?

Other game ideas could include:

  • Breakout/Arkanoid
  • Tetris
  • Space Invaders
  • Frogger
  • Artillery/Scorched Earth/Worms

But game programming is more than just replicating gameplay. If you want to learn, consider approaching some of the following aspects, whatever game you're making:

  • Sound and music
  • Pause functionality (including keeping the music playing)
  • Discrete game states (eg. loading screen, menu, game play, game over)
  • Dynamic resource management (only loading what you need, when you need it)
  • 2D GUI with labels and buttons at a minimum
  • Reading settings from a data file
  • Ability for user to rebind keys to actions
  • Save/Load game state
Kylotan
+1  A: 

Create a little inventory engine. This is a useful bit that is vital to any number of game styles

Art
can you explain, what does this inventory engine do?
Click Upvote