Skip to main content


Showing posts from 2013


Williams(2008) indicates the key design principles for non-designers:
- Alignment, Repetition, Contrast and Colour -
These tenets were adopted in the early design process, the background uses a blue/purple colour scheme, which repeats focusing attention on the foreground characters. All buttons use a common look, and location that contrasts vividly with the background.

Diagrams of early screen layouts and design ideas
Graphics. Corona SDK offers extremely useful APIs to handle graphics, including a Sprite library, which provides a very simple way of animating Sprites.
The following code creates a sprite object, from the spritesheet, which has a regular 256 x 256 size. Because the images are regular it can then set up a sequence - here named “running” which starts at frame 1 and steps through to frame 7, over 1 second.

local ninjaSpriteSheet = sprite.newSpriteSheet( "ninjaSpriteSheet.png", 256, 256 )
local ninjaSpriteSheet = sprite.newSpriteSet(sheet1, 1, 7)
sprite.add( spriteSet…

Using Corona SDK

Corona Architecture Overview
Diagram showing the Corona SDK architecture -source Walter Lua - CEO Corona The development process. I built the game "Ninja Dinosaurs vs Pirate Robots" in a series of 4 development sprints. I used a familiar game format, the "Infinite Runner" to guide the overall structure, and built the game using the Agile development methodology and Simplicity principle: "simplicity: write the simplest code to do the job, do not provide hooks in your code for ‘future needs" - this prevents scope creep. Studies by Jones (2009) have shown that Agile is most effective with small teams. Agile focuses on swift iterative cycles creating instances of working code, which are constantly reviewed and guided by the end users rather than a rigid commitment to a fixed system architecture. It values working code over heavy documentation, as might be encountered in a more traditional waterfall development approach.
Game Summary. Whilst the game is an inf…

cross platform solutions

Cross platform mobile development frameworks. I have tried unsuccessfully many times to pick up Objective C and develop for iOS. A forum discussion with Adobe Flash developers at the Build Brighton Hackspace (2013) opened my mind to the potentials of cross platform development, when they indicated that Adobe Flash contained a facility to compile to iOS, or indeed any number of target platforms.
This chapter reviews the range of cross platform mobile development frameworks.

Cross platform development solutions. My project originally set out to compare the performance of games created using native and cross platform frameworks, with the aim of quantifying the notion that native development would provide more efficient and faster playing games. An initial review of the processes employed by commercial games developers indicated this was a false assumption.
Research papers like Rabeiro and Silva’s (2012) Survey on Cross-Platforms and Languages for Mobile Apps and Dickson(2012) - Cabana: …


Hardware differences.The iOS platform is bound to Apple specific hardware, and has a fixed number of configurations. PrimateLabs (2013) suggest that mobile device release schedules are partially driven by the demand to access the latest version of the operating system, and the latest features, allowing developers to target a workable subset of devices without losing sales, or building to the lowest common denominator and losing features. Apple hardware screen size resolution and aspect ratio.Until the release of the iPhone 5 all devices ran a 3:2 aspect ratio, which meant scaling was relatively easy, the iPhone 5 introduced a longer 71:40 aspect ratio.   iPhone 3/3GS/ipod touch: 480x320px, 163 ppiiPad 1/2/Mini: 1024x768px, 132 ppi iPad Retina: 2048x1536, 264 ppi iPhone 4/4S/iPod Retina: 960x640px, 326 ppi 
iPhone 5/iPod Touch: 1136x640, 326 ppi

Diagram showing Mobile device relative physical screen sizes and aspect ratios.

Android hardware screen size resolution and aspect ratio.Because …

iOS and Android

Range of hardware devices. GPU (Graphics Processing Unit) bound mobile hardware improvement follows "Moore's Law", with chip manufacturers alternately die shrinking their CPU's - reducing power consumption, and re-architecting their processors, doubling the number of transistors. When these improvements are combined with the admittedly slower improvements in the energy density of battery technology, it allows the production of increasingly faster, cooler, longer running and cheaper devices.

Apple. Since launch there have been 17 distinct iOS hardware devices, with storage from 4Gb to 128Gb, and a wide range of system and video RAM, screen size and resolution.
iOS runs on:
iPhone, iPhone 2, iPhone 3, iPhone 3GS, iPhone 4, iPhone 4S, iPhone 5
iPod touch generations 1, 2, 3, 4 & 5
iPad, iPad2, iPad3, iPad4 (the official Apple designation doesn't use these numbers)
iPad mini
iOS itself is in the 6th major release, with iOS7 available currently to iOS developers …

State of the (mobile) nation

"Mobile first" is an oft heard phrase, and for very good reason. The five years since Apple opened their iTunes App Store on July 10th 2008 have seen the emergence of completely new platforms and markets. Apple(2008) proudly declared 10 million app sales in their first weekend of trading, and by May 2013 Apple(2013) reported 50 Billion apps had been downloaded from the Apple iTunes store.

Graph showing the number of iTunes App sales from July 2008 to date, based on figures provided by Apple:

At the 2013 Google IO conference, Google Senior Vice President of Engineering Vivek "Vic" Gundotra (2013) announced 900 million active Android devices and  48 billion app downloads from the Google Play store, and estimated that the current rate of Android activation was 3 times the global birth rate.

Both platforms are powerful and dynamic, and although they share a common architecture based on the reduced instruction set architecture (RISC), an…

set in amber

I'm up to about version 17 of Ninja Dinosaurs vs Pirate Robots, the last 5 iterations have been for minor fixes on the actual devices... rather than the simulator.There are some quirks with screen size and layout that I need to continue to test, but for my CS project I have stopped development, even though the list of bugs and feature requests on pivotal tracker is huge... and now need to crack on with the report, and the comparisons and cost benefits of cross platform development frameworks.

NDvsPR v7

Code refactoring removed a bunch of lardy duplicated code, slimming down the game.lua file to a positively skinny 732 lines of code. I then went through updating the sprites, so they looked better on the screen, and had a bit more motion.
Dom play tested the game and told me I needed to differentiate the ground more clearly from the background, so I did that... then I set to work on the other objects...
The attacking pirates now wave their cutlasses, the burning barrels crackle with flame, and the pirate cannon swings from side to side.
I have a temporary soundtrack from ALESTORM, and new improved sound effects created by me in garage band, and audacity, by blowing into the macbook microphone.
Finally I have sliders for the volume and difficulty level.

The list of tasks, features and bugs continues to grow, but this version is definitely far better... almost at the point where I'm happy to pop it in the Android play store... but the list of things to fix and add before that is sti…

Ninja Dinosaurs vs Pirate Robots v6 - running on Android and iOS

So I've been on holiday in sunny sunny Cornwall, which despite the stories about 4G connectivity couldn't muster a 3G signal for me in Bude... which was a delight.

I worked on the game in the evenings, and whilst there were several times when I wished for a connection to help find answer the problems I was having, it was actually very refreshing to have to dig through the API documentation.
Version 6 has built, it runs on Nexus 4 and iPad2, I have a full set of menus and better graphics (still work to do here).
I really struggled with the particle system, and have commented it out at the minute... I'm not sure it fits with the general look and feel anyway, though explosions ARE cool.
Waiting for some music to use from Adam, but in the mean time I might use some ALESTORM! pirate Metal :)

Good day to code

I've been spending a lot of time preparing for the coding part of my assignment.. I've reviewed a load of frameworks, I've read a number of books, written product descriptions and wireframes.
Today I spent a lot of time actually coding. My aim was to get the SuperMario "double Jump" working...
I managed to get that going... AND add obstacles, pirates, cannons and some sound effects.
Really pleased with progress. I've also started several discussions with folk about the 10X faster development claim that Corona make, and have identified some tests I can run.

Just about 1000 lines of code so far.... :)

Made with Marmalade

Last night I nipped up to London to join the London Lua Group meet-up at the Marmalade offices.

The Marmalade team made us feel very welcome, and explained a bit about the platform.
Marmalade started as Ideaworks Game Studio, making games like Call of Duty: Black Ops Zombies, Lara Croft and the Guardian of Light and Backbreaker.
Their early work focussed on porting PS1 games like  Tony Hawks skater, and Final Fantasy to mobile platforms like Symbian and N-Gage.

The Marmalade SDK provides a route to cross platform deployment from a single code base, exporting to Windows 8, LG tvs, iOS, Mac, Android- which has so many different GPU's and screen sizes its much like building for multiple platforms.
Marmalade provides pre-compiled code for functions, and glues these together with native code, in a pure C platform abstraction layer. Quick builds on top providing a further Lua abstraction layer, tweaked for speed, and accessed through plugins for Xcode, and Visual Studio, or directly thr…