So you want to be game developer ? -- Words (1056)

So you want to be game developer ?

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:

Mathematics,

Physics,

Graphics,

2d or 3d or both ,

game engines ,

game design ,

programming ,C++,Java ,Swift,JavaScript .

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.

JavaScript is the language of the browser and can be used to create games ,with the advent of HTML 5 using canvas and webgl support you can make 2d and 3d games that run on the browser ,recently some engines allow you to create cross platform games that run across major devices (Windows,Win Phones,Mac and iPhone ,Android,Chrome,Firefox and the web)

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

Input,

Rendering,

Physics,

Camera,

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

You have to choose a good game engine and start learning it.Recently I’m using Cocos2d-js v3 to create 2d games with JavaScript but you can deploy to major devices including the web browser with the same code base.

Cocos2d-js is a JavaScript binding for the coco2d-x engine which is a C++ port of the well known iOS game engine with the same name ,cocos2d which uses objective C.In upcoming tutorials I will use cocos2d-js to teach you how to start making 2d games.

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 :))

Platformer games

Rogue like games

Role playing games RPG

Strategy games

Action games FPS

Simulation games

Card games(solitaire) and board games(chess)

Puzzle games

Adventure games

Level designers and game art tools


Overlap2D



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



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



Spine is an application that allows you to make 2D skeletal animation for games.

ogmoeditor

LevelEditor

TileMap editor

Assetssplace holders

Free Game Resources


Free sounds Clip art


I'm a web developer and technical writer. Passionate about modern JavaScript technologies and currently trying to develop all kind of apps (Web, Mobile and Desktop) with JavaScript.