• Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Irina + DynRPG plugins

I made some decent progress this month, although some of it was unplanned. I started out with the primary goal of implementing the playable character Irina. Her special ability would be a relatively easy one to make, and with her and Noab added to the game, we'd have one character of each element. :) Should make for a good point to release a new demo, right?

Irina's Paint ability was relatively easy to implement, although I did run into a few snags along the way. Most notably, I had to rethink how it would be animated. Originally I'd envisioned Irina going up to the target, much like with a weapon attack animation, waving her paintbrush at the air over the target, and bringing the status symbol for the condition she's attempting to inflict into being. However, there's a technical nuance that made this impractical: battle animations that involve a hero directly interacting with a target are aligned with the bottom of the target sprite, so that it looks like they're standing on the same ground, whereas battle animations for status effects are aligned with the top of the target sprite, since they're speech balloons that should appear above. I couldn't do both in a single animation. The solution I eventually settled on was to make an animation that Irina does from her regular position, creating the status symbol painting near herself and then wafting it toward the enemies in general. The targeted enemy then gets that symbol briefly shown over themself as a natural consequence of being inflicted with it (or shows the Miss symbol instead if the attack failed).

Irina's regular skills are mostly water-themed magic spells, so I was able to make heavy use of the RTP battle sprites and animations to create them. Some of them are almost straight uses of the original animations, merely shrinking the sprites and pulling them closer together to match the smaller-than-typical-for-RPG-Maker enemy sprites I'm using in this game. Others were a bit more original, like blowing up the wave animation to maximum size and having it gently move up from the bottom of the screen for the skill Waterlog. The RTP animations even motivated me to rename one of Irina's skills from Water Blast to Bubble Burst, simply so that I could use one animation for that and save another one for use in Fallon's Cold Splash skill. ;)

While I was working on the battle animations I was reminded of the necessity of making "reflected" versions of some of them. Since my highly custom battle system does pretty much everything through scripts, including battle animations, any battle animation that has any noticable left/right directionality and could be reflected will need a separate version, because RPG Maker 2003 doesn't allow scripters to access its built-in mirroring capability. ...BUT CAN WE MAKE IT DO THAT? 8o After a little investigation, I determined that DynRPG does have access to the data flag which determines whether a given battle animation is mirrored. So I set about making a plugin to give scripters the ability to make use of that. It was a little trickier than I'd first envisioned; DynRPG doesn't have a callback to alert the plugin when a battle animation is starting, so I had to check every frame for whether an animation is being played and keep careful track of when one starts and ends. Then I noticed the first frame of a given animation wasn't getting mirrored, so I had to switch to using the onDrawBattler callback instead of the onFrame callback. There was also some difficulty with frames occasionally being skipped which I had to account for. x.x But in the end I cranked out the DynAnimationMirror plugin, and I expect it'll save me a good amount of time in the long run.

So, I got Irina set up, and it was looking like I might actually be able to release a new demo by the end of the month. :D But since I now had more characters than would fit in a party, I needed a new system: a way for the player to choose which characters they use in the quest (I was using hard-coded switches for my own testing). So I added a new map where the player can pick up little markers and place them on the heroes they want to use. That was also a little trickier than it first appeared -- what happens when the player tries to place a marker on a hero that already has a marker, for example? But I finally got that working properly...yesterday. I could have tried to throw together a demo release today before making this post, but I probably shouldn't rush it...especially since I ran into an actual game-crashing bug while testing this morning. X) And the new equipment-deterioration system could make the game kinda unplayable since there's currently not much way to acquire new weapons. e.ea

Oh, and I also updated the DynParams plugin with a new comment command that lists the currently waiting parameters, because I introduced a new bug while working on the hero-choosing system that turned out to be caused by unused parameters. Busy month.