Guide to Making Beautiful Games: Level Design
Hello all!
Since I finished the 2D Galaxy Shooter game, I started on level design! “Guide to Making Beautiful Games” is where I will learn how to make a decent level, set up different pipelines, lighting, decals, and more!
Today, I will focus on making the initial playing area and useful tips to get you along!
Let’s go over some tips First:
Vertex Snapping:
Vertex Snapping was a big one! This allows you to move an object by one of its vertices and snap it onto a different object’s vertex. If you have two objects that are the same size, like the tiles I was using, you can be fast and efficient and make sure all the tiles are in the correct alignment!
When you have an object selected:
- Hold down “V”
- Hover over the vertex you want to move
- Click and hold
- Then drag it to the vertex you want to snap it to.
Simple as that!
Keyboard Shortcuts:
When you want to quickly move, rotate, or scale an object, you can use keyboard shortcuts. When you want to change the object cursor, use:
Duplicating Objects:
Duplicating objects is by far the best time saver. Instead of making the same object over and over at zero, you can duplicate an object and it will keep the same size, position, and rotation. To do this, press CTRL+D and it will make the same object over the top of the original.
Moving, Rotating, and Scaling:
When moving, rotating, and scaling and you want to do it at incremented levels, holding down the CTRL key will allow that. This makes your life much easier because you know how much you are moving at a time without having miss-shaped objects or to change values in the inspector every time.
Keeping a Clean Hierarchy:
There will be two kinds of objects in a scene: Dynamic and Static.
- Dynamic objects are objects that move, like a door.
- Static objects are objects that will never move, like the floor and walls.
So, an easy way to keep your hierarchy clean is to create empty objects and name them “Static“ and “Dynamic“. When you finish a section, like the floor, create another empty object, name it Floors, make all the floor objects its child, and add Floors to the Static’s children as seen above.
Making Prefabs:
Prefabs are useful when you must make several objects that are the same. If you want to change any of the prefabbed objects, it will change all of the same prefabs, so you don’t have to change them all.
Those tips will help you make the play area, now let’s get into making it!
Floors, Walls, and Ceilings:
When making any of these features, you must add a variety of tiles. If you only add one tile, it will get boring fast. After adding pipes, struts, columns, and archways, you can make a really eye-catching scene!
When making a floor, try to make a visual walkway to make the player aware of where they need to go. Since this has a Sci-fi theme to it, I added some panel looking tiles to the floor.
When making walls, you’re going to use a gradient of light, dark, a little light, dark again, then light again, use the example in the picture above. Using light colors on the top and bottom will show the height of the room while the darkness in the middle will show depth. That little bit of light in the middle helps bring out the depth in the darkness.
Using prefabs in the part is helpful. I can make a few different kinds of walls and alternate between them to add a little flavor to the scene.
With the ceiling, I mostly just duplicated the floor, rotated them 180 degrees, and put them above the columns. I did add piping and struts to make the ceiling pop a little more. I just took some of the column parts and ran them above to make struts.
Adding Doodads to the Scene:
I added computer terminals, test tubes, mounted monitors, stairs, and a raised floor for the test tubes. I just arranged them in a Sci-fi Lab manner that made sense to me.
That was a quick overview on how to set up a level in Unity! I am only using Unity’s Standard Render Pipeline and it already looks awesome! I can’t wait to delve into the other pipelines!
Next, I’m going to go over the Universal Render Pipeline!
Thank you for your time!