I’ve been doing a bit of work with the Move command lately. One of the challenges of building a real script engine into a system that’s supposed to behave like RPG Maker is finding a way to translate all the event commands into scripts. Most of them are easy, but some are kind of challenging, like the Move command. It represents each move operation as a number, unless it’s one of the commands that takes parameters, like “Play Sound” or “Switch On”, in which case things get more complicated. But one of my goals for the script system is to make each command something that can be written and understood in a normal script. You can’t do that with a string of numbers.
I’d just barely released 0.9.0 when DJC from the Everlong project sent me a handful of bug reports about various things with music playing and script editing being broken. The script stuff was fairly straightforward, but the music wasn’t. The problems were showing up on his end, but not on mine. But after a few days of coordinating back and forth and debugging with him, I found the problems with the music playing code and managed to fix most of them.
There’s one problem. MP3s won’t play right. There are some pretty serious compatibility problems with the MP3 library I’m using, problems I can’t fix. I’ve reported the issues to the maintainer and he said he’ll look at them pretty soon, but until they get fixed, I’ve disabled MP3 support in TURBU to prevent crashes and memory corruption errors. Hopefully I’ll be able to re-enable it soon. But the other music types are all working fine, so go ahead and grab the installer from the Downloads page.
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.
OK, gotta apologize here. I thought I could have all the necessary work for the database update done this week. But it turns out making sure that you’ll never need to run the importer again requires a lot of attention to details, and I’ve been chasing them down all week, and now it’s past my bedtime on the last night of the week and tit’s not quite finished yet. But all the major stuff is done now. I should have the update ready by Monday evening.
I’ve been really busy with work in the last couple months, but I’ve found some time to work on TURBU as well. The next one’s almost ready, and should be out sometime this week. I’m still putting the finishing touches on it, though.
I’ve added a bunch of new Event Builder editors, plus music-playing capabilities, but probably the biggest change is to the project database. I’m changing the storage mechanism from the old, built-in file format to a Firebird database. (Don’t worry; you won’t need to set up a database server on your system or anything scary like that. Firebird’s got an “embedded mode” that can run a local database file without needing a server.)
This has several advantages. First, the load time at the start of the program will be much faster, since I don’t have to read through the entire database file to find the stuff that the program needs, the way the current system does. Second, since the database has several checks it can do to make sure your data is good, setting this up has helped me find and fix a bunch of bugs. And third, the big one:
NO MORE RE-IMPORTS WITH EVERY NEW VERSION!
I know some of you have really big projects, and running the importer every time a new version comes out can be painful. It had to be done to accommodate new data or new formats, but with a real database, changing the format can be done without wiping out and rebuilding all the data, so in the future when you get a new version and things have changed, it’ll go to open your project database, see that its format is outdated, and update it for you automatically. This also means that you’ll be free to actually do some serious work with the TURBU editor, since you know your changes won’t be wiped out in the next release.
I’ve still got a few minor details to work out, but the new version should be up within a few days.
I took a few months off from working on TURBU directly in order to build some stuff that will greatly improve the scripting system, once I get it implemented. But now I’m back on track and I’ve uploaded a new release. It implements several new editors, fixes a few bugs, and makes projects load a little bit faster by moving some of the work into the background.
This means that you don’t have to sit and stare at a non-responsive user interface and wait for the entire project database to load into memory when you hit F8 or go to edit a map object; the editor will automatically take care of that in the background when you first open the project. Unfortunately, until the background loading is complete, you won’t be able to use the database or map object editors, but this will get you up and running faster overall, and it adds a progress bar at the bottom of the editor so you can see how far along it is.
I’ve made some changes to the import code and to the database, so previously imported projects are no longer valid and will need to be re-imported, but you probably expected that anyway by now, right?
Changes since 0.8.7:
- Moved project database loading to an automatic background task
- Fixed an import error when converting an event script containing a Full Heal command
- Added support for global event scripts in the database editor
- Added support for adding new lines to an event script
- Changed the project importer so that a successful import will automatically load the imported project into the editor
- Fixed script generation errors for integer variables, and for the Teleport, Change Experience, and Keyboard Input commands
- Fixed a bug on the Switch editor where sometimes all radio buttons could be deselected
- Added editor support for several new script commands
- Fixed a script conversion bug where the contents of the ELSE clause on conditional statements got put outside the ELSE clause (on the level above it) instead of inside
- Fixed a couple graphical problems related to resizing
More to come soon!
Version 0.8.7 is here. Hopefully it’ll work right for everyone. I fixed a handful of bugs and added a new feature: Map zooming. There’s a trackbar at the top of the screen that wasn’t there before. Dragging it will change the map’s zoom level so you can zoom in and see more details on a local area, or zoom way out to see a lot of a large map. Read the rest of this entry »
I thought I had the next update all ready. It fixes several bugs and adds a new feature: the ability to zoom the editor window in and out, like you can in RPG Maker. Then I tested one last thing and all the zoom code fell apart. It’s a lot more complicated than I thought it would be, especially because I already implemented resizing and the way it’s done doesn’t work well with zoom.
I’ll probably have to rip all of the resize code out and replace it sometime tomorrow. The new update should be ready by tomorrow evening.
There’s a new update up at the Downloads page. 0.8.6 is a bugfix release for 0.8.5, fixing several issues. Read the rest of this entry »
Well, no sooner had I posted the last update when I got a few emails with a bunch of bug reports. I’ve been working on them and got most of it stable, but there’s still a nasty issue left where the video memory can get corrupted and turn tiles all white with no warning. As soon as I manage to track down what’s causing that and patch it, I’ll make a new build. Hopefully it’ll be sometime tomorrow morning.