Fingering is always better at Christmas Time...

04.01.12 Alex Stanbury

After a good 14 months in development, we finally released our first iOS game, Elfinger. It actually started life as a simple experiment when I wanted to see how well a Flash app would run on an iOS device, you can see my findings here. I wanted to test the capabilities of the touch screen so made a simple game where you had to touch specific colours while avoiding others...

It actually turned out to be quite a nice way to play a game, I still haven't seen any other games on iOS devices where you have to touch multiple objects on the screen at once, although admittedly I haven't played every game out there. I was inspired to try and create a full game out of this bare bones idea, I made the decision to ditch the Flash to iOS conversion and work natively in Objective-C.

Instead of using simple coloured squares I started to use different animal images and from this the next incarnation of the game was born - Farmer Finger! The idea was that you were a farmer and you had to collect animals that had escaped from your farm into various landscapes such as hay fields and icy ponds. I collaborated with Greg who kindly provided some character illustrations for me to use, going for a basic but fun cartoon-like feel. The game slowly began to take shape, I was learning the intricacies of Objective-C whilst I went along. With no deadline to meet it was a refreshing way to work as I could take as long as I wanted...Or so I thought...It turned out I took a bit too long as eventually the name 'Farmer Finger' - which I'd registered with Apple's app submission portal - had expired, meaning we could not use that name anymore.

