Although Jason and Mike have been using github for a long time it's a skill I will need to master so that I can be sure to manage and monitor the project every step of the way. For web developers and game developers I am sure using github is like brushing their teeth or remembering to drink water...it's a bit intimidating now but it needs to become a consistent part of my work flow.

This past week I created Nomad Axe's first production issues. On github issues are more like jobs or tasks that need to be completed. For example I made separate issues for character movement, combat, and the inventory system. You can check them out here:

These issues are basically the core of Nomad Axe. Once these things are built and have art assets working alongside them I will start growing the concept out to start matching the 'bigger picture.' Ideally we can knock all of these out by spring and get good feel for how the game looks and how it plays.

An issue can also be a cool way to discuss upcoming hurdles. For example, we had talked a little in the past about using an engine to make things easier on ourselves but we ultimately ruled it out because many existing HTML5 engines do have the ground work for making game but they seemed to force constraints based on cross compatibility between browsers and other types of problems that Nomad Axe doesn't have...yet. For example, an engine might make compromises to ensure that a game runs well on IE. I am not a super concerned with making sure the Nomad Axe runs in IE. In addition some of engines seemed to be over kill for what I am trying to accomplish. Lastly, I want my thesis to be as much about learning as it is about making a game.

Mike presented a solution he found from looking around at other open source projects. The solution has us putting together various modules to create a basic game engine. One part of this concept is "Entity," which provides a base behavior for every entity in the game. The second part is "god" which is an event emitter that creates objects in the game.

var god  = require('./lib/god'); // god is an event emitter.

god.on('character:created', function (message) {
    console.log('Character has been created!!!');
    console.log(message);
});

god.on('item:created', function (message) {
    console.log('Item has been created!!!');
    console.log(message);
});

var c = god.create('character');
var i = god.create('item');

This is the piece of code that Mike wrote. He has told 'god' to create an object, a character and when that character is created a message is logged that says the character is created. This is true of the item object as well. God returns the objects and the two lines at the bottom assign variables so we can act on those objects later. This is sample code but it's the beginnings of Nomad Axe's foundation.

That's it for today.