KAMI RETRO - Asset creation case study

Saturday, 11 January 2014 1 comments

In September 2013 Steve and Antony started as Games Mentors for the University of Chester in the UK and as part of their roles they have been providing a number of talks on various aspects of games development. Yesterday they gave a talk on asset creation using KAMI RETRO as the main case study with a section on Swashbuckler to illustrate HUD considerations for varying resolutions. To accompany the embedded presentation there is a summary of the talk content below.

KAMI RETRO : Development Overview

KAMI RETRO is a single screen 2D puzzle based platforming game that was developed by a team of four as a spare time project in 2010. Although the engine was being developed to support multiple platforms the initial target platform for the game was to be the iPhone and at that time the highest resolution available was that of the 3GS at 480x320. The asset creation process for KAMI RETRO involved modeling all the assets including characters and environments in MAYA then rendering them out to PNG sprite sheets and in some cases additional post effects were then added. So as the game was being developed the assets were being rendered out for the 480x320 resolution of the 3GS.

There was no pipeline in the engine at that time for dealing with varying resolutions and as there was never any immediate goal to launch on anything other than iPhone it was fairly reasonable to be doing what we were doing. By November 2010 we had a trailer for the game which we pushed out on to social networks and various mobile gaming forums. Shortly after we began receiving interest from various publishers and ultimately decided to work with Gamevil. In Febuary 2011 the team was full-time, polishing up the game and giving the whole GUI a full overhaul and by March KAMI RETRO released on the App Store. The hard work had paid off and Apple featured KAMI RETRO as their Game of the Week, now known as Editors Choice. However there was a lot more hard work to come.

Asset Creation for different resolutions

As part of the contract for KAMI RETRO we had to deliver iPad and Android versions. This meant we had to support a significant amount of different screen resolutions. If all the assets for KAMI RETRO were hand drawn it would have meant everything would either have had to have been stretched, making them blurry and pixelated which would have been unthinkable or re-drawn everything again which would have been massively time consuming and financially impossible. Fortunately the assets were all originally created as 3D models so we decided to re-render everything out at 2400x1600 (5X the original 480x320) to ensure we could cover all available devices at that time and any future devices to a point. The assets were then packaged up for the varying devices (by downsizing from 2400x1600 to the target platforms native resolution) and in May 2011 the iPad version released with the Android version not too far behind. Apple loved the attention to detail and gave KAMI RETRO it’s second Game of the Week for the iPad and across the App Store it has continued to be featured in numerous App Store collections from Stylish Games, Quick Fix Games, Retro Games, Greatest Platformers, Intuitive Controls in Benchmark Games and has been given an entry in to the App Store Hall of Fame. The Google Play store also awarded KAMI RETRO with a top banner placement on launch. KAMI RETRO subsequently launched on WebOS, BlackBerry 10 and more recently Tizen.

Performance Considerations

To ensure KAMI RETRO ran smoothly across hardware with varying levels of performance we performed a variety of optimisations. One of the main optimisations was to limit the amount of overdraw. Requesting to redraw the same pixel multiple times on any platform will eventually hit the frame rate at some point and on some of the devices we targeted overdraw was a big limitation. To reduce the number of pixels being re-drawn we baked the terrain in to the background so we didn’t draw the background then the terrain over the top. However in some of the levels we had water that needed to look like it was going behind the terrain. To get around this we created what we called a Liquid Layer and drew this in front of the water to give the impression it was going behind the terrain.

GUI Considerations
When developing a game to work on various resolutions whether 2D single screen games, 2D scrolling games or 3D games one of the common elements is typically GUI. On slide 13 you will notice an example of Quake 2 from 1997 running at its native resolution on the left and on the right a much higher resolution. The one on the left has a clearly visible HUD whilst the one on the right is shows some scaling issues with the HUD at the higher resolution. Moving on to slide 14 of Quake 4 from 2005 these issues are no longer present between the two different resolutions. To develop a GUI at Paw Print Games we adopt a screen node anchor system to place elements in certain positions on the screen. By attaching GUI elements such as sprites to nodes positioned for example at either the top left, top centre, top right, centre, bottom left, bottom centre or bottom right then as the screen resolution changes all the assets stay anchored to the associated screen node assigned by the designer.

