Skip to main content
Removing junk.
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61

There is also a series of tips in the section Some words of wisdomSome words of wisdom that should be of interests.

 

There is also a series of tips in the section Some words of wisdom that should be of interests.

 

There is also a series of tips in the section Some words of wisdom that should be of interests.

Making the list first because the question asked for a list.
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61

The best game to "earn your wings" with? The one you completed.

The list

This one is based on some criteria of increasing difficulty (i.e. it is based on opinion, like many things). Some suggest that anything after Pac-Man, it is really up to you because, by then, you know enough and may want to focus on something specific.

There is also a series of tips in the section Some words of wisdom that should be of interests.

Guess the number" / Hangman / Mastermind

Basic interface, select data from a database.

Choose-Your-Adventure

Based on choose your adventure books, it is basically a simple text adventure game with an output like this:

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Making such a game should teach you to make a gameloop, basic console input and basic scripting (you can push it and add data structures/make it data-driven instead of hard-coding everything in the program). It is quite simple to implement and easy for a beginner to jump into since you don't need a graphics engine to write the game. Advanced beginners would probably write a scripting engine.

Tic-Tac-Toe / Rock-Paper-Scissors

Turn-based gameplay, simple opponent AI or second player.

Breakout / Arkanoid / Pong

Easy game since you don't have much state to worry about (it's an array of brick values -- if you only have one brick color, it's an array of flags), there isn't any AI, and you get to do a little bit of physics to get the ball to bounce correctly. No real needs for sounds. Also: input handling, collisions, stable frame rate, score, levels.

Solitaire / Minesweeper

The bestrules are a bit more complex than Breakout and the interface to it is a lot different. It forces you to think about different methods of implementing a game. i.e, what works in one game isn't necessarily what you would use in another. They're event based rather than "real time".

Tetris

The art is colored rectangles, which even a total klutz can draw in Microsoft Paint. You don't need sound. The programming is relatively simple, but still requires a few key things: understanding the difference between the internal game state and what's drawn on the screen; being able to "earn your wings"draw on the screen, period (probably involving sprites and blitting); being able to accept user input in realtime rather than just using getch() or scanf() where you have to wait for them. Since it is a very common game, lots of open source clones out there to rip apart if you get stuck. Also: Data structures and how they relate to gaming.

Asteroids

Bullets, space physics, toroid world.

1942 / Space Invaders / Gradius / R-Type / Shoot-em-up

You can probably find some freeware tilesets to make this. Here the background is scrolling, you'll be using techniques for drawing stuff outside the boundaries of the visible screen. You also tend to have dynamic enemy and bullet spawns, so you'll need to learn to clean up after yourself (i.e. get rid of enemies and bullets that leave the screen).

Simple platformer / pinball game / Super Mario Bros

The scrolling is under player control and not automatic. You also have to deal with? The gravity and all the fun collision stuff that goes along with it (like not falling through the floor just because you were a few pixels above in the last frame and want to move to a few pixels below in the next frame). Also note that gravity is conditional: it affects the player and some enemies, but typically not the platforms or floating coins or whatever, which is a bit different from the real world. For an extra challenge: add irregular sloped terrain and parallax.

Bomberman / Pac-Man / Nibbles / Snake

This one is nice because you completedget to work on a little bit of AI. Having the ghosts follow the player (but not too well - you want the player to have a chance) can be quickly implemented, and you will have a fun little game that you can tweak and show off to friends and family (positive feedback is always a good thing when you are starting out). Also: tile-based movement, complex enemy AI.

Moonlander

A rocketship affected by gravity, players control direction and thrust, limited fuel when using thrust. Tight tuning of physics, resource management, more advanced math.

Gauntlet / Zelda

Large map scrolling, interaction with the environment, enemy AI, inventory, health.

Two-player game

Of any of the types above (two player inputs).

Roguelike / Diablo

Inventory management, multiple enemy AIs, saving and loading complex game states.

Faceball / Wolfenstein 3D

Basic 3d movement and rendering.

Worms

Terrain destruction.

Network turn-based game

Basic networking.

Gimmicky 3D third-person platformer

