2d game development on Android: looking for ideas

2d Game Development on Android: Searching Ideas

Hi everybody! For more than two weeks our studio has been working hard on a new project. We are developing a 2d top-down shooter and a little unusual perspective for characters (we are discussing it later). Now is the time to tell all about it. This is the first post from a series about developing a two-dimensional game on Android.

All parts of the diary

Team

First, let me introduce you to our team:

  • Oleg Antoniuk — project manager, game designer and artist. I’m also the author of this diary.
  • Mikhail Gasyuk — screenwriter, game designer, tester.
  • Anton Bevza — leading Android-developer.
  • Sergey Katrych — Android-developer.

In the future, an artist / animator will join us. For now, I perform these functions. Being an ex-indie developer (I have successfully sold 2 flash games), I’m interested in managing mobile game creation in a team. This process has its drawbacks and advantages but nonetheless it’s a new exciting experience for me.

Idea

Initially, the task was to create something like Crimsonland for mobile. The first prototype looked very similar: small sprites (minding they are for smartphone screens), slow player and similar monsters. Original:

2d Game Development on Android: Searching Ideas

Another important condition was to release game relatively fast because it was a small project meant for a few months. We decided that first it would be better to develop a few games in different genres to get a “feel” of the market than to work on single large project.

After reviewing the most successful games of this genre in Google Play — a series of Monster Shooter and Age of Zombies — we noticed that they all use isometrics. Objects are modeled in 3d and then rendered separately. In the case of Age of Zombies, there is also post-processing a la pixel art (that’s lot of work!). Additionally, every animation should be rendered with different rotation angles (typically 4 or more) since different animations are shown depending on the direction the character is moving into in order to create a 3d effect.

2d Game Development on Android: Searching Ideas

Since isometric is expensive and takes a lot of time and our task is to finish everything quickly and not go broke, we were looking for the alternatives. The easiest option is a top-down view. Such games are quite successful, for example, Mutant game made by Russian developers from Alawar Entertainment.

2d Game Development on Android: Searching Ideas

But this type of camera does not show characters’ faces. What kind of emotions are we talking about? How to evaluate the power and beauty of the newly purchased gun if in combat we can only see its weak top projection? Such type of camera demands very little work from programmers and artists, but the result is hardly impressive. We have two extremes, and both don’t work...

When choosing a style of graphics I came across Droid Assault game. Pay attention to how characters are represented:

2d Game Development on Android: Searching Ideas

And what if you use a top-down view with characters in the front view? We rotate a gun the player could understand where to aim. It does not look very realistic, but seems good enough for our cartoon style. In Rayman hands are also detached from the body the same way and everything is fine.

2d Game Development on Android: Searching Ideas

A closer look shows that when aiming to the left a gun is kept in right hand and vice versa. At the same time there’s a slight shift to the corresponding direction. In order to do it you have to reflect the sprite with weapon horizontally. Everyone liked the idea and we started working on it. I have not found anything like it on the mobile market so tell me if there is something similar out there.

Planning

The biggest difference between a one-man indie game development and working in a team is that there are other participants and you need to explain them what to do in details. When I was alone, an artist, programmer and game designer were one person and “their” interaction was very effective. But now linking all processes and synchronizing all tasks (for example, a programmer may require sprites on the early stages of development) take a lot of time. On the other hand it takes less time to create a game and it’s possible to add new features on a daily basis.

For planning, we use Scrum project management methodology. In short, we divide the development process into phases that last 7-8 days and are called sprints. During each sprint key features are added to the project which let us understand whether we are moving in the right direction. After each stage is completed the team comes together and starts planning the stage. Each sprint consists of a list of tasks taken from the product backlog.

Now we are close to the finishing point of the third sprint. Here’s a short summary of the previous steps:

  • Sprint 1 (6 days). We had a prototype but further development got complicated by the poor structure of classes and complicated code. We wrote everything from scratch with the possibility to change some of the game parameters without the need to recompile. It is convenient when you need to balance the game. For example, you can change the speed of movement of the main character, monsters and damage done to them, bullets scatter and other key parameters.
  • Sprint 2 (8 days). Checking the chosen perspective to display characters and graphic style. We replaced all the sprites. New music and sounds were added from the free sources. In the course of development we had to add simulation of an isometric view. The idea turned out to be working, we liked the result of the sprint and continued development.
  • Sprint 3 (8 days). The most complex by the number of new features: tile levels (created in Tiled free editor), 3 types of weapons, shop, map of level progress, 3 types of enemies, bonuses, new sounds; searching for an artist. We are to finish it tomorrow.

We use Redmine in our work — free and open source web application for planning and project management. Its functions are sufficient to implement Scrum methodology. Backlog and sprints are created using versions. It helps us solve complex tasks and evaluate time spend on them with the help of subtasks and checklist.

Development tools and technologies

Development of a 2d game on Android is done in IntelliJ IDEA environment on Java language using AndEngine. We also use XML to store levels.

All the graphics is drawn in Adobe Flash and Adobe Photoshop. TexturePacker was used to create sprite sheets..

2d Game Development on Android: Searching Ideas

Sounds are processed in Adobe Audition. We use Dropbox and Google Drive services to share files.

Looking for an artist

On February 20th we started looking for a vacancy for an artist / animator on various sites and forums for freelancers. We got a lot of responses and some artists have kindly agreed to perform a test task. Just have a look at the work done by a young artist from Ternopil:

2d Game Development on Android: Searching Ideas

Perhaps we’ll see graphics done by him in the working version after we finish the next sprint.

Sound effects and music

Sound effects and music are now taken from free sources, for example freesound.org. If needed, sounds are cleaned, processed and mastered to achieve the required quality:

2d Game Development on Android: Searching Ideas

In the future, we plan to order tunes or buy ready-made from such sites as audiojungle.net. Some high-quality effects are available there.

To be continued

That is all for today. Next time I’ll tell you about further stages of development, technical issues and other interesting stuff that happened to us during the course of development. If you have questions, do not hesitate to ask. I will try to answer them to the best of my knowledge.

Part 2: Design

UPD: Galaxy Recon is already on Google Play — check it out!