Over the last few days, I've been migrating Chaotic Rage from SDL 1.2 to SDL 2.0.1. This has a number of benefits from a programming perspective, because SDL 2 has a lot of interesting new APIs available. I'm not really using any of the new APIs yet, it's just a straight-through port.
You may be hoping to see something new and whizz-bang but sorry, you're out of luck. The new version looks identical to the old version. There is something new and whizz-bang on the horizon though.
SDL 2 supports Android and iOS.
This is the basic reason for the transition. If it wasn't for this, I probably wouldn't switch but I've decided it's time to branch out a bit, so once the SDL 2 changes are all stable enough for me to be happy with them, I'm going to begin work on an Android port.
Now that might get some users annoyed that there still isn't an OS X version of the game. Well it's not really an issue from a code perspective, it's actually an issue from a compiling perspective. To make OS X applications, you need to use Xcode, which only runs on - you guessed it - a mac. I don't own a mac. If anyone was to donate a mac to the project, I would be able to make OS X builds, and eventually iOS builds too. Interested? Email email@example.com.
Chaotic Rage 1.3: Fix ALL the bugs
Another three weeks have passed - time for another release!
Normally I would now announce some new shiny feature like helicopters, or a new subsystem or rewrite of some chunk of crappy code. Not today...
- Cleaned up the logging of the mod loading
- Removed some unused code in some files
- Support for parts of models to be excluded from physics
- Fixed the ute 3d model
- Got helicopter blades spinning
- Sped up game loading
- Fixed melee attack
- Fixed zombie ai which didn't attack
- Vehicle weapons now point the right way
- Don't let the helicopter fly too high
- Fixed the mine 3d model
- Implemented Travis CI build testing
- Got rockets working correctly (these were so badly implemented, lots of bugs here)
- Added physics tick callbacks
- Added support for and fixed the NULL and DEBUG renderers
- Support for multiple move nodes for vehicles
- Initial work on vehicle wheel rotation
As you can see, no massive new feature, just hundreds of little progressive changes. I hope you enjoy Chaotic Rage 1.3!
Rendering - Null and Debug
For a long time now, there have actually been three rendering engines available in Chaotic Rage. The most common one is the OpenGL renderer, but hiding under the covers was to others - null and debug.
The null renderer does nothing. It doesn't have any output whatsoever.
The debug renderer was originally for debugging network games. It's a low-performance 2D top-view renderer, with coloured boxes to represent the various game entities.
There were previously bugs when these renderers were used, so I never offered a way to select them. These bugs have now been fixed, so (on linux) you can now use the command-line option --render to choose a renderer ('opengl', 'null' and 'debug'). Similar options have been added for audio ('sdl' and 'null').
What does this mean? Well with --render null and the right command-line options, it should be possible to have a dedicated server. I haven't actually tested this yet. We previously had a dedicated server binary, but I removed it because it was buggy. These improvments might allow me to revive the dedicated server.
I'm also now using --render null with Travis CI to do a run in pound mode, which is pretty cool.
My guidling light has been the (now quite short) list of issues in GitHub. I started by removing all of the stale issues - anything that hadn't been touched for months. If they are real issues, they will come back, no doubt about it.
Then I just plodded through the issues, fixing what I could. There is a few still outstanding, but it's mostly all sorted now.
I've also now got continuous integration using Travis CI which should help with build stability moving forward.