Physics, complex 3d movement.

Network real-time game

Client-server synchronism, lag.

MMORPG

Persistent world. (This could go further down the list as it is really difficult.)

The list

This one is based on some criteria of increasing difficulty (i.e. it is based on opinion, like many things). Some suggest that anything after Pac-Man is really up to you because, by then, you know enough and may want to focus on something specific.

Guess the number" / Hangman / Mastermind

Basic interface, select data from a database.

Choose-Your-Adventure

Based on choose your adventure books, it is basically a simple text adventure game with an output like this:

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Making such a game should teach you to make a gameloop, basic console input and basic scripting (you can push it and add data structures/make it data-driven instead of hard-coding everything in the program). It is quite simple to implement and easy for a beginner to jump into since you don't need a graphics engine to write the game. Advanced beginners would probably write a scripting engine.

Tic-Tac-Toe / Rock-Paper-Scissors

Turn-based gameplay, simple opponent AI or second player.

Breakout / Arkanoid / Pong

Easy game since you don't have much state to worry about (it's an array of brick values -- if you only have one brick color, it's an array of flags), there isn't any AI, and you get to do a little bit of physics to get the ball to bounce correctly. No real needs for sounds. Also: input handling, collisions, stable frame rate, score, levels.

Solitaire / Minesweeper

The rules are a bit more complex than Breakout and the interface to it is a lot different. It forces you to think about different methods of implementing a game. i.e, what works in one game isn't necessarily what you would use in another. They're event based rather than "real time".

Tetris

The art is colored rectangles, which even a total klutz can draw in Microsoft Paint. You don't need sound. The programming is relatively simple, but still requires a few key things: understanding the difference between the internal game state and what's drawn on the screen; being able to draw on the screen, period (probably involving sprites and blitting); being able to accept user input in realtime rather than just using getch() or scanf() where you have to wait for them. Since it is a very common game, lots of open source clones out there to rip apart if you get stuck. Also: Data structures and how they relate to gaming.

Asteroids

Bullets, space physics, toroid world.

1942 / Space Invaders / Gradius / R-Type / Shoot-em-up

You can probably find some freeware tilesets to make this. Here the background is scrolling, you'll be using techniques for drawing stuff outside the boundaries of the visible screen. You also tend to have dynamic enemy and bullet spawns, so you'll need to learn to clean up after yourself (i.e. get rid of enemies and bullets that leave the screen).

Simple platformer / pinball game / Super Mario Bros

The scrolling is under player control and not automatic. You also have to deal with gravity and all the fun collision stuff that goes along with it (like not falling through the floor just because you were a few pixels above in the last frame and want to move to a few pixels below in the next frame). Also note that gravity is conditional: it affects the player and some enemies, but typically not the platforms or floating coins or whatever, which is a bit different from the real world. For an extra challenge: add irregular sloped terrain and parallax.

Bomberman / Pac-Man / Nibbles / Snake

This one is nice because you get to work on a little bit of AI. Having the ghosts follow the player (but not too well - you want the player to have a chance) can be quickly implemented, and you will have a fun little game that you can tweak and show off to friends and family (positive feedback is always a good thing when you are starting out). Also: tile-based movement, complex enemy AI.

Moonlander

A rocketship affected by gravity, players control direction and thrust, limited fuel when using thrust. Tight tuning of physics, resource management, more advanced math.

Gauntlet / Zelda

Large map scrolling, interaction with the environment, enemy AI, inventory, health.

Two-player game

Of any of the types above (two player inputs).

Roguelike / Diablo

Inventory management, multiple enemy AIs, saving and loading complex game states.

Faceball / Wolfenstein 3D

Basic 3d movement and rendering.

Worms

Terrain destruction.

Network turn-based game

Basic networking.

Gimmicky 3D third-person platformer

Physics, complex 3d movement.

Network real-time game

Client-server synchronism, lag.

MMORPG

Persistent world. (This could go further down the list as it is really difficult.)

The best game to "earn your wings" with? The one you completed.

The list

This one is based on some criteria of increasing difficulty (i.e. it is based on opinion, like many things). Some suggest that anything after Pac-Man is really up to you because, by then, you know enough and may want to focus on something specific.