X86 Android Support

Saturday, 21 December 2013 0 comments

We have recently added X86 Android support to our engine and toolchain, this means that users who have mobiles/tablets running X86 CPUs will find our games run faster and consume less battery. While X86 support has been offered by the Android Software Development Kit for a while now, we have only recently seen a large push by Intel to get more X86 mobiles and tablets into the market (such as the Galaxy Tab 3):

Intel x86 KAMI RETRO KamiCrazy Wacky Rapids Paw Print Games Indie Pi Engine PawPrintGames

We have uploaded new builds, with X86 support, for the following Android titles:


2. Wacky Rapids

3. KamiCrazy

Our efforts have not gone unnoticed, as Intel has selected our titles to be showcased as part of a promotion they are running in 2014 to push X86 phones/tablets. We will post more information as this campaign is rolled out.

KAMI RETRO Android Update

Friday, 13 December 2013 1 comments

A new version of KAMI RETRO is available for download on the Google Play store. It contains various engine side improvements that have been made, and also contains a few more substantial improvements including:

1. Assets are now included with the APK this means users no longer have to wait for the game to download the assets on first launch. This simplifies the process of users playing the game, which can only be a good thing.

2. There is now X86 support, for the X86 mobiles/tablets that are becoming increasingly popular.

3. Scoreloop support has been added (with global leaderboards and awards)

We still have a steady stream of users downloading and playing KAMI RETRO and we hope the above improvements will benefit both new and existing players.

Flash Support

Tuesday, 3 December 2013 0 comments

Some of sessions we attended at GDC Americas this year focused on the current available technologies for getting C/C++ based games/engines running in a web browser. When the Google Native Client SDK was released some time ago we investigated how we could harness this in order to run our games inside Google Chrome, and while this is still of interest to us, we were a little put off by the fact it only supports the Chrome browser (perhaps this is something we will come back to).

KamiRetro KAMI RETRO Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

Two of the other potential technologies are Emscripten and Crossbridge (was FlasCc). Emscripten is a technology that ultimately takes your C++ code and 'converts' it into Javascript, which can then be run under any browser (in theory it runs in any browser, although in reality the main browsers support is pretty well although other browsers have limited support). We investigated Emscripten but felt the technology was not yet mature enough for our adoption. We then investigated Crossbridge, which takes our C++ code, compiles it into bitcode that can execute under the Flash runtime (it actually compiles to LLVM bitcode first). We were able to get our codebase compiling and linking against Crossbridge relatively quickly, although the build times are rather slow and memory intensive (it requires over 6GB of memory, and a fully optimized build can take 30 minutes to build on a reasonable specification machine, which leads to a slow development cycle)!

WackyRapids Wacky Rapids Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

With our Flash .swf version of our games/engine built, it took a little while to debug various problems that stopped them from running. Again it felt like the technology is not yet fully mature, but we stuck with it and overcame all the issues, meaning we can now run all of our games in the web browser (via Flash). Helpfully, there is a GL wrapper that allows our native GL calls to be mapped onto Stage3D Flash calls (Stage3D is the GPU accelerated layer that can be used for Flash), and we were able to use a software OpenAL implementation with a small output driver we wrote to send the final mix to a Flash audio output.

KamiCrazy Adobe Flash Paw Print Games Indie Pi Engine PawPrintGames

We are pleased with the end result, all our games run at solid 60 FPS in the browser, and given that we develop our games on the PC, and control them using the keyboard and mouse, means the games play well in the browser too. There is a certain 'magical' feel of seeing our engine being able to run in this way.

