Here it is, the moment you’ve all been waiting for… the third and final chat with your friend and mine, Sean Cooper.
For those of you who have arrived late to the party, Sean is the developer behind the BoxHead online game series and has been gracious enough to answer some of my questions. Make sure you’ve checked out my post covering the game in question, and the first and second posts in this interview series.
To cap off the adventure, I asked Sean to fill us in on some of his development secrets and reveal what he thinks the future has in store for us. Something here for everyone…
Part 3: Game Development and Tips
Boxhead is a great game and it clearly gets a lot of attention in the casual gaming community. Can you give us some stats on the number of games played etc?
Ok this number is tricky to come up with but I did track some of the people who played the game and some played over a thousand games. If you type Boxhead into Google the list of sites go on and on. So I estimate that the Boxhead games has been played over 100 million times by various people.
What inspired you to create Boxhead? How long have you spent developing it?
Well I started around 9th October and started working on the First one. Objective was to create a game where the world slowly became over powered with Zombies. Tricky component was how to render the graphics in Flash in 3D with Animations – no bitmaps as that would have taken too much memory. So then came Boxhead The Rooms, then More Rooms, then 2 Play Rooms, so I was progressing the game from one to the next, looking for what people liked about the game. Coming up to the last one that took 20 days as there were many complications with the rendering of 3D sprites, I wanted very little memory used. And then development stopped for 2 weeks as the encryption didn’t work with the large data tables. So each game took an average of 2.5 weeks to create. 10 weeks in total. And I have worked on many other projects during this time.
The game engine is quite impressive. Can you tell us about the techniques you’ve used to tackle things like path-finding, z-sorting and AI?
Well these are trade secrets really, but I shall give you some simple guidelines to follow:
- All the AI routines are based on States: very simply a State is Walk to point, Attack, navigate, die, dead, etc. When the Zombie is walking from Point to Point, it follows a path that no other Zombie can enter, so the Zombie does no checking for Walls or things in his, except the interaction of the Player. It is important to only allow a couple of Zombies to make decisions at once; otherwise it will run really slow.
- Path-finding: Each Zombie doesn’t navigate to player but the player tells each Zombie how to do this. This means that only one pass need be perform to get each Zombie to walk towards the player.
- AI, there is no AI only a State decision tree, i.e. next to player, turn to player, attack player, etc. The trick here is to make it seem like there is AI and not actually create an AI system. The Zombies have no Memory of what they have just done.
- Last but not least; if you want speed then don’t create movieClips at all as they will slow it all down. For a lot of items on screen at once use only copyPixels in the BitmapData class, this is time consuming to program as you have to manage the graphics and animations yourself. I have no idea what Flash is doing with regards to movieClips, but they are very, very, very sssllloooooowwwww, in comparison.
Are there any particular achievements that you’re proud of with this game that aren’t obvious to the player? Have you used techniques to optimise its performance?
The 3D renderer is quite an achievement as it renders the graphics at run time keeping the memory size relatively small. I cannot draw (just look at the room graphics) but I can build 3D models and that is why they are like they are! Cheap to render, simple to animate and the end result is, in my opinion, a style that is relatively unique.
The draw is really optimized using decompilers to see where the slowdowns are and constantly testing the system to find faster alternatives, the obvious way is not always the fastest. The game only considers the rendering of the items that the player can see, all the rest are not even looked at to see if they are on Screen. And that is where you get most of the speed from, because if you check every Zombie, Barrel, explosion for being on screen then it becomes slower. I use a very simple Cell system, each cell is 50by50 pixels and the whole world is made from these Cells, each Zombie marks the map and then the screen map gives us the Items to render, so you just render them.
Your wOne games involve some nice physics. Are you a mathematical person or did you adopt an existing engine?
Not really, although I understand the basics. If you can tell which side of a line a point is then you can do just about every thing in wOne. The Bungee for example uses this a lot.
What do you think the secret is behind designing and developing addictive online games? Is there a specific formula? What differences do you see between developing traditional games for desktop/consoles and Flash-based games?
Let’s start by saying, game making is not a science, so there is not way to apply a specific formula. A little like a painting.
Secrets eh?
- Think about a single idea and stick to it and then base all your other ideas around it. I.e. Kill as many Zombies with one shot. Boxhead kind of sticks to these rules! Too many ideas makes the idea bloated and complex, the average brain finds it hard to keep track of a lot of information at once.
- Develop for the idea and not the other way, although the other way can sometimes produce crazy and innovative ideas, it’s likely it will not. Don’t think about what you can do, think about what it could be. i.e. I wanted 80 Zombies to fight. If I had worked the other way around it would have been 10 Zombies, but I fought and fought and just kept going to realise the idea.
- Time is a big factor: Most projects I worked on in the commercial market took over a year, now I write games under a month.
- Number of people: Well the largest team I ever with was over 100 people and I had to talk/direct to all of them at some point during the project. Now I work alone, I spend all my time developing ideas with one other person, myself.
- Commercially viable: Would Boxhead be commercially viable? No, it would not. But people seem to like it. Every game I have worked on I have had to battle with two things: the Commercial viability and the Game play. The two do not mix too well for me but I understand both. Now put 20 people in room and all understand this is there own way… what do you get? Chaos, loss of idea, crazy thinking and it goes on… Imagine Vincent in a room with 20 people deciding the future of his Painting, you can only imagine! The example of the Egg that Microsoft used in one of there videos I thought was funny… The idea was an Egg by a designer, it ends up the Egg being split apart and smashed and then glued back together for the final product… how true this was to me, if you have people in the room who just don’t play games then what do you get?
Part 4: The Future
What’s in store for you in the coming months/years? Are you going to stick with Flash?
Well I am working on something for a Big Games developer at the moment. But after that I will be working on Boxhead 2 and hopefully in Flash 9, as the performance is at least 10 times faster just looking at some very simple tests. So Flash it is unless the world stops using Flash tomorrow, can’t see that happening, but you must keep an eye on it.
Finally – any advice for those wishing to follow in your footsteps?
Oh this is always a hard question as people need customized advice suited to them and there own situation but see if one of these fit your situation, take one:
- Stick to your idea: if you let others influence this you’ll lose your original idea. Every other idea you have should fit with the original idea
- If you keep trying you’ll always win. Often I hear oh I can’t do that and then 6 months down the line they deny they ever said it as they now know everything about it and can do it well. Just remember that life is nothing without the problems you face, you can beat them all with a little perseverance and dedication.
- Keep an eye on the market and understand who you are creating the game for. If it is your grandad then your market is smaller than the teen male. Have a market / audience in mind for your game.
- Balance your implementation: game play, audio and visual. Sometimes the audio is more important to get right than the visuals.
- Keep learning, new apps, new ideas, new techniques and new markets.
- Prototype and Prototype, play and play – remember to make it perfect you have to test it at all steps of development.
- Throwaway code: code fast and unrestricted to gain the best idea, then throwaway and recode in neat, faster format.
- Make the game simple and easy to play but hard to master.
- You have a couple of minutes to keep the audience. How many times have you played a game and not been sucked in straight away and quit. The game was probably brilliant but the author didn’t captivate the audience.
- Finally, you can do anything you want to.
Closing thoughts
Well… I’m sure you’ll join me in giving Sean a healthy dose of cyber-applause… there’s nothing quite like hearing the words of someone you know has ‘been there and done that’.
So what did I take away from the interview? Plenty. In particular:
- I enjoyed hearing about which packages he uses to build his creations (in Part 2) - sort of like looking into another developers medicine cabinet… gross, but true.
- The fact that he credits a mentor for giving him his first chance… (Peter Molyneux, Part 1)… my theory is that all great artists, regardless of genre and medium (oil/pastel/binary) have benefited from a mentor at some point in their career. I can’t say that I’ve had the pleasure yet - I’ve had an academic mentor, and a life mentor… but the game dev mentor is still hiding.
- “Develop for the idea” - a mantra for independent developers if ever I’ve heard one.
- Finally, the last 10 points in Part 4… I enjoyed them all. Whilst not all of them may be new to you, it’s important to keep all of these in mind as it’s often quite easy to forget what’s important - make fun, addictive games that appeal to your target market that are easy to learn and difficult to master. I think I’ll print them out and stick it on the back of my bathroom door!
And that concludes the series - I hope you enjoyed it as much as I did. Once again, make sure you drop by Sean’s site and check out his wares, and go get some zombie blood on ya.
Feel free to comment with your thoughts.







