Eddie Lee from Funktronic Labs talked about the production of a very interesting VR-project Cosmic Trip.
Eddie Lee from Funktronic Labs talked about the production of a very interesting VR-project Cosmic Trip. It’s a lovely take on RTS genre in VR with stylised visuals, beautiful animation and engaging gameplay. The game was actually created with the help of Unity. In this post Eddie tells us how his team managed to do it.
Hey there! I run a game studio in Los Angeles called Funktronic Labs. Previously to starting the company, I was a graphics programmer at a studio in Japan called Q-Games. It was there where I worked on the PixelJunk series and met kalin, who help cofound Funktronic Labs.
Our team currently consists of three programmers and two artists. We’ve been running the studio for over two years now, and our focus has always been to deliver creative interactive experiences through technology. Prior to developing Cosmic Trip, we’ve released a game called Nova-111, which is a creative mix of real-time and turn-based mechanics. Since then, we’ve have fully transitioned to developing VR experiences.
Mixing VR with Strategy Mechanics
Our entire dev team are huge fans of the RTS genre, especially during its Golden Age when titles such as Starcraft, C&C, Warcraft and alike reigned supreme. We were all bummed to see the genre as a whole fade away into MOBAs and tower defenses, and we shared a dream of bringing the spirit of RTS gameplay onto the VR platform.
The initial concept of merging VR and RTS together was a bit hard for us to wrap our head around. Mostly due to the fact that in standard RTS games, you sort of expect the camera to be in an isometric God-view over your play-area. Furthermore, we cannot really pull from pre-existing “standard” interactions in RTS gameplay (such as mouse click-and-drag, multiselect, right-click to move, etc) as they do not transfer to VR’s motion controls.
We really wanted the experience to feel “VR-native”, which means to be fully in first-person view, on the battle floor building your base and commanding your troops.
Looking for a Perfect Gameplay
VR is definitely exciting because it has introduced this entirely new motion-controlled interface paradigm, and developers are unsure what do with it! The main problem is that there are not any “accepted” interactions that you can expect the player to understand, because nobody has really even tried VR! Standard UI/UX such as double-clicks, swipes, do not apply in VR.
So what most developers are doing is to design interactions around “natural” movements — such as throwing, catching, pulling, pushing, grabbing, etc — and I think it is the right way to go about it. It is not like the mouse or keyboard where actions are abstracted to mouse clicks or button presses. Because within VR, you can finally DO the interactions fully and physically, and that opens up a whole new wonderful world in game design.
Our aesthetic goal for Cosmic Trip was for it to have a charming retro vibe. We asked ourselves — what would it look like if Pixar and Nintendo attempted to make a VR game set in space. For visuals, we took visual inspiration from product designs of the 60s and 70s, which has very shiny colored-plastic surfaces interlaced with sun-damaged white surfaces. Our concept artist Taz Dodge did a great job in ushering the retro design into our robots and structures.
Furthermore, what better definition of the 60/70s than its iconic music? We’ve instructed our musician Emeen to imagine what the music would sound like if the guitarist David Gilmour (of Pink Floyd) was by your side in space, interpreting your actions with crooning guitar solos. And he did just that! Who doesn’t like dope guitar solos?
We are using Unity to produce Cosmic Trip. There is a general fallacy within game-devs that games made in Unity all look the same. Sure, if you use the default skybox, with the default models and materials, they will all start to look similar. But if you have a stylized art direction paired with a good technical artist, you can truly achieve pretty much any look you want.
The minimum requirement for VR games is to be able to run within 90hz in stereoscopic VR, which is especially limiting given the fact that the resolution is 2160×1200 (1080×1200 per eye), and most objects need to be rendered 4 times (once per eye, then once again per shadow map). This presented a technical limitation on total rendering time per frame. As a result, we aimed for a more minimalistic yet stylized look white straying away from looked too “low-poly”. Doing things such as developing good normals maps and baking nice ambient occlusion maps within the context of physically-based rendering materials definitely has helped defined the look of our game.
The feeling of true presence within VR is a very delicate experience. So many things — such as bad frame rate, clipping, pixel aliasing, bad textures, poor audio — can instantly ruin the player’s sense of immersion. Thus, a lot of tender love and care must be given to make sure that the player’s sense of presence is always maintained and preserved.
For example, we’ve found that Unity’s default 3d audio system was not very well spatialized, which meant that it was hard to determine directionality of sounds within a 3d space, so we had to switch to an audio plugin called 3dception, which made the audio “feel” much more real. Also, 3d audio environments can easily feel cluttered with too much going on, so definitely make room within the audio frequency space to allow room for different sounds. Also, clever use of doppler shift can subconsciously give the player the sense of an object’s velocity, which is quite important within VR!
As for the visual environment, we found things to generally “feel” a lot closer than they are placed. Mountains and hills can be placed very far in the distance, but when observing them in first-person VR, it all looks like it is up close. There are several reasons why this is true, but one big reason is the fact that VR tech currently does not have depth-of-field, which your brain uses subconsciously determine distance. And as a result, everything is always in-focus. So, when developing visual environments, it is always good to place patterns within the scene that helps players orient their depth perspective — such as tiles and grids. In our case, we’ve used semi-evenly spaced rock formations to help develop the player’s sense of depth.
For our art production, our artist Pat Vince’s tool-set is mainly Substance Painter, Maya, Mudbox, and of course Adobe Photoshop. Cosmic Trip heavily employs Unity’s physically-based rendering model, and Substance Painter allows us to get an accurate PBR surface by being able to paint directly onto the model. Maya is great for modeling, UV-mapping, rigging and animation, and quite intuitive to use. Mudbox is great for painting in high-definition detail for organic shapes such as our alien enemies, and has a nice workflow with Maya because it uses relatively same navigation tools.
Our art pipeline is pretty standard, we start off by prototyping a new element such as a weapon, robot, or enemy. Once we find something that feels good to interact with in VR and makes sense within the context of the game, our artist Taz Dodge will then concepts a few variations of that element. We decide on what fits and the concepts go towards our 3D artist Pat to model, rig, animate and texture.
We’ve enjoyed working with the HTC Vive because of its ability for motion-controlled interactions and for its Room-scale VR. Beyond simply having 360-degree stereoscopic visuals, giving the player the ability to walk around and interact within the environment is the magic that provides the player with a true sense of presence.
For us, we designed the game to be a very kinetic experience. That means being able to walk around the environment, touch things, throw objects and build various machinery using your controller. We want the player to really feel like they are truly immersed in a physical space with these objects, and to sense their growth of power as their army of bad-ass flying robots swarms around you to form an impenetrable ball of death!