Animation and "Move Nodes"
So I finally bit the bullet and finished the animation work (using the new Assimp model loader). I'm going to get bones working next probably, although I might just release as-is, for a rare mid-week release. If I do it before midday Wed, I can say it was just a slip past the 2-week deadline. If it's after that, I'll have to call it early in the 3-week deadline :)
I've also put something else quite cool into the engine. It's not something unusual (I'm sure most games do this), but it's still cool. It's called "Move Nodes". A calling entity which created an AnimPlay object can now lock one of the animation nodes, and then send commands to set it's position, rotation and scale to arbitary values. This is used to allow for the gun turret on the tank to go up and down with the mouse. This is something I've wanted for a long time, but just haven't gotten around to.
Anyway, enough chit-chat, I've got to get back to coding!
So I've done a heap of work on OpenGL performance over the last week or so, and have gotten some really good results. Most of the work is just avoiding stage changes but there has been a few other improvements too. If I keep getting increases in speed, I'll probably decide to throw away the "compatibility mode" renderer - although I'm still interested in feedback on that.
So this weekend is a release weekend - it's every other weekend - so I'll do the release soon, probably tomorrow (Sat) night, but it depends on stuff. Sadly, it's probaby one of the most boring releases ever. It's really just bug fixes, so I might postpone it by a week, just to get a chance to add something interesting...
The only other thing of mild interest is the new Development Docs area. It's basically the content that was on the wiki on GitHub, but on this site instead. And probably a little more up-to-date.
Compatibility vs Development
So a while ago I upgraded the graphics engine for Chaotic Rage. This was a very interesting process, and really useful to the development of the game. Then as I continued to develop the engine by using changing model loaders among other things, I have discovered it's increasingly difficult to support older hardware.
Currently there is two render backends - Modern (OpenGL 3.1 required) and Compatibility (OpenGL 2.0). The problem is to get new features working (like bone animation) will be quite difficult with OpenGL 2.0 alone, it just doesn't cut it.
So I have a couple of options:
- Kill of compatibilty mode, and loose potential users. At the moment, it's actually disabled because the Assimp stuff doesn't work, so I could just make that change permanantly.
- Get compatibilty mode working, and keep supporting it, although some features (like bone animation) will simply not work.
I'm looking for the opinions of users here - please get in contact in the comments
I recently added a gametype and campaign which just randomly spawns players in and out of of the game, randomly changes viewports, and other goodies.
It runs for one minute, before moving on to the next stage of the campaign, where it runs again on another map. There is four maps in the campaign.
Here is a video of it in action:
You will see some pretty funny results around 1:10 into the video. I guess there is more work to do...
So I was looking through the technical documentation provided for Chaotic Rage, and it all seemed a little lacking. In an attempt to improve that situation, I'm now making available a fairly complete set of Modding Docs.
All along, Chaotic Rage has been built with dynamic programming in mind. This has been useful in two ways; it not only makes adding content much easier (like new weapons or gametypes), but it opens the game up for modding.
I don't really have the time to do all the content work myself, and I know there are others out there who would be better at it than me - creative people, artistic people, sound effects people - so i think the project would be better if opened up to more people to develop it.
Of course no one can help out and develop a project if there isn't good documentation on how it should all work.
So here again is the link: Chaotic Rage Modding Documentation. Enjoy.
Beta 15 released
So Beta 15 is now available! It's been a longer cycle - three weeks - but I finally got it ready.
The funnest new feature is mines. There is three types - remote, timed and proximity. And yes, they really are as much fun as they look.
Other than that, just bits and pieces. I fixed some crash-bugs on some platforms (intel video cards on windows), cleaned up code, fixed more of the objects, and moved bits of testing content into it's own mod, so it's all a little neater.
So, inspired by GoldenEye 007, I've decided to add mines to Chaotic Rage. Mines were maybe one of the funnest parts of that game, hopefully they will be lots of fun in Chaotic Rage too.
There is going to be four types of mine: Timed, Remote and Proximity.
I've already added timed mines (although there isn't a cool explosion effect yet), the others should go in there over the next few days.
And like everything in Chaotic Rage, I've only added classes of weapons; the various properties of these weapons will be managed using mods. This means, if people want, we could put in like five different proximity mines (one with lots of damage, one with lots of blast range, one with lots of detection range, and a couple of others) and they would all still ujse the same logic in the game engine, just different weapon definitions.
So I added first-person view the other day. It's fairly simple - just some other values for the camera transform. At the same time, I've made the camera angle scriptable, so hopefully something interesting will come of that. At the monment, you can only control which viewmode (behind, above or 1st person), bit it shouldn't be two difficult to allow scripting of the angle and distance parameters, preferablly with tweening too.
I've also been doing work on the assimp content migration and improvements, which is good, although zombies are still a little too big :)
I know I've slipped this weekends release, but it was too sunny to sit inside and code; I went to The Coorong instead.
On an unrelated note, I'm hoping to do some website updates soon, which will start with subscriptions to the blog, and some other bits too.