Maze Warp

From Make a Good Mega Man Level Contest
Jump to: navigation, search
Maze Warp
Animated GIF of the Maze Warp gimmick in action.
Animated GIF of the Maze Warp gimmick in action.
Information
In-Game Information
Type: Transport
Location(s): MaGMML2:
Cyber Man
Null and Void
MaGMML1R:
Be the Bigger Person
MaGMML: Episode Zero:
Defeat the Giant Spear Man!
Metropolitan Neapolitan
Stormy Spire
Code Landfill
Programmer(s): Sharb
MaGMML Game Appearances: MaGMML2
MaGMML1R
MaGMML: Episode Zero
Megamix Engine
Maze Warp object icon

The Maze Warp is a generic gimmick in the Make a Good Mega Man Level series. It is a device that can change the location of the camera and take Mega Man to another screen, allowing for the creation of infinitely-looping mazes and non-Euclidean level layouts.

Maze Warps first appeared in Make a Good Mega Man Level 2, and were created as a custom gimmick for the stage Cyber Man. They went on to be used in Null and Void, in Make a Good Mega Man Level Remastered for the remake of Be the Bigger Person, and in the Make a Good Mega Man Level: Episode Zero stages Defeat the Giant Spear Man!, Metropolitan Neapolitan, Stormy Spire, and Code Landfill.

Following MaGMML2, Maze Warps were included with the Megamix Engine as a devkit asset for Make a Good Mega Man Level 3 and Make a Good 48 Hour Mega Man Level.

Behavior

Maze Warps are an advanced object that can be difficult to set up. When placed in the upper-left corner of a screen, they will instantly take Mega Man and the camera to a new screen as specified in creation code. They will not work while a screen transition is occuring, and so draw any tiles at the destination to seamlessly make it look like the transition naturally leads to the destination. This often requires creating an empty "junk screen" that exists just for the Maze Warp.

Maze Warps have the following creation code variables:

  • camX - Determines the new x coordinate of the camera. This is intended to match the top-left corner of the destination screen.
  • camY - Determines the new y coordinate of the camera. Like camX, this is intended to match the destination's top-left corner.
  • tileCheckStart - The lowest number tile layer to check for.
  • tileCheckEnd - The highest number tile layer to check for. The distance between this and tileCheckStart should be kept as low as possible to avoid long room load times.
  • tileDistanceCheck - The distance between tiles to check; by default, this is set to 16.