Game Development

Tuesday, August 2nd, 2011

Flax HTML5 Game Engine

The Flax Engine is to be a 2D game engine for the web, using features introduced in HTML5, specifically the canvas tags which allows OpenGL like rendering in the browser. Flax is developed in Java using Google Web Toolkit to cross compile the code into robust JavaScript code which will run across all mordern browsers and is intended to be a native framework for developing 2D browser-based games.

Live Demo

We try to be Aglie in our approach and releasing a build/Demo every 3 to 4 weeks for feedback. Check out the live demo at . You will be redirected to the lastest release, if you wish to view older release simple include the version number I.E

How it started

The Flax HTML5 Game Engine was started in early 2010 along with the Flax Project to blog about the development of the engine, when myself and Carl Lange decided to make a HTML5 game engine during the first summer of our college years. We had been offered office space by the college after our participation in a Java AI programming contest and later the ACM inter-collegiate programming competition. Myself and Carl learned several new frameworks and languages, not to mention HTML5 features, Java, Google Web Toolkit (GWT) though the development of the engine and its still current in active development one year on.

My Role

I’m the main programmer on the engine and much of the engine is based off a game engine I started to develop in C# and .NET a year before hand.

Technologies & Skills used

  • Java
  • Google Web Toolkit
  • HTML5 Features
  • JavaScript
  • Rendering Optimization
  • GIT

Saturday, June 11th, 2011

Racing Game – C++ PhysX

One of my third year projects on the IT Carlow Game Development course was to produce a 3D game using Ogre3D. The project had the following  requirements.

Project Requirements & features 

  1. Language C++
  2. Ogre3D for Rendering
  3. Use a Physic Engine
  4. Develop an AI
  5. Sound and GUI
The game I made was a racing game in which the player races against an AI car. The racing track is generated by driving the car around the environment as I’m not to skilled with blender I decided to do it programmatically. So the game itself is a type of crude editing tool for the tracks which the cars race around. I used NxOgre which is the Ogre wrapper for  Nvidia’s PhysX for the physics of the environment and to car physics model.

Learning out comes

This project was done in an iterative model, with burn down charts and scum based tasks. With presentations and iteration documentation to be generated at the end of each sprint. So gave me good experiences of an Agile approach to games development.  I also learnt a large amount about building different software systems and dependent libraries together, as the physics wrapper NxOgre had been abandoned and took quite a bit of research to get it to build with the version of Ogre we had to use.

Technologies & Skills used

  • C++
  • Ogre 3D
  • Nvidia PhyX
  • AI
  • FMOD sound
  • OgreBites for GUI

Saturday, January 1st, 2011

Co-founded The Flax Project

The Flax Project is a website (among other things), brimming with a passion for programming and technology in general. Heading this up are two Irish Game Development students, Ciarán McCann and Carl Lange. We’re trying to expand our knowledge and share what knowledge we have with the world.  We post mainly about game development and programming in general on topics ranging from web-based technology like GWT and HTML5 (+CSS+Javascript) to Game Development, C++ OpenGL, .

The Flax Project went live on July 7th 2010 and now a year onwards has grown into a large game development blog which receive over 300 readers a day. The Flax Project is the platform form which we launch our projects such as the Flax HTML5 Game Engine. The Flax Project is also involved in various tech initives and events here in Ireland, trying to help build a strong game development community here in Ireland. We are also involved in eduction and run game development workshops.

To read my various publications on

Where I got the name

After many different ideas about projects to work on for the summer, we decided to develop a native web game engine. One of the first rendering technologies we identified was canvas, which we thought was magic. Types of physical canvas are made from the Flax plant, and that’s how I came up with the name Flax.

Sunday, December 12th, 2010

Java AI – Robocode 2010

While in first year of college (2009) myself and another game development student Carl Lange entered into the Tipperary Games Fleadh RoboCode competition, which is where entrys use the RoboCode API to build robots in Java and then have them battle it out. With our robot which we developed in less then ten days before the competition, called Solomon. The source code is avaible on Google Code and its code design document is available at  Solomon design document

Artificial intelligence

Solomon was a simple state machine AI, which would learn over time by writing its learning outcomes to a file. It would select various different tactics from its tactic database. We tried to give it a good selectuion of aggressive tatatics, passtive avodiance tatics and all round general tatics. It would then learn which one was the best, based on its loss of health, enemy’s health, wins vs loses etc. It would then save the name of the robot to know that if it saw that robot again in battle to use tatic B straight away.  Unfortantly a day before the competition we where told that we couldn’t save info to a file between match’s, even though we previously been told we could. So our learning mechanise was limited to the knowledge it got while in battle, then its memory was rest after each match. Though we still managed to come joint 5th out of something like 17 colleges so we were happy enough.

Learning out comes

Well it was our first time using Java as in first year we used C#. Thought they are extremely similar so it was relatibitly easy. Our first expereicne working with AI and how to create a program that could learn from its expereicnes even if its a very basic type of learning. We had a great experiences at the event and we got a great seance of pride that we had finished something and it worked. One of our greatest learning out comes was working together in a team. This project was the first project myself and Carl worked on togtheier,  we worked well as a team and since we have gone on to work on various projects together most notebale the Flax Project and the Flax HTML5 Game Engine

Technologies & Skills used

  • Java
  • RobotCode API
  • OOP
  • AI ( Finaite state machine)
  • Source Code Management (SVN)


Friday, November 12th, 2010

Guitar Hero Clone – C# .NET

In first year of my Game Development degree at IT Carlow. We were given a project to create a game with music in it and it was meant to teach the user musical notes. Though I thought that was pretty lame so I said I would make a guitar hero clone. There were also other requirements such as XML highscore database, reading the notes for the song from a file and stuff like that. Its was written in C# with .NET. Below is a video of the game in action that I did for an article on

Video of Game

Technologies & Skills used

  • C#
  • .NET
  • XML
  • Sorting and Searching algorithms


Tuesday, May 18th, 2010

Lunar Lander – OpenGL C++

In my “3D Graphics & Audio 1″ subject, on the IT Carlow Games Development course in second year we where given two projects to do one a 3D First-Person Shooter and the other a lunar Lander clone. Above are some screen shots from my project.


The terrain is randomly generated and has various different difficulties. My game has some basic physics for the lander and some particle explosion animations for when the lander cloides with the terrain. There are also enemy spaceships which shot bullets which try to lock on to the player ship.

Technologies & Skills used

  • OpenGL
  • C++
  • Physics

All content © Copyright 2017 by Ciarán McCann.