Archive for the ‘Development’ Category

Progress Journal: Menus

Monday, September 2nd, 2013

Wow, it’s been a while since the last one of these.

I’ve got a good excuse for some of that time.  My sister had a baby, and I was visiting with her and her husband.  But for the rest of it, I’ve just been working.  And I just finished a new TURBU build and put it up waiting on the Downloads page. (more…)

Progress Journal: You Shall Not Pass (unless you’re supposed to)

Thursday, July 25th, 2013

So at the end of the last post, I said that the two things I’d focus on next are getting glyphs to draw in message boxes, and fixing the timing issues I’d observed in the intro to Love And War.  Well, I made the glyphs draw.  The timing problem is going to be a bit trickier.  It turns out it’s related to another area where RPG Maker does something “magic”.

Basically, there are several places in the intro where it uses this pattern:

Image[1] = New Image (blah blah blah)
Show Screen (Fade In)

And what that does, if the screen is already shown, is fades the image in instead of displaying it all at once.  It creates the image, but doesn’t begin to display it before the fade operation starts, so you get a gradual transition.  I didn’t know about that trick when I was setting up the Transition code, so it tries to do the sensible thing and just do nothing if told to fade in while the screen is already visible.  It’ll take some extra work to get this right. (more…)

Progress Journal: Getting out into the world

Monday, July 22nd, 2013

(NOTE: Because of all the bugs I’ve been fixing lately, many of which can impact the editor as well as the game engine, I’ve built a new version of the installer.  Check it out on the Downloads page.)

Once I was able to make battles play through properly, I moved on to the next part of the game.  Lutine heads out into the world, a great deal of which is composed of small, single-screen maps that don’t scroll. (Kind of like the original Legend of Zelda.)  I walked around a while, and ran into some bizarre issues where characters could walk off one edge of the map and around to the opposite edge, but only in certain conditions. (more…)

Progress Journal: Messages and Inputs

Thursday, July 18th, 2013

When last we saw our heroine Lutine, she was able to enter battle, but not able to actually participate in it, because the custom battle system requited global events, which I hadn’t gotten around to adding support for in the script engine yet.  So I added the code to ensure that global events that were supposed to fire automatically (ie. not the ones that got invoked by the Call Event command) would actually begin as expected.

Now, pressing the Menu key was supposed to open a box on-screen for you to select various options.  But it didn’t show up when I pressed it.  Turns out there was a problem in the code that shows Images, so I fixed that.

Then I could pull up the menu, but trying to navigate it did bizarre things with the cursor.  Another script interpreter problem.  Fixed that.  Next!

Now I could navigate the menu, but the options spun by incredibly fast.  The Key Scan command in RPG Maker has two modes of operation, one where it waits for the user to press a valid key and one where it doesn’t.  What it doesn’t say anywhere is that if you’re in Wait mode and it gets called twice in a row, it will also wait for you to release any keys you were holding down before reading new ones.  (If you’re not in Wait mode, it doesn’t wait for you to release the key, which is how Zero Base is able to build a smooth-scrolling space shooter on top of the RPG Maker engine.)  So I implemented the Wait correctly and tried again.

Next up, Lutine has to select a plate and place it on the grid.  The Frozen World uses the Choice box to confirm your selection, asking a Yes/No question.  So I had to implement that, but it didn’t quite come out as clean as it does in RPG Maker.  In RM, if you put a Message Box immediately before an input box of some sort, and there are enough lines available, it will magically merge them into a single box that shows the message and then displays the input at the same time.  It’s able to do that by looking at the script at a very high level, which isn’t possible in the TURBU script engine.  So instead, I changed the project importer code to do the merging when such a high-level view is still available, before building the script code.

Once I got the Choice box working, I went to work on the Input Number box, which The Frozen World uses instead of the normal inventory system, to select items to use.  It took some time to get all the details worked out there, but I’ve got it working now.

The last thing that was broken with the custom battle system was that the background image didn’t show up.  I fixed that this morning, and it’s all checked in to source control.  Now Lutine is able to fight the enemies around her, and I’m able to progress further in the storyline.

