Hessan Feghhi

News

Game Development Days

When I started game development for Android, I had to learn a lot of things. The information out there were rather sparse and I often found it not easy for a person who has never done this before to compile them into a knowledge base. I have really wished to be able to help my fellow programmers. I thought of writing a book to teach what I have learned in this area. But I am no good writer and I am still learning myself. So I decided to start this page to share what I’ve learned with you.

I have released three game titles so far. This has taken me three years, most of which has been spent on learning and trying things. That’s why I want this to be much faster and easier for those who want to start from scratch. I share the knowledge I have gained during these three years with you. Below is a guide I have newly created in which I will describe how a very simple game engine can be made from scratch. That’s right! You will be creating a game engine with me.

I will organize this page so that it does not look like a mere blog, but a useful resource base for developers like myself who want a one-stop website to start their journey. During the development of this engine I try to provide some side information related to every part of the engine we make, so it can be useful even for those not particularly interested in the main goal. Feel free to pay me a visit there and if you like it, don’t forget to spread the word.

Play Game Services – What’s Good and What Can Be Better

games_controller_green

When I first heard about the new Google Play game services, I got too excited. It wasn’t such a new thing. iOS has had it for a long time, and even on android, it’s been Amazon’s GameCircle has been there for a while. But I was waiting a long time for this feature to be available on Google Play. So, when I saw the announcement in my Developer Console, I got busy right away. My game Hungry Slimes had everything I needed it to have to start. It had achievements and an online leaderboard hosted on my website (and on GameCircle for Amazon). I had the creatives for leaderboards and achievements prepared already. So the first thing I did was to touch them a little and start preparing the environment.

announce

The experience was great. Although I had some trouble in the beginning to make it work, I consider it as an easy feature to integrate. I don’t go further into this, as there are already a lot of articles circulating on the web about how great the games library is! Instead, I highlight the things that I didn’t like while I explored it so far.

What’s Bad

Your Choices are Eternal!

As many other Google Play Developer features, game services also make you nervous when you are publishing something. I have had issues before with app pricing decision (free/paid), and in-app billing. In in-app billing, you fall into trouble if you:

  1. Create an in-app product
  2. Delete it.
  3. Try to create another product with the same name!

I understand if you cannot create another product with the same id, but the name is not justified for me. Amazon simply doesn’t let you delete the products. But Google Play allows you to do that, but then trashes the name for you and there is no un-delete option. So an advice for developers: Always change the product name to something meaningless before deleting!

When we come to game services, there are these kind of things again:

  • You cannot link more than 20 apps, and this INCLUDES apps that you delete. While this is generous enough, it brings the question of “why?” Personally, I had to trash two of them.
  • You cannot change the certificate fingerprint. I suppose there is a technical reason.
  • You cannot change whether or not achievements are hidden, once you publish them. In Amazon’s GameCircle you can do that.
  • You cannot change the ordering (if larger is better or smaller). I don’t know what technicality is behind this, because an indexed database can usually be sorted in either direction. But we are talking about Google’s heavily distributed data, so maybe it is not as easy as it appears.
  • You cannot change the minimum and maximum allowed scores, once you publish. I had a major update for Hungry Slimes a while ago, in which the score scale completely changed. I’m glad I did it before Google Play’s game services!

In one word, Google Play has many of these options that cannot be changed later, and they keep this habit in their new services.

Signing Certificate Fingerprint

If you are not familiar with this, this is a long string that identifies the signature of your app. It is a secure way to check if the app is signed with your signature. Google Play uses it to verify the legitimacy of game-related requests. Something weird I found out with a price was that when you link your app to a games project, Google simply generates some random fingerprint and pre-fills the corresponding field. When I was creating my project, I was too excited to enter my own and made this silly mistake of thinking Google already has the fingerprint and is filling it for me. So I just added the apps and it took me a day to identify and fix the problem. So here I give another advice for developers.

If you ever make the mistake I made and enter a wrong fingerprint, don’t worry if you cannot revert the changes in the Developer Console. Good news is, you can add as many instances of the same app package name as you want (still less than 20)! In this case:

  1. Go to API Console.
  2. Navigate to your games project.
  3. Go to API Access
  4. Delete all Client IDs
  5. Now, back your Developer Console, add the packages again.
  6. Remember, it should ask again to authorize, if it doesn’t simply change the package names of the faulty items to some other app of yours. You can do that.

To be honest, I don’t really understand why such an important field should be pre-filled with something random.

 What Can Be Better

Here I will just mention a few things that can make the experience better both for the developers, and for gamers.

More Features

Google Play has already enough features compared to other app stores as far as game services are concerned. However, as a gamer you can think of some other stuff that can make it even nicer and make Google Play’s features really stand out. As a developer, I miss those stuff for my upcoming game:

  • Stacked achievements: What I mean is something like this: imagine you have an achievement that is unlocked when you kill one boss, and one when you kill five bosses. In order to get the five-boss achievement, first you get the first one. In this case, you just want to display only the five-boss achievement, because it already implies a single boss has been killed. Think of levelling achievements in World of Warcraft as another example. Keeping all these achievements in view makes the list too long.
  • Achievement Rewards: Hungry Slimes has a reward for some of the achievements. When I migrated to Google Play game services, I couldn’t migrate this feature (i.e. showing the reward in a distinct way). This is just small detail. But I think many would like it, too.

