Hi guys, I wanted to post something about the game development using only free tools. I’ve spent 10 months now developing games in Ubuntu, it first was Escape From Husband, a test I did to see if everything could be done, and now, developing Kill The Zombies (Cooming really soon…) an really complete game, that it will be a hit for sure!! So I wanted to share my experience on it.
I will start with the OS, I’ve been using Ubuntu from long time now, almost 7 years, and I really loved it, I loved it so much that I created gloobus-preview and covergloobus, so I could love it even more! Since then I never changed ubuntu.
I must assume that Ubuntu is not the best OS for creating and designing games, but I could do everything I needed except one thing (I’ll talk about it later), so even maybe some things are harder to do, they can all be done, I’ll discus all the tools used in the game creation, from start to finish, and of course, answer all the question you may have.
1. THINKING THE GAME
When creating a game, the first thing you need is to write a bit about what tha game will be about, what screens will it have, how will the user play the game, what features it will have… so it can easely be done with Libre Office and if you need it to be shared, you can use google docs.
This is the “Easy part” and of course there is no problem here 😀
When creating Kill The Zombies, I based the game a lot with Zombie Smash by Game Doctors, but I have to create my zombies, my weapons, my levels etc.. I have a doc with all this stuff and I use this as reference, (Jay S joined me later in the development [I’ll talk about him in the PART 2] so google docs was good to share all that info)
2. DESIGNING THE GAME
Once I have the idea of how the game will be like, the next step is design the game, I usually skip the use cases and I go straigh to the Class Diagram, for this I used the free tool called ArgoUML, even its not the best tool (it lacks in the user interface and how to interact with the things) but is really usable, I can do everything I need there, create classes, interfaces, abstract methods etc.. It has a tool to create the base code based on the classes but I never liked it, since it writes some code I will never use, so once I have the class diagram created, I print it and I start the development from there.
When creating the class diagram, I check the docs created in step 1, to make sure that everything writted there is solved in my architecture.
In Kill The Zombies, I ended up (in the class diagram) with more than 20 classes, and argoUML is good for it since you can have diferent views of the classes, so for example in one view I have the BaseZombie class, the BaseZombieDragable, the BaseAnimatedZombie, and all the diferent zombies that inherts from BaseAnimatedZombie and that defines their life, their damage, their speed their animation etc… (I’ll post more about KillTheZombies architecture in the future, when I’m rich thanks to it) and in another view I can have the weapons (BaseWeapon, BooksWeapon, HandGunWeapon that inherts from BaseWeapon) this way I can divide the problems, (Divide and conquer)
3. PREPARING FOR DEVELOPING
First thing before starting developing anything thats gonna be big, you need to choose where will you store it, and where will you version the code. For this I choosed bitbucket, its really great, I Love it!!! It has support for git and for mercurial, it allow you to create private repositories and share them with anyone you want. Since I wanted my game to not be public, I found this service really good! So I decided to go with them. I created my repo and choosed to use mercurial (I’ll tell you why in step 4)
Bitbucket also allows you to track issues, so its a good to use it to know the next steps, bugs etc…
Well, thats all for today, I’ll continue on step 4 (Game Engine) in my second post about game developing with free tools, I hope you enjoyed reading.