I’m really understanding what this game is about now.
- Reframing the past
In order for the game to be about the above list, these all have to be factored into gameplay. And that’s my challenge.
The energy bit is really easy and most games do a simple variation of this. The obvious example is an FPS game, where you have a certain amount of health, as do the bad guys, and shooting them, or being shot, affects your energy.
I’m taking that a bit further and turning it into more of a real-time-resource-management issue. Energy is a resource, the Environment is a “trust”. In order to fulfill your stewardship of the latter, you need to be clever about the former.
Energy is expended in varying amounts depending on your activity and on the prevailing environment.
Reframing the past is about being able to over-write your previous actions, committed at every stage, and thereby “un-commit” them. And redemption means going back in the game and fixing mistakes that would have been harder to fix at the time.
I’ve been struggling for a while with indecision. At first I wanted to write an event system from scratch. Then I got sidetracked somewhat by McShaffry’s Game Coding Complete (bought in Kindle format and read on iPad). I’ve been doing an awful lot of C++ reading and I’m not ashamed to admit that much of it (certainly at first) seemed beyond me. Some of the things people get templates to do are just dizzying.
The upshot is that after much vacillation, I decided to use boost::signal. That’s when the real problems began. I tried search after search and found that I couldn’t get the basics done no matter what. I read all kinds of distracting advice on what the problems might be, but ultimately realised that the issue I was facing was somewhat more fundamental. The scripts that build boost weren’t finding G++. It finally dawned on me that the build tools weren’t set up properly. So I installed the latest release of Xcode 4 and this time, told it to include the Unix tools. Now bjam was finding G++, but still not working.
It was just as well that I’d already given up last night and decided to simply drag the files from the signal source directory directly into my Xcode project. Everything worked fine after that. It’s worth mentioning that much of boost doesn’t require libraries, as everything you need is in the header files. There are some boost classes that do require building into a library, and boost::signal is one of those classes.
There really should be a binary distribution of a library as important as boost for Mac OS X and I’m surprised at how poor the state of support is.
Still, back to Chimera now – and how energy conservation can be turned into a game mechanic. I’m also thinking about the revision of history as a game concept and the notion of redemption as a gameplay mechanic. Yeah, I’m serious. This is a game after all.
(By the way, I particularly enjoyed reading this perspective on Chimera).