Once I’ve got things to the point where I’m able to complete The Frozen World, I’ll build a new TURBU release.  For now, though, compatibility’s getting a lot better, and we’re getting closer and closer to a fully-functional game engine.

Progress journal: a clear goal

Friday, July 5th, 2013

My focus right now is on getting the script system implemented.  I just looked over the code, and I’ve got about 80% of script commands implemented.  That sounds pretty good, until you try to actually run something.  Then it becomes painfully clear that an 80% success rate is a 20% failure rate!  And with the number of scripts running in your typical RPG Maker project, each of them dozens or even hundreds of lines long, that can screw things up pretty quickly.

Of course, some script commands are more important than others.  Message Box is used all the time in pretty much every RPG Maker project ever, for example, but I think I’ve only ever seen Play Movie used once.  So if I’m going to work on getting things to work, I should probably prioritize by what’s most important to actual games.  And to do that… I’m playing an actual game.

I decided on The Frozen World, because it’s a fun, technically involved game that will give the engine a good workout, but it doesn’t use two features that will be very tricky to get right: the built-in menu system, and the built-in battle system. (more…)

Finally, some progress!

Sunday, June 30th, 2013

About a year and a half ago, I ran into a bug that I couldn’t track down.  And I got a little bit discouraged and eventually just stopped working on TURBU and moved to a different project.  But in the last few months, I’ve been coming back to work on TURBU, getting a lot of issues ironed out and adding more support for script commands and game features.  And I’ve just uploaded a new build.  The editor isn’t that different, but the turbu_player.exe engine has been greatly enhanced.

I’ve got a technical demo almost ready to show that the engine is capable of playing real projects imported from RPG Maker.  I should have it up within a few days, if not sooner.  But for now, check out the new build on the Downloads page.

0.9.3: Minor project importer fix

Thursday, October 27th, 2011

If you tried to import a project on version 0.9.3, you may have noticed that the right edge of a lot of the tile palette came out blank.  Turns out this was a bug in SDL.  (A couple months ago someone checked in a fix for one bug, but it ended up breaking something else.)  I’ve patched the code and updated the 0.9.3 installer.

This error shouldn’t affect anything in TURBU other than project imports, so if you already have 0.9.3 and you’re not importing any projects, you probably don’t need to re-download and reinstall it.

Bugfix version 0.9.3 is out

Tuesday, October 25th, 2011

As usual, I come out with a new release, and get a bunch of bug reports right away.  So I’ve been working on fixing them for the last couple weeks, and now I’ve got version 0.9.3 ready on the Downloads page. (more…)

Update 0.9.2 is out.

Sunday, October 9th, 2011

Well, that took longer than I thought it would.  (Story of my life!)  And unfortunately, I was wrong about the last release when I said that re-importing of existing projects shouldn’t have to happen any more.  As I’ve been working on getting scripting support set up, I found several cases where the importer was getting things wrong in the event code, sometimes corrupting them badly enough that data was lost and could not be recovered simply by looking at the output.

(more…)

Update coming this week

Tuesday, September 27th, 2011

I’ve been really busy the last couple months, between work, a programming conference, and personal stuff, but I’ve found some time to work on TURBU, particularly the script code.

I’ve been torture-testing the script compiler by generating very large scripts from projects that use a lot of scripting and seeing how it handles them.  It’s not ready to see daylight just yet, but the scripting system will definitely be in the next update.  For now, though, there will be a few more event editors, some bugfixes, and an all new music/sound system.

The current system is based on SDL_Mixer, and it has a lot of problems because of limitations in the way SDL_Mixer is designed.  I can’t talk about the new one quite yet, because it’s based on someone else’s code that isn’t quite ready for release, but it will be able to do everything RPG Maker’s audio player can do, plus a few new features.  The problems that the current version is having with MIDIs and MP3s will be gone, and there will be proper support for Tempo and Balance changes for all audio formats.

As soon as the new player code is ready, I’ll get the next release set up.  And I’m expecting that later this week…