During my developer's life, I've received a lots of questions about how to become a game developer, how to write a game, and more. In this article I'll try to respond you, explaining what you need in order to write a good game and what could be the right way to follow.
Do you want to be a game developer ?
If you want to be a game developer, you need to read a lot about algorithms (I wrote an article about algorithms books that I liked), and, of course, a mathematical background is needed.
But, assuming you've those kind of skills, what about next ? Well, most games are written using a not-too-much-high-level programming-language, like, of course, C & C++.
Ok, assuming you know C and C++ well enough, the next step is to:
- Write an engine yourself directly with OpenGL
- <--- OR --->
- Choose a good Game Engine that will help you while writing the game
Choosing a good game engine
Well, choose a good game engine is not ease. As far as I'm concerned, it depends on what you expect from it, and, primarily what kind of operating system would you like to support.
The best that I can recommend you are:
- Cocos2D (>= v3.x)
Don't be fooled by the naming; believe me, 2D or 3D does not mean what it can do. They support 2D and 3D programming either (assuming you're using the last version of both).
It's a framework, a game engine, an IDE and make you a coffe when you're tired. Shortly: it's what you need assuming that you're ready to pay (yes, it's not free at all!) to write your first game and you know that your games will bring you money.
If you would like to proceed in this way, learn more with this book. Pretty easy.
This is my favorite game engine and framework. But there are different version of Cocos2D. So, which kind of version is better rather than the others ?
- Cocos2D-x: You can code your games using C++
- Cocos2D-swift: The Objective C version of Cocos2D-x, only for iOS and OSX.
I personally use Cocos2D-x because it's open source, free-to-use without pay nothing, and it give you the possibility to easily support:
- Windows (Intel + ARM)
About Cocos2D-x, I can recommend you some books:
But be careful: these books are a little bit old because we're now at the version 3.x of the framework and what I linked above are about the version 2. Many changes was be made between these two versions, and tons of methods and classes are been deprecated, so probably the best reference you may found around the web is this, the official wiki page.
Write a game engine using OpenGL
This is probably the hardest way you may choose. This topic needs an article. I'll write it later durint this week as a part-2 of this one.