Kuribo64
Views: 23,174,252 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
12-13-24 03:02 AM
Guest:

0 users reading Tutorial - SM64DS Level Creation 101 | 1 bot

Main - General SM64DS hacking - Tutorial - SM64DS Level Creation 101 Hide post layouts | New reply


Staryu Trek
Posted on 10-08-24 05:29 PM Link | #101701
So, you're new to hacking Super Mario 64 DS. And you want to make your first custom course, level, stage or whatever you call it. But where do you start? Designing levels for a 3D game like SM64DS is a different thing than designing levels for a 2D game like Super Mario World or New Super Mario Bros. This tutorial, spanned out across multiple posts because the chapters are going to be long, details the most important aspects of creating a SM64DS level.
Table of contents
1. The main concept
2. Missions and gimmicks
3. The level's model
4. The collision map
5. Object placement
6. Cheese fixing
7. Playtesting time!

Chapter 1
The main concept

So, you want to make a custom level. First thing you need to do, is think about what theme your level will be having. Here are some nice themes to use:

Grassland

A common theme in Mario games, and usually the theme of the very first level, including SM64DS's Bob-Omb Battlefield. But you don't necessarily have to use this theme for the first level. A SM64 romhack I played had the first level be a swamp level.

Sky

A theme found in lots of platforming-heavy levels. Since the sky is the limit, you can really let your imagination go all-out! It will always turn out better than that lame Rainbow Ride anyway...

Water/Beach

