Monopoly – too political or not political enough?

Monopoly is, in many respects, a boring game. Tactics are generally very simple and a game can last a long time. When I was a child and played with my family, my Dad always won. He bought every property he could, mortgaging other properties if necessary, because he knew that, when all the land has been purchased, the owner of the most land is in the strongest position.

But more than this, Monopoly is a nasty game. A player can only win by impoverishing the other players. Many games have winners and losers, but few so thoroughly abuse the losers as to bankrupt them. I don’t like playing Monopoly but I do find the game interesting. Continue reading

Teaching Game Design

It’s a little known fact that before I became involved in game development I was a choreographer. Yes, I have a degree in Maths, and I started programming computers when I was 12, but after getting that degree I went to dance school in London and got another degree, this time in contemporary dance and choreography. I followed this by forming my own dance company and spent the next ten years choreographing dances.

Which begs the question of how I got into game development. Most choreographers do something else to supplement their choreography income, it comes with the low-pay high-satisfaction territory. Some teach dance or do other dance related work, others wait tables in restaurants. I wrote code – it paid better and I enjoyed it. Eventually, a few years back, I stopped choreographing and focused entirely on game development.

Which is all background to what I want to talk about. Reading Daniel Cook’s recent article, How Revolutionaries become The Man, and particularly the section on game design teaching, caused me to remember, and dwell on, how I was taught choreography. Continue reading

Finite State Machines with Ash entity system framework

Finite state machines are one of the staple constructs in game development. During the course of a game, game objects may pass through many states and managing those states effectively is important.

The difficulty with finite state machines in an entity system framework like Ash can be summed up in one sentence – the state pattern doesn’t work with an entity system framework. Entity system frameworks use a data-oriented paradigm in which game objects are not self-contained OOP objects. So you can’t use the state pattern, or any variation of it. All the data is in the components, all the logic is in the systems. Continue reading

try{harder} level-up

The first try{harder} took place last October and I was lucky enough to be one of the 16 attendee/speakers. The four-day conference was residential – we lived together in four “executive cabins” at Center Parcs in Sherwood Forest. That means everyone had a double bedroom, an en-suite bathroom, and three new developer friends to have breakfast with.

If you ask people who attend conferences why they do it, most of them will tell you it’s for the networking. Some of the presentations will be good, but it’s the conversations, over coffee, over beer, and over dinner, that make the conference worthwhile. Because the best thing you get from a conference is the opportunity to share experiences with other developers, to talk about code, to learn from each other.

try{harder} has that in spades. try{harder} is about sixteen experienced developers teaching and learning. Seminars, code jams, pair programming, and of course conversations. Not shallow chats, but important debates, with depth and breadth, explored over a four day period. Sometimes lubricated with fine scotch whisky (thank you David). The experience is intense, exhausting, exhilirating, and absolutely wonderful. Continue reading

Why use an entity system framework for game development?

Following my previous post on entity systems for game development I received a number of good questions from developers. I answered many of them in the comments on that post, but one question stands out. It’s all very well explaining what an entity system framework is, and even building one, but why would you want to use one? In particular, why use the later component/system architecture I described and that I implement in Ash rather than the earlier object-oriented entity architecture as used, for example, in PushButton Engine.

So, in this post I will look more at what the final architecture is, what it gives us that other architectures don’t, and why I personally prefer this architecture. Continue reading

What is an entity system framework for game development?

Last week I released Ash, an entity system framework for Actionscript game development, and a number of people have asked me the question “What is an entity system framework?”. This is my rather long answer.

Entity systems are growing in popularity, with well-known examples like Unity, and lesser known frameworks like Actionscript frameworks Ember2, Xember and my own Ash. There’s a very good reason for this; they simplify game architecture, encourage clean separation of responsibilities in your code, and are fun to use.

In this post I will walk you through how an entity based architecture evolves from the old fashioned game loop. This may take a while. The examples will be in Actionscript because that happens to be what I’m using at the moment, but the architecture applies to all programming language. Continue reading