Creating the Game IV: Sit Down and Programme
It took us quite time to prepare next part of our dev series. It was caused mainly of AppCampus processes (I hope there will be positive update soon). Anyway, if you are interested in programming of your game, sit down and ….
When you decide to make your dream true (in other term – game) you have to count with pretty hard problem. You have to answer the question of programming tool for your masterpiece. We tried to beat the same problem. There are many various programming platforms and our final choice felt on Unity 3D.
Unity allows us to create games quite simple for all major platforms iOS, Android, Windows Phone or not such mainstream devices like Blackberry, Xbox, PS3. We can pretty easy prepare build for internet browsers. So basically we just programme game in one single language and then export it on desired platform. But this is not the only advantage. What we really appreciate is huge community around Unity 3D. Thanks this there is available extraordinary amount of plug-ins and tutorials helping us with development and time saving.
If we have mentioned community we cannot forget other professionals using this engine. You have to admit that games like Dead Trigger by Madfinger Games or inXile Entertainment´s Wasteland 2 are really good references.
If you are thinking of 2D games only maybe the Unity is “overkill”. You can try Monkey X for example or special Unity toolkit. And pricing? Well, you can try Unity 3D free license but keep in mind that if you would like to make games for all platforms you have to upgrade to Unity Pro. This costs 1,500$ or you can use the option with monthly 75$ fee.
Other options we considered were programming own engine or programming for each platform separately. Both ways are really time-consuming and actually it is pretty hard (if not impossible) to develop own engine in small team. On contrary your effort can be rewarded by freedom and larger projects controlling. Long story short, nobody knows your engine better than you. And we do not have to mention the selling potential if your engine is good, do we?
Infinitive Process of Agile Software Development
We are sad to say that but nothing is over by selecting the engine. Before sitting and programming there is one very important part – you have to establish order. Core of our planning lies in agile software development. The whole project is split in many tasks (we call them “tickets”) which are systematized in task and code management tools like Chili or Assembla. It is pretty easy to prioritize tasks according urgency, category, dead line etc. – everything for coordinating the project effectively.
Tasks are usually entered by game designers and he/she selects who will be responsible for it (usually graphic designer or programmer). Game designer has also last word which means if the task is completed the ticket is closed or resent back for rework with notes.
About the tasks, usually it is more useful to specify more small tasks than big one. It is better for controlling and coordinating the project. And not only for this, there is also psychological impact – huge tickets take too much time and programmer can´t see significant progress. Therefore there is bigger chance to loose motivation.
Our most recent project Defend Your Life! consists from approximately 400 tasks so far. To illustrate the final number you have to consider fact of actualization of tasks (average number of updates for each task is 6). So I think it is quite understandable why management tool is must. No one just can remember everything and repetitive asking from face to face for one thing can be pretty annoying and time wasting.
Hardware and Bugs
After the implementing the code there comes another part – testing. We will discuss this topic in separate text but just short outline is needed here. We use various devices representing every platform which is relevant for us. We try to test the games on most used hardware but it is not that easy as it sounds.
While Apple offers only few devices with its operating system the Google and its Android platform covers hundreds types of smartphones and tablets. And of course we cannot possess them all. So from perspective of debugging iOS is much easier to develop. We can immediately identify error, fix it and afterwards try if the correction works. Despite this we try to develop for as many devices as is possible and multiplatform engine is pretty helpful from this point of view.
Who Can Be Programmer?
Everybody with certain abilities. You will be probably surprised but knowledge of program language and engine is really not enough for programmer. First of all, every programmer must be good at math. This is pretty helpful in case of more complicated algorithms. Also, without advanced English has programmer hard time while lot of documentation and tutorial are being written in that language.
Resistance to stress is must as well. You will appreciate this ability especially when the release date is in two days for example. Following trends in technologies and learning new stuff is obviosity as well. And last but not least, programmer must have desire to finish and make things happen. Because it is very easy to begin program the game. More difficult is the final part. That shows if the game will see the light of markets or not. And it seems that there is still majority of projects without even a blink.
To Be Continued
As I mentioned above next part is dedicated to testing the game. The game is playable but not enjoyable. Why? Bugs, bugs and bugs everywhere… It is going to be really painstaking work.
Alda Games, 30.05.2014 | Brno, Czech Republic