22 users online: AGRMaster,  Ahrion,  Anorakun, Courage2006, Cristian Cardoso, Ferlow, flips_bad, gcrackaaa, Golden Yoshi, Guleyan112, h.carrell, JezJitzu, Jukeboxi_, Kid Power Games, NewPointless, OEO6,  sincx, StickyChannel92,  Tahixham,  Telinc1, VLSkoot, XxCharlesJustRobloxR - Guests: 401 - Bots: 162
Users: 65,083 (2,304 active)
Latest user: BITBAWID

Game Design for Kaizo Creators

Lunar MagicLevel Design (Kaizo)

Game Design for Kaizo Creators

I've noticed a demand recently for guides on making Kaizo hacks. So I will take a shot at this.

This is not an objective guide on the technical aspects of level design, like how to use Lunar Magic, how to place objects, etc. You can find copious guides elsewhere from creators that are much more knowledgeable than me.

It is also not a step-by-step guide on reproducing Kaizo formulas like Ultra Stars, Skytrees, shelljumps, Chuck gates, etc.

This is about game design. I'll be exploring abstract concepts like gameplay, information, interactability, choice, audience, color, and intention.

These are frameworks and processes for being truly unique and realizing your personal vision. It is meant to provoke thought on subjective issues that can come up in the process of designing, testing, and releasing a hack. Deciding on these things can save you from learning them the hard way on release.

First, a short introduction on what constitutes Kaizo is in order. Kaizo is a style of level design where the intended way to reach the goal is very strict. Often this "way" is extremely specific, down to the interactions with individual sprites or platforms. It is the lack of freedom that makes a level Kaizo.

Some hallmarks of Kaizo levels are:

+All power-ups are essential to progress (or in some cases, must be avoided to progress)

+The path to each exit is linear.

+Enemies are usually "dealt with" in a specific way.

Many hacks fail or go through frequent release cycles because of a lack of familiarity with common patches. A simple hex edit can change a problematic level to a great one. Please consider these patches, but also understand thoroughly what they do. Research them to see if there are issues with compatibility.

+Block Duplication Fix

+Double Spinjump Antifail

+Flight Spin Fix

+Frame Rule Patch

; Checks for sprite interaction every single frame (as opposed to every other frame)
org $02A0B2    ; fireball-sprite
    db $00

org $01A7EF    ; mario-sprite
    db $00

+Free Vertical Scroll

	LDA #$80
	STA $7E1406

+Goodbye Football RNG

+Infinite Lives

org $00D0D8 : NOP #3

+Instant Retry

+Level Constrain

+No Screen Scroll

+ON/OFF Double Hit fix

+Rope Fix

+Slope Pass Glitch Fix

+Spinjump Carry fix

+Sprite Ceiling Fix

+Time Up Fix

+Walljump/Note Block Glitch Fix

+Yoshi Springboard Fix

