Amin Rafizadeh shared his experience and tips on Modular Level Design in UE4.
Amin Rafizadeh shared his experience and tips on Modular Level Design in UE4.
Introduction
Hi all, thanks for reading my interview at 80 Level!
My name is Amin Rafizadeh, Founder & CEO of Chainsaw Games Studio, and I’m from Iran. I’m a passionate developer who is interested in performing almost all aspects of game development and production including level design, character sculpture, texturing, animation and advertisement (including promo image and videos).
Chainsaw Games is a small indie game development studio founded in 2016. This studio is currently comprised of two members, me and my brother Arash who is a professional and highly experienced programmer.
We developed and published ZKILLER (an FPS shooter survival horror game set in a zombie apocalypse world) for PC and Android platforms in 2018. This project was our first experience in the game development industry. We are now working on a fast-paced multiplayer FPS game set in a Sci-Fi/Futuristic world. This project is under development in Unreal Engine 4 using C++ programming.
Why 3D and Sci-Fi?
The reason that I’ve gravitated toward 3D art is my big experience in playing video games. I’ve been playing games for about 25 years, starting from the first generation of them until the present one. When I’m playing each game, I usually focus on level details and environments. Sometimes, I take some screenshots of the game and then use them as a reference in my project. So, one of the key tips in acknowledging 3D art in the game industry is playing more and more games.
After experiencing several subjects in game development like character sculpture and animation, I’ve gravitated toward level design. You may ask why environment design? Because it’s a combination of almost all aspects of game development including level art, modeling, texturing, shaders, lighting, etc. Subsequently, in the level design field, you have more freedom and flexibility to expose your creativities.
You may also ask why Science Fiction/Futuristic worlds? I have to say that I have a tech savvy and I am strongly interested in technology and everything that comes with it including computers, machines, environments, and space. Sci-Fi is the literature of ideas. It means that it typically deals with imaginative and futuristic concepts such as advanced science and technology, time travel, parallel universes, fictional worlds, space exploration, and extraterrestrial life.
Tips for Proper Level Design
- Comparison
As I mentioned above, I’m a passionate gamer who is strongly interested to play all kind of games. When I’m playing a game, I try to understand the whole concept of its environment and the details. It’ll guide me to craft a level as professionally as possible.
The most significant trick in designing a level is the content comparison method. For example, I’m playing DOOM and then see a corridor in the game. I take a screenshot of the corridor, then compare it with many samples on the web or other games. This approach guides me to understand the variations in the game environment details such as lighting, shaders, textures, location of the assets, sounds, etc. So, there is a lot you can learn every time you play games.
- Blockout
Another most important tip is blockout. It’s a substantial method in the design of environments and levels in UE4. In general, blockout is a procedure where you use a different kind of geometric shapes such as plane, cube, cylinders, etc. to build your game level at the early stages. To do so, first, you should have a good knowledge of the whole concept of your game design and then assemble a blockout level based on that concept. For instance, I know that my current project is a multiplayer FPS game so I have to build a blockout level based on its genre.
- Scale
Video game worlds are almost always implemented as some sort of simulated physical space. The physical properties of this space determine a great deal of the gameplay. The dimension of a game is itself characterized by several properties such as spatial dimensionality, scale, and boundaries. Since I’ve studied civil engineering at university, I’ve learned that everything should be designed and built based on the actual dimensions, scale, proportion, and sizes. So, I always make the size of level assets such as pipes, doors, floors, walls, ceiling, etc. as standard as possible and then use them to craft the entire environment. Moreover, I use architectural and construction manuals for applying accurate real dimensions in the entire level. I also use “UE4 Mannequin” as a real human reference to scale architecture and proportion of the environment and assets. By using this tip, you can create a professional level in terms of dimensions.
The utilization of UE4 Mannequin as a reference scale guide in my level is displayed in the following screenshots:
- Modular Approach
I’m super interested and skilled in modular level design technique. “Modular level design” is one of the most frequently used terms in professional video game production. This method arose from the need to have great-looking, high-detail levels without having to build and texture every nook and cranny of the environments. When I use this technique, I can truly build up immersive procedural worlds.
The choice of the module size is important in determining the scene’s degree of detail, which I’ve mentioned in the previous tip. We all want to bring as many players as possible into our games, and a modular system allows me to create very scalable levels of detail (LODs) for different platform specifications. If your game engine allows or requires LODs, you’ll find a modular construction technique facilitates that very well. In addition, modularity allows me to work on every detail of a level and create numerous environments without any significant limitations.
Here, you can take a look at a 10-minutes time-lapse video of modular level design in UE4 that I’ve provided for this interview:
Another cool technique that I’ve found to be useful is that I always put all my modular assets into the scene where I’m building the level. This method will help me find any asset as fast as possible and then use them in the level easily. This method is also very helpful for selecting and using the decals when you have a massive library of them.
Size of the Level
Now let me talk about the size of the level. Since it’s a multiplayer shooter game and there will be lots of players joining the game, I knew that the arena should be big enough for challenging warfare. Therefore, I’ve designed the entire arena in 10 main sectors (including Cooling, Core, Hallway, etc.), with a total area of 23 km^2 (171*136 m) in 3 floors. Also, the entire environment is built up using about 7000 actors.
The length, width, and height of the level are illustrated as follows:
In order to handle and arrange these huge number of actors, I also used another powerful method: I’ve categorized every actor in a specified folder for every section/sector of the entire level. Each section comprises several organized folders such as Ceilings, Floors, Walls, Props, Decals, etc. as shown in the following screenshot:
To move a section of the map like Cooling sector with all its actors, you can right-click on its folder and then click on Select > All Descendants. Now you can move that specific section and change its position easily. You can take a look at the following screenshots and video that I have provided for this tip:
Textures
The shader and textures are other significant components in developing level and environments. For texture mapping, I always utilize almost all layers of maps including Diffuse (Albedo), Gloss (Roughness), Normal (Bump), Emission and Ambient Occlusion. Please, see the following screenshot which is showing a sample of texture mapping used in my level:
Since my level is big and lots of assets are scattered on it, using Trim Sheets or Tileable textures are mandatory and substantial. Moreover, I was able to reduce down the number of materials in the entire environment dramatically by combining the trim sheet textures. The lower number of materials you use in your level, the better performance you will have in terms of optimization.
A sample of trim sheet that I’ve used in my level is illustrated here:
Moreover, I’ve used some particular and extraordinary glass and water materials in the level. These are created using several material nodes. For the glass, I’ve used Lerp for blending two diffuse color textures and some Opacity parameters to make the transparency feature. I also used that for blending the Refraction parameters to change the direction of a light wave due to different types of the transmission medium. Finally, I’ve connected all these nodes to Fresnel to reflect light that has different intensities depending on the angle you are viewing it from.
The glass material system is demonstrated as follows:
For the sewage and water, I’ve used a complex material system which is comprised of several parts including Normals, SurfaceUVs, SurfaceMask, Foam, PondSurfacePlants, and Underwater.
Here it’s a screenshot of the complex system for glass material:
UE4 Advantages For Level Design
UE4 is a super flexible and powerful game engine that benefits level design, more specifically modular level design. As I’ve built up the entire level using the modular technique, I could work on every single piece of the level without any limitations. Additionally, since we’re developing this game using C++ programming language, we don’t need to use blueprint classes for the mechanics of the game. On the other hand, blueprints classes were practically applicable and useful in the design of the level. For example, I’ve used some blueprints for rotating turbines in the Cooling sector or automatic doors in the different locations of the level. You can review the blueprint of automatic doors as follows:
More importantly, UE4 has other useful tools including grid, snapping, and pivot system. You can easily translate, rotate or scale assets and snap them to each other or to the grid, then build up the entire level fast and professionally. These tools were very handy and helpful for me to create the entire environment as practically as possible.
Another powerful feature of UE4 is the view mode. Using this awesome feature will help you to change the lighting system of the entire level for different kind of modes such as Lit, Unlit, Wireframe, etc. Also, you can change the viewport of the editor and use such modes as Perspective, Top, Left/Right, Bottom, etc. which are super handy during the level design.
Lighting
Since the level design was made for the game, the lights were planned and used accordingly to the performance needs.
For this level, I did not use Directional and Sky Light as it’s completely an indoor environment. I’ve illuminated the entire level using Spot and Point lights only. Most of them are Static except for a few Stationary ones used for the player interactions in the scene. I always use Spot and Point lights together to create a realistic and picturesque atmosphere. In the scene, most of the Spot lights play the role of baked lights and help to brighten each section of the level. Also, Spot lights are the primary light sources in the environment. The combination of these two types of light can provide realistic and satisfactory scenes.
A combination of the lights is illustrated in the following screenshot:
Lightmap Density is a critical element in the lighting process. It is important to have even texel density across your scene to get consistent lightmap lighting.
Subsequently, Reflection Capture Actors are another element that’s super important for making the levels beyond imagination. Since I’m a big fan of Sci-Fi, I always use these actors to build reflective futuristic scenes.
Emissive lighting is a cool and equally important technique that I always use in my level design. There are lots of emission parts like tiny bulbs or LEDs on different parts of the assets and materials. They are key elements for making the atmospheres as futuristic as possible.
A sample of emissive lighting elements is demonstrated in the following screenshot:
After finishing the lighting, I’ve moved over to post-processing and polishing the final cuts. I do not like to distort or fake the scene too much by changing the settings of Post Process Volume a lot, so I focus more on bloom, ambient occlusion, exposure, and color grading pallets.
Challenges
Since I’ve utilized the modular technique in my level design, perhaps, the most challenging part for me was dealing with the massive number of actors. Working with these actors is sometimes difficult as you should have a powerful computer and be more patient.
Coming up with the idea for the project is another challenging and important point in level design. If you are going to develop a game based on certain ideas, you have to think thoroughly about the levels that will fit and well-suit those ideas. I think the best way to deal with this issue is to play lots of games and review references on the internet.
Optimization is another critical challenge in level design. If you are working on a big level with a large number of assets and modules, you have to focus more on the game performance, specifically when the project is a fast-paced multiplayer/online game. This means you should utilize a low number of shaders/materials, carry out smooth lighting system in the environments and focus on high performance.
Amin Rafizadeh, Founder & CEO at Chainsaw Games Studio
Interview conducted by Kirill Tokarev