I've been doing stuff off and on. I've been helping out Run_The_Shadows with his latest bit of misery, and faffing about with the console system for Afterglow.
Gerrymandering is a worse crime than murder. Politicians who wield it for political gain are simply guilty of treason.
I've got a game layer up and running now. Right now all it does is show off my fonts and my new fabulous rounded-rect GUI element. Tomorrow I'm going to implement the game console so you can punch in messages to the rest of the game and install graphs to the various render queues.
Eventually I'll start working in more of the 'game' layer proper, and move my level rendering code over from the map editor. Then we'll have something like a game.
So, I haven't updated my journal in approximately four or five geologic eras. This is mostly because I've been fighting with Novarunner and then self-medicating the resulting rage with other videogames.
First off, I'm not going to finish Novarunner. The basic play control is just not that much fun. Even if I added something like a plot, coherent trade systems, better user interfaces, etc, the game would still be no fun to play. I'm very glad that I managed to release something at all, but after almost a year and a half I'm really not that close to a game I can be proud of. I think I'll come back to space roleplaying later, but it certainly won't be the same kind of game.
The good part of all this is that I've been spending time working on Afterglow; I've got a minimal application up and running that uses my event and display chains, and so I should be able to have some screenshots of an actual game sooner or later. The toolkit for Afterglow is much nicer than anything I've made previously, so it should be reasonably trivial for me to add new modes, menu options, etc, in future patches. It's also got a much nicer hardware detection system than was in the original Glow, and a bunch of the Propane Injector improvements made since Novarunner was started.
So, sort of a bittersweet ending. Novarunner didn't work out, but Afterglow is something I'm really excited to be working on.
In non-gamedev related news, I'm still shopping for a car (much to the chagrin of Promit, who I keep haranguing with various questions about dealerships and warranties and what kind of ammunition to pack to drill through a sales office wall). I've narrowed it down to either a new 2008 Impreza or a 1999-2007 used Impreza (or Outback Sport). With any luck, I'll soon have a new AWD dragon sitting in my spot, making my overly-domestic neighbours stare at me in the morning.
It's nice going to a Subaru dealership, because (with some exceptions) the people working there are generally total fanboy nerds of the manufacturer. You don't get that from a Toyota Corolla, even though they sell one of those things every 35 seconds.
So I bought a 400GB Seagate 7200.10 SATA drive. "Great," says me, "This should work fine."
So I take apart my machine, reorganize all the disks, refold the cables, clean off all the contacts and unwire and rewire everything.
Power up, life is good. Wait, no it isn't. My SATA controller won't find the drive, and Windows refuses to detect any SATA drives while it's plugged in.
So I look around, and on the package it says "SATA/300." I vaguely remember one of my old geezer professors (am I an old geezer now?) complaining about how he had to go through hoops to get "SATA II" to work, so I wonder if this is the same thing. I immediately hit Wikipedia.
Wikipedia tells me I might need a firmware upgrade because my VIA chipset is too stupid to autonegotiate. So I go and get all the Asus upgrades and all the VIA upgrades and the like. Still won't work. In fact, it's worse.
So I go and I poke around in desperation -- turns out I need to pop a jumper on there to force it to "stupid" mode. So I go and I look around for jumpers. Nope, don't have one. Finally find one in the bottom of my drawer.
That jumper's awful big, so I have to jam it on there. Works. So I rebuild my machine for the third time tonight, power it up, and life is good. Now I have over a terabyte of disk on my desktop.
I remember when I got my first 200MB external drive and I swore up and down that I would never, ever fill up that much.
I've been putting Novarunner on hold for triage purposes -- I've got a big piece of paper on my desk right now that's showing all the various tickets and fixes I have to make to actually release the game -- that is, after I make it fun, which might be impossible.
On the plus side, it results in a lot of nice Afterglow stuff. I might get the game shell up and running near the end of the week, although I doubt it'll do anything gorgeous. However, the level editor is coming along quite well. I can now place level polygons, which is neat.
The next thing for Afterglow is probably to get the generalized event system up and running and firing events from the gamepad to actors. This might seem easy, but there was a lot of nastiness in Novarunner when it came to routing and firing events (button tap vs. hold events, system vs. actor events, reflexive event chaining). Afterglow will try to take care of this with better primitives, and hopefully the message core of the game will live on for future projects. Pretty much none of the Novarunner code is getting recycled, which is depressing me a bit.
Game-wise, I just ordered Mass Effect and The Darkness, and I've been beating Symphony of the Night again. I forgot how easy this game was originally. I think it gets harder when I hit the massive secret.
Hopefully everyone who's been linking to the game has just been linking to my site as opposed to mirroring the game locally. It would be a royal pain learning Japanese to go ask my legion of loyal Mac-using Japanese fans (~300 downloads) to update their mirrors.
Hopefully everyone's enjoyed Glow 1.3 at least once. I think it brings the game much closer to my intended experience, although it does make survival mode awfully easy.
I've been flailing around for a bit. Waiting back on some more intensive playtest experiences with Novarunner to see if the whole experience is salvagable. I still can't derive much fun from the game, and most of the features which took me a long time to implement (such as commodities) are no fun to use and nobody wants to use them.
But enough being depressed about Novarunner; let's talk about the bright future that Afterglow is providing.
I finally decided that I was going to do something about my horrific serializer stuff; even though Novarunner has a really great save/load system rigged up without the ugliness Glow had, it's not perfect and is pretty prone to errors and inconsistency. So I decided I'd design a code generator to build the serialization functions for your class, and you'd just slap this into your build process. Makes sense, presumably, but I haven't sat down and worked out the vagaries.
Haven't worked out how this will deal with inheritance, or messy reference patterns (references instead of pointers, smart pointers, null references, shared references, statics, etc). It might be more work than it's worth, but it's certainly less ugly than writing macro tables like we did in SS3.
When will you see screenshots of Afterglow in action? Well, I should be getting the basic shell application up and running this week, so you might see the map getting rendered. That would be impressive, no? Especially since I'll do it right this time instead of a huge pile of monolithic hacks.
One thing I want to talk about later is how I'm taking the "messages" system from Novarunner -- except this time I won't be running four or five different kinds of message systems. I plan to share a single message system, and that will be the core component of my "scripting" replacement, and hopefully even make it easier to visually debug.