Jump to content
Jet Set Willy & Manic Miner Community

MM Movement and Collision Detection explanation


selfdelmer

Recommended Posts

Please see the later replies below for a corrected version of the PDF

Hi All,

I've written a pdf that attempts to describe the original ZX Spectrum's Manic Miner movement and collision routines as written by Sir Matthew Smith.

I hope this will be useful for those brave coders that attempt to recreate Willy's movement. If the pseudo code shown is implemented correctly, it should result in perfect Willy movement, including conveyor movement logic. This is the approach I took to when writing my implementation for Game Maker 2 and I think it worked quite well. A shout out goes to the excellent Skoolkit.ca manic miner page here that describes each assembly code step.

A windows version of my Game Maker 2 version can be found here

Any questions or corrections, please let me know.

Regards,

SDelmer.

MM Movement and collision detection v01.pdf

Edited by selfdelmer
Link to comment
Share on other sites

This has been super helpful, and I've now been able to replicate the original MM mechanics. I really appreciate the time you took to put this doc together!

 

Regarding the movement mechanics of MM (and JSW), what are the best mechanics to use for a new game based on the originals?

MM had symmetrical movement mechanics, but had issues with entering wall blocks in certain jump situations.

JSW had non-symmetrical movement mechanics... moving right behaved like MM, but moving left disabled some wall detection to allow Willy to catch on the edge of ledges. The left movement avoided most of the 'entering wall block' situations (of the right movement), but the side-effect was he could walk through head height wall blocks. So pro's and con's existed for each movement direction.

It appears that Matthew Smith's solution was to simply try and avoid those situations, rather than rewrite the movement mechanics.

In 2018, I know IRF+NS rewrote the movement code to overcome most of these issues, but there is no skoolkit breakdown of those routines to assist.

Should I use the original mechanics (warts and all) to be faithful to the originals? MM mechanics for a MM clone, and JSW mechanics for a JSW clone, or new mechanics altogether? My concern is that someone unfamiliar with the original mechanics quirks, could play my game and interpret them as bad programming. Maybe I just need to avoid those situations like MS did?

Thanks.

Link to comment
Share on other sites

Hi SymbolShift,

Glad you found the document helpful, I hope others will also. My personal opinion would be to use the original mechanics warts and all. For me, if the movement is different it just feels like a totally different game. That isn't always a bad thing and if you get close to the original movement and also eradicate all bugs, then great.

Regards.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.