That was one of the many lessons learned throughout the whole process (most of them meant I hated Apple a little bit more each time, but that's another blog post). It wasn't all my fault though, I was waiting for a certain someone to provide me with graphics, which unfortunately never materialised. I guess that's the down side of not having a deadline; you are less likely to get things done as paid work takes priority. Farmer Finger was sadly no more and was placed on the back burner...

...One drunken night a few months ago the conversation somehow became focused on Farmer Finger. Tears were shed and hours were spent reminiscing about the good times. Eventually amongst the drunken ramblings a miracle happened - it was decided that this game should be resurrected, hurrah!

I had the idea that as Christmas was coming we should have some kind of Santa Claus collecting presents in snow storyline or something along those lines, my memory is understandably hazy due to the alcohol consumption. By this time we had hired Antonio Banderas look-a-like Nacho, a talented illustrator, whose task it was to provide all the visual assets for this new version of the game that wouldn't die. Luckily, Nacho had the time to actually do all the graphics I needed and a sterling job he did too. He also came up with the ingenious name, Elf + Finger = Elfinger, obviously.

I spent a couple of weeks updating the app with the new look and added some more functionality. There were the customary head banging on desk moments that every developer knows too well but eventually it was ready to be released to the public. 3 App Store submissions later (It got released with a couple of bugs that were promptly fixed) and Elfinger is now being played by at least 50 people! Yippee!

From the start we made the decision to release the game as a freebie, the main objective was to go through the whole process and gain experience so hopefully we can make more games in the future either for clients or for ourselves with some kind of revenue generating strategy in place. I think it was all worth it, do you? Why not play it and see? (if you have an iOS device that is!)

Title Screen Snow Level Farmer Finger Title Screen Farmer Finger Gameplay




Get your blits out for the lads

30.09.11 Alex Stanbury

At the moment I'm working on a Flash platform game in my spare time. This has given me the opportunity to experiment with some of the clever techniques employed by game makers of years-gone-by in order to squeeze every last bit of performance out of their game engines. One of these technique is called blitting which is used to decrease load on the processor and therefore increase the frame rate of the game.

Usually in Flash you would create Movieclips or Sprites for all your game objects and add them all to the display list when needed, moving them around using their x and y properties and so on. With blitting you do not use the display list for everything, rather you only have one Bitmapdata object added to the display list, commonly referred to as the canvas. The idea is to update the pixels of the canvas with the pixels of whatever it is you want to be displayed in your game. This method is much faster because the overhead of creating complex objects is avoided as you are working solely at the pixel level.

You can see a simple example of using blitting here - From looking at the code you can see that the Box is being drawn into the canvas at a different position on every frame, in this case the box will move diagonally down the screen. This is a very simplified version of the method I have implemented in my game but you should be able to see how it works and the benefits this technique provides. You'll notice that I have only added a few properties to the Box object - If I was using a Sprite or MovieClip then I would also be adding a lot more complexity which I wouldn't necessarily make use of.

Of course you'd want to be using something more interesting than a pink box in your game unless you were making a game where the protagonist was in fact a pink box...but that would be a pretty shit game. One way of adding your own graphics is by using sprite sheets, another very common practice used when making games. You can read more about sprite sheets here

With Adobe's recent anouncement of the Starling Framework (an open-source Actionscript API for utilising the GPU directly) game development using Flash may not be so much about optimisation as it has been in the past but it's still useful to know the techniques that many thousands of classic games such as Legend of Zelda and Super Mario World have used.

For more reading on this and other equally interesting subjects head over to 8-Bit Rocket where there are many well written and highly useful tutorials.

Also, there is an excellent 3 part video tutorial on gotoAndLearn.com that deals specifically with blitting and sprite sheets, well worth a watch!

What a load of blit.

zelda mario spritesheet




Learning C++

09.09.11 Alex Stanbury

I’ve decided that I need to start increasing my programming language knowledge. C++, although a pretty old language, is still the predominant language used in the gaming and audio development industry, and if I was ever to pursue a career in programming aside from what I am doing now, then it would be in one of these two areas. Therefore using my amazing powers of reasoning, I’ve worked out that I would probably benefit from learning C++.

Two things have inspired me to start learning C++; Firstly, I’ve been playing a lot of Battlefield : Bad Company 2 recently, and so have been checking out what’s coming up in DICE‘s next instalment of the franchise, the ingeniously named Battlefield 3. I’ve quite simply been blown away by what they are doing and making possible with their new game engine, FrostBite 2.0. Have a look at some of the gameplay trailers here and here and you'll see how good it looks - it's not just the visuals either - the sound is the best I've ever heard in a game and certainly wouldn't be out of place in a Hollywood blockbuster.

Secondly, I got an email the other day from a highly regarded German audio plugin company called Brainworx who mentioned they were recruiting. The list of qualifications needed included c/c++ which further fuelled my interest in learning the language. I've always been interested in making music and audio software in general, coming from the days of strictly hardware studios into the studio-in-a-box era where ridiculously expensive hardware is mimicked incredibly accurately in software at a fraction of the cost and can be run from a mid-powered laptop is something that is interesting and inspiring to me. I've always fancied writing my own VST plugin.

I’ve started off by going through a book titled Beginning C++ Through Game Programming which is a nice introduction to the nuances of the C++ syntax. Quite a lot of it is stuff I already know due to my knowledge of AS3 and Objective-C, but it doesn’t hurt to skim over these chapters to reassure myself I’m not missing out anything important.

Once I’ve finished this book I’m gonna start making some recreations of some classic games such as Pong and Tetris, purely to get more used to the syntax. Then the real fun (?) will start, as I’m planning on learning some OpenGL and DirectX programming, which I’m sure will make me want to jump out of the window at first but is something that I definitely want to get to grips with.

Stay tuned for the next installment...might take a few years but it will happen eventually...honest...

A picture of war! Twiddle my knobs! A geek, yesterday...




Visualising what people on Twitter like

08.09.11 Max Novakovic

The Twitter streaming API allows access to tweets on Twitter as they are created. I decided to experiment by writing a data-mining script that collects geo-located tweets from the streaming API that contain people saying that they 'like' something. For this post I have created two visualisations that aim to make sense of the data collected so far and display it in an easily digestible way.

The script has been running for about 5 days in total and has collected 1873 tweets; It has parsed a lot more tweets than that but a tweet is only added when it meets a certain criteria; which is that it is geo-located from the UK and contains a phrase such as 'I like', 'I love', 'I am fond of', etc...

From the data the second most 'liked' thing is Twitter itself which is un-surprising; 'My Life' is 4th and 'My vagina' is 32nd. The most liked things on Twitter are 'That song' and 'This song' which provides a very un-informative insight into the people on Twitter.

The top two images on the right are visualisations of the data. The first image is a 'Tree Map' which was quite simple to put together thanks to Google Chart Tools. The larger the square, the more likes and vice versa. Click here to view the visualisation in full. The data isn't perfect, for example, 'The' is one of the most popular things but I think overall it works quite well at extracting 'likes'.

The second visualisation is a Processing sketch that plots a users location along with what they have said they like. View a larger image of the sketch here. It doesn't really provide any insights geographically but it's a starting point for something that could have a lot more potential for spotting geographical and cultural trends. Download the code and data for the Processing sketch on the Disturb wiki here.

For now, I will leave the spider running for another month or so and then post again with some updated visualisations and hopefully some more interesting data from Twitter.

Tree map of Twitter like data Processing sketch of twitter likes plotted on to a map Pointless filler image




Easy way to make Box2D games?

08.12.10 Euan Millar

Jesse Sternberg at sideroller.com has created the "World Construction Kit" It's a toolset / framework for rapidly developing physics based games / websites within the Flash IDE. WCK allows you to layout your 2d worlds / game levels entirely within Flash and have them hook into the physics simulation without writing any code.

Have a go at the game. Click "Next Demo" then use the arrow keys:

The kit is damn cool. You can lay out your Box2D physics worlds within the Flash IDE and also use the component inspector to configure the shapes. Easy-peasy.

He's also created the Box2D Flash Alchemy Port. An AS3 interface to the Box2D C++ 2D physics engine compiled with Adobe Alchemy. Documentation located on his GitHub wiki page.

Box 2D World Construction Kit