This article is aimed at neophytes of the game dev industry – perhaps you just downloaded Unity3D/Cryengine/Unreal/Ogre3D and did some tutorials, perhaps even made some simple games in Unity3D or another engine, or perhaps you dabbled in game development and have some half-finished game that never made it to completion due to one reason or another. In either case, if you want to make a decent-looking finished product then this article is for you.
Currently I’m working at Melior Games – a company that creates professional-quality games where actual money is involved, but things weren’t always like that – I used to be a broke student that consisted on ramen noodles and inspiration. However, all you need to create something nice is a semi-decent computer, some software like Unity3D, 3Ds Max and Photoshop (the specific software involved is more of a matter of taste, I do not mean to imply that the list I mentioned is the “correct” one – it is just what I’m using), an Internet connection, and some free time to make use of those tools.

Also, ask yourself why you want to develop a game? Is it to get your vision across? To build up your portfolio? To Impress your friends? In my case it was all of the above.

My first “decent” 3D game,Karsega 5: Bloody return 3D, made before working for Melior Games

1.    Know Thyself. This platitude is vital – what are you actually capable of? Newcomers that first get into game dev as a hobby may be all wide eyed and excited and think they can create anything – this is technically true,  however with the clause of “not straight away”. Indeed, it has become a cliché in the Ogre3D, Unity3D and other game development forums that new users will parachute in and post about their great idea of an “MMORPG with FPS elements where there is trade, space travel and strategy elements” – their “idea” is great, indeed they have it all figured out and if you work for free for them you’ll get a percentage of sales or something like that. This may sound like an exaggeration, but this has become such a nuisance that such threads are now subject to ridicule and then locked after the thread gets filled with questions about that persons ability and posts like “oh, not one of these again”.
It may seem unfair to outside observers that they aren’t even given a chance, but this ability to tell these types of projects from “legit” ones is hard won: people who have completed even a simple game in Unity3D gain a much deeper appreciation for what is actually required to create more complex project. And this, I argue, is what you should do: for your very first game, create something simple. This is even more vital for those that think they can start off with an MMORPG or any other complex project – for surely if you feel up to the task of an MMORPG, you can complete a simple project first?   Most such people, however, can’t even complete a simple project, and move on to something else like bothering others to do their project for them: do not fall for such things. It is much more fun to create stuff for yourself – you get to create your own visions and ideas, and you have the guarantee that you have but yourself to rely on. As you complete projects, their complexity will gradually increase as you feel more confident – this is the natural way. The opposite -  starting with something complex, would be akin to deciding to run a marathon out of the blue – you’d simply get exhausted, give up and go home.  Once you have completed some projects by yourself you will be able to get a much better feel for who is legit and who isn’t, and be able to create or join teams, or indeed a game dev company.

2.    Create a Game Design Document (GDD). Why is this important? After all, you think “I have this vision of the game in my head- why write it down?” If you are creating a relatively simple game by yourself, then I agree – you can do without it. However, problems will arise as the complexity of the game increases and team mates are introduced. Counter-intuitively, the key to successful game development is limiting yourself: as I worked for amateur teams as a student, a big problem that I noticed, apart from people not doing much work, is that new “cool” features would constantly be added, and other older ideas would be forgotten. While this is fine when discussing the concept of the game prior to development, this is deadly once you begin creating the game: without a stable idea of what you are creating, with new features being introduced here and there, it becomes almost impossible to finish the project as increasing amounts of time are spent doing work that will not be used in the end, or which will have to be amended because that new cool feature breaks it.
At first, writing a Game Design Document may seem like a waste of time, since after all you could have spent that time doing actual programming art. However, the time you will actually save, and the fact that your project now has a chance at completion far outweighs any time spent on planning.
There are plenty of great examples of Game Design Documents on Google.


3.    Create your art.
There are 3 ways to go about this:
1.    Use pre-made  assets on the Unity3D asset store or other sites
2.    Find people to do art for you
3.    Do the art yourself.

Of course, you can use a combination of these techniques: for instance if you are developing a shooter you may choose to draw the menus, buy the gun/level/character models and animations,  and have people do some custom modeling for the things you can’t find. Personally, however, I’ve started with learning how to make 3D models and animations first, and only then graduated to Unity3D to make something dynamic: being able to create 2D and 3D art for your own games is incredibly freeing, as you are not dependent on others, and the look of the art depends on you. It is well worth investing a year or two prior to doing any programming to learn how to make decent-quality 3D models- you’ll thank yourself later on. The sheer amount of books, articles and YouTube tutorials is more than enough to turn you into a 3D/2D game artist even without official training, as long as you are willing to put in the time.
There are plenty of free tools like GIMP and Blender3D that you can use if you can’t afford software that costs money.


4.    Create Your Game!
There are many choices of game engines, be it UDK, Ogre3D, Unity3D or others. My personal choice is Unity3D, since it is cross platform, easy to use and has a great asset store where you can get stuff for your game like 3d models, animated characters, UI systems, 2D graphics systems, awesome looking particles, and plenty of other stuff.  As mentioned above, start simple and have a Game Design Document. With some luck and dedication, and perhaps help from other users, you will eventually wind up with a game!

I hope you’ve enjoyed the article, now go make some games!