Before we start with anything, I just have to say one thing. If you have never made a level before, please make a few levels before attempting to enter a VLDC contest. Your VLDC entry should NOT
be your very first level in Lunar Magic. Rather, you should have some experience before you enter this site's largest contest. If you are truly a beginner, forget this tutorial and read up on a basic lunar magic tutorial. You will need to understand the basics of design before creating your VLDC level, and a first time level will not even slightly
have a chance of placing well. Rather, this tutorial is for intermediate and learning designers who want to better their VLDC entries with interesting tricks and gimmicks. Second of all, if your level is not fun, then none of these tricks and tips will matter. The most important aspect of any level, especially a VLDC level, is that it is fun and enjoyable, that it is thoroughly playtested, and that is enjoyable for you to make. If you are a beginner, don't give up, and keep trying to make a level that will be a fun experience. Also remember that you are designing for yourself in the end, and although the VLDC's are a contest, you should make a level that suits your own style.
VLDC Tricks Tutorial
The word vanilla is defined in three different ways.
1. A substance obtained from vanilla beans or produced artificially and used to flavor sweet foods or to impart a fragrant scent to cosmetic preparations.
2. A tropical climbing orchid that has fragrant flowers and long podlike fruit.
3. Having no special or extra features; ordinary or standard.
For this tutorial, we will be using the third definition of vanilla. However, contrary to what the definition states, there are plenty of special features in vanilla Super Mario World that we can use and abuse in the VLDC contests. Although the nature of the contest allows for changed rules every year, it can be generally assumed that the following tricks will continue to be legally used in the future. If future contests do ban certain tricks, remember that these tricks can still be used easily in vanilla hacks and levels as a replacement for ASM.
The reason for this tutorial is that, there are a certain number of people on the site who have a huge advantage in having a bigger understanding of the way SMW works. A lot of these tricks are just "common knowledge" for many, and there is no formal instructions on how to do them. This tutorial serves to help designers understand these tricks better when designing both vanilla levels and their VLDC 11 entry next year.
Note that this tutorial does not cover exgfx or yychr
. Not only am I unqualified to write an extensive tutorial on it, but there are also tutorials that already exist on how to use exgfx and yychr to manipulate graphics. Exanimation will also not be covered for the same reason. There is already a tutorial on how to exanimate, and exanimation itself is relevant in all levels and contests, not just the VLDC.
Also, this tutorial does not cover basic level design. It is definitely important that the designer grasp a basic understanding of level design by practicing themselves or reading up on other tutorials.
Table of Contents
1. The Wonders of Map16
(Back to top)
- The wonders of map16
- 1-up checkpoints and the usefulness of the direct objects window
- Miscellaneous somewhat useful sprite glitches
- Fake hdma and shading
- Ridiculous layer 2
- Fake buoyancy (aka the Rapture of the Deep glitch)
- Sprite slot and memory shenanigans
- Revealing the tricks: Top VLDC levels exposed
Alright, let's get started by opening up our clean version of SMW and going over to level 105, and then opening our map16 editor. That's this
button by the way. Here's a screenshot of page 1 and 2 in the editor.
Direct Map16 allows you to insert any 16x16 block directly, instead of inserting objects in the add objects window. This has several advantages. Besides being pretty convenient, it allows us to access some tiles by themselves that normally shouldn't be! Certain tiles act funky in isolation, which is good for us. Most tiles serve basic functions, but others have more interesting interactions with sprites and Mario. The cool thing about Map16 is that, whenever a new block is made, you can simply change the Act as
to the number of the original Map16 block, and it will act like that original block. This is especially useful because many of these Map16 blocks look weird.
Specifically, we'll be looking at a few interesting Map16 tiles.
Tile 4: Mud/Lava with an animated surface
The first tile we'll be looking at is tile 4. Tile 4 is the mud/lava with an animated surface, and has garbled graphics when used with grassland graphics and other tilesets. The tile itself is meant to be used in conjunction with tile 5, the mud/lava tile, which is an insta-kill tile useful for replacing munchers. However, tile 4 by itself can serve as both water and a sprite filter.
This is tile 4 in action. The weird thing about tile 4 is that it changes properties depending on whether sprite buoyancy is enabled. Click
to check if it is. If it is not enabled, tile 4 is basically a weird water tile, which moves Mario faster through water. However, if sprite buoyancy is enabled, it serves as an item filter (special thanks to Lazy
for figuring this out). Certain sprites, such as mushrooms, p-switches, and carry-able springboards can pass through it. However, most sprites get killed in the lava, while Mario can pass safely through. Huh, sounds a lot like a certain custom block we already have at this site? Well, turns out we don't even need ASM! This can be quite useful for puzzles, as well as simple shell filters.
Tile 1F0: The slidy boy (aka the chosen one)
I won't go into too much detail on tile 1f0, since it is very popular already among designers. So basically, it acts as a "sprite only" block, in which sprites keep their sliding momentum. If a sprite has no momentum, it will stay still on the block. If the sprite is moving, such as the blue koopa in the picture below, it will maintain the momentum as long as it is on tile 1f0. Literally forever. The catch is that Mario passes through the tile. This is especially useful for a number of puzzles. There are so many ways to use this, so get creative! Note that sprites interact very differently on the tile. Sumo bros, for examples, will glide quickly across the tile if they fall from above. Experiment a bit with different sprites. Just remember, tile 1f0 is NOT decoration
!! Also note that there are a bunch of other tiles that act like 1f0. Actually, all tiles from 1D8 through 1FF work as well.
Demonstration of tile 1f0 without the signature upside down railings. Fun fact, Raocow was the first person to use upside down railings for the tile, but ft029 was the one to make it an actual thing.
Tile 1C8: Upside down clouds
Tile 1C8 is a lesser known tile, first shown in the VLDC8 by Morsel. It acts as an upside down cloud essentially. What this means is that Mario can fall through the block, but he cannot pass through the block going up. This can be useful for a number of things, such as puzzles. Many designers use the tile to prevent access to a certain area. Also note that sprite follow the same interaction with the tile as Mario, and can only pass from above.
A demonstration of the tile. It is common to represent tile 1C8 with an upside down cloud.
Tile 1FE: Deadly slidy boy
Tile 1FE, and the few around it, serve as insta-kill blocks that also make sprites slide. This is somewhat less useful, but I am sure a gimmick could be made out of these somehow.
Tile 182: Fish in space sliders
First used in Fish In Space!!! from VLDC9, these blocks can be used to let Mario slide infinitely, as long as their is tile 182 below. Interestingly, you do not need momentum to begin sliding. Note that sliding Mario can also kill most sprites, which includes castle sprites such as grinders, as well as Bowser's bowling balls. Tile 182 also affects sprites, such as the sliding blue koopa, and causes them to bounce.
Tile 1D4: The reverse tightrope
Tile 1D4 can be stood on, but if you attempt to walk, Mario will fall. However, running on the tile will prevent Mario from falling. In this way, it acts as a reverse tightrope. Also, just like tile 182, this tile causes the sliding blue koopa to bounce. This is because both of these tiles are a form of slope.
Tile 16E: The stopper
Tile 16E stops Mario if he jumps up into it. Normally, holding the jump button after jumping causes Mario do jump 4-5 tiles or so high. However, this block completely halts the height normally gained from a jump. Mario can also stand on this block.
There are a lot more map16 tiles that have weird properties, but many of them are less than useful. Also, remember that all the tiles in the screenshots are in their ugly state
. Change them into something interesting and aesthetically appealing. Be creative!
2. 1-up checkpoints and the usefulness of the direct objects window
(Back to top)
Many times, we have more ideas for a level than what we can actually fit in the level. Of course, many people also have the opposite problem! Either way, it's no question that long levels are a problem
. They also won't be going away anytime soon. However, there are actually a lot of long levels, both in the VLDC's and other hacks, and are amazing and super fun to play! How? One is by not being too drawn out, boring, tedious, and difficult. Another way is by adding 1-up checkpoints, or other direct object checkpoints. These can basically serve as a second midpoint. Yes, you heard me correctly, a second midpoint in vanilla SMW. This does not give you permission to design ridiculously huge levels. However, if there is a particularly hard part at the end of your hard level, maybe add a second checkpoint. It might make the level more enjoyable for everyone playing it.
First, open up the insert objects window by clicking on this
. This is super important. For the next few steps, DO NOT USE THE MAP16 EDITOR
. Believe it or not, none of the checkpoints will work at all if you use map16 for them. Go to the extended objects tab. Notice the almost translucent green 1-ups?
These were originally used by Nintendo to reveal hidden 1-ups. Basically, if you pass through each of the invisible 1-ups in order, it will reveal a 1-up.
I made a sample level in Lunar Magic and placed each of the tiles in order like this.
Now let's play the level. See what happens when I run through each of the tiles? A 1-up pops out! It acts just like the invisible mushroom (sprite C7), except you have to get each checkpoint first, in order.
So cool, the player gets a free 1-up. How is this a checkpoint? Well, since the tiles were inserted with the direct object window, they will not reappear the next time you play the level. They will only
reappear when the game resets. Here's the super important part. Wherever the 1-up checkpoints were placed before, anything behind it will be revealed again. So let's go back in Lunar Magic and place the invisible 1-up with a 4
on it in front of the bush.
So when we start the level, as you can see, the 1-up checkpoints are covering up the bush. I went ahead and ran through all the 1-up checkpoints, which then spawned the 1-up. I grabbed the 1-up and died to a koopa. When I came back to the level, the bush was back again, because all the 1-up checkpoints that were covering the bush went away.
So now we can cover up anything we want to and have it be revealed later in the level. Thus, this serves as a second midpoint. For example, a hidden door can be placed behind the 1-up checkpoints, and then towards the third part of a level, you place the four 1-ups checkpoints. Now, dying in the level reveals a door that takes the player back to that hard section.
1-up checkpoints are not the only objects that act like this. 3-up moons and dragon coins act the exact same way. Remember that these have to be inserted with the direct object editor. Do not use map16
! This is because the direct object window keeps track of memory, while the map16 editor does not. Although other objects, such as coins, can be used with this, I recommend sticking with either 1-up checkpoints and dragon coins. Technically, 3-up moons can be used as well, but who wants to give away a free moon?
3. Miscellaneous somewhat useful sprite glitches
(Back to top)
In this section, I will be covering a bunch of useful glitches very quickly. Think of this as the lightning round.
Placing vertical urchins on steep slopes can allow them to move extremely quickly. They also cover way more distance. Finally, placing them properly can allow them to move diagonally. If the urchin is on the top part closest to the peak of the slope, it will move diagonally. The urchin pictured below is moving vertically, but very quickly.
Mario Only Blocks
Not really a glitch, but very useful in vanilla levels. Sprites C8, 6D, and B1 are only passable with sprites. However, sprite C8 is the only one of these that does not persist off screen, which allows for less sprite slots to be filled (thanks worldpeace for this useful bit of info). Sprite C8 is the red box used for the disco ball in dark levels. However, you can use it for puzzles and other tricks in VLDC levels.
For a better aesthetic look, make them invisible in yychr and put an act like tile 25 block over top of them.
Yeah, this is impossible, since it will affect the other ? blocks in the level. The best option is to use the invisible block sprite. If sprite limits become an issue, either the red ? box can be used, it can be turned invisible (and no ? blocks be in the level), or the third option being to place objects with higher priority over the box.
This glitch is a classic, but is rarely used in VLDC levels, or any levels for that matter. It's a shame because the glitch itself has a ton of uses, and is easy to activate. Simply double hit a yoshi block to make more than one come out. All the other yoshis that come out will be invisible. As many as 11 or 12 yoshis can come out of a box, but for now, I just spawned two yoshis. I did this by hitting the block with two p-switches.
Riding the invisible yoshi does nothing, but when you press A to jump off, Mario will jump extra high, to the height of the first yoshi where it spawned. Also, if the visible yoshi falls off screen or somehow dies, the invisible yoshi will suddenly turn visible again, but will also cause Mario to teleport through any blocks below him. The first level that demonstrated the invisible yoshi glitch in order to enhance gameplay was ft029's swissotel.
When Mario is behind the net while climbing, he will be able to pass through any sprite. This is especially useful when combined with the red light switch box, which forces Mario to be behind the net to progress. Also, many sprites, not just net koopas, can be punched by Mario. All that is required is that Mario is on the opposite side of the net as the other sprite.
Big Mario Duckjump
Big Mario can squeeze under 1 tile high areas and phase through the floor beneath. Technically, this can be done through both a regular jump and a spin jump. However, it is much easier to do so with a spin jump.
Razor Sharp Vines
The vine, either from a block or sprite, will cut through any block that is not solid. However, if a solid block is placed directly above a vine block, the vine will also eat through it. This is very useful in that vines will also cut through lines, which can cause certain line guided sprites to drop off their paths. This has been used in numerous VLDC entries.
The Magical Teleporting Beans (aka Plantaporting)
This glitch saw small usage in VLDC9 and VLDCX, but it really is a very easy to use and fun glitch. Basically, a wall springboard must be placed either 12 or 13 tiles high. If Mario falls in a pit directly below the plant, he will teleport to the top of the plant, as if Mario had warped from the bottom to the top of the screen instantly. Very easy to use, easy to set up, and hard to make not fun. Just make sure to disable layer 1 FG vertical scrolling in these
If Mario is holding on to a rope, and the rope passes through solid blocks, Mario will keep grabbing onto a "rope", even though the rope is gone. This will allow Mario to climb anywhere throughout the level. In fact, the only way to reset Mario back to normal is by grabbing another rope sprite again.
Razor Sharp Mushroom Scales
Similar to the vine sprite, mushroom scale platforms will pass through any objects. However, unlike the vine, mushroom platforms can cut through solid objects as well. This can happen from both above and below. Meaning, the left mushroom scale in the picture can also cut through objects as it moves up. This can be useful for puzzles and other game mechanics, and was first shown in VLDC9's Chasm of Scales.
Eating Directional Coins
Directional coins are able to eat through layer 1, if the level is set to layer 2. The directional coins can be halted when touching tile 1F0 or lava. They also interact with conveyor belts, moving like any other sprite would from it.
Somewhat similar to the plantaport glitch, Mario can interact with wigglers on the opposite sides of the screen. If a wiggler is placed 14 tiles up, it can be jumped on by jumping below it into a pit. Mario will jump out of the pit as if he had jumped on the wiggler.
Bowser's Big Balls
Under certain conditions, the bowling balls from the bowser fight work perfectly fine in regular levels. The bowling ball itself is sprite A1, and must be placed properly. For example, placing the bowling ball 15 tiles high will allow it to roll forward without falling.
Purple Triangle Glitches
When running up a wall from a purple triangle, Mario will ignore whatever the tile is. That means he can run up death blocks, such as munchers. Also, grey rotating platforms, and other standable platforms, will temporarily slow Mario from running up the wall, but he will continue running. Also, the grey platforms in this picture despawned because the sprite memory is set to C.
4. Fake HDMA and Shading
(Back to top)
This tip is more on the aesthetic side of VLDC level creating. However, it is certainly an important aspect of making a good level. Obviously, not every level needs hdma. If your level is indoors or happens at night, chances are, hdma would be useless. However, if your level takes place during the day or during a sunset, and it is outside, hdma can enhance the atmosphere of the level.
What fake hdma does is it gives the illusion that the sky consists of more than just one color, which is typical of real life, making the level look more realistic and generally nicer. For a sunset level, fake hdma gives the illusion of, well, a sunset. Be careful though, because a badly made gradient will usually look worse than not having one in the first place.
So let's start by trying to turn the background in the level Funky into a sunset. First, we need a gradient. A common mistake when making fake hdma is to not use a gradient. This will probably make the gradient look ugly. Now granted, I know that there are even better ways to make a gradient than using LM's palette editor, but for now we will use it, because it still works decently well. I made the gradient below by picking orange for the leftmost, yellow for the rightmost, and pink in the middle. Next, I held ALT and right-clicked the orange and then pink, and then I did the same for the pink and yellow. The palette editor automatically creates a gradient between the colors. By the way, the palette editor is
Next, we are going to painstakingly pick 7 different 8x8 tiles from the map16 editor on page 42. This is very important. Put onto page 42 or higher, as these are BG tile pages. The picture below shows the 8x8 tile FD being placed onto page 42 as an example.
What 7 tiles will we use? Here's a useful list (taken from Spud Alpha)
Color 1: tile F9
Color 2: tile FA
Color 3: tile FB
Color 4: tile FC
Color 5: tile FD
Color 6: tile FE
Color 7: tile FF
So what do we do with these random numbers? Well, when you click on an 8x8 tile on page 42 by clicking this
button on the map16 editor, it will show you the "number" that the tile is. When you click a 16x16 tile, 4 numbers are shown to the left, which are the four 8x8 tiles that make up the entire 16x16 tile. Well, we want to create 8x8 tiles out of all seven of the tiles in the list above. The screenshot below shows what it should look like.
Next, we need to make them look like our colors. Highlight all the tiles and choose whatever palette you just put that row of colors on. In the example case, we are using palette 3. Now the tiles look more like a sunset.
Now, we get to paste those tiles into the actual background. Press this
button to open the editor. Make the dark orange block a 16x16 block, and the rest flat 8x16 blocks so that there is only one space between each one. Finally, make the actual color of the sky in the level the same color as the rightmost color in the fake hdma gradient.
Now I now what you are thinking. Eww... this doesn't look like a sunset? It looks gross. Well, we're going to have to edit the palettes a lot to make it look nicer. This part is up to you. There is no magic formula to make a nice palette, it requires some practice.
I did a bit of adjusting to the palette, and this is what I was able to come up with. Makes the level look a little more like a sunset!
Now let's talk about shading. This is done a lot less in VLDC levels, but it's an extra touch kind of thing that makes judges go "wow".. if they are the type of judges that are into that sort of thing. Regardless, it is just a fun and interesting thing to do in your level anyway. I think BMF was the first person to use shading, in VLDC5 (it's a great level, check it out by the way).
Notice how there looks to be more depth from the tree and the wooden block. It really looks like the wooden block is in front of the tree.
This is simply done by placing a slightly darker tile directly below.
We'll have to go back to the 8x8 editing I was talking about. Copy a 16x16 chunk of the tree trunk from the map16 editor onto a new page. Now use the map16 editor's 8x8 editor to highlight the top portion of the tree. Choose a separate palette for the top half of the tree tile. In this example, I chose palette 3. Now, for palette 3, copy over the palettes regularly used in the tree tiles, but make them a few shades darker in the palette editor.
Here's another method of shading. This one creates the illusion that the green pipe is actually in the water. This is done easily be adding a second map16 16x16 tile of water and making it a shade darker. Simply place it below the pipe tile, and the shading will make it look more realistic.
Stay tuned for the second half of the tutorial!