I have a basic but thoughtful custom platform engine worked out here. Eventually, I want to add things like hanging on ledges, water, smooth slopes, moving platforms, crawling (would involve the detectors being redrawn) etc., but first, I want to work out the issues that are already apparent.
Some of the things I'm hoping to fix are:
- The character sinks too far into the floor, and for a split-second we see the character pixels deep in the floor
- It's difficult to jump onto ledges that have only one "blocks"' worth of clearance space (hopefully, though, this will be circumvented with ledge hanging/pulling)
- It may just be my computer, but sometimes when I first initialize it, there's a bit of lag
- There are some issues with landing, particularly when the player lands on a sharp corner (perhaps the left and right detectors just need to be edited or moved in)
Some things that are going well for this:
- Currently uses no extensions, just MMF2's fast loops
- The player has horizontal momentum when they jump, thus preventing players from zipping left and right mid-air (though, for the sake of playability, it is possible to alter your direction, you simply won't pick up a lot of speed)
- In addition, when the player lands after a jump with horizontal momentum, they'll take a few steps by default
- The player can tell how long he's been falling and has a different animation when he is falling great distances
- Controlled jump heights - no timed events!
- Horizontal and vertical motion are stored in the player's Alterable Values
- It will be very simple to add springboards, horizontal and vertical windchutes, etc.
- Support for active objects that act as obstacles
Anything anyone can do to help iron out some of the bugs is greatly appreciated. I only ask that you do not take the graphics, but you will get credit when the game sees the light of day. In addition, I want to keep the exact system I have in place in which horizontal and vertical velocity/speed are stored in the player's alterable values, as this will help me add all sorts of features later.
The code is relatively organized and commented.
Oh, yeah. Anyone who wants to learn from this source can do so. There's a lot of good things in there for beginners.