Way back in December, we had just implemented a bunch of the character logic for going through the world and doing things using our Finite State Machine model and utility functions. What we discovered was that writing the code for the FSMs themselves was, to put it frankly, a huge pain. Additionally, non-C++ programming members of the development team could not easily add new items and new behaviours to items (mines, buildings, trees, and the like.) Micah J Best, at the end of December, decided that we should use scripting to wrap some of the complexity and hide it from the end user, while simultaneously letting our development team create new objects and FSMs without requiring a programmer to go thrashing about in the codebase. I said, “Fine. Show me a proof of concept and then we’ll talk.”
Fundamentally, Gaslamp’s programming team operates based on spite. If somebody says “oh, well, we’ll never get that done in time”, or “oh, well, it’s too impractical”, somebody usually says “no, it well isn’t” and will jump to the bait. (I did this recently with a pipe system test.) Saying “Well, show me a proof of concept and we’ll talk” is equivalent to putting a red cape in front of a bull.
Over the holidays, Micah found himself stuck in Quebec. With nothing but inlaws, a language barrier, two laptops (one of which was destroyed by a cat), a turkey stuffed with poutine, and spite, he put together the first build of what is our new scripting system. It does, indeed, encapsulate all our programming decisions and is fairly powerful and flexible. We took apart all the character code we wrote in December, ported it to the new scripting system, and have now started using it to implement new things in game. It’s very powerful and, after some back-and-forth, I’m quite happy with how it’s turned out. We’re still fixing bugs and fine tuning how it all comes together, but let’s see how it all works…
What’s New In Programmertown?
The best part of game development, for me at least, is when everything suddenly starts working. Quite often, there is a critical mass of code that you end up writing for a game, and then – in the span of a week, or even days – you go from “everything is hideously broken and we’re going to die” to “Oh, this might be fun.” We’re right on the cusp of that right now; programming has seen some setbacks this week, mainly due to an outbreak of flu that has consumed the office. Nonetheless, we’ve been hard at work here in Programmertown, trying to get all the excellent artwork and ridiculous designs that people have come up with integrated into the game as quickly and efficiently as possible. Once again, let us take a tour through my folder of wonderful work-in-progress screenshots.
{ read this article }
8 Comments