Monthly archives: September 2007

Psychonauts

Psychonauts

I’ve recently gone back to Double Fine’s wonderful 2005 release, Psychonauts, trying to collect the vaults which I missed first time round. So many good things have been said about Psychonauts that it seems redundant to repeat them here, but in summary: great story, fun presentation, witty humour, and deep characterisation (all the more so once you start collecting vaults) make this one of my favourite games of all time. Plus it’s by Tim Schafer, and I’m a total geek for his old Lucasarts stuff.

</teesside><virtual-playground>

Well, my University life is over, I’m no longer a student, and I’m staggering, blinking, into the light, arms open and ready to embrace the Real World. In fact, the transition hasn’t been so difficult. I started work back at Virtual Playground – the company where I completed my industrial placement – almost immediately upon completing my course. Nothing had really changed in the year I’d been gone, so I was able to hit the ground running, already familiar with the codebase and the toolchain used there. We completed Prison Tycoon 3, and then moved on to do some refactoring concurrently with our next project.

Probably the biggest part of this refactoring effort has been the move to an aggregation-driven object system. That is, up until now we’ve had a classic deep hierarchy, adding functionality by deriving new classes, pushing functionality further up the hierarchy when we need to share it, and so forth. This is not ideal. We’ve been told time and again how composition is more effective, more flexible, and generally safer than inheritance. Many of us are already comfortable with the inheritance-driven model, though, and are used to working with it and finding ways round its flaws.

Continue reading