Above: Bolop is running over a room in the daunting world 8 gauntlet of Hyper 6. The underrated "Level Constrain" patch will prevent players from going over or under a level that is blocked off with impassable tiles. (Note that Hyper 6 isn't Kaizo)

A level that can be cheesed can potentially bypass all of the intended gameplay for a level. Thoroughly playtest a level in the following ways, and don't count on other people to go over your levels with a fine tooth comb.

+Go as fast and slow as possible.

+Go as far right and left as possible on every obstacle, to see if it affects spawning or camera movement.

+Try to stall on sprites or layer 2 platforms to see if it breaks anything.

+Try to skip every jump or platform.

+Look for possibilities with all items, or for carrying them to different translevels.

+Try to go backwards to see if it can respawn enemies that can break the intended movement through a level.

+Power-ups. When you include power-ups or Yoshi, make sure they can't be kept past an intended point or used in unintended ways to bypass obstacles.

+Softlocks. Enable start-select in every level just in case.

Above: A player is about to eat a disco shell with a Yoshi that shouldn't be in the level. The famous cheese in "Heaven" of "Kaizo 3" could have been easily avoided if Yoshi counter break was readily available. It now comes packaged with instant retry.

Many designers struggle with "writer's block" and don't know how to be creative. Here are some techniques to jumpstart your creative process.

+Get an inspiration. It's a common myth that a creator that has any similarity to another creator has failed. No one can create something out of nothing. So find an influence or inspiration, but don't copy anything outright. Because why wouldn't players just play the original?

+Limit yourself. Having infinite resources doesn't expand your creativity. It impairs it. While SMW is already a very limited game, if you're struggling to be different, you can impose additional limitations. Examples would be a level that can be played normally or with P-speed, a level that only uses 1 enemy sprite, etc.

+Don't go to extremes. Creation isn't a contest to be the most creative. Creativity is a process that happens between the creator and the game, and so no gameplay or fun is actually involved. It should be a tool that is used to create something new and interesting for the player. Sacrificing gameplay for uniqueness will lead to an unsatisfying experience.

+Combine two formulas in a unique way. You've seen bubble jumps. You've seen shell levels. Put shells in the bubbles. Classic and approachable, but totally new and ripe to exploit with never-before-seen setups.

Literally everyone has a different design process, but here are some things that help me:

+If you begin a level by setting out all the objects and sprites that you want to or might use, it makes it easier to create a custom palette. Once everything is spread out in a level, and you try to edit the palette, you are going to change the colors of things that are offscreen, making it very difficult to make colors that don't clash.

+Work within the limitations you have created. For me, this is mostly looking at the list of sprites in the sprite header I used, and thinking about what they do. Remember that choosing a sprite header, sprite memory setting, and working within the confines of the SMW engine are already very limiting.

+Another effective process for Kaizo creators is to find some kind of interaction, glitch, or tech, and force the player to execute it. Just by varying different elements around this one interaction, a strongly-themed and unique level can come about.

Above: Foreground tiles for a grassland level are in a grid for easy palette comparison.

A well-received hack is created by someone that knows their target audience. The SMW community is made up of different audiences that have different expectations for level design. Kaizo players, in particular, will expect that certain tiles act in the same way that they do in ROM Hack Races levels or popular hacks. You can't totally control a player's expectations, but you can know the conventions of Kaizo level design, like popular 1F0 tiles, death blocks, castle placement, indicators, etc.

Nevertheless, a creator that is absorbed with what someone else thinks and makes something they themselves would hate, is doomed to fail. While concessions have to be made sometimes, being authentic is usually the best policy in level design. If you create something that you think you would genuinely enjoy, if you were to play it blind, then someone will enjoy it.

Above: A snippet of some of the conventions that come with the ROM Hack Races base ROM. Some conventions are more common than others.

Fun will always be subjective. For example, some people like precision, and some people don't. However, there is one thing that we can say about fun that will help us clarify what our intentions are for a level: Fun is an interaction between the player and the game.

So there are some things we can list that have a diminished potential for fun:

+An elaborate setup that is mostly the level interacting with itself. If the player has no input, there is less potential for fun.

+Obscure, especially non-vanilla tech, that requires knowledge outside of your hack. This requires you to know your audience and what kind of tech can be expected. Most Kaizo players can shelljump, but how many people know double jumps don't work when falling off of a wall run when using the standard airjump.asm? Avoid setups that might lead to confusion on issues like this.

Since fun is an interaction between the player and the game, we can break this generalization down into categories.

+Gameplay, especially the inputs required to progress through a level

+Aesthetics, appreciation for graphics and music

+Puzzles, deciphering setups or using game objects in unconventional ways to progress

Other undefinable qualities that intersect with fun:

+Variety: doing the same thing over and over is tedious. Put different types of levels in your hack. Change up the environment. Include different physics like water or cape. Use different sprites.

+Difficulty balance: if a section is too long, or it has one trick that is way tougher than all other tricks, then players will just be going through the motions and won't have fun.

+Jank: if the player is punished because of something outside their control, they are basically removed from the gameplay.

+Blindness: if the player doesn't have any reasonable chance to clutch something out, then they are removed from the gameplay. This is expected to an extent in most Kaizo hacks, but remember that a creator can't play their own hack blind. So it's best to err on the side of caution here.

+Flow: waiting is not gameplay. Level flow should be consistent, never too slow, and every wait longer than ~1 second should be optional.

+Intuitiveness: if the player can't progress and they don't know why, they will get frustrated.

+Satisfaction: don't just end a level

+Interactability: use coins, animations, or sprites to respond to a player's choices

+Length: Don't make your players crawl across the finish line. Always leave them wanting more.

Above: A long fall between spikes is shown from the side beforehand. I also included indicator coins because I like the responsiveness and interactability of coins.

Now that I've talked in-depth about "fun," thus ruining it, let me go a little bit more in-depth on some of the things I touched on.


There are different kinds of difficulty that a creator should be aware of.

+Precision: The inputs required must be made at a certain time, with very little room for error. A general rule of thumb is to only make something as precise as it needs to be to convey what you're trying to express (credit: Anon). For example, if you want the player to jump from a cloud to another cloud, don't make it so loose that you can skip the cloud and jump onto the next platform. However, don't make it tighter than it needs to be.

That doesn't mean that high levels of precision are bad or wrong. It's interesting to force different jump arcs or techniques that are not normally viable in a typical level.

+Complexity: it takes a player time to process what's demanded of them. If a level has multiple moving parts, has weird physics, or obscure glitch knowledge, multiply this time exponentially.

+Controller dexterity: shell levels, among other types of levels, can be pretty forgiving in terms of precision, but require a lot of dexterity to make the inputs in time.


Beware of "creators' bias." Designing a level can take a long time, and for a Kaizo level, it involves hours of playtesting. Throughout this process, it's natural for a creator to get really good at the level. They also know exactly what to do and what to expect, which makes it even easier. Sometimes creators are surprised that their "intermediate hack" is one of the hardest hacks ever made.

That's not a call-out. It happens all the time.


Jank basically means "broken." Most people agree that jank is bad, but not everyone agrees what it is. One thing that will certainly contribute to jank is frame variance. One way I measure frame variance is by making a bad TAS that barely survives, then copying and pasting the inputs to another frame and seeing if I die. This will reveal that some of the jankiest game elements are: slopes, ice, and item swimming. P speed is also a bit jank.

Patch the frame rule! (code above)


Different kinds of level flows include:

+Cycle-based obstacles: you can wait for the next cycle indefinitely.

+Fast-paced: you always have to go right away, or you cannot win.

+Static obstacles: muncher-based platforming doesn't hurry the player and is a welcome relief for the player's hands and sanity.


+Horizontal level (no vertical scroll): This is generally the least problematic type of level, but it would be boring if that was all you made, right?

+2 screen high horizontal level: This is a horizontal level with vertical scroll enabled. You have to be more diligent in playtesting here. Imagine that you don't know where to jump until you see where you are landing. Also try to go fast and slow, high and low to see if the camera breaks. Jumping on the first frame that you land on a platform can cause the camera to stall. This is not uncommon for many skilled players. You can also put Lunar Magic v3's big levels in this category.

+Vertical level, ascending: One way to make this kind of level effectively is to think of it as horizontal levels stacked on top of each other (credit: Barb). Another way is to disable horizontal scroll with UberASM (code below). This makes it a lot easier to make the sprite spawns consistent and control the camera movement. The free vertical scroll UberASM (code above) will also make it less blind, but only use it if horizontal scroll is disabled, or it will make people nauseous. Another way to disable horizontal scroll in a vertical level is to use layer 2, which takes up half of the screen.

No horizontal scroll:
	STZ $1411

+Falling levels: the most problematic level type. These are almost always too blind to be fun. Sometimes it's fun to break the rules, but don't say I didn't warn you. #tb{'U'}

Indicators are coins, on-screen text, arrows, or other graphical indicators for the player to execute a certain trick. These kinds of indicators are usually begrudgingly accepted by Kaizo players. On the one hand, they prevent unfair deaths. On the other hand, they are sort of like the "Navi" of Kaizo. Remember that Navi is the annoying but helpful fairy in Ocarina of Time. Some players consider indicators ugly, inconsistent, or lazy.

Far better is to telegraph a trick with level geometry. Use a low ceiling to "indicate" that a regrab is coming up. Make the player pass over a wall and spin onto a spiny on the other side instead of putting the spiny at the end of a huge, blind jump with a blue spin coin at the beginning.

Above: An annoying character from a great game. Use purely informational game elements with caution, but do not spare them when they are necessary.

Above: A regrab is forced with level geometry. Do not underestimate the importance of ceiling and walls to make movement through a level obvious.

Generally speaking, there are way fewer choices in a Kaizo hack. It defines the genre, after all. However, there are ways to introduce choice to the players without changing the style of the hack.

+An open overworld: give the player branching paths, or optional levels.

+True endings: an opportunity to take on greater challenge for greater glory.

+Switch palaces: have your switches do something significant.

A choice is only meaningful if the player understands what their options are, and there are real consequences.

First, playtest your own levels. If your overworld is broken, if a level can't be completed, or the difficulty is way out of scale, then no one will play and enjoy your hack. If you don't enjoy playing your own hack, don't expect anyone else to.

Like I said above, a creator can't play their own hack blind. It's therefore important to get other opinions on level design. However, respect playtesters' time and don't expect them to grind out all of the minutiae with decheesing a level or designing fun obstacles.

Some words on aesthetics. While graphics and music are, of course, subjective, there are some guidelines that need to be kept in mind when making these choices.

First, graphics:
+The background should be easily distinguishable from the foreground. Choose different tiles for the layers. Also, darkening and decreasing the saturation on the background can help with differentiation.

+When using custom graphics, the function of a tile should be obvious. For example, semisolids and passable tiles should not look similar.

+Avoid too much saturation, because of the strain on people's eyes. I prefer saturation levels of 100-140, personally.

+Balance light and dark, warm and cool. A level that is all dark or all red is not visually impressive and is harder to parse.

+Avoid overly detailed graphics. While they are very impressive at first glance, they often clash with other layers or look bad when moving.

Now, music:

+Try and match the song to the level. Some things to keep in mind are level theme like cave and grassland, as well as the speed and relative difficulty of the level.

+Retro soundtracks are known for very high-pitched sounds. Use of the noise channel, shrieking electric guitars, and piercing bells can be harsh on the ears of listeners. Note that this effect can be pronounced on certain speakers or in listeners with more sensitive high-frequency hearing.

+Don't use a short port for a long level, because it eventually gets annoying.

With so many SMW hacks out there, it's scary to think that something that took hundreds of hours will be lost to obscurity forever. In response, many creators try to set themselves apart by making something that is the "most", like the most creative, most difficult, etc.

I respect creators that do this. Without designers doing this, we wouldn't have Morsel, Worldpeace, or other mavericks in the community. However, know the risks.

+People will probably attack you as a creator if they don't understand what you are doing.

+It will be way more time-consuming to reinvent the wheel than to focus on simple platforming or standard gameplay experience.

Keep in mind that everyone playing this 30 year-old game is attracted to the core elements on SMW game design: running, jumping, and other basics of gameplay. The more you stray from these, the more unintuitive and uninviting your game becomes.

Above: A room in Hyper 6 includes free-flying Mega Man platforms that have their timer extended with coins. Changes in physics can be refreshing, but they should be used with caution because they risk alienating the core audience. (Note that Hyper 6 isn't Kaizo)


You are the villain!

I'm going to touch on something that is hard to grasp and come to terms with, but it's something that new creators should be aware of. The most popular Kaizo creators are not the most adored. The truth is that no one catches more heat than they do. Yet they are still loved, or respected... or maybe just feared?

Typical Kaizo hacks contain drastic difficulty spikes, trolls, and blind obstacles. New creators often imitate this style and are surprised when a player's reaction is directed towards them, or their hack.

Of course there has been excessive abuse towards creators. Also, there will be people that say, "I'm different." Maybe there are. I'm being straightforward with you about what's out there, because it can be upsetting if you don't know what you're about.

When you are in the creator hot seat, things can get personal. I've seen it countless times, and since my hacks have been played by dozens and dozens of streams, I have been cursed at, flicked off, etc. I am still friends with a lot of the players that did those things. Some I avoid. But you should be cautious about whether your perspective as a player or viewer has biased you about what those interactions are, and whether you want to be a part of it.

Sometimes the responsibility rests with the player, or the surrounding community. Sometimes it rests with the creator.

Trolls: you can't tame a troll. If a troll doesn't hurt, it's not a troll. It can be fun to play a hack with trolls or watch someone play it, but the perspective is different when you are the creator. People will say, "This is a bad hack." Trolls are bad.

That doesn't mean you shouldn't include them. None of this is meant to encourage creators to include or remove trolls. It's meant to make you think realistically about what your vision is and who you are. I have seen creators that are completely unaffected by salt or criticism. Others not so much. I am the second kind, which is why I rarely include trolls, never punishing ones, use a lot of checkpoints, etc. Because I'm intentional about trolls and excessive difficulty, I have rarely been offended by a playthrough.

Great Kaizo is more about asserting one's vision than anything else.

Well, fledgeling designers, I hope that helps. Above all, have fun! Even though designing is a big grind sometimes, it should be fun as well. A creation that was made by someone having fun shines through.
Updated with some formatting and new sections.

Thanks for this. I already read it before your update and I think you added some useful stuff. It won't make you a perfect creator, but there are lot of points worth thinking about. For me personally the patches section was very helpful some months ago. So, thanks again for your work! I hope some day I will provide some tutorial.
Originally posted by DasFueller

Thanks for this. I already read it before your update and I think you added some useful stuff. It won't make you a perfect creator, but there are lot of points worth thinking about. For me personally the patches section was very helpful some months ago. So, thanks again for your work! I hope some day I will provide some tutorial.

Thanks! Katun is working on a more comprehensive list of helpful patches. This link might change, but for now it's here:

*document removed by katun*

Lunar MagicLevel Design (Kaizo)