Guess the number" / Hangman / Mastermind

Basic interface, select data from a database.

Choose-Your-Adventure

Based on choose your adventure books, it is basically a simple text adventure game with an output like this:

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Making such a game should teach you to make a gameloop, basic console input and basic scripting (you can push it and add data structures/make it data-driven instead of hard-coding everything in the program). It is quite simple to implement and easy for a beginner to jump into since you don't need a graphics engine to write the game. Advanced beginners would probably write a scripting engine.

Tic-Tac-Toe / Rock-Paper-Scissors

Turn-based gameplay, simple opponent AI or second player.

Breakout / Arkanoid / Pong

Easy game since you don't have much state to worry about (it's an array of brick values -- if you only have one brick color, it's an array of flags), there isn't any AI, and you get to do a little bit of physics to get the ball to bounce correctly. No real needs for sounds. Also: input handling, collisions, stable frame rate, score, levels.

Solitaire / Minesweeper

The rules are a bit more complex than Breakout and the interface to it is a lot different. It forces you to think about different methods of implementing a game. i.e, what works in one game isn't necessarily what you would use in another. They're event based rather than "real time".

Tetris

The art is colored rectangles, which even a total klutz can draw in Microsoft Paint. You don't need sound. The programming is relatively simple, but still requires a few key things: understanding the difference between the internal game state and what's drawn on the screen; being able to draw on the screen, period (probably involving sprites and blitting); being able to accept user input in realtime rather than just using getch() or scanf() where you have to wait for them. Since it is a very common game, lots of open source clones out there to rip apart if you get stuck. Also: Data structures and how they relate to gaming.

Asteroids

Bullets, space physics, toroid world.

1942 / Space Invaders / Gradius / R-Type / Shoot-em-up

You can probably find some freeware tilesets to make this. Here the background is scrolling, you'll be using techniques for drawing stuff outside the boundaries of the visible screen. You also tend to have dynamic enemy and bullet spawns, so you'll need to learn to clean up after yourself (i.e. get rid of enemies and bullets that leave the screen).

Simple platformer / pinball game / Super Mario Bros

The scrolling is under player control and not automatic. You also have to deal with gravity and all the fun collision stuff that goes along with it (like not falling through the floor just because you were a few pixels above in the last frame and want to move to a few pixels below in the next frame). Also note that gravity is conditional: it affects the player and some enemies, but typically not the platforms or floating coins or whatever, which is a bit different from the real world. For an extra challenge: add irregular sloped terrain and parallax.

Bomberman / Pac-Man / Nibbles / Snake

This one is nice because you get to work on a little bit of AI. Having the ghosts follow the player (but not too well - you want the player to have a chance) can be quickly implemented, and you will have a fun little game that you can tweak and show off to friends and family (positive feedback is always a good thing when you are starting out). Also: tile-based movement, complex enemy AI.

Moonlander

A rocketship affected by gravity, players control direction and thrust, limited fuel when using thrust. Tight tuning of physics, resource management, more advanced math.

Gauntlet / Zelda

Large map scrolling, interaction with the environment, enemy AI, inventory, health.

Two-player game

Of any of the types above (two player inputs).

Roguelike / Diablo

Inventory management, multiple enemy AIs, saving and loading complex game states.

Faceball / Wolfenstein 3D

Basic 3d movement and rendering.

Worms

Terrain destruction.

Network turn-based game

Basic networking.

Gimmicky 3D third-person platformer

Physics, complex 3d movement.

Network real-time game

Client-server synchronism, lag.

MMORPG

Persistent world. (This could go further down the list as it is really difficult.)

The best game to "earn your wings" with? The one you completed.

The list

This one is based on some criteria of increasing difficulty (i.e. it is based on opinion, like many things). Some suggest that anything after Pac-Man, it is really up to you because, by then, you know enough and may want to focus on something specific.

There is also a series of tips in the section Some words of wisdom that should be of interests.

Guess the number" / Hangman / Mastermind

Basic interface, select data from a database.

Choose-Your-Adventure

Based on choose your adventure books, it is basically a simple text adventure game with an output like this:

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

