Artillery

Android Game Development

I have been wanting to get back into developing simple arcade games for the last few years. With modern mobile devices packing some serious processing power it seemed like a good time to start again. Back then it was all C++ and desktop Windows PCs using OpenGL or DirectX (or even better Irrlicht). Now, I wanted to focus on Android devices so Java and OpenGL ES were the obvious choice. To get my head back in the game (so to speak) I knocked up a simple invaders clone. The aim being to familiarise myself with OpenGL, user input options, and the performance capabilities of the devices.

I was using OpenGL ES 1.1 (fixed pipeline) and producing the meshes in code.

CubeIcosahedronSphere Approximation

Cube, Icosahedron, and sphere approximation. The Sphere is approximated by subdividing the faces of an Icosahedron and pushing out the new vertices to lie on the sphere surface. From these basic meshes we can construct some simple game objects.

Alien ShipArtillery

The scene graph makes use of transform matrices to position, scale and rotate the meshes relative to the parent node.

Scene

Each game object has a global transform applied to it, and this also applies to the bounding sphere which is used for collision detection.

Game

The user is able to move the artillery and fire on the alien ships. When a collision is detected the ship and shell are destroyed and removed from the field of play.

This is a relatively simple scenario, and the processing capability of the mobile device should be more than sufficient to handle it. However, I noticed some slow down in the frame rate when firing (and running collision detection). The slowdown wasn’t in the physics, or the collision algorithms, but actually in the Garbage Collector being called when Collections were being modified. In the past when I’d used C++ this wasn’t an issue, memory management is handled by the user. But with Java, the Garbage Collector is an automatic process. On searching for more information about this I stumbled on this presentation by Kactus Games that gave some great insights into Android Game Development.

On further research I stumbled on an excellent framework that takes the limitations of Java into account to allow developers to create games that will run not only on Android devices, but also on the desktop, in HTML5 browsers, and on iOS devices. LibGDX is definitely worth a look. The documentation, tutorials and example code are extensive and comprehensive. I’m now going back to the start to build a quick test game using this framework prior to experimenting with some novel ideas I have for a new game.

Mini Trifle

Trifle Recipe

Inspired to create a novel dessert for a Pincho Party I started with the idea of a traditional sherry trifle and evolved it slightly.

The version described below is also low in lactose (there is no cream topping, and lactofree milk was used to make the custard layer).

The Ingredients

  • Boudoir Fingers.
  • Port or sherry with sugar syrup to dilute.
  • Jelly (Jello?) and chopped fruits (strawberries and bananas).
  • Custard made thicker with half the volume of milk stated on the instructions.
  • Vanilla Essence to flavour the custard.
  • Crushed Ginger Biscuits.

Boudoir FingersPortVanilla EssenceCustard Powder

Jelly

The Assembly Process

Lay out the boudoir finger base.

Boudoir Base

Mini Boudoir Base

Make up the port and syrup mix to taste. (The syrup helps to make the port go further).

Allow the boudoir fingers to soak up the port and syrup.

Mini Port Syrup Soaking

Make up the jelly mixture and leave to cool on the side.

Jelly Preparation

Chop the fruit and add to the boudoir finger base.

Fruit Layer

Pour on the jelly and leave in the fridge to set (overnight).

Mini Jelly Added

Make up the custard using half the volume of milk stated on the instructions. Add vanilla essence to flavour. Allow to cool before dolloping onto the set jelly and fruit layer.

Crush the ginger biscuits into a bowl then sprinkle liberally onto the custard layer.

Assembled Trifle

Add garnishing of chopped strawberries on sticks to the finished trifle.

Mini Trifle

Leave in the fridge to fully set.

Enjoy. :)

New Year, New Project

A slightly belated Happy New Year to you! (It is still January. Just).

Having finally shaken the never-ending stream of colds since before Christmas, I now have energy once again to make a focussed and sustained advance at the new project.

Onwards to new (to me) technological territories: NodeJS, LocomotiveJS, PassportJS, Mongoose, Bootstrap, and friends.

To be continued…

Programming Books

A selection of go-to books on my reference bookshelf. I’m always interested to hear of your recommendations too! I will keep appending to this page as I go.

Game Coding Books

Game Coding Complete by McShaffry

General C++ Books

Exceptional C++, Exceptional C++ Style, More Exceptional C++ - All by Herb Sutter

Effective C++, More Effective C++ - All by Meyers

General Programming Books

Design Patterns by Gamma et al

Small Memory Software by Weir and Noble, available online.

Refactoring by Fowler

The Pragmatic Programmer by Hunt and Thomas

Algorithms and Mathematics

The Algorithm Design Manual by Skiena

Mathematics for 3D Game Programming & Computer Graphics by Lengyel

Numerical Recipes in C++ by Press et al

Seasons Greetings

Whimsical Otter's Christmas TreeThe Christmas Tree is up. The artificial antique one (a Woolworths classic) this year as the live one shed all of its needles in the garden last winter and has only grown back about half of them. The heating is on and cosy. The Christmas Robot is merrily beep beep booping in the background. So it seems the festivities have begun in earnest. Here’s hoping you all have an enjoyable festive season catching up with loved ones and look forward to an exciting year in 2014! :D

Electric Dawn Reviews

A few more reviews for Electric Dawn in December 2013.

5 Stars : “Great app! Loving that I can use Aqueous Transmission as my alarm instead of forking out £100 for three sounds on a particular brand.”

5 Stars : “Good alternative alarm. Was quite skeptical at first but have to see that have been quite impressed after using it over the past weeks. Gradual nudging followed by the usual alarm when time is up!”

5 Stars : “Best alarm ever. This alarm has made the early hours of a morning that much easier to face. Have had this alarm before on an old phone and so happy to have it again. Excellent stuff.”

5 Stars : “Cool as hell. Totally rocks”

Android app on Google Play