Game Developer

Finite State Machines with Ash entity system framework

Posted on

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 →

Collection: Entity-Component-System architecture


Using the iPad retina display with Adobe Air

Posted on

Last Friday, the new iPad was launched by Apple, with its new retina display. I did a few tests to try to use the high-resolution retina screen at its maximum resolution from Adobe Air. Here are the results. Continue reading →

Collection: Adobe Air


20 tips for creating Air Native Extensions for iOS

Posted on

Over the past three months I've created three Air Native Extensions for iOS (available on Github), which were all used in our game Stick Cricket Super Sixes, and have discovered a lot along the way. I've forgotten some of it, but here's a few of the tips I can remember for anyone else approaching this task. Continue reading →

Collection: Adobe Air


try{harder} level-up

Posted on

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 →

Collection: Conferences


Why use an entity system framework for game development?

Posted on

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 →

Collection: Entity-Component-System architecture


What is an entity system framework for game development?

Posted on

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 →

Collection: Entity-Component-System architecture


Ash - a new entity system framework for Actionscript games

Posted on

I've been doing a lot of stuff with entity systems recently. At try{harder} I gave a presentation about entity systems, which was warmly received and led to many interesting conversations. I also created example projects with the Ember and Xember frameworks and had fruitful conversations with Tom and Alec about their projects, even contributing a few minor bits of code to them. But now I've written an entity system framework of my own. It's called Ash and you can find it on Github. Continue reading →

Collection: Entity-Component-System architecture


So what are Adobe up to with Flash?

Posted on

It has been an interesting week in the Flash world. Various announcements and clarifications about the future of Flash, which seem to add up to Adobe will stop development of the Flash mobile browser plug-in, but mobile operating system and hardware developers are free to continue developing on top of Adobe's existing source code if they wish to license it from Adobe. The Flex framework will be freed from Adobe's control, and will become more open under the guidance of an as yet undecided open source foundation which will include Adobe contributors and the Spoon project. Development of the Flash plug-in for desktop browsers continues as normal. Development of Adobe Air, including publishing for mobile apps, continues as normal. There's renewed emphasis on the Flash platform as a platform for game development. There has been some movement of jobs on the Flash CS Professional team, but the team still exists and the next version of the product is in development. There's been a lot of hand-wringing as Flash developers struggle to figure out what this means for them. I don't propose to resolve that here - what this means for you depends on both your skill-set and your job. But I guess if I had one bit of advice it would be, if Actionscript is the only development language you know it's well past time for you to diversify your skills. Learning a second programming language makes you a better programmer in general, and learning a third, fourth, etc becomes easier with each language. I have lost track of the number of programming languages I have learnt, but each one has made me a better programmer. What follows is merely my personal take on the situation. Make of it what you will. I'll start with an important question. Continue reading →

Collection: Flash