Devlog #5
It’s been a while since the last devlog. Way too long a while. Anyway, this devlog I wanted to take some time to talk about characters! Yes, playable characters. I’m not revealing any this time around, I prefer doing that with videos.
Much like with movement, I decided to look at playable characters from their core. As everyone knows, we got Mega Man in first and then others (including Proto Man and….. nope, not telling).
We just built Mega Man from the ground up into the one and only playable character at first for two reasons, A) we just kinda winged it. It’s not like there’s a “MMBN movement tutorial” around and B) we hadn’t even planned on having multiple characters when this project originally started.
When I decided to add more characters I had to make a framework so I could add more characters later with relative ease instead of having to build them from the ground up AND for a change to mega man to affect all navis and not just him.
Here’s a diagram detailing all of Mega Man’s features when he was developed.

Basically, it was all stuck inside one big glob of code. This is BAD. Why is this bad? Because there are things that ALL navis have in common and things that each navi does separately. You have to figure out a way to have the common stuff be reusable or else you’ll be making the same stuff over and over!
Let’s go back to Mega Man’s features and mark what every navi shares and what’s unique about every navi… (note, animations and the model are obviously different for every navi but if you say “play animation ATTACK” and you keep the name for the animation the same on every character you don’t have to alter it in code. It’ll just play ATTACK on whatever model is currently being used.)

Movement, chip usage, taking damage, state management (invisibility, invincibility etc.) and misc. logic (can’t move on occupied panels, tracking for tracking attacks and so forth) are all shared between all navis in the exact same way.
Buster attacks (and charge shot), the way the arm morphs into a sword and buster and for chip attacks is all different and will need to be interpreted differently per navi. So how that will work is through layers. There will be a base that all navis share and then on top of that there will be code that defines what every navi does differently! So two layers. Let’s illustrate those layers.

The arrow is meant to illustrate that one flows to the other. As in, each navi has the same “Navi” component but each navi has its own “custom” component. This means name (which also gives the name of the image for the logo) but also custom code for charge attacks and other passive traits.
Arm morph is especially an interesting one because not all navis change their arm the same way, obviously. A navi like Mega Man has a separate neutral, buster and sword mode. But Protoman’s neutral stance has his sword out and he never shows his hands unless he’s in his PET and not in-battle! The arms however are still modeled because… why not?
This system means that if I want to change Proto Man’s charge shot only Proto Man will have this change in gameplay, however if I want to change the way Mega Man moves around the field (increasing the delay between movements or adding graphical effects) ALL navis will get this effect without any added effort!
And that’s how adding new navis works after the implementation of this system, all I need is the model, the animations and the code for their charge shot and arm morphing and some other minute things (the 3D location of where chip appendages (think vulcan) have to spawn to attach to their arms properly). So you’ll be seeing more playable navis as time goes on…
Now, I said I wasn’t going to reveal a navi this time and … I lied! Consider it a reward for sticking with this whole post.








