2d game development on Android: design
Hi everybody! In this part we are going to talk about tile-based levels, editor for them, new system of waves and new weapons, as well as challenges associated with menus. And yes, we have finally found an artist and will be happy to present some new art to you.
All parts of the diary
Welcome a new member of our team
I’m happy to announce that a new member has joined our team. We are glad to welcome a talented artist from Ternopil. After opening a vacancy we got about 40 replies from 3d and 2d graphics specialists based in Ukraine and Russia. We even got some calls. Most of the artists had a very limited specialization (only 3d, only 2d design for Android or only animation, to name a few) which wouldn’t work for us. Some were beyond our budget. The work of others wasn’t impressive. Luckily we found Anatoliy who can not only work with 2d but also create 3d models and texture them:
He successfully completed the test tasks and draw the main hero and interface for one of the menus. Next he draw weapons and now he is working on tiles. All this will be soon available on our official Facebook pageso don’t forget to check it out. Since Anatoliy doesn’t have much experience with special effects (explosions, blood splashes, etc.), we are going to order those from the animators.
And then there’s level design. First we used only one texture for filling the whole empty space. It was enough for testing weapons and enemies but we couldn’t move further without implementing tiles. We have decided in favor of a free open source editor Tiled:
It has all the features we need:
- saving levels in xml;
- layers for tiles and objects you can add separate properties to;
- adding several set of tiles to one level.
It is possible to hide levels — just like in Photoshop — which is very convenient for creating waves when there about 10 of them. Every wave is saved to a separate layer and consists of a set of objects with manually specified properties that describe how fast and where enemies appear, their type and delay in their appearance. Layers allow you to create various levels by placing tiles above one another. Special layer called collision specifies blocked regions.
Creating levels is easy: you can copy both separate layers and objects. There’s no need to recompile an already created level in order to play. Levels are loaded from the smartphone cache that’s why it’s enough to load a new version via USB cable.
At first one tile was used for filling the level area. Later we switched to using the inbuilt set of Tiled. But it was a temporary option for checking performance. Later we tripled the size of the inbuilt tiles and outlined them. The end size was 108 pixels. Since the program allows you to use several tile sets in one level, I’ve decided to create two of them: one with terrain and one with decorative objects. In the future we can add more tile sets. They are just temporary (used while artist is preparing final illustrations) but we used the final dimensions. Height of the elevations and thickness of shadows are taken into account. Tiles of grass and mud are perfectly adjusted.
It was actually the biggest challenge: to draw tiles so that they will perfectly match each other in any possible combinations. In order to solve this problem you should create a grid use it to draw tiles, using the same shifts and object thickness. For example, we used the same height for elevations and depressions. Thickness of shadows is standardized as well. You can see it turning on an 8 pixel grid.
Below you can see all sets of tiles (in order of improvement vertically from left to right) we had already used in the game. The process of their creation and polishing is not finished yet. With new planets new sets will be introduced.
New wave system
We used to create waves after a certain amount of time has passed. It is a bad decision since a player might not be able to kill the previous wave and game balance would be offset. That’s why now waves come stickily one after another. A new wave is created only after the previous one was destroyed.
Enemies used to come from behind the border of the level. Now it is possible to specify where they come from. Starting point of the player is also specified manually, unlike in previous versions when it appeared in the center of the map.
Game balance was also changed making enemies tougher: they are teleported to the map in bunches and then the player can deal with them fairly fast.
We have spent a lot of time on interfaces: shop menu, level and planet select screen, pause screen. Here’re schemes we made for them:
A lot of hours were spent on aligning and positioning menu items so that they will look good on devices with different screen resolutions. But as of now we haven’t decided on minimum screen resolutions we should support.
Currently we are using temporary graphics for menus. An artist will work on them when more important sprites are ready.
We already have 5 types of weapons: pistol, shotgun, Uzi, grenade, grenade launcher and laser. It’s a pretty classical set except for laser that is shooting similar to Railgun from Quake 3. Some types of weapons are already drawn. We plan to add more weapons in the future.
That would be all for today. Follow our official Facebook page — I will be sharing some interesting images from new builds. The game will be soon available and anyone will be able to play and participate in the process of development.
UPD: Galaxy Recon is already on Google Play — check it out!