Filed Under: Journal - Development - Game Development
Wow, it's been a really long time. I managed to get through a whole month without even an innane and incomplete journal entry. That actually requires skill. Yeah, skill. So to catch up, I suppose I should take a look at some of the older journals to see where I was a month ago, but I'm lazy, so I'll just duplicate.
Things have been moving, even if I haven't been posting journals. There have been a few source releases, but without any applications or documentation, those releases are little more than offsite backups. Apparently there have been a few downloads of the code there, but I haven't seen any feedback. I guess one can only expect feedback from maybe 1 in 60 or 70 users, so I've got a few YEARS at this rate to wait before I see anything. Since the download page is sprawled with warnings not to download anything, I'm not particularly suprised.
What's new, what's new... I've ditched the idea of writing intermidiate games. I just can't spare the time. I figure if I write a game and it turns out to be crap - THAT can be my learning game, and I'll start again. With that in mind I've opened up my focus a little to include the game engine rules, admin code for editing assets and artwork and things, storyline and more core classes to get underway. All game asset administration is taking place in a PHP/HTML/MySQL environment, the idea being that data pack files can be generated from the script straight out of MySQL. This let's me mix in some of my existing knowledge with all the new stuff I'm learning. On top of that, with a little work it's a nice multi-user, revision aware system for people to contribute artwork, game rules, maps, sounds, music, dialog... everything straight into the project code without having to dink with a seperate editor.
Right now all the game assets are internationalized in the database, so when I export a data file for the game it can be configured for English Canadian, or German, or whatever. All of the game assets including dialog, art and trigger files can be modified based on region. That gives a nice upshot that I can lower violence levels, profanity, adult content, whatever pretty easily based on region. This isn't something that I realistically need, but it sort of comes for free from building the admin tools in a language and platform that I already know well. Besides, I've wanted to write this as professionally as possible, even if it isn't really professional grade. That way if it ever comes to the point where I write games for myself I won't be suprised by any hidden complexities.
To facilitate all this PHP driven asset creation, I've needed to build some classes in C++ to read and use generic variables. That's been an interesting process, but it really increases the flexability of the engine. I think. For example I can specify a game rule for the advancement of a characteristic in PHP something like "5/4*15" (which is totally fictional, of course) and the C++ can interpret the variables in a typeless way. It also means I can build big lookup tables keyed by typeless variables, containing typeless variables and get reasonably fast lookups in C++, but with arrays built in PHP. The upshot to all this is that game rules, triggers, maps and everything else can be modified by just editing a data file instead of changing code in the engine. It also opens new avenues like dynamically loading new characters, maps and items runtime right out of a PHP script living someplace on the net. It could be interesting to have played a single player game for 6 months, and to suddenly have a new town, and new subquests added all over the place in the game.
Aside from all this stuff, the rendering engine is moving forward a little too. I've got better classes for handling system messages and timing, as well as some rending objects like cameras, etc. that use templated containers. It'll be nice because I can build a camera, for example, that has a frustrum culling container I can just feed geometry into and watch it chop off unrendered segments without really having to worry about how it's all happening. It also means that I can have multiple cameras really easily, though I don't really forsee any reflections, or single screen multiplayer stuff, so it's doubtable I'll really ever use that feature. Oh well, I'll know it's there.
Aside from the PHP and C++ advancements I've spent a fair amount of time on the game rules themselves. With the help of pierre and druid I've been able to iron out some long standing issues with character management and skills... and a bunch of other stuff. So semi-progress on all fronts.
All fronts except storyline, I'm afraid. There's still a whole lot of detail that doesn't exist about the games actual story. Arguably the most important element of the entire game design. For some reason my imagination seems to be having a hard time isolating ideas that I really want to attack. There is so much potential, and so little time... I really want to divise something reasonable, but enjoy what I'm working on at the same time. I never really thought this would be a hard thing for me to do, stories were never an issue. The truth is I feel like I'm makeing the least progress with it, though. Hopefully my creativity gene will kick in sometime soon. I'll need to start establishing some fairly solid mood and scene characteristics soon if I want to get the asset aquisition under way.
Anyway, I had wanted to get into some examples of the new typeless variables code, and show some screenshots of the new camera class at work, but I'm thinking instead I'll put that off to the next journal. Maybe I'll feel productive enough to attack that later tonight. For now I think I'm going to give my brain a brief rest and take in some "Enterprise" which we've discovered we can from mpeg's off the net onto VCD's and watch in our DVD player :).
Hopefully you'll hear from me again tonight. Not for your sake, but for mine. :)