(Figured I'd post this here too, incase anyone finds it interesting. Posted from http://acmlm.kafuka.org
Programming Megaman's basic movements alone (not including the charge shot and slide) is no easy task. I found that out when I programmed my Megaman engine in GameMaker, and then tried to make another engine in GM (but this time with just basic movements), which I abandoned, and moved over to C++. As I mentioned in a thread I made in the computing sub-forum, GM is okay for top-down games, but when it comes to platform games, it is horrible, because GM doesn't handle collision programming very well.
Anyway, regardless of what you use to program, when programming Megaman's movements, you have to take into account every little thing. But there was one thing that I felt that the programmers of the Megaman games might not have taken into account. So, the only way to prove it was to test it for myself.
This is a technical bug I found in Megaman 1, and for all I know, probably exists in the other MM games as well.
It has to do with Megaman climbing. When he reaches the top of the ladder, all he has to do is just go over it a little bit, and then Megaman is automatically on top of the ladder (standing). When he climbs down the ladder from the top (from the standing position), he is only placed at a certain y position.
Normally, this doesn't pose a problem.
But what the programmers at Capcom didn't take into account, is if there was a solid object two places above the ladder. Megaman only goes to a certain point, and then stands on the ladder.
He can actually get stuck in the wall, because you're not supposed to have that solid there, two spaces above the ladder top. That free space is meant for Megaman to come out of ladder mode, and back into standard mode.
I suspected that this bug might be present, because I realized that Megaman's climbing sprites only go so far past the ladder-top. I would have never even noticed this if I didn't think about how Megaman's movement mechanics worked, in trying to code basic Megaman movement. So I just found this little bug interesting.
It just proves that no one is perfect, even professional game developers.
The thing is also, I have OCD. So when I program, I don't like having any bugs. In my public Megaman engine I released for GM, that bug that is present in MM1 is not present in my engine, because I checked for that (believe it or not, the thought didn't even occur to me at the time to check the MM games for this bug).
Now, I don't know that Megaman can necessarily get permanently stuck, since just moving the directional pad, he automatically slides all the way to the right. I just wanted to point it out that it exists. The reason why it is important, is because it is something to take into account if you are making new levels.
I didn't check MM3 yet, but I'm willing to bet it exists in that game as well. Let's say you want to make a little maze/puzzle route. You have to climb all the way up to the ladder, to shoot the question mark box to reveal the item. Then you have to climb up else where, and then because the question mark box is no longer there, you can slide through to get the item, and go by.
Another interesting thought, while I am at it, is that you can actually get stuck in a slide, if you have a wall or obstacle there, and you don't have at least two spaces horizontally next to each other, above you to get out of the slide.
In my opinion, I feel that the level design shouldn't point out bugs in your character's movement code. Everything should be taken into account. This ladder glitch, and that slide glitch. If you're getting stuck, then it's not the fault of the level itself, but the fault of the programming of the character.
By all means, if anyone wants to test if this bug exists in other MM games, go ahead. I'm too tired at the moment to check the other games, because I'd have to open up the level editors, and change the blocks, and the open up the ROMs. Maybe tomorrow.