However, it leads me to bring up an after hours project that I've been working on. Some of you... Ok, perhaps only a few, have sat still and appeared to listen as I rambled on about this project before. It's a smallish game project, which probably doesn't surprise you.
I realized years ago that I've got a terrible tendency to get distracted, and my projects don't make much progress because I'll get sidetracked and follow the next shiny object that catches my attention. In an effort to fight this, I found a project that has natural boundaries that make it hard to expand the project in various directions and not complete the thing.
The game's a shareware action game called "Cars With Guns". You can figure out what most of the gameplay consists of, and by going to the webpage you can see the (ahem) distinctive visual style of the game. It's the visual style that helps keep me from getting too ambitious. It may also be the critical element to defeat my hope of anybody actually ever registering the thing.
Anyway, I mention this, not so much to show off my project, but mostly to mention that I spent the weekend working on some of the less interesting bits of the program.
I had showed the game to people before and one thing that I had noticed is that nobody could figure out the control scheme on their own. I shouldn't have been surprised about this, but the game's already quirky enough, it probably serves me to make it easily playable without a tutor hovering over the player's shoulder.
Towards that end, I wrote a small module that allows me to map keyboard, mouse, and joystick input into an abstract data structure that gets interpreted on the gameside, and can easily be reconfigured by the game. Having done this, the primary control device that I'm using is a PlayStation 2 gamepad. Once I get the feel of the game to my satisfaction on that device, setting up a keyboard configuration will be easy. I might continue to support a version of my mouse+keyboard scheme that I started with; I still like that, but it takes some learning, and it's terribly laptop-unfriendly.
That input module was working on Saturday, so I went on on Sunday to start to put in a registration scheme into the game. I think that I've got what I need, all except for the handy bit inside the game to enter a registration code. That won't be hard, but it's another one of those tedious tasks that I can't really get excited about doing right away.
After having been productive over the weekend, I burned a copy of the game to try on my work machine, and the game dumped out as I went from the menus (I've got nice menus, I think) into the game proper. Lesson learned: I need useful diagnostics ASAP to get the game running on a broader set of computers than just my development machine.
Hm, mental note: maintain a player activity log to figure out what a player was trying to do when the game dumped out... Pretty obvious thing, but potentially pretty useful.
Anyway, that was my weekend. The geeky focused bit of it, anyway.