If you manage to develop the games similar to those presented below, you are already halfway through to making your own games. As you work on those games, you will gain a set of skills to implement your own super-cool ideas that would never have been realized otherwise.
If you are just learning how to make games, but striving to have a headlong dive into the game dev space, then you need to start with the classics. After all, many of these ol’ good games were made by one person or a very small team that didn’t have access to the tools that we have now.
By recreating classical games, you will gain a lot of knowledge and experience. How do you handle updates to game objects? The idea is probably clear, but implementing it is a completely different matter. What about game states and transitions between them? Of course, it sounds easy, but introducing them into the game is still challenging. And keep your first few games simple so that gameplay and design don’t interfere with your technical skills.
And from this point of view, classical games are a great idea for development. You don’t need to worry about gameplay, game design, or monetization. Everything has already been done for you: you already know how to play Pong, everyone knows about Asteroids. You do not need to waste the mental effort and time, the rarest resources for pet project developers, to come up with something interesting (Pong is so interesting!). So if you haven’t already made them, here are some classics you can create for self-development purposes, as well as some ideas to bring them to life.
This is a game to start with. A classic table tennis for two players. You don’t have too many graphics, you don’t need special effects, the sound is just the sound of a bouncing ball, the music can just be looped. In fact, it doesn’t even have a menu or options. Pong is for two players and does not require any artificial intelligence programming.
Game Stretch Goals
- Special effects when hitting the ball;
- Improved physics for the ball;
- Angular velocity and friction, thanks to which the ball can change its trajectory in the air;
- Mouse control to give players better ball rotation control;
- AI with varying complexity
The next step in game development is Breakout. It can be called “Pong ++” in many ways. You still have a bouncing ball, which has not changed, its physics has remained the same (on contact, it bounces in the other direction). You still have a racket that the player controls, except this is now a single player game. But the player still loses if they concede the ball.
Much of Pong can be carried over to Breakout with minimal effort. The main thing is the blocks that are destroyed – a small difference from Pong, but this small difference gives us a completely new game.
Game Stretch Goals
- Special effects for hitting the ball on blocks;
- Special blocks that change the game when you destroy them such as flipping the screen vertically, slowing down the ball, speeding it up, etc.;
- High score table
It’s getting more interesting! We now have moving objects! Your ship is controlled by thrust, which adds a completely different dimension to the player’s actions (the player’s avatar continues to move even after the controls are over). Collisions are a little different now too, because everyone has arbitrary rather than fixed positions as before (for the most part).
Asteroids and a little UFO can go outside the player’s field of view, and this is a new thing to deal with in your game development. Projectiles and their speed must be monitored. Technically speaking, this is a different game from what you have done before. As you recreate Asteroids, you will find out it take you much longer to build it than Pong or Breakout.
Game Stretch Goals
- Sprite asteroids that rotate in the air;
- Power-ups that add cannons / lasers to your spaceship;
- UFO that shoots back
Galaxian / Galaga
Now everything is serious. Real game dev! You have levels and stages that increase in difficulty. Several enemies. Patterns followed by enemies. Bonuses for the player.
One of the more interesting aspects here is the data behind the game. It is not enough just to have enemies and their patterns, they must appear consistently so that players can explore the levels. This means that you have certain data that you need to store in files to load into the game.
Game Stretch Goals
- Let the game play by itself in the background on the main menu screen (game recording!);
- Large power-ups with special effects;
- Moving to 3D meshes in 2D screens.
Mario Brothers / Alex the Kidd / Metroid
It’s time to make a 2D side scrolling platformer. You don’t have to re-create the classical game, just do something where you shoot at enemies, jump on them or something like that.
Tool development is at least half of the development of the entire game. It’s one thing to write everything in the code, it’s another to make an editor. Once you make the editor and see how quickly you can create new levels compared to how you did it before, you will never go back to the old one.
This development job will also help you properly design your game engine and game objects. Now they need to interact with the editor, and behind it there should be data that is saved and loaded. Now you have much more interesting encounters, since the player sprites have to walk on tiles, etc., and the controls for the player must be as accurate as possible, since poor control in a platform game will kill all the fun.
Don’t underestimate the amount of work a game like this will take!
Game Stretch Goal
It’s just fun to finish this game!
We hope this article will help you get better-versed as far as game dev is concerned.
Stay tuned with Software Focus!