top of page

How to design a game level?

Level Designing

Designing a game level is more than just placing rocks, trees, and buildings - it’s about creating a space that tells a story, supports gameplay AND looks beautiful. In this post, I’ll walk through my general process for designing 3D environments, from the earliest ideas to a playable level. I’ve based some of my workflow on Alex Galuzin’s pre-production blueprint, adapting it to fit my own approach and project needs. This blog post is mostly going to be about the environment design and the visual aspects of it and not the programming aspects of this level.


Step 1: Understand the material

Understand the source material. This can be the game wiki or the design doc or both. For this example, I'm going to use an unused level from my project Kriyatus as reference.


This is a snippet from the design doc describing the steps in the gameplay.


  1. Elevator puzzle

    1. Elevator has 2 buttons, up and down

    2. only up is possible initially

    3. player goes up, hits a cube in the room that is accessible from the lift

    4. Player comes down to initial level

    5. Now the second button is active, hits it to go down another level

  2. Broken bridge

    1. Find the button to fix the broken bridge to get across

  3. Door time trial

    1. need to find 3 cubes to unlock the door

    2. one of the cube is inside a time based capsule that goes into the ground after a certain duration

    3. Player has to hit all the 3 cubes to activate the door

 

From this I know there is an entry point to the level, different segments to the level, there needs to be a broken levitating bridge, some keys which upon hitting would activate the doors to the last room. This post will deal with the visual breakdown of the scene and not the programming aspects.


Step 2: Greyboxing or whiteboxing

This is where the max number of iterations should happen ideally in the overall process of level building. This is because nothing is set in stone yet, things are still primitive, which allows for playtesting and getting a rough idea of how it will play and how good the visual composition is.

Also, I made sure that I grouped up segments of the level so that I can adjust the segments and the hierarchy is neater from the get-go.

Another important thing to do is colour code stuff, e.g., all doors are yellow, entry and exits are purple, most other things are checkerbox. This just makes specific parts easily recognisable.

This is usually the phase where you can start adding some placeholder assets and discuss and review the vision for the area/level, so that one can start populating the scene.

A birds eye view of a level prototype
A bird's eye view of a level prototype
A medium shot of an area in the level prototype. There are multiple copies of the player visible for scale reference
A broken bridge area

Unity's ProBuilder tool and simple primitives was used for a majority of this.

I do have a proper measuring tool plugin, but I like dropping prefabs of the main character in specific points just to get a general idea of proportions and scale.


Step 3: Populating the scene

At this point the overall composition is fairly confirmed and well refined. Now this is where you start populating the scene. For coherence I used the same environment kit that was used on the surface and above ground areas.

I keep using this kit for a lot of my projects haha. The custom rock/cliff shader in this pack is pretty brilliant.


So what I went on to do with this level is pretty much kitbashing. The pack comes with 3-4 types of cliff rocks and a dozen or so rocks as well.

An area in the level consisting of pieces of a levitating bridge
The bridge area from earlier looked something like this after populating the scene with rocks

Now one thing to remember is that this doesn't work everywhere, for example for narrow pathways this kitbashing approach might not always work out well.

A narrow cave path in the game level made with ProBuilder
For such paths I went for a carved out smooth mesh made using ProBuilder

I used the same rock shader from the pack for the cliff walls, worked pretty well after some material parameter changes.

A pathway in the level made up of rock walls and stones
One of the paths to the broken bridge path seen earlier, observe that it is not a straight path just to make the journey and visuals a little more interesting

Straight paths in organic settings are usually boring. Try to keep paths and views as organic as possible. You can take a screenshot from a view and draw lines on ms paint or any other drawing tool.

A pathway in the level made up of rock walls and stones showing composition lines as well

This is one of the simplest thing one can do to make a straightforward path interesting.

Composition lines in the area with the levitating bridge fragments
This could have been a straight across path, the two sides could have been parallel, i went for a slightly more interesting composition by making them not parallel.
Top-down view of the scene with the levitating bridge fragments
Top view of the same area, notice on the left how it's not a straight up path to the broken levitating bridge

Step 4: Lighting

The scene seems to be taking shape now, but it is still incomplete even after populating, even though it looks a lot nicer now. So, let's talk about the next thing to make this scene look a lot nicer, lighting.


One of the things to think about is that this is an underground level, which means realistically it should be dark unless there are torches to light the space. But having fully dark realistically lit underground is not very practical for gameplay or performance.


So, what I decided was to use one directional light to evenly light the entire scene (intensity at 0.3) so there is a base amount of illumination irrespective of where the character is. But now the issue is that there is an incoherence, because if there are no light sources in the area where is the light coming from? To satisfy this illusion I ended up adding torches everywhere. They also have a small point light on them, but they are fairly inexpensive, and they don't cast any shadows.

Another thing to consider was shadows and baked lighting. This was intended for mobile. Since this was a one of a kind level in the demo I was working on, I wanted it to look pretty good, I did use baked shadows and lighting. The light blue tint you see in the images above is because of that baked lighting.


Another decision is how much of the visuals can be done in the material itself and how much in post processing. Often in underground levels some rooms will need different visual changes, making multiple materials for this case seemed a little counter intuitive, so I ended up making local volumes, the decision was almost trivial in that sense.

A pathway in the level made up of rock walls and stones illuminated with baked and realtime lights
The path seen earlier with lighting and baked shadows and lighting.
The area in the level with the levitating bridge fragments lit with realtime and baked lighting
The bridge from earlier but this time the area is lit
A dark room lit with braziers having blue fire
A slightly darker room

The only realtime lights in this scene are in the braziers you see and the base directional light. The blue lighting you see near the door is actually baked to add a bit of ambiance to the scene.


A pathway in the level made up of rock walls and stones illuminated with baked and realtime lights
The same path as earlier but from the other side
A pathway in the level made up of rock walls and stones illuminated with baked and realtime lights, also showing the gizmos of the lights to show their positions
Same place with slight angle and height change. You can see that I have added some more lights in the path because the torches are not always enough sometimes.

One of the tricks to good lighting a scene is to make it seem realistic and visually appealing, and not actually physically realistic. All these extra lights are baked lights, not realtime. As long as the environment looks convincing you can add as many baked lights in this scenario since there is no performance cost.


Step 5: Post processing

Not all areas will look the way you want it to. A global volume will not work everywhere, although it will act as a base.

A pathway in the level made up of rock walls and stones illuminated with baked and realtime lights but without post processing
The path without any post processing
A pathway in the level made up of rock walls and stones illuminated with baked and realtime lights with post processing
The path with post processing

You can already tell the difference. It's a lot colder and more saturated. According to the lore the fire is magical/supernatural, that is why it is blue, so I stuck to the lore. Also, I'm using the ACES Tonemapping override to make it a bit more cinematic and interesting, but it makes the output a bit darker. I have kicked up the exposure in the Color Adjustments override to compensate for this. I have kicked down the warm tones down a bit in the Colour Curves override as well.

You'll also notice that the shadows are a lot darker and highlights a bit brighter. This colour grading was done on the local volume as well using Shadows Midtones Highlights override.


Takeaways

  1. Spend more time on the composition in the greyboxing phase to avoid making massive changes later on.

  2. Keep your scene composition interesting without compromising the gameplay or the players experience.

  3. Know the constraints of your target platform and understand the source material well.


Resources

Subscribe Form

© 2020–2025 3DbyNoobs by Abhishek Jathan.

All rights reserved.

bottom of page