So I had a feature request the other day for some sort of storyline. It's an interesting idea, one I've played with, but haven't implemented myself, because I could never think up a good story.
So I decided to implement storytelling features, and leave the storytelling to someone else - using mods.
So as of last night, mods can contain one or more "campaigns". The default Chaotic Rage mod doesn't contain any campaigns, but if anyone has an idea of a story, either build it (by creating a custom mod), or email me the idea and I'll build it (or at least get you started).
Campaigns are very simple at the moment - it's just a series of maps+gametypes, which get played in order. I would like to add other components down the track later.
Happy Australia Day
So I know that my audience is bigger than Australia, but I'm from Australia, so I'm going to celebrate - with a release! Normally I try to release fortnightly, but here you go, after one week, Chaotic Rage Australia Day Edition.
What's new? Basically, as far as code is concerned, I did heaps of work on the mod loading system, both in the behind-the-scenes bits, and also a cool gui.
I also added content, but it went into a new "Australia Day" mod, seperate from the main game content. To activate, click on "Mods" in the main menu. When active, all of the stock CR content is still available, but the "supplementry" content will be available too.
I added a new map (The Beach), a new vehicle (a BBQ), a new object (a footy), a new character (footy man), a new type of zombie (kangaroos), and a new gametype (Outback Zombies).
So a bit of history. In the beginning, games were so simple, they didn't have any assets (think pong). Then as time passed, games started using 2D sprites for their graphics, but everything was always static and hard-coded.
The modern way is "dynamic loading", where instead of adding tanks into the game, you add vehicles, and have a vehicle type of tank. This is the system Chaotic Rage uses, so there is a configuration file in the data directory which has the information about what makes a tank a tank (weight, speed, accelleratrion, 3d model to use, sounds to play, etc).
All of this information (players, ais, gametypes, vehicles, objects, etc) is organised into a "Mod".
Chaotic Rage now supports multiple loaded mods. The system was in place for ages, but nwo the GUI works.
You have normally one or two mods, the "base" mod (chaotic rage), and optionally a supplementry mod, which is user selectable. Theoretically you could have additional mods loaded, but you need maps which can make use of the extra objects that the mods provide.
I've also added support for mods to contain maps (seperate from the stock maps which come with the game), so if you create custom objects or gametypes, you can create maps to go with them.
It's been another fortnight; Beta 11 is out.
Whats new? Added two new maps. Fixed some zombie bugs. Added "static map meshes".
Heightfields and Zombies
So I had a little trouble with heightfields this week.
It appears my new AI/Physics code (specifically the glue which joins the two together), while better, was running slower. 20 zombies, and the game would basically freeze.
I'm using Bullet Physics heightfield shape, but I learnt a few things about it, and performance. That chewed up most of the week (and there is still a thread running on the bullet forum), but you should notice better performance with lots of zombies in this upcoming new release.
You might also notice a new gametype, "Zombie Deathocolypse". It's a variation of the main zombie game, with more zombies. They don't come in rounds, they are continous, and the more you kill the faster they come. I actually created it just so I could test the above-mentioned problem without having to survive for like 5 rounds to see enough zombies to make a difference.
Static map meshes
So maps have been defined as a heightmap for some time now, but I was working on a new map, "Maze of the Lost", and I hit an issue.
It's got these high walls, but also a few ravines, and I wanted to make the ravines into a gameplay concept. I also allow you to walk up a couple ramps to the top of the walls, so there was an opportunity there to do something cool.
I wanted bridges.
You can't represent a bridge in a heightmap, so what I've added - static map meshes - is extra bits of geometry which is injected into the map. Your shapes can be anything you can think of, although it's best if they have low polygon counts. They can be textured and UVd and stuff, but they behave (as far as physics is concerned), the same as regular terrain.
We have a blog
I'm going to write about cool new things I'm adding to Chaotic Rage here. You can expect stuff you read here to end up in the next release. Stay tuned!