Hi
I’m @arrogantgamer , and I’m going to call myself the “gameplay programmer”. @nomoon does all the important coding, like making controllers, sound, and networked multiplayer work right. I do stuff like make Rock jump… and shoot! Jump n’ shoot.
One of our goals in building Rock/Opera was to have it match Megaman X as closely as possible. Most recently I added a system for adding tiny decorations. I like to program “good”, but also fast, so in this case I made a little constructor that creates sort of generic “decoration” constructors. Yes, a constructor constructor. That’s how I roll. Rock is controlled by a big finite state-machine, and the FSM is in charge of adding these decorations. For example, as long as Rock is in the “dashing” state, the FSM is creating these little smoke trails. So, when Rock slides down a wall, or dashes through the air, she leaves a rad trail of smoke. Similarly, when she dashes, she makes sparks.
The decorations are in charge of their own lifecycles: so smoke, for example, just fades away after a few frames. The spark trail is a little more compllicated: if you dust off your ZSNES and run Megaman X at a low framerate, you’ll see that X’s dash-sparks are a four frame animation that aborts as soon as he stops dashing. So in our case, the decoration is aware of whether Rock is still dashing, and destroys itself if she isn’t. You can barely see this in the video I’ve provided, but it’s there.
The interesting thing for me, with these decorations, is that they are versatile enough to allow for all kinds of other neat play. The particle effect when Rock charges up her shot will probably be a decoration too. I’m currently refactoring the FSM so that we will be able to include multiple weapons (by creating an arsenal of FSMs and swapping them out), and because the decorations are tied to the FSMs we could add all kinds of other neat stuff later on. I’m kind of planning to use the Rock/Opera code base to make a metroidvania later on as a kind of biography of the life of a good friend. This friend, James, is an ageless wizard, so the game will probably need a lot of crazy decorations!
Here’s a video, demonstrating these tertiary animations. No art yet, just flashy dashing!
Thanks,
z.
0 comments