Making such a game should teach you to make a gameloop, basic console input and basic scripting (you can push it and add data structures/make it data-driven instead of hard-coding everything in the program). It is quite simple to implement and easy for a beginner to jump into since you don't need a graphics engine to write the game. Advanced beginners would probably write a scripting engine.

Tic-Tac-Toe / Rock-Paper-Scissors

Turn-based gameplay, simple opponent AI or second player.

Breakout / Arkanoid / Pong

Easy game since you don't have much state to worry about (it's an array of brick values -- if you only have one brick color, it's an array of flags), there isn't any AI, and you get to do a little bit of physics to get the ball to bounce correctly. No real needs for sounds. Also: input handling, collisions, stable frame rate, score, levels.

Solitaire / Minesweeper

The rules are a bit more complex than Breakout and the interface to it is a lot different. It forces you to think about different methods of implementing a game. i.e, what works in one game isn't necessarily what you would use in another. They're event based rather than "real time".

Tetris

The art is colored rectangles, which even a total klutz can draw in Microsoft Paint. You don't need sound. The programming is relatively simple, but still requires a few key things: understanding the difference between the internal game state and what's drawn on the screen; being able to draw on the screen, period (probably involving sprites and blitting); being able to accept user input in realtime rather than just using getch() or scanf() where you have to wait for them. Since it is a very common game, lots of open source clones out there to rip apart if you get stuck. Also: Data structures and how they relate to gaming.

Asteroids

Bullets, space physics, toroid world.

1942 / Space Invaders / Gradius / R-Type / Shoot-em-up

You can probably find some freeware tilesets to make this. Here the background is scrolling, you'll be using techniques for drawing stuff outside the boundaries of the visible screen. You also tend to have dynamic enemy and bullet spawns, so you'll need to learn to clean up after yourself (i.e. get rid of enemies and bullets that leave the screen).

Simple platformer / pinball game / Super Mario Bros

The scrolling is under player control and not automatic. You also have to deal with gravity and all the fun collision stuff that goes along with it (like not falling through the floor just because you were a few pixels above in the last frame and want to move to a few pixels below in the next frame). Also note that gravity is conditional: it affects the player and some enemies, but typically not the platforms or floating coins or whatever, which is a bit different from the real world. For an extra challenge: add irregular sloped terrain and parallax.

Bomberman / Pac-Man / Nibbles / Snake

This one is nice because you get to work on a little bit of AI. Having the ghosts follow the player (but not too well - you want the player to have a chance) can be quickly implemented, and you will have a fun little game that you can tweak and show off to friends and family (positive feedback is always a good thing when you are starting out). Also: tile-based movement, complex enemy AI.

Moonlander

A rocketship affected by gravity, players control direction and thrust, limited fuel when using thrust. Tight tuning of physics, resource management, more advanced math.

Gauntlet / Zelda

Large map scrolling, interaction with the environment, enemy AI, inventory, health.

Two-player game

Of any of the types above (two player inputs).

Roguelike / Diablo

Inventory management, multiple enemy AIs, saving and loading complex game states.

Faceball / Wolfenstein 3D

Basic 3d movement and rendering.

Worms

Terrain destruction.

Network turn-based game

Basic networking.

Gimmicky 3D third-person platformer

Physics, complex 3d movement.

Network real-time game

Client-server synchronism, lag.

MMORPG

Persistent world. (This could go further down the list as it is really difficult.)

Integrating answer https://gamedev.stackexchange.com/a/857/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61

Start with something that seems too-puny to deal with.

After your first game

So it almost really doesn't matter which game you choose first -- just make sure you pick something simple that you can get quick results with, that way you can move on the next day and make another one. And another. And another -- the more you make, the more you'll push yourself, and eventually you'll be making complex games before you know it.

You can even take a 2d game and make a 3d version of it.

After your first game

So it almost really doesn't matter which game you choose first -- just make sure you pick something simple that you can get quick results with, that way you can move on the next day and make another one. And another. And another -- the more you make, the more you'll push yourself, and eventually you'll be making complex games before you know it.

Spice it up

