CLM logo Development Blog by CLM

Anodia 2.0 is released!

Anodia 2.0 is available on the AppStore!

The biggest changes in comparison to 1.1 version:
- 48 new levels
- level unlocking in Quick Play mode
- Retina Display support for the new iPad
- unlockable equipment
- iCloud support for score, stars, unlocked levels and equipment
- and… Trevor (as shown below)!

Trevor is optional and can be enabled in the equipment menu. He adds a little personality and cuteness to you paddle.

We hope that You all will like this version as much as the previous one!

Anodia 2.0 is ‘Waiting For Review’

A few days ago we shared an information on our Twitter and Facebook that Anodia 2.0 is ‘Waiting For Review’. Keep fingers crossed for a quick approval!

What does this mean for us? We should finally have more time to write regular entries on our devlog and start prototyping new games. And we sure have a lot of (potentially) neat ideas that we want to try! :)

Automated stability testing and memory leaks detection

It’s over one month since the last entry, but we’re trying to focus on Anodia release. One of the tasks that we’re currently doing on a daily basis is stability testing and memory leaks detection, but it’s not just playing the game again and again — we’ve implemented automatic mode that plays game by itself and when a level is completed, a new one is selected randomly. During 12 hours such test completes almost 200 levels.

As for stability testing, we’re starting game under debugger and leaving it for a night. If something crashes there is usualy callstack available in debugger along debug logs — this should be enough to identify and solve the issue.

For memory leaks we’re just monitoring memory usage to check if it’s not increasing in some strange manner. For identifying memory leaks in Obj-C we’re using Instruments and for C++ code we’re using build on Windows with additional memory allocation tracing implemented in WinAPI.

It seems that we haven’t seen any crashes recently and we solved a lot of memory leaks. There is still some testing ahead of us, but the most important information is that we’re trying to focus on the best experience for the players.

Anodia 2.0 Sneak Peek #3

It’s time for a Sneak Peek number 3! I wish you could see those on the New iPad Retina!

Anodia 2.0 Sneak Peek #2

It’s almost half of May and unfortunately Anodia update is quite not ready yet. We’re busy on making is as good as possible and there is still a lot to do. As usualy with pareto principle, 20% of work takes 80% of time.

Meanwhile, here’s a small sneak peek of the things to come (and yes, those old levels are optimized for the new iPad Retina):

The New iPad’s Retina Display

Since the Apple keynote about the new iPad I was wondering if the Retina Display is really going to be that big of a deal. I mean, I know it’s great on the iPhone 4 and the newest iPod touch, but those are the devices that you held a lot closer to you eyes so it makes a huge difference there. As it turns out, from the moment I turned the new iPad on, I knew the answer. Retina on the iPad is just great. But let me show you this on a little example from our game Hexbee which already fully support the new Retina display.

On the left you can see the little part of the screenshot taken on the old iPad, and on the right the new iPad. The difference is stunning. And with the new iPad Retina you can really see a whole new level of detail like on the following screenshot:

That donut looks really yummy! Below you can follow the evolution of the donut from the old iPhone and iPod touch without Retina (on the left) through iPad and Retina iPhone and iPod touch (center) to the new iPad (right):

The problem with perceiving the difference is that the new iPad and the old iPad have screens of the same size, but the old iPad have a lot less pixels there (not to mention, our screens have less pixels). For me, the best way to see that difference is to scale the old iPad screenshot up to the size of the new iPad. It really looks like the picture below (yet it’s not so big, obviously).

I hope that clarifies the importance of the new iPad Retina display — for me it’s most certainly is its killer feature.

Keeping things organized

We are busy with Anodia update, so just a short entry this time. I want to share a great tool from Fog Creek that we use daily — Trello.

Just take a few minutes to get familiar with it:

In our current setup we use one board per project (framework, Anodia, Hexbee). Each board is divided into four columns:

  • To Do — current task list
  • Ongoing — tasks that we are working on
  • Done — completed tasks, to be deleted after verification
  • Future — tasks to be done in distant future

This simple setup works like a charm and overhead from having everything written down is minimal.

BTW. From other news, iCloud synchronization for score, stars and unlocked levels is awesome ;)

Impact of FAAD campaign on Anodia

We recently shared information about strange situation with Anodia Lite downloads, this time we would like to share some information about impact of FAAD campaign on Anodia. Agreement with FAAD is negotiated individually by developer and we’re not able to say anything about it, but I hope that information in this post will be useful.

Anodia was included in FAAD at the end of August 2011 — Anodia was free from August 29th to September 6th. It’s a little bit more than one day, but that’s actually the point of making such campaigns — try to be free as long as the game is getting up / stays high in ranks. Total amount of downloads during the free period was about ~2.2 mln and we reached #1 in free apps in a couple of countries, including USA.

Sales after campaign are certainly bigger then before it, this is the profit chart from the first 6 months of Anodia sales:

There are two spikes, the first one is when Anodia appeared on the AppStore, the second one is just after FAAD campaign. It’s easy to note that profit after FAAD campaign stabilized at a higher level then before it. To be honest, it never went back to pre-campaign level so we’re actually happy with the campaign results.

Cooperation with FAAD was a good move and we’re glad that we’ve done it.

Anodia 2.0 is just around the corner

We are receiving a lot of questions regarding Anodia update. We already tried to explain why this is taking so long and made a sneak peek but there was still one question left unanswered — when?

Finally we are able to provide the answer — we’re on track for mid-May release. We’ll show more material from the upcoming update in the following weeks, stay tuned.

How we organize our projects

Today I want to share a little bit information about how our projects are organized from the technical side. As a foreword I should mention that 99% of our code is written in C/C++ and we’re using Objective-C only for communication with iOS.

One of our fundamental concepts is that we should share the most of the code between our projects instead of copying it. That’s the reason why we have a separate Framework project. Every one of our games or prototypes is using this Framework and during the development we’re trying to expand it with additional features. Currently it’s responsible for game states, memory, resources (Textures, sounds and audio streams), GUI, input, social features (leader boards, achievements) and simple data storage. When we think that some part of game code is reusable, we try to make it a part of the Framework.

Framework is also working as a layer between operating system and the game code, so there is almost no platform specific code in games. Currently we’re supporting iOS (iPhone, iPod Touch, iPad), OS X and Windows. System specific part of the Framework have API in C and this simplifies making it cross-platform.

Compilation of our Game for iOS looks like that:
1) compile Framework to framework.a
2) compile External Libraries to libraries.a
3) compile Game to game.a
4) copy .a files to Xcode project template that implements API, build and link it together

Xcode project may be customized by additional scripts to change project name, version, etc.

We store our projects in Git repositories. Whole building process is automated and we’re using Jenkins for continuous integration. We’re able to download latest builds from it with AdHoc distribution which is pretty great.

I think that this process works well for us and we’re going to expand it further in the future.

As a final note I just want to mention that our Framework is called Wombat ;)