Those animations look amazing!! Great job!
Very cool review of the making of Spellbreak. Would be even more cool to see some videos inside UE4 showing how they do a few very specific things unique to them.
This was so helpful for me. I'm hoping to adapt your tutorial to pull off something similar comparing modern satellite imagery with historical maps. No topo, so my steps should be simpler, but I'm a novice with Blender and you've really helped. Thanks!
A group of students from Ringling College of Art & Design talked about their experience building awesome VR experiences
My name is Mauricio Sotolongo and I collaborated with my friends Eric Roberts and Seth Baldwin on a VR game called Windrazor for our senior thesis project. We just graduated from the Game Art program from Ringling College of Art & Design. Our game was showcased at our school’s GDC booth and recently received the school’s President’s Award honor. Seth is from Texas, Eric is from Florida, and I am from La Habana, Cuba. Even though we are from very different places we share the same likes for a lot of things and when thesis came around we thought we should team up.
The initial idea of Windrazor was created by Eric, who thought combining WWI/WWII era technology with fantasy would produce a game that was thematically unique and had a historical feel. Eric is also the most technically savvy of the three of us and made the decision it would be a virtual reality game, despite that being the unfamiliar territory in the Game Art major at our college. From there Seth and I decided we really liked the idea and wanted to get on board with it.
After presenting a few concepts, style guides, and visual references, we got approved to move into making a very small demo before the end of Spring 2017. Eric decided that an arcade style game, where you shoot down waves of enemy planes would be the most enjoyable and an easy sell for a VR game. While he began to implement the blueprints for that we also thought it would be awesome to have the player move around the ship to complete small missions given by the co-pilot over the intercom.
We then picked which areas of the plane we wanted to work on for production, and made an elevation of the whole plane where we illustrated the player path and progression from beginning to end of the level. Seth made an early modkit for the shell of the plane which we used with primitives to blockout the whole environment and be able to show it as proof that we weren’t over-scoping the project.
Eric chose to do the tail of the plane and tackle the heavy programming, Seth did the living quarters and the cockpit, and I decided to do the middle gunners and the engine room.
After blockout, we moved into the modeling phase were we flushed out the bigger meshes and the “110% Asset.” This would be the asset that “defined” our environments whether it was for the screenshot or in-game. Seth did the Krieg’s (enemies) plane, Eric did the Repeater (electric fueled machine gun), and I did the SkyLance; an electric cannon meant to blast away the Krieg’s ammunition factory.
One of the biggest challenges we encountered on this phase was making sure that the environments correlated with each other, so we set up level streaming and used source control to make sure we weren’t changing each other’s scenes when we started to replace the blockout models. Seth even made sure that his model of the friendly plane lined up almost perfectly to the Windrazor airship. There was the point where we started to run into our first performance issues because of all the new models, textures, and effects coming in. Optimizing to get the smoothest gameplay possible became our first priority. Unreal’s documentation is very accessible and easy to understand, so a few YouTube videos and a peek at the Robo Recall UE4 project and suddenly I knew what I was doing and what was wrong with my scenes.
After having most of the scenes modeled, we established mood boards and the materials that we were going to need to cover the bigger meshes in the scene. We used Substance Designer to make pretty simple, yet convincing materials, which we parameterized in UE4 to instance in different ways across the plane. Having lots of hard surface models Seth suggested we should make trim sheets and that changed the game.
Some other models had to be baked and handpainted in Substance Painter, so we had to use as many little tricks as possible to achieve the most visually appealing result without compromising time or performance. In many instances, I reused models for the bakes and/or layered UV shells from different meshes in the same UV space to reduce texture streaming size.
All throughout this process, we had to also work on the effects and sounds of the game. I carried most of the ambient sounds while Eric took care of scripting the co-pilot voice events. While doing this I got really into doing the VFX for my engine room, rightfully thinking that they would go hand in hand with the sounds I was just about to put in there. If there is one part of the process I wish we would’ve had more time for was definitely this since both visual and sound effects are a really big part of the VR immersion. Shooting down the Repeater and the SkyLance were the biggest and most fun parts of the experience so we had to make sure that part was as perfect as possible. I went off Eric’s Repeater blueprint and created my own version with a different loading system for the SkyLance.
For the effects, I used a combination of simple Materials and Particle Emitters that I created to keep the performance as optimized as possible.
Having lots of glass in Eric’s scene he decided to make one of his materials a glass material, which he created using Substance Designer to obtain the masks and the diffuse map. He then made a custom Material in UE4 where he added edge detect and a few other small tricks. I am sure he would be more than willing to do a breakdown of it. Since all of the scenes are stationary we had to make sure we gave the player a sense of movement from the inside, so he and Seth made a blueprint to have a moving landscape.
To simulate the skybox and the clouds moving outside the plane we were also using TrueSky. TrueSky is a high performance, customizable, real-time weather rendering plug-in. We were lucky enough to meet the Simul team last year at GDC and they hooked us up with a license to use their product when we told them what we were planning on doing for Windrazor.
For the very last semester at school, we had to do our Central Assets, which as a requirement had to be rigged and have articulation. Seth did the friendly plane, Eric did the combat aeronauts, and I chose to do the pilots. I started the blockout in Maya, sculpted the details and retopologized in Zbrush, UV’d in Maya, baked and textured in Substance Painter, and finally rigged it and animated through Mixamo.
Overall, it took us a year and some change from concept (started mid-February, 2017) to executable (submitted April, 2018). The biggest challenge I encountered was getting to work with Virtual Reality and Forward Shading Rendering, having to be very mindful of tri-count, texture sizes, lightmaps density, transparency, lights and so on. Also being able to manage the time right so we could meet every deadline and still be able to bring all the aspects of a game to life. From the art to the effects, to the gameplay, we wanted to cover the whole experience in a visually appealing AAA quality VR game.
I want to send a very special shoutout to our amazingly talented faculty advisors, who kept us on track and offered us their most sincere critiques at all times. Big thanks to 80lv. for the interview and to you for reading this article, if you like it make sure to hit the share button.
You too can “ride the lighting” by downloading this Oculus playable build of our game: Windrazor
You can also connect with me for any comments/advice about the game, or just check out my other work through my website.