Many people hate water levels, so if you're making one, do make sure it's GOOD! Therefore, beach theme is often used, like in Newer Super Mario Bros. DS (that's a 2D hack though), to create a mixture of on-land platforming and underwater... swimming. But... the music is always excellent and you can really hit the bull's-eye aesthetics-wise!

Snow/Ice

Loved for their aesthetics, hated for their slippery physics, wintry levels can be both a delight and a pain-in-the-ass for players. Many wintry levels in 3D Marios feature slides, something you can really release your creativity upon!

Lava

A must in Mario games. The focus will mainly be on careful platforming over the boiling hot lava. Keep in mind Koopa Shells, Metal Wario and lava boosts can make the level ridiculously easy, so read the "Cheese fixing" chapter when it gets posted!

Of course, countless other themes exist, like desert, savannah, tundra, city, ruins, cave, ghost house, forest, jungle, space, cyber etc. And you can also combine two themes, like how Galaxy combined lava and ice in Freezeflame.

After determining the theme, now it's time to think up what your level is going to look like! I suggest drawing concept arts on paper - I always do that.
What is your level's centerpiece? Is it a towering mountain, an idyllic sea, a castle, a giant palm tree, a huge ravine etc. etc.
What to avoid:
• Flatness. This is Mario. You can't let the player NOT jump! Create some height variation with bridges, rock formations, slopes, you name it!
• Blandness. Lots of SM64 romhacks have the towers-in-the-sky-and-a-little-bit-of-grassland theme in their levels, which is just too rectangular, too linear, too... bland! Make your level varied and use varying kinds of shapes.
• Linearity. Even if you're making a Super Mario 3D Land-like hack, you should at least include some hidden nooks and crannies where the player can find 1-Ups or easter eggs.
That was chapter one of my tutorial. Next time: missions and gimmicks!

Staryu Trek
Posted on 10-10-24 05:53 PM Link | #101713

Chapter 2:
Missions and gimmicks

This chapter is about the Power Star missions and the gimmicks involved.
Every main course has eight Power Stars, seven of which are mission Stars, the other is the 100-Coin Star. Secret courses and the hub can also have maximally eight Stars each. But how will the player obtain these Stars? If you want to make an enjoyable hack, you'll have to have as much variety as possible when it comes to how Stars are obtained.

The missions

The mission is what you should do to spawn or access the Power Star. Examples in the original game are:
• defeating a boss;
• collecting a certain amount of MacGuffins (5 Silver Stars or invisible secrets, 8 red coins);
• pressing a switch that spawns a Power Star and racing to the Star before it disappears;
• triggering three or four switches (treasure chests, book switches) in the correct order;
• completing a platforming challenge;
• using a specific character's abilities;
• winning a race against an NPC;
...etc. Without modifying the game's code, the kinds of missions are limited, so how to make all missions different when you have dozens, maybe one hundred or more Stars in your hack (something Nintendo failed IMO)? That's where gimmicks come in play!

The gimmicks

Nearly every mission in the original game had a gimmick. Take Pole-jumping for Red Coins for example. Collect eight Red Coins, but... do it while jumping from moving pole to moving pole! This gimmick also fits well the mechanical/industrial theme of the course it appears in. Of course, not every mission needs a gimmick, for example if you hide the Red Coins in tricky-to-reach places, it'll be challenging enough for the player to not be lame. Do always balance out the gimmicks: place more complicated gimmicks in later-game courses. The following objects often make for nice gimmicks: moving poles, ! Switches, power-ups, moving platforms, Thwomps, pushable boxes, Koopa Shells etc. The level's geometry can also play a huge part in a gimmick, like hangable ceilings, Vanish Luigi fences, wind, mirrors... you name it! How to make a good level model, you'll learn in the next chapter.
Don't troll the player, unless you're making a troll hack. Putting three pipes of which two lead the player into an instakill hazard and one leads the right way for example, only makes your hack less enjoyable, not more difficult. It doesn't make you a good level designer, only an asshole. So avoid trolly gimmicks at all costs.
You will always get bonus points if you use a gimmick that's fitting for the level's theme, like tornadoes in desert levels, sliding in snow levels and cannons in airship levels (sorta done in Rainbow Ride, though that's a sky level). And don't make the gimmick tedious, like having to use Wario underwater (Metal Wario aside) or waiting an hour on a flying freaking carpet. Many romhacks do gimmicks better than Nintendo, so if you need some inspiration, play some 3D Mario romhacks.
Next time, the level's model!

Staryu Trek
Posted on 10-12-24 05:52 PM Link | #101719

Chapter 3:
The level's model

Before you continue, please get to know your modelling app a bit. I won't give tips on how to model in a specific program. Just know that DS models are made out of triangles and quadrangles (faces or polygons) oriented in 3D space (triangles are recommended) and that textures are 2D images mapped onto the faces, like a wallpaper.

The DS's screen can only show 2048 triangles at once, so try to limit your triangle count to maximally 4000; if it's below 2048, it's perfect. Circles in SM64DS are often modelled as octagons; cylinders as octagonal prisms.
Textures should be 8, 16, 32 and rarely 64 by 8, 16, 32 and rarely 64. Not too many textures and don't map them in a way they repeat like 100 times on a single face. That glitches up the DS.
Each face can only have one texture, so if you want to map a window, tree shadow, arrow etc. onto an already-textured face, you should create a rectangular (triangulated) plane parallel to the face 0.005 m in front of it (assuming the scale of your level model is perfect. If you don't know, just make a simple base model, import it into SM64DSe, scale it with the Game Scale setting on the left using the Mario figure as a reference, import it into the ROM, then export again. Then load the model in your 3D editor again and it should now be the right scale) and map the shadow, arrow etc. texture onto it. (Have I already advised to ALWAYS use PNGs as textures? JPG sucks.)
By default, you want most faces to only be visible when viewed from one side, so make sure all ground faces face upwards, all ceiling faces face downwards etc. And if it's not that way, flip the normals of the incorrectly-oriented faces in your 3D editor: that reverses their orientation. If you want certain faces to be double-sided (like a fence or something), be translucent or have an animated texture, make a separate material for them so that other materials with the same texture won't be affected.
Solid colours can be made by mapping all vertices of a face to one pixel of the texture.
Some people first make the entire model and then texture it - don't do that! It makes it very likely to overlook faces, so map the textures every time you create a few faces.
Make sure the textures on each face align - especially with brick or animated textures, any misalignment is easily seen!
Vertex painting can make for some nice shading effects and is necessary to create depth, and therefore unmissable - imagine falling into a pit because everything is unshaded and you couldn't see any depth!
Vertex colours and diffuse colours don't combine - if you want solid colours, just use textures as mentioned above.
Once your model is done and imported into SM64DSe, you can go to the Materials tab of the model importer and define two-sidedness and transparency (opaque is 31, half-transparent is 15, invisible is 0) of all materials. Oh yeah, and always check "Vertically flip all textures" under General. Once you're finished, click Import, then Model.
But you're still not done! Now you have to open the level again, click on "Texture animations" and depending on the version, a different texture animation editor will appear. No matter which version you use, first delete all existing texture animations. Having any animations reference a now-non-existing material crashes the game (oh yeah, and if you're replacing a level with multiple areas (like Hazy Maze Cave) or Castle Grounds, first export an XML (level backup) of an unedited Bob-Omb Battlefield and import it into the level you're replacing, then import your custom model).
If you want to animate any texture, in SM64DSe Ultimate, select a material in the texture animation editor, then click "Create animation" and... manually input how the texture shifts every frame. Yeah. Can't help you make it any less tedious, but at least it's easy.
Once you're done, click Save.
You have now imported your custom level model! But more needs to be done before it's playable. Next time: the collision map!

Staryu Trek
Posted on 10-24-24 07:27 PM Link | #101781

Chapter 4:
The collision map

What is a collision map?
A collision map, also called a KCL in SM64DS hacking, is a model like the level model you learned to make in the previous chapter, but instead of determining what should be shown on-screen, it determines how the player character interacts with the different surfaces in your level. The KCL is a separate thing from the level model, so faces can be in a KCL that shouldn't be in the level model and you can exclude faces from a KCL that are present in the level model.

Examples of different collision types are:
 • water collision (player can swim in);
 • lava collision (makes player Lava Boost upwards and deals damage);
 • slippery collision, always makes the player slide off);
 • unslippable collision (think the pillars in Shifting Sand Land);
 • death plane (placed at the bottom of levels the player can fall off);
 • Vanish Luigi transparent (watch out with this one - it may cause unnecessary cheese);
 • crawl-transparent (only lets the player through if crawling).

And of course many more! Take a look at the CLPS data document (don't worry if you don't know what CLPS is; I'll explain it later in this chapter) in Shugabush's signature. I might edit my post later to directly link to the document. This document lists all of the different collision types. Don't worry about more complicated stuff like wind IDs yet; if you want to find out how that works, I suggest looking at the paths in the water at the beginning of Tall Tall Mountain. Texture actually means what sound the player's footsteps make (4 is default).
And just know that for every collision type you plan to place in your level, you should assign a material, like with textures in the level model. BTW, I suggest copying your level model and editing it for making the KCL. Give them names that directly refer to their collision type. Exclude any faces overlaid on top of other faces (shadows etc.), as leaving them in the KCL might cause screwy collision that impedes the player's movement. Double-sided faces don't exist in KCLs, so place two faces with opposite orientation 0.01 m apart instead - look at Castle Ground's and Lethal Lava Land's KCLs for reference. The former features a fence the player cannot stand on; the latter features a fence the player can stand on.
Do not allow the player to swim away from under a water face - if the player can swim away from under a water face, make sure another water face is right below the player. If you don't want Mario to Wall Kick off the level boundary, make it so that the angle between the boundary and the "floor" in the 3D editor is over 90 degrees. The level boundary should make every part of the level the player is supposed to be in, is inside of a solid container, so make sure the level boundary has a ceiling too!
Poles don't need to be solid; there's an invisible pole object for that.

Once you've finished your collision map, save it as a .dae file and open your ROM in SM64DSe. Click the level you want to import the collision map of and click the button that says "Edit collision map". Click Load>External model and select your collision map model. You see a table with the material names. You can now assign numbers to the collision types. Make screenshots of the entire table - you'll need them. Press Assign, then Import>Collision map. Close the window and click "Edit level" in the editor's main window. Click the CLPS button. In the window that now appears, you can set the collision types' specifications. The collision types are listed as the numbers you entered. So open the screenshots and the aforementioned CLPS document and assign the right values to each collision type (and remove any extraneous slots if there are more collision types in the current CLPS than in your custom collision map).
Self-explanatory, but one word of advice: camera behaviour type 6, combined with setting Camera through walls to 1, is the best! No screwy camera anymore!

When you're done, press Save, close the editor, and... wait for the next chapter. Yeah, we're still not done! Next time: object placement!

Staryu Trek
Posted on 11-06-24 09:03 PM Link | #101855

Chapter 5:
Object Placement

Of course, a level isn't a level without objects. But which kinds of objects are there? And what do they do? Read on to know.

 •Normal objects. These are Goombas, coins, Power Stars, Chomps, platforms etc. Some objects only function if spawned by another object; for example, if you place a Bowser Shockwave object in your level, the level will crash upon loading. The Bowser Shockwave object only works if spawned by Bowser. Furthermore, most objects are part of a so-called object bank. Object banks can be set in SM64DSe's Level Settings. The dropdowns are pretty self-explanatory. If your level contains an object that isn't in a currently-set object bank, the level will crash. Also, if you place a path-following object, make sure the path it follows, is present in the level, otherwise, you guessed it - crash! Oh yeah, and if you place trees, all trees have to be the same type, otherwise the game will eh... right, crash!
 • Warps. Warps come in multiple types:
   1. Teleports: like in the flower patches in Bob-Omb Battlefield. Every teleport destination has a teleport source linked to it (which you can set in the editor). If you want a two-way teleport between A and B, place a teleport source in A leading to a teleport destination in B and a teleport source in B leading to a teleport destination in A.
   2. Doors: if your level has multiple areas (my tutorial won't cover areas since that's more intermediate knowledge), use them to switch between areas. Virtual doors switch areas if you pass through them; normal doors do so if you open them. Character doors switch characters instead of areas and the white door contains a Power Star.
   3. Entrances: essential, because they spawn the player character! Placing entrances is rather self-explanatory, actually.
   4. Exits: these warp you from one level/submap to another. They are assigned an entrance ID (if you view the entrances in the editor, they read [*number*] Entrance. The number is the entrance ID) you get warped to. Horizontal and tilted exits make a sound like the chimney in Cool, Cool Mountain; vertical exits make a painting sound. An exit also specifies a return entrance, which is an entrance in the level the exit is placed, which the player returns to if they die, but not upon victory - that's hardcoded. An exit can be made any desired size.
 • Views. Entrances also have a view ID assigned to them. This is where the camera starts when the player enters the level. Collision faces can also have a view ID assigned in the CLPS. This makes the camera fixed at the coordinates of the view if the player is above these faces. See the castle lobby for example.
 • Paths. Path-following objects follow these. Always remove existing paths before creating new ones! A path is made up of path nodes. A path-following object moves from one path node to the next.
 • Miscellaneous objects. The most important one is the fog. You can personalize its colour etc. for a nice aesthetic effect.

Invisible Poles make parts of the level geometry, like 3D trees or poles, climbable. You can specify a height and whether the player can handstand on it. When placing an object, you can also specify which Star missions (acts) it appears on: all or only one. Think of bosses that only appear during one mission. Also essential for fixing cheese (see next chapter).

The Object Databases on this site and in the editor itself feature important information about the objects and their parameters.

If you're done, save! Now your level is finally playable... hopefully. But... can Luigi make each mission ridiculously easy with its overpowered abilities?
Next chapter: Cheese fixing.

Staryu Trek
Posted on 11-11-24 07:33 PM Link | #101871

Chapter 6:
Cheese fixing

Let's just admit it: Super Mario 64 DS is full of cheese. Luigi's Vanish Cap Flower Power and his backflip are just WAY too overpowered, and Big Boo stands no chance against Metal Wario. Some cheese you will discover during playtesting, but you can already look at your level and make some precautionary tweaks to prevent cheese.

Which characters cause which cheese?

Yoshi

Not a lot, I guess? His Flutter Jump does allow him to cover bigger distances with a Double Jump, e.g. he can reach the floating island in BOB without the cannon. His special abilities are more offensive, so maybe he could cheese a level with enemy spam, but enemy spam is a bad thing.

Mario

Flight is his power. The P-Balloon Flower Power is unexpectedly OP. But his Wall Kicks can cheese a few missions too. Even Nintendo knew his power-ups are overpowered. If you don't want Mario to fly, make it so ? Blocks release a Bob-Omb when Mario hits it in the entire level (that's where JRB went wrong). To prevent Wall Kicks, slightly angle the walls you don't want Mario to Wall Kick off in the collision map, so they are very steeply (max 5º or something) sloped walls.

Luigi

The cheeser extraordinaire. For the Vanish Cap: only make faces you want/allow Vanish Luigi to walk through Vanish-transparent in the CLPS. And if your level contains a gate object Vanish Luigi can pass through, then don't put Power Flowers in that level! Alternatively, if something rewarding is behind the gate (likely a Star), you could make it so that the reward can only be collected during one Star mission and that mission's act/Star ID won't have any Power Flowers. For his overpowered jumps, if you want to keep Luigi from backflipping to a lower ground that shouldn't be reached that way, just block his path with a wall. Place floating islands you don't want Luigi to reach far enough away from the nearest place he can backflip from.

Wario

Not much to say. Just keep Metal Wario far away from Boos. Especially Big Boos. Clever ? Block placement should help. Placing a ? Block in twothirds of the rooms Big Boo appears in, shouldn't. OK Nintendo? Aaand if a windy path is designed to make it difficult for the player to traverse it (see Windswept Bridge in THI), don't place a ? Block at the start of it.
Well, your level should be as free of cheese as possible by now, so you can test for other important issues. Next time: playtesting time!

Staryu Trek
Posted on 12-02-24 08:00 PM Link | #101924

Chapter 7:
Playtesting time!

Think your level is finally playable? There can still be something wrong. You'll never know until you playtest it.

A word of advice: if you can, test on original hardware (DS or 3DS). Even the best emulator can be inaccurate at some points.

Anyway, test every mission of your level and the player character's interaction with every object and collision type. If you have path-following objects in your level, make sure they can complete the path from beginning to end.

Most important thing to test, though, is whether the polygon count on-screen gets too high at anytime, which you can see from holes appearing in the level model or the object models. This looks ugly and is a sign the place this happens in needs a lower polygon count or less objects. Usually the latter.
Of course, testing for glitches is important, but you should also test how difficult your level is. Too many enemies in one place, platforms too far or too high apart, a too large distance to travel with a power-up without doing everything perfectly etc. All of this is important too.

One last advice: play your level like someone who'd play it for the first time would play it. And also test if there isn't any part of the level too bland and/or empty.
Well, that was it. Do you still have any questions? Feel free to ask them.


Main - General SM64DS hacking - Tutorial - SM64DS Level Creation 101 Hide post layouts | New reply

Page rendered in 0.065 seconds. (2048KB of memory used)
MySQL - queries: 29, rows: 207/207, time: 0.008 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.