Recently, I started from scratch to make the system a lot more efficient. I succeeded, and fixed virtually every movement bug I've ever had to deal with in the progress. In case you don't know, Megaman Files uses pixel movement. Not only that, but the plan is for the game to be multiplayer. I narrowed it down to 40 FPS, which I'm hoping should run well still (I'm basing this on the fact that pixel movement now runs well over a server, and that 1/4 tick_lag has also run well over a server I saw it used on).
Now, you shouldn't be able to break the movement at all with any button mashing or anything. Overall, it's the best and most efficient pixel movement system I've made. After I made it, though, I worked on the camera control. Most Megaman games use a system in which the camera only moves left and right. The camera will relocate up and down when you fall or climb a ladder. This means that jumping can't move your camera. I worked out this system, and it wasn't all that hard. I also made it so that I can control when the camera starts and stops moving at certain points. What I did after that ended up being a little more difficult.
While playing through a Megaman game, I noticed how the backgrounds move with the player. I thought I should give that a shot in Megaman Files. In this case, it's a bunch of clouds that move with your camera as you move. The clouds look still while the platforms move past you. It really adds a lot to the game. How to get it to work took a little bit of ingenuity, though.
I started with screen objects. Seemed like the best and easiest option. Only problem, they lagged the game a lot. Especially the big icons, and I can only imagine what would happen if a server full of people was spawning these huge screen objects everywhere. So, I decided to go with images. Using them, they have absolutely no strain on the server. However, they follow whatever they're attached to. Meaning, even though the camera doesn't move when I jump, the images do. Therefore, they aren't stationary on your screen like screen objects would be. This caused me to try something different.
In the end, I had to spawn a single object on the user's position. This object moves with the user left and right, but I don't let it move up and down with the user. When I make the object, I make the images and output the images to the user from that object. The end result is a background that moves with you in a situation where you can't move the camera up or down and you're using pixel movement. And it works out great!
I uploaded a short little demo of everything I described above.
But first, here are some screenshots to entice you!
The controls are:
Arrow keys to move
S to jump
Download the demo here: CLICK ME
Enjoy!