How Carbon Studios Used UE4 to Make VR Magic with ‘The Wizards’
Hello there! My name is Jakub Pander and I am a game and level designer at Carbon Studio located in Gliwice, Poland. Our latest game, The Wizards, recently left early access so I would like to share what I learned about using Unreal Engine in a more efficient way than when I had my first contact with it during my studies.
The Serpent Golem’s ambush.
Apart from being a designer at Carbon Studio, I am a student of video game design at the University of Silesia. During my studies I had multiple courses regarding game development, from level design to writing a short narrative. Quite often we were tasked with creating prototypes of levels or simple games and we were given the freedom to use any engine we wanted. I tried several different engines with various projects and results, but ultimately stuck with Unreal Engine; I will explain why in a second. As both a game and level designer I need to be able to easily create scenes and mechanics for the stages so that they are playable as soon as possible. Additionally, I need to make those stage look appealing later in development.
Using Unreal Engine
There were several reasons why I decided to learn Unreal. The first one being the sheer simplicity with which the users can create scenes and levels by just dragging and dropping assets into the scene - add lighting and voilà! Of course, the scene is far from ready, as we need some mechanics to spice it up. So, the second reason I enjoy Unreal Engine is Blueprints. Before we get to that I want to mention the VR editor which made prototyping (blockout) levels in The Wizards ridiculously easy.
Level blockout made with VR editor.
One of the key elements of a good VR environment is the object scale. It is very easy to get the scale wrong when not wearing a headset and being out of first-person - the whole scene might look good on a flat screen, but a bit off in VR. The first thing I did was place main points of interest in the regular editor then put on the headset and start filling out the scene in VR. While in VR the sense of scale is as it should be and you see what the player will see. Besides, it’s fairly easy to get the hang of VR editor controls.
Blueprints are a great way to add some simple (or more advanced if you wish) mechanics to the levels. My first ever Blueprints for homework were of an automatic door, lever and a moving platform. While that could be enough for a rough prototype, I wanted to add some more sophisticated elements, despite absolutely no knowledge of coding or programming whatsoever. I began to study the example content, free projects such as Shooter Game, Scifi Hallway or Blueprint, and deconstructed it piece by piece to see and understand (this one is very important - understanding) why and how things work. With this help I was able to create interlocking systems and puzzles. If I was missing some information or wasn't sure how to make the Blueprints do what I want, YouTube was a great resource for learning. There are numerous tutorials and nearly every time I searched I found something of use. With time I was able to solve problems and create mechanics on my own, without the need of external sources.
Materials and Particles
Another great thing I love about Unreal as a level designer is the material and particle editor. Here, just like in Blueprint editor, I can fiddle, prog and prod around to find satisfying results. Again if there was an effect I wanted to create I first took a peek at the Content Examples and Sun Temple - there are a ton of great materials in there and plenty of particles to deconstruct in other projects like Effects Cave Showcase by Epic Games. Deconstructing those allowed me to create some of my favourite effects for The Wizards. In the case of art and effects in general, the community is a great source of inspiration, information and help, for example sites such as realtimevfx.com.
Smooth and stable framerate is essential for any VR title, and UE4 offers great tools (both basic and a little more advanced) that allow to developers to locate what, when and how bottlenecking is impacting precious frames in our game. The very basic commands everyone should use are: -stat UNIT and -stat FPS which displays the current framerate, game and rendering thread and GPU usage. While the most significant drops are obvious to catch, it might help to spot those smaller one which could evade our sight.
-stat unit and -stat fps commands displayed while in VR
If you need to locate the cause of any drops, profiler is the tool to use. It will guide you to what is consuming the computing power so you can fix that and enjoy a smooth 90FPS experience.
That's enough about editors. Let's talk about the editor's tools. I cannot emphasize how much the things I'm about to list made my work smoother and faster. Starting with organising your content browser: folder colours and filters. I am using the same colours as Unreal’s default colour scheme for assets: blue for Blueprints, green for materials, teal for meshes, etc.
Folder coloring scheme.
Secondly, dynamic collections are useful if I am about to create a scene in a cave I want to access our rocky assets easily for example. I would create such a collection: < (rock) AND (Path:'/Game'...) AND (Static mesh) > rock is the keyword in the asset name, then the path (if I want to exclude any assets from different paths) and Static mesh, the last one limits the search to Static meshes only - no Blueprints, materials or anything else. Such collections allow me to find all rock related meshes in our project. I use these filters to find asset packs (if we are using any), custom groups of assets, Blueprints or destructibles.
The last but definitely not least (I believe I use this most often) are key bindings. I use shortcuts for almost every action, from basic transformation modes (translate, rotate and scale) to custom bindings for “save all levels” and “hide selected”. So far my favourite is the grid size increment or decrement under A and D keys (for position) modified with shift (rotation).
Basically anything that I use more than once I probably have a custom key combination assigned. That's why when someone else from our team wants to use the editor on my computer they get baffled when the standard shortcuts do something quite different.