A revelation

The update should be ready tomorrow. After that, I’ll work on adding RM2K3 support so the users of that fine engine can see what the fuss is all about. But once that’s finished, work on the Map Viewer in its current form will cease.

I’ve had a minor revelation, an epiphany of sorts. For as much as working on TURBU has been an exhilarating experience and a source of a great deal of personal growth to me as a programmer, the end product has been somewhat less than what I’d hoped for. I started writing it when I barely knew what I was doing, and as I hacked my way through the project from the ground up, the code grew into a big tangled mess.

RPG Maker will load any of its maps and begin to display them instantly. TURBU won’t, a fact which was painfully underscored as I was working on getting multiple maps to work together, and my solution just brought up even more technical problems. As I was thinking this evening about possible ways to fix that, a beautifully elegant solution came to me, the sort of thing I’d have never thought of a year ago when I first started writing code for TURBU. I can represent the map in memory in a completely different way, which will cut way back on memory consumption and CPU usage, reduce loading speed by a factor of anywhere from 2 to 500, depending on the size of the map, and incidentally make implementing map wraparounds a snap.

Unfortunately, this all requires representing the map in memory in a completely different way. That means either tearing out the guts of the map engine and spending months tinkering, or rebuilding the whole thing from the ground up. Since it’s needed to be rebuilt from the ground up for a long time now anyway, (the current graphics framework is DirectX only, which doesn’t mesh with my cross-platform design goals,) now is the time to start.

What this means is, after the next 2 versions of the Map Viewer, you won’t be seeing much for a while. Most notably, it’ll never have a battle engine developed for the current version. I’m going to start rewriting the whole thing under SDL, which will be slow going as the first step will be to develop my own custom graphics framework. (There’s a sprite engine for SDL, but it’s written in a different programming language and it doesn’t do some of the things I need anyway.) But when it’s done, what emerges will be a leaner, meaner TURBU engine, the 1.0 version at long last.

Comments are closed.