Using Ethics to Fight Contrivances? Have We Learned Nothing from Pokemon?

Recently, Adam Saltsman made a two part post (Part One) (Part Two) critiquing aspects of social games and “freemium” business models. I share the distaste for the tactics, but we need to carefully consider what our opponent’s strengths and weaknesses are. Otherwise all we’re doing is talking for the sake of talk.
Ethics: Not very effective

Using Ethics to Fight Contrivances? Have We Learned Nothing from Pokemon? continued »

Performance Monitoring Tool for Actionscript 3.0

For a recent project I created a performance graph which helped me to identify which parts of my engine were responsible for performance issues. Based on that, I have developed a flexible PerformanceMonitor class which can expanded on to track performance in a number of ways. The default implementation produces a pair of graphs like so.

Each colour corresponds to a different task that my application performs. Perhaps blue represents AI execution time, red represents rendering, and teal represents mouse handling. The graph on the left reports the time spent on each task I am tracking per update. The green area gives me an indication of whether Flash is dropping frames due to the execution time of my code. On the right is a bar graph showing the relative weight of each task over the lifetime of the application. More details on use after the cut.

Get it from GitHub.

Performance Monitoring Tool for Actionscript 3.0 continued »

Studio Space for Game Developers in Toronto

I just read this post by Greg Beaton on his Art of Game blog from back in February. Late last year I was talking to Alex about the same basic idea. Whenever I’m working on game projects I’m usually holed up in my computer room at home for hours on end, and sometimes the creative energy can be really difficult to sustain. Unlike a lot of other artistic disciplines, game developers are more tethered to equipment needs and can’t easily get a change of scenery while working. A common studio space for game development is a fantastic idea.

I’m not so sure about adding the additional overhead of selling merchandise on site, especially at the onset. Although, decent quality concessions are a pretty easy sell with game developers, as the TOJam concession stand demonstrates every year.

Game jams bring us together to achieve a short term goal every once in a while, but I’m really interested in a studio concept that would see local developers working closely on an ongoing basis. I hope this idea goes somewhere. I’m going to start bringing it up with other local developers and see if there’s any traction.

Game Engine Design, Part Two: Triggers, Responses, and Katamaris

This is the second part of my series on game engine design. I’ve spent some time throwing around various ideas about the principal entities that a game engine should be concerned with and how they relate to each other. I’m going to hold off on any class diagrams or specific examples for the time being. This is all a thought exercise until the next entry, where I’ll analyze some specific examples and start generating some pseudo code for how I would like those use cases to look from the game developer’s perspective.

Game Engine Design, Part Two: Triggers, Responses, and Katamaris continued »

AScalpel Basic User Guide

I’ve been working away on AScalpel for a while now, polishing it and adding some new features to it. It’s settled enough now that I can sit down and write a real step-by-step guide to using it.

There is also a sample application included with the AScalpel library which is already integrated. Compile com.andrewtraviss.ascalpel.sample::BouncingBallSample.as as an application to view it.
AScalpel Basic User Guide continued »

A Quick Guide to TOJamming

With the announcement that TOJam 6 is imminent. We’ve done a little better each year and I’m really looking forward to this one. I wanted to take some time to share what I’ve learned by attending five of these crazy things and share what advice I have on improving your chances of success and minimizing your stress. TOJam only comes once a year, so make the most of it!
A Quick Guide to TOJamming continued »

Runtime Object Editing in Actionscript 3.0 with AScalpel

There was a bit of buzz in the indie game community recently around the idea of editing object properties at runtime as a great way to tune gameplay quickly. I haven’t seen any attempts at a reusable system to handle it, so I thought I’d give it a go. AScalpel is a basic editor shell which uses metadata to dynamically create editors for custom classes. There’s still some issues to iron out with it, but I don’t really have enough free time to do it. It’s up on Git now.

Normally I’m a diehard Flex fan, but I know not everyone shares my views so I’ve used the Bit-101 Minimal Components for this. It could easily be retrofitted to use Flex as well (I will probably do this later). For this initial release, it is purely an Actionscript 3.0 library. I’ve set up a Git repository to share it with everyone. An explanation of how to use it, below the cut. You’ll need the Bit-101 components in order to use it at the moment. Currently hosted on Google Code, here

Runtime Object Editing in Actionscript 3.0 with AScalpel continued »

Game Engine Design, Part One: The Role of the Engine

I’ve been responsible for a number of engines and frameworks over time, but they have been predominantly built for the purpose of solving some specific technically difficult problems. As we have embarked on the business of developing games ourselves, the need for a more comprehensive game engine is evident. We could use one of the existing engines out there, but my history with developing them leaves me with too many ideas on the subject to give it up.

In this first instalment, I explain my thoughts on the role of a game engine and the overall scope of what I intend to achieve.
Game Engine Design, Part One: The Role of the Engine continued »

Moved to Mediatemple

After over a year of persistent downtime and performance issues under WebHost4Life, I’ve moved over to Mediatemple. Already feeling much more comfortable here. The lack of problems should improve post motivation.

A great deal has happened over the past year. Quit my job. Started a company. I’ve done some work for Manulife Financial and have been on contract for a social game developer for some time. I spent enough time migrating my blog tonight, however, so I’ll have to share more details in a future post.

A TOJam 5 Retrospective

It is done! 180 people this year, 160 of them on-site. And amazingly, with 35 more people than TOJam 3, it actually felt less hectic. The organizers were more sane and better rested, and actually had time to sit and chat more.

Pro Tip:Talking to Jim McGinley for 30 minutes or so when you are exhausted to the point of passing out will generally restore your energy for the remainder of the day. Or at least long enough for the caffeine to take over

As always, I had an awesome time, even if I was more tired this year than previous years. That largely due to the fact that I was up until 3 am the night before the Jam trying to get SVN set up on my machine so that Alex and I could forego the USB time sync. Irrational Escalation at its finest.

Alex covered the event really well with some video blogs. Find them here.

There were some fantastic games out there, I sunk quite a bit of time into Michael Todd’s dogfighting game. Shawn McGrath’s game would probably conquer XBox Live Arcade if it were to appear there. Some screenshots and description of our game after the cut

A TOJam 5 Retrospective continued »