Friday, September 13, 2013

First beta of Total Domination on Android Market

Total Domination

I needed a simple project that I could play with, I needed to be able to extend it to a multiplayer game and add Google Play Service. So for I have only single player and it's working ok. I have some strange craches only. But I will work them out later.

Here are a few Screenshots from the game.
You can find the game on this link.

Saturday, August 10, 2013

Made a simple Nebula and exploding planet

Nebula

I was doing a simple space game and needed a good background. So I did this background in Gimp. Unfortunately it didn't fit the game, so I just post it here if someone need a simple Nebula image. You can use this for anything. 











I was also doing this exploding planet when I was in Gimp and hadn't anything else to do.


Sunday, July 28, 2013

Game development software

I have tried to collect all the software I use when I make games. There are allot of tools to know if you will make a game solo.

 I have tried for a long time to use free software that is more or less equally good as paid application. This is because I'm doing everything in my spare time and think you can do good games with free software. Often you need allot of time just to find what you are looking for. So this is my list so you don't need to search as much as I have done.

 If we start from the ground and move our way up. If you already have chosen your engine/library you can skip this first section and go to all the utility program.

Game engines/library

A good source for comparison between game engines are Mobile Game Engines.

Full feature Game Engine

Unity3D
There are a few type of engines. You have the full feature engines that contains everything. Those can be very good to get starting with. Two good example are Unreal Engine and Unity3D. You can download both and play around with them. I have played some with Unity3D and it is a good engine. You can do desktop games with Unity3D for commercial use, there are a few limitation however. If your aim is for Android or iPhone you need to pick up the wallet and pay thought. I think you get allot of engine for the amount you need to pay thought. To connect everything in those engines you use a script language. An open source alternative to those two are Blender Game Engine. This isn't very actively developed. There are bug fixes in every new release but not much new stuff. If you choose anyone of those engines you need to live with the limitation they have. They are extremely hard to extend if the functionality isn't there for you. This is the biggest drawback here.

Script Engine

Gideros IDE
In between pure game library and full feature game engine you have script engines. Those use a script-language to access the underlying code. A common language they use are lua. I have tried Gideros and Moai, both use lua. Gideros are closed source so the only way to extend it is to write addons to it. Moai are open source. To extend it you need to know C++. Gideros was kinda easy to get started with. They have there own IDE and some other utility programs. Moai had more feature when I was testing them out. But this was some time ago now so check them out to see what fits your need best.

Game libraries

LibGDX setup screen
The furthest down are pure library. I have been working with Java for many years so I tend to get drawn to those library. I have only tried a few different library here. If you use a well developed library then you can extend and use the things you think are interesting. If there are something you don't like you can extend and rewrite it. I think this is the biggest advantage. I have tried andengine but I think it was little to messy to work with the code. The community are good and there are alot of tutorials to get you started. Another good library are Cocos2D-X. This one are for cross platform development, if your aim are to release to multiple platform. You develop in C++ and there might be some tweaks to get it working with different platform. I had allot of trouble with this one. Might be I didn't take the time to get to know it. There are lot of other library. I strongly suggest you check the Mobile Game Engines list and check what you like. My self have picked LibGDX to work with. It is a very well documented library. The community are strong and helpful and there are actively developing the library. The last thing they have added are that they have full support for iPhone. That means that they have support for all desktop platforms and Android/iPhone support. All free and open source.

Those are just a few library and game engines. There are allot of others out there, if you are going to compare. Do a quick test, for example, check how fast you can get a picture to the screen and have it move around. That is usually enough to get a feeling how hard the library are to work with.

Select IDE

This one is a tough decision. what I know of there are 3 main IDE for java (I will only discuss those because I choose LibGDX).

Eclipse
LibGDX are built around Eclipse. I don't know how much they use from the IDE. What I have seen not much. They have done it allot easier to get started with Eclipse. It can setup a project for you with just a few clicks. My personal thoughts of Eclipse isn't very good. But never then less, LibGDX are built around this IDE.

Another very popular IDE are NetBeans. I know there are people that use this one to build LibGDX. I haven't tried this so I'm to no help here. But I can't leave it out. There are very good instruction to get this one work with LibGDX.