You can take a 2d game and make a 3d version of it.

You can also make another version of your first game. For instance, start with Monopoly. You can use Brett Schuchert's Monopoly "code kata" as the basis of the exercise, and add a lot onto it. The reasons why this is interesting:

  1. It teaches good coding practices (design patterns, TDD, SOLID, continuous integration, etc.) and puts a lot of constraints on the developers when they do this exercise.

  2. Pretty much everyone knows the rules of Monopoly, and, with the proper preparation (e.g. having the assets available), the entire game can be completed in a single day. This gives new developers a quick win and really gets their engagement up.

  3. The initial requirements start off with keyboard controls, but then you can add a requirement for mouse controls later; or you can plug in a more sophisticated AI. This gets developers thinking about several things: how to refactor existing code, programming changing parts of the system to interfaces instead of concrete classes, better/proper abstractions, what to unit test, what not to unit test, WHY to unit test, what makes for GOOD unit tests, give the real-world experience of clients who change the requirements on you after you've already started.

You can get something quick, and see how flexible you can make software when you follow good programming standards. These exercises build confidence very quickly. Sometimes, the more experienced developers like to do these on their own, just to get a break from more complicated projects or to practice a new technique they've just learned (law of demeter?).

Start with something that seems too-puny to deal with.

After your first game

So it almost really doesn't matter which game you choose first -- just make sure you pick something simple that you can get quick results with, that way you can move on the next day and make another one. And another. And another -- the more you make, the more you'll push yourself, and eventually you'll be making complex games before you know it.

You can even take a 2d game and make a 3d version of it.

Start with something that seems too-puny to deal with

After your first game

So it almost really doesn't matter which game you choose first -- just make sure you pick something simple that you can get quick results with, that way you can move on the next day and make another one. And another. And another -- the more you make, the more you'll push yourself, and eventually you'll be making complex games before you know it.

Spice it up

You can take a 2d game and make a 3d version of it.

You can also make another version of your first game. For instance, start with Monopoly. You can use Brett Schuchert's Monopoly "code kata" as the basis of the exercise, and add a lot onto it. The reasons why this is interesting:

  1. It teaches good coding practices (design patterns, TDD, SOLID, continuous integration, etc.) and puts a lot of constraints on the developers when they do this exercise.

  2. Pretty much everyone knows the rules of Monopoly, and, with the proper preparation (e.g. having the assets available), the entire game can be completed in a single day. This gives new developers a quick win and really gets their engagement up.

  3. The initial requirements start off with keyboard controls, but then you can add a requirement for mouse controls later; or you can plug in a more sophisticated AI. This gets developers thinking about several things: how to refactor existing code, programming changing parts of the system to interfaces instead of concrete classes, better/proper abstractions, what to unit test, what not to unit test, WHY to unit test, what makes for GOOD unit tests, give the real-world experience of clients who change the requirements on you after you've already started.

You can get something quick, and see how flexible you can make software when you follow good programming standards. These exercises build confidence very quickly. Sometimes, the more experienced developers like to do these on their own, just to get a break from more complicated projects or to practice a new technique they've just learned (law of demeter?).

Integrating answers https://gamedev.stackexchange.com/a/1043/40264 https://gamedev.stackexchange.com/a/858/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answers https://gamedev.stackexchange.com/a/1440/40264 https://gamedev.stackexchange.com/a/1153/40264 https://gamedev.stackexchange.com/a/907/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answers https://gamedev.stackexchange.com/a/860/40264 https://gamedev.stackexchange.com/a/1038/40264 https://gamedev.stackexchange.com/a/1035/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answer https://gamedev.stackexchange.com/a/890/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answers https://gamedev.stackexchange.com/a/856/40264, https://gamedev.stackexchange.com/a/861/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answer https://gamedev.stackexchange.com/a/948/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answer https://gamedev.stackexchange.com/a/1480/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answer https://gamedev.stackexchange.com/a/945/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Integrating answer https://gamedev.stackexchange.com/a/1047/40264
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61
Loading
Post Made Community Wiki by House
Source Link
Dennis Munsie
  • 2.5k
  • 1
  • 20
  • 18
Loading