Hey, Salah is here!
It's been a while since my last post, so I decided why not to drop something today. Here I am posting about how to begin developing video games. (I won't discuss Game engines)
So first of all, learn how to program.
It is very essential to have an understanding of all the basic concepts regarding programming. If you don't know how to program, I would recommend starting with Python.
Why? Because as everybody knows, it is a wonderful language that takes away the low-level details for the programmer and allows him to focus on concepts.
It is also a very fun language. I'm sure you'll love to program in it. I picked it up in just 7 days (although I had previous programming experience).
To make games, you need certain extra libraries. If you know how to program, you must know what libraries mean.
They are extra patches of code that you can link with your own code. To make games, you will need libraries for graphics, event handling, networking, etc. for Python, Pygame is an excellent library for beginners that provides almost all this stuff.
For C or C++, you have Allegro and SDL. A simple Google search will give you a list of game programming libraries for the language of your choice.
Start playing with the library you have chosen. Read its tutorials online. Learn how to make simple things like rectangles, circles, load images, etc. Try to make some animations.
The fundamental concept behind building an animation is to draw the object, then draw another object of the same dimensions on top of it with the background color, and then draw the earlier object, with its coordinates displaced by the required amount. Of course, if you do this really quickly, you will be able to cause an illusion of movement.
After that, make a simple game like Pong or Tetris, which uses just event handling and some basic physics (collision detection). Google for game loop structure. It will help you out in coding the game.
After you have coded it, move on to a slightly more complex game, like a game with two tanks fighting it out.
You don't have to get cute with graphics; just use whatever royalty-free images you can lay your hands on.
Try cloning more arcade games like Breakout.
To make these, you will have to use something called a level editor, something that is used in almost every game.
After that, try your hand at a game that uses some AI, like a Pacman clone or a top-view soccer game.
Both of them can be implemented using an FSM (Finite State Machine), a concept used for AI in 80% of commercial games.
Then try your hand at a side-scrolling platform game like a Mario clone.
The games mentioned above, combined, include almost all the concepts used in 90% of the games.
To make a game with a flashy 3D interface, all you need to do is use an engine that helps you to do so.
It's just that, in the beginning, programming in 2D allows you to focus on the more important concepts and also makes your code less complicated. Once you get comfortable, you can go for 3D games.
I hope this approach helps you out in your game programming journey and if you have any suggestions or questions feel free to comment below
Have a good one, See you bye!
IG:
Also published here.