The past few weeks have been one demonstration of Hofstadter’s Law after another for me. I figured that putting the finishing touches on the project conversion code would go quickly, and then more and more new details to take care of kept popping up. If I was going to claim that the project converter would never have to be run again, I had to make sure that it would catch everything, and that’s harder than it sounds. But I finally got everything finished up and tested, and I’ve added the new build to the Downloads page.
Also, I’ve been working with a composer who’s writing a soundtrack to be distributed with the TURBU project. It’s still under way, but the work’s pretty good so far. I put a few of the songs up on the Downloads page as a preview. They’re in .IT format, a musical format that’s particularly well-suited to videogames. Windows Media Player doesn’t know how to play them, but Winamp does, and so does the TURBU editor.
On a related note, I added music support to the editor as part of this release! There’s a music player window, similar to RPG Maker’s. It supports volume, fade in and panning. No tempo adjustment yet; that’ll come in a future release.
I’ve also added support for RPG Maker’s .XYZ image format to the importer. It’ll read and convert .XYZ files to .PNG as part of the import process. And there are a lot more script command editors available now, covering the entire first page of commands from RM2K except for Set Variable, which is really complicated. I’ll get to it once I’ve got proper support from the script engine.
One new thing I added was the concept of battle-specific global scripts. I noticed when converting some projects that they would use up a huge amount of time and memory reading the monster party section of the database, in some cases even crashing the importer with Out Of Memory errors. A bit of investigation discovered that a lot of projects have a lot of battle scripts for stuff like stealing or using special battle commands that end up being duplicated over and over in almost every party. They can’t be put in the Common Events section because they use script commands that are specific to battles, and RPG Maker has no Battle Common Events, so they have to be duplicated instead. So I wrote some code to scan the battle scripts for duplicates. When it finds duplicated scripts, it adds the script to a battle global script section and replaces the script page with a call to the global script. This cuts down the complexity of the battle scripts pretty significantly, since in most projects, a small number of duplicates account for 80-90% of all battle scripts.
And, of course, there’s the database migration. The project data is now stored in a Firebird database instead of the old project files. This enables the editor to retrieve information very quickly, and to be able to change the formats of various data types without having to re-run the importer. The editor is able to handle the database automatically; there’s no need to install or configure any sort of database server in order to make it work. You may notice that the importer takes a lot longer to run than it used to, because it’s got to make sure to get everything, prepare it, and upload it all to the database. But once that’s done, you shouldn’t need to do it again for any new release.
So, that’s the rundown on version 0.9.0. Check it out, and of course please let me know if you run into any bugs. Enjoy!