I haven’t played around with the online multiplayer support. I will probably post about it when I do.

More Control

This is specific to developers. I’ve had the online leaderboards before in Amazon AppStore, and you can choose the identifier for each of them. Instead, Google assigns a random id to each achievement and leaderboard. This was particularly troublesome because I have one code that works on both app stores. I had to have two sets of ids set for leaderboards, and it just made my code dirty. Luckily I hadn’t set up the achievements yet in Amazon’s GameCircle, so I just copied the identifiers from Google Play.

Online Availability

It seems that the achievements and leaderboards are currently only available from within the game itself. It would be nice to be able to view, compare, or share their game activities from a computer through Google+.

Conclusion

“Google Play game services” is a wonderful and well-designed solution. It is easy to integrate by the developers and easy-to use by users. With a few changes and additions, it will easily be the best-available games package for the android platform.

Updated Trio

During the past couple of months, the game Hungry Slimes has received various updates and has improved, thanks to the feedback from our users. Just recently we sent an update or two for the other game Bomb Squad, and for the simple sensor testing app, Sensible. These updates mainly focused on bringing all the three siblings to use a uniform graphics and game engine. A game engine that has been under development for almost a year now.

What is going to happen next week though is something that has never happened ever since we launched Sensible for the first time. This time, instead of updating just an individual game, we have revolutionized the underlying game engine. The game engine now supports high definition graphics. And this can be beyond HD. Graphics elements for all three apps have been updated to scalable versions. As a result, the image seen on HD devices (and devices such as Nexus 10 which are beyond HD resolution) is as crisp as the image seen on smaller devices. As a side-effect, the file size for the games has also decreased.

Beside these changes, we have revised all three applications, looked for possible bugs, fixed glitches and improved performance. The engine has also been revised and tidied up. The games now fly on our devices. They are undergoing final tests and as soon as this is done, they will be uploaded and you can enjoy the clear and crisp graphics on any tablet or phone.

Update – 15/1/2013: The updates have been launched! Please use the following links to download the apps from Google Play:

We have also gone back to the name Sensible for our sensor testing app. It has been named Sensible Sensors for a long time, due to marketing decisions. But it was about time to switch back to its original name.

Bomb Squad – Doctor Reaper

This article covers the fourth boss encounter in Bomb Squad.

Screenshot_2012-08-05-18-10-35

Criteria

In order to get to fight this boss for the first time, you need to complete all 5 levels of the fourth level cluster. You also have to go through a narrow mine field and deactivate a gas chamber before getting to fight this boss.

Killing this boss will unlock the fifth level cluster, with portals.

Encounter

Doctor Reaper is the most difficult boss encounter in the game. This is due to the amount of awareness and swiftness required to defeat this boss. Before entering the doctor’s laboratory, you must have mastered the game. Not only should you know how to avoid bad items (plagues), you should be able to play with them. Because you will most probably have to eat some even if you are a perfect avoider.

When the fight starts, three plagues will spawn in random locations on the ground every 2.5 seconds. Considering the de-spawn timer which is slower than this, it can be overwhelming at times. You cannot exit the room as it heals the boss. Doctor Reaper will walk around the lair as he scatters the plagues.

You can immediately notice that the room is divided into four partitions. Inside each partition there is a gas-chamber machine. This suggests that you might be in great trouble. Because gas chambers don’t take long to kill you once triggered. The truth is, they are going to be triggered soon enough. Each 120 seconds (2 minutes) he turns on one of the gas chambers. It is NOT random. The pattern is always the same. Each gas-chamber machine covers one partition. Walking into that partition when the machine is working takes your health very fast. So you have to plan ahead. Once the fourth gas chamber is active, the fight should be done.

The fact that Doctor Reaper walks around a circuit around the lair looks like Lieutenant Chase. So, intuitively you should use almost the same technique. But here you also have the plagues and gas chambers. Plagues should not always be avoided. You must learn to adjust your brain to the changes the plagues impose very quickly. You simply won’t have time to avoid/blow all plagues on the way. The only plagues that should be avoided are those that paralyse you, such as Stun.

It takes a few runs to learn the mechanics, and some others to be able to defeat this boss. But defeating this boss is quite an achievement.

Naming

As this boss constantly spread plague on the ground, it automatically suggests that he is good with diseases! So this explains the term doctor. But he is also an evil doctor, as he does no good with his talent. His plagues and gas chambers are extremely deadly. So he is Doctor Reaper!

Get it on Google Play

Christmas Gifts for You from Hungry Slimes

Get it on Google Play

It is Christmas time and we have not missed this chance to give you a gift! In fact we will keep giving you gifts from now on as Hungry Slimes has a new feature. You will now get bonus as you play. Perks, power-ups and achievements are what you might have already gotten used to and we thought maybe you would like to see more of the slimes. You now have the chance to win slime points, lives, and score boost just as you go. All you need is to touch a question mark with your slime ball. If you have played Star Hunt mode, you should already be familiar with this.

We have made another change in Hungry Slimes. Time Challenge mode used to be very boring and hardly anyone played it. We made this game mode a bit more challenging by first adding the bonus feature and second making it shorter. The traditional 10-minute has now decreased to 6. But it is still considered a very relaxed mode. One you only play to get used to the mechanics of the game. But it is at least a challenge now if you want to proceed to high levels as you would do in other game modes.