Android Studio
I have picked a version of IntelliJ, they have a few different licenses. They have an open source and free to use versions, what this version lack are all development against servers, to get a better view what you get then go to there comparison page. But the version I use are the one from Google. I use there Android Studio. This one is built from IntelliJ code and they work close with JetBrains to get a good product. I use this one because it's allot faster then Eclipse (my opinion) and you will have access to Google function like there Rest API to there Google App Engine, and to easier create those. You will also have access to Google Play Game Services and there IDE work well with Android.

Utility program for game development

The problem when you develop games are that you need allot of other programs to get everything working. The IDE isn't enough. There can be hard to know what program are good and even what program are out there. In this section I will only talk about the program I use and my opinion of them. All are free to use.

Make those images

InkScape
When you start to code you can do simple rectangle and circles just to get something going. But after a while you need to make those images. I use two program. One vector based program. I think it's allot easier to get nice looking images in a vector program. As a programmer I'm not that good at making good art. But this help allot. The program I use is called InkScape. It is a free and open source program. There are tons of tutorials and videos on YouTube how to use it. You can do most of the things in there. Some fine tuning might be hard to do in InkScape, or it is easier to do in another program. In this case I export my file and import them to Gimp. This is another open source project.
Gimp
It is only those two program I use to make my images to my games. Chris Hildenbrand make the best tutorials, in my opinion, for InkScape and are very focused on game art. Check him out on his blog "2D Game art for programmers". I have thoughts to get more in depth on those programs in later blog posts.

Pack the images

After you have done your images you want to pack them. It take allot less power to have a large image move around and just show the area you need then load every individual image to the GPU. Those are called image atlas. They pack all your images in one big image and you load just this one image to the GPU. If you have allot of images or big one you might need more atlases. The one I use to pack my images are GDX-Texturepacker. It is easy to use and the documentation in LibGDX are good.

Text in games are fun

BMFont
When you do games you will probably use text and points. Then you need some kind of fonts. You do this with another atlas. To generate those I use BMFont. You can select fonts you have installed on your computer or download new ones. A good place to find new fonts are FontSpace. They show what kind of license every font have so you know if you can use it for free in your game. There are allot of other web pages with fonts to download, but this is the one I have used so far.


Resizing images without redoing is fun

To save space you can do so called 9-patch images. What those do is they define areas in the images that need to be there, like curved corners can't be stretched. Then in the middle of the image there are an area that can be stretched. This is very good if you need to do buttons that only need to be as large as the text on it. Here are a very good site that explain more how it work with 9-patch images. Both LibGDX and the texturepacker support 9-patches. I use a little tool that are coming to android SDK to make my 9-patches.

Level editor

Tiled
Tiled is a program that take all your small images and build a level with it. You can build platform/top down or isometric maps with this one. I have only been looking at this but haven't yet implemented anything yet. But this can be a good level designer tool if you need one.

3D are cool

It is fun to have 3d object in your game. LibGDX support obj files to be loaded. I use Blender to make my models. Sometimes it's easier to do 3d models to get lights and shadows right before you put them in a 2d program. Blender is a free open source program. There are allot of development on it so keep up with all the releases can sometimes be hard. They have a vision to release every bi-monthly. If you use this program as your game engine you can use the model directly in the engine. So you keep everything in one program. 

Particles make a huge difference

To make animation when things go boom you usually have particles. Particles are images that are packed together and form a pattern. You have a image that will represent all the particles. A very common one are a white round one. You can create smoke this way, then you use a more transparent image. I use the particle editor that is bundle with LibGDX.

Sound and Music

This is one of the hardest area for me at least. But one tool that is very good is Bfxr. It is an elaboration from Sfxr. It is very good to make small sound effects to your game. It can be a first placeholder for sound effects before you put in your finished sound effects.
Music are the hardest in a game. It sets the mood to everything. You can ether make your own music or you can download free to use music. One good place to find music that you can use are Jamendo

Finished notes

This post get kinda long. But there are allot of tools and programs you need to have to make a game. Ether you can learn all of them or you can team up with someone else and split the work. If you are alone and don't want to make something then you can buy someone to make you the things you need.

Happy Coding All!

Wednesday, July 24, 2013

Math is up on Google Play

I have been working with Google App Engine to get to know it better. So I did a simple game backend. My first thought was to build a generic service that anyone could register and use. But it ended up that I did a game on it only. It is a math game. You can register and play against your friends. Check it out on

Some screenshots from the game: