All entries for Saturday 10 March 2007

March 10, 2007

Time Cat

I’ve just had a text from Natalie from the top of a mountain, standing on a snowboard and loving it. Excellent news.

But to the main topic of this ‘ere written entry. For some reason or another my Duck game hasn’t seen a lot of development; it was going quite well and I can’t remember why I stopped. It’s usually just as I have to code the hard bits and Sam’s asking for extravagant features to do with flapping.

So, anyway, we’ve started on Time Cat. This is a game about a cat; it’s a platformer, and it looks like this at the moment.

Time Cat screenshot
Time Cat is somewhat stuck.

Note similarity to Duck Game, only without the isometric view that’s hard to program. The game is based around an idea that Sam’s had for years, about a cat who aimlessly stumbles through a series of time portals, serendipitously altering the course of humanity.

Please, talk to me about technology

Very well. It’s in C# again using Irrlicht.Net for the graphics and stuff, and part of Tao so that we can use SDL Mixer for sound. Oh, and our data format is JSON thanks to the Newtonsoft library that nicely serialises regular objects to JSON and back again. And we’ve just added NUnit to the project so we can do unit testing (as approved by Kent Beck himself). The unit testing has mainly proven just how difficult it is to properly arrange a game engine so that it’s suitable to be unit tested (without having to initialise the entire engine for every test).

All in all I think we’ve satisfied our lust for using an excessive number of 3rd party libraries. I’ve looked vaguely at just finding a 2D engine that someone’s already made and using that, but Dan calls me a douchebag for suggesting such a thing. Such a thing indeed. But one day.

As far as C# is concerned it’s proven officially fast enough for such a game; we thought it was slowing down massively when adding a lot of tiles but it was just the debug mode causing it to go slow. C# events are also hella useful because the Observer pattern is hott, as are delegates.

Please, stop talking about technology

My pleasure. So what about the game itself? It’s not set to have particularly innovative gameplay other than the storyline; it’s just a platformer basically. But I think it’s good to try and finish something rather than continually drop projects in favour of trying something bigger. An example of this was when Nick and I started making a quick Asteroids game almost purely so we could finish any game, but in the end gave up after we’d decided to make it a networked, multiplayer Asteroids and got annoyed at packet latency and so on. We really are a bunch of idiots.

But the game’s coming on fairly well now, we’ve got it loading levels and it’s got a basic level editor that Dan’s done (with good use of various design patterns thanks to me continually shoving them metaphorically down his programming throat).

In summary then: the end.