theta legion vr | Designing the other 3 levels
Ok, let’s be honest a second: those of you that played Lost Outpost or Outpost: Haven and think Theta Legion looks basically like a VR version of my 2013 shooter raise your hand. yeah, mine’s raised too! 🙂
To be clear, it was never supposed to be a 3D version of Outpost, it’s not something I had planned, and it kind of happened naturally: the games both shares the pixel-art aesthetics and I guess I have only one way of doing dystopian military sci-fi textures 🙂
However, once I realized I was in the same universe, though, I decided to embrace it! There is a level in Lost Outpost that is one of my favorite: you are in a completely flooded level, water everywhere, and you are being stalked by aliens that hide in the water: when they come at you, the only thing you see are the water ripples, until they suddenly spring out of the water to attack you. I knew I had to have something like that in Theta Legion!
The “star of the show” for level 2 is really the water: it breaks the visual expectations set in level 1 and bring a very different vibe to the level. For the water, I used a native Unity “advanced water” that include reflections, a special water script and a custom shader, as well as a camera to capture the reflections. If I have some courage one day, I’ll break the asset down to its core to see if I can replace the camera by reflection probes, which should make the asset even more performance optimized. This said, it works well on the Oculus Go, the level being relatively simple, and works perfectly, of course, on the PC builds.
Last minute edit: Unfortunately, it seems that the water as showcased here may be a goner: we hit a performance snag and are working our way at gaining 60FPS back, and this means the reflections may not survive 🙁
Design-wise, the second level is built to still be pretty manageable from the player stand-point and relatively small. It is based on a very long corridor (yes, again!) that serves 3 areas: the final lift, at the end of the corridor, a “storage” area (just another reason to use my crate assets, to be honest – I know, lazy design etc… :)) and a lab area, with test tubes and face-huggers very reminiscent from the movie Aliens.
Again, because we are in VR, I wanted to minimize the “turning around” for the player and provide a level that was pretty straight forward to navigate, in order to diminish as much as possible nausea.
Aside the water, special attention was given to the lighting: I wanted an alternate of lit and dimly lit areas, as well as a constant swing between hot and cold color palettes.
After working on level 2, playing it extensively and being pretty happy with it (at least on the visual side, the gameplay side of things still has some quirks that we are ironing out as I write this), the task of creating level 3 became daunting: I wanted to achieve the same effect; surprise the player with an environment that would feel radically different than the previous one.
A PERSONAL SIDE-NOTE ON LEVEL DESIGN
There is a pretty commonly embraced taxonomy for MUD players, created by Professor Richard Bartle that identify players motivations around killers, Achievers, Socializers and Explorers. Without going to much into detail about it, and because it can lose relevance outside the pure context of MUD, it is a classification that made me think about how I was playing video games, and what my motivations were centered around.
For me the “world” is the epicenter of everything in a game: I always want to see more of it, feel frustrated when I’m bared from discovering it (like as in Grand Theft Auto, that has a history of gating its content). One of the first thing I did when I played WoW was to explore every nook of the available map. When I play games like Half Life, I only shoot enemies because I want to see more of that world that Valve built for me.
We make games we want to play, and for me it was capital that discovering a new level was akin to traveling further into the world. I want a new level to be a reward in itself, something that stimulate the imagination of my players. According to Bartle’s classification, I am so very clearly an explorer!
A MULTI-PURPOSE LEVEL 3
In game, level 3 would be our most important level for two core reasons:
- It would be our biggest “story” level. I was hoping for 20 minutes of gameplay, exploration and gunfights combined. Unlike level 1 and 2, level 3 wasn’t built to be small. We would assume that players that played through the first two levels would get used to the motion sickness, and allowed ourselves to be a bit more expansive with level 3.
- It would be our main level for the “Last Stand” mode, an infinite horde mode allowing players to replay level 2 and 3 with infinitely spawing monsters and power-ups. We knew level 2 would be easy (2 spawn points and a relatively small level) and that the real fun would take place in level 3, with 3 spawn points and 2 loops to encourage player mobility.
The visual “hook” of level 3, just like the water in level 2 is the outdoor: level 1 and 2 are completely enclosed, and the player have no idea where the level is physically located, if it is above ground (no) or underground (it is!) etc. I decided that level 3 would feature plenty of windows to break the claustrophobia of the previous levels, and let players get a glimpse at the meta-environment.
Optimization wise, it was out of question of using the native Unity terrain that can be a performance hog: because the playable area was largely superior to the other levels, I know that we would start pushing twice the amount of polygons as usual (definitely not a problem on PC, but we could, and did, reach some performance issues on the Go!.
I created the terrain in 3DSMax, a 50*50 polys plane, with a noise modifier in order to simulate the terrain irregularities. In total the whole terrain “only” takes 2500 polys.
Level 3 is the level that took me the longest to finish: I really struggled finding the inspiration and rendering a level that would be large, with areas that would feel “special and purposeful” while still having a sense of unity and consistency as expected for a level. Ultimately players will tell me if I did right! 🙂
After the struggle for designing level 3, level 4 was a breeze to design: since I was showing an outside environment through the level 3 windows, I decided that level 4, the final boss fight would be all outside. The boss being a huge mech, it would also make it easier to move around, etc.
Comparatively to level 3 or even 2, level 4 is extremely simple: a central platform were the boss will stand, and for bunkers, located at the cardinal locations, where players can stock up on ammo and life. I will talk about the fight itself in another breakdown, as we are still tweaking it as I write this, but in the meantime, I’ll close this breakdown with Work-in-progress pictures of level 4.
A WORD ABOUT SKYBOXES
One of the very frequent request that I have to my students is that, if they are working on an environment that features exterior views, even partially, they spend some time on the skybox. They are barred from using the default Unity or Unreal skies and do need to create their own, either painting it, or come up with a convincing procedural method.
Skyboxes to me are more than just pretty art: they often are the “special sauce”, the unsung hero that bring the environment together: they allow to convey a narrative, a sense of context, they help define the rules of lighting, they offer a support color palette to build the level on, etc etc.
For Theta Legion, of course, I needed to walk the walk and created a huge pixel-art dramatic sky.
The skybox is made as “pixel Art” and purposefully using a limited palette of 16 colors, not one more. While having huge color swing between the dark and light values, due to the limited palette, I believe that the skybox never really overtake the main environment, but at the opposite provides support and context to level 3 and 4. Technically speaking, the skybox is “old school” : a 6 sided cube that renders left/right/front/back/top/bottom, but I must confess that I’m starting to outgrow this technique, and I will be focusing on multi-layered sky domes in the future… but that’s a topic for another post.