In terms of releasing our games via Flash, we are currently exploring what options are available. There are a few portals which are set up to allow developers to earn revenue from Flash games, although this is an area which is new to us. We would like to see our Flash games available for everyone to play, although right now we don't have a road map for this happening. Stay tuned for more information.

Paw Print Games at the Tizen Developer Summit 2013

Friday, 15 November 2013 0 comments

On Monday this week we showcased a selection of our games running on the new Tizen OS at the Tizen Developer Summit held in Seoul. For those that don’t know what Tizen is, it is a Linux based operating system for smartphones, tablets, Smart TVs, In-Vehicle systems and smart cameras. Tizen is being developed by a steering group that consists of Samsung, Intel, Fujitsu, Huawei, Intel Corporation, KT, NEC CASIO Mobile Communications, NTT DOCOMO, Orange, Panasonic Mobile Communications, Samsung, SK Telecom, Sprint and Vodafone.

Tizen Paw Print Games Indie Pi Engine PawPrintGames

Having now added support in to our internal Pi Engine and Tool-Chain this will allow us to target Tizen for all future projects.

Look out for the Tizen devices and our games due in 2014.

Chester University Games Mentors

Thursday, 5 September 2013 0 comments

Since setting up Paw Print Games Antony and Steven have continued to look at ways to build relationships with the educational system and help the next generation of game developers. Over the past few years they have given talks at Salford University and were also involved in the early stages of the @GameDevNorth events development; a local North West event setup to bring Game Development students and industry together.

Recently Antony and Steven have become Games Mentors for the BSc in Games Development at Chester University. This will involve working as external advisors for the development of the course over the coming years and include the following -

1. Act as an industry specialist and advise on trends and initiatives in the games development world.

2. Work with staff at the University by suggesting modifications and improvements to the course as it progresses.

3. Suggest research topics, conferences and other external activities which may benefit staff and students.

4. Identify possible areas of expansion for the School in games-related areas.

5. Provide a selection of talks on various subjects throughout the academic year.

Game pitching at Gamescom and UKTI

Monday, 2 September 2013 0 comments

Paw Print Games attended Gamescom in Cologne this week to pitch a new game to various publishers and to keep platform holders up to date with developments.

Attending an event such as Gamescom/GDC can be very beneficial especially if you’re able to maximise your time and line up all the meetings you want to make. To schedule meetings for a large event such as Gamescom will require a fair bit of preparation as time is limited and there are generally a lot of developers looking to do the same thing. The best thing to do here is to start booking meetings early, at least a month or more in advance and if you don’t have the contacts at the companies you wish to talk to then start getting them even earlier.

When it comes to a meeting point at the event we would advise attempting to do this in a hotel lobby. Having never been to Gamescom and knowing how popular the event is we decided to arrange most of our meetings in the Dorint Hotel just opposite the event venue. We had a couple of meetings in the event itself and they were really awkward to organise due to the crazy amount of people moving around and the overall size of the event. Meeting up was tricky and finding somewhere quiet to have a sensible conversation was also time consuming and far from ideal. We would highly recommend one of the hotels for meetings and would make every effort to stay away from organising meetings in the venue next year.

Getting to events whether in the UK or overseas can be somewhat costly whether you’re an indie developer or not. After a few years of recession now we are starting to see some help for small business from the government. UKTI run a passport to export programme to help small businesses improve their exporting. As part of the programme you will receive up to £3000 match funding towards event travel, accomodation and entry costs. As an example, for two people to attend Gamecom it cost around £1000 of which the Passport to Export programme will pay us back £500. You obviously have to pay for your own food on top of this but if you plan your time right you can establish a lot of new connections, strengthen relationships and build excitement for your new game. If you’re a small developer looking to attend events outside of the UK then be sure to get in touch with UKTI about the Passport to Export programme.

Paw Print Games © 2011