Well that is hard ,no i’m joking not hard at all,but it requires some patience and a strong will to learn.Before some years ago ,I was a guy like you (if not mistaken otherwise why you are you here and still reading ) I wanted to learn how to make games ,I was an addict game player and everything man drawn that animates like cartoons and games etc.Watching and playing was not enough for me , I decided to create my own worlds ,a big dream with no knowledge at that time but with a great passion and undoubtable self confidence that I can do it.
So i started to search how do I make my own games.After some extensive searching I was able to build the big picture of game development ,so what is it about ?
Be prepared ! you need to be familiar with:
2d or 3d or both ,
game engines ,
game design ,
So do you still want to make games ?
If yes then don’t be afraid ,you don’t have to be a maths scientist you just need to know only the necessary formulas ,there is no area in computer science which doesn’t require Mathematics.You don’t have also to be a Physics guru but again you have to learn some formulas ,how things move,velocity,acceleration,cameras etc.
How about computer graphics ?
Games are all about graphics so you have 4 options:
Learn how to design your graphics assets.
Work with or hire a graphics designer ,
Buy graphics or just start by the available free assets on the web.
Later I will show you great sites for free graphics resources and where to buy game resources.
What about game programming ?
Now how about game programming and game engines.If you want to be a game developer you need to be a programmer first ,if you are not a programmer then you have to learn a programming language first,the franca lingua of game programming is C++.For Mac and iOS it’s Swift.For Android, Java is the native language.
Game engines ??
If you wonder what is a game engine ? then it is simply a framework designed for developing games that encapsulates game development functionalities such as
Sound and music etc.
Using a game engine releases you from implementing these base functionalities, every game needs, to focus on your game logic .
A game engine is a critical part of your game development,it abstracts all the dirty tasks you have to do yourself,so either:
You have to make your game engine (which is hard ,no seriously hard if you are not experienced enough with all the major areas I listed above starting with Mathematics,Physics and programming).
Or use an existing engine which is the recommended choice even for experienced developers,because no hand crafted engine can beat a commercial grade engine or an open source engine with many developers involved in its development and many years of working.
Here is a list of major commercial and open source engines in use by many developers to create the great games you play everyday.
Unreal Engine, CryEngine or GameMaker LibGDX,AndEngine,Cocos2d-x
How to choose a game engine depends on many criteria like:
how fast the workflow is ?
the learning curve
the documentation,the community and the supported platforms
closed or open source
Making 2d games is fun and less harder than making 3d games especially level design,some games are better played in 2d and some of 2d games are the most played games in the world so don’t consider 2d games as less interested that 3d games.
A word about game types
There are many games categories with some games that belong to many categories at the same time ,so what are the essential games types ?
Endless runners (my favorite type)
With simple scrolling repeated terrain or complex procedurally generated terrain(my favorite approach ,we will talk about this later) a character that runs infinitely ,the player controls its actions when it is running (the player has no control of its running ,he can not stop it from running only by pausing or loosing :))
Rogue like games
Role playing games RPG
Action games FPS
Card games(solitaire) and board games(chess)
Level designers and game art tools
the game development cycle goes as follows: Graphical Artist makes game assets (sprites/textures/animations/particle effects) Level designer imports all the assets into Overlap2d and composes ui elements, characters, complex objects, entire levels e.g. and exports that all as json output of your entire game content Developer uses Overlap2D open source runtime by creating empty project or integrating it with existing preferred framework to render all that stuff in game. As a result your game content is hugely Framework/Engine and everything independent.
Inkscape is an Open Source scalable vector graphics editor – similar to Illustrator or CorelDraw
TexturePacker TexturePacker is a neat tool for producing ‘sprite sheets’
Spine is an application that allows you to make 2D skeletal animation for games.