Vancouver Film School | Level Design & Programmer | ~4 Months
For this project I was blessed with working with amazing teammates who made the entire experience a joy. In the project I ended up wearing many hats but nevertheless learned a lot of lessons from my mistakes.
Early on in the project we had to decide on which engine we were going to use. As we had two programmers we both set off to prototype in our respective preferred engines. I began in Unreal 4 and rapidly prototyped a series of features for our puzzle game.
Since the game began as a 2.5D isometric game, I had to develop a few camera systems to accomodate for the player's movement and visibiliy of our puzzle mechanics.
Original Isometric Concept Art
After some deliberation, as a team we decided to change directions and turn the game into a third-person co-op puzzle game and in turn made the choice of using Unreal. That which led to further joint prototyping.
In order to expedite the level design and prototyping, I created a Level Editor which would allow us to create levels at a much faster rate and increase performance by making use of Unreal's hierarchical instanced static mesh system. Effectively hi-jacking the system Unreal created for foliage to allow as much grandeur as we desired in our level.
As the game continued to progress, so did the Level Editor. It began as a very simple concept with basic shapes and a basic U.I but soon progress to proper rooms with a series of rulesets for placing of walls and pillars.
Level Editor After Adding Placement Ruleset
As tools tend to do, the Level Editor had to expand further and further to keep up with the game and the Level Design needs. Soon afterwards, the system was expanded to include the game interactables and other design features like elevation and room connections.
Level Editor with Interactable Integration
Early in the project I was advised by a few Mentors that the collaboration with the Sound Design collaborators could prove jarring as it would be our first time working with a completely external team which wasn't comprised of game design students. Therefore I set out to make the collaboration as seemless as possible. After checking out the Sound Designer's pipeline and the integration of Wwise I created an audio tool that allowed the Sound Designers to post the wwise events from within Unreal to test whether their Wwise implementation was correctly working.
Audio Tool U.I
The tool functions off of a google sheet which live updates from the Sound Designer's asset list. Therefore as the Sound Designers outlined the sounds and added them to Wwise they'd be able to instantly try them in the engine with as little hassle as possible.
One of the major risks when it comes to puzzle games is the Quality Assurance as no two people will approach the same puzzle the same way. In order to midigate this risk we had to quantify the experience of those who played the game. Therefore datahooks were in order. For Shift I ended up creating a datahooks for all sorts of necessary data such as room completion time, which player finished the room first, overall game time, and a few more. The data provided from the datahooks allowed us to adjust our game length for our end target of pitch & play.
When we decided to make our game a co-op game we had to both learn how to do networking and which way we would be able to maximize our efforts for the desired outcome. Little did we know that Unreal already had a rather robust Steam tie-in that made the process far less painful.
Under Construction...
As Shift was a VFS Final Project we were required to use Wwise, which we hadn't touched at all upto the point when we started working with the Sound Design collaborators. At the start it was a whirlwind of new information and knowledge but it soon fell into order. It taught me the invaluability of communication as we all at first stumbled until we found our stride.
Wwise Profiler
When it came to Shift, as we had many hands on the project we had to sort out some manner of testing things at a rapid pace and being able to ensure that our builds would be readily avaliable and accessable for our own team and even Mentors and Instructors. In order to facilitate this we were provided with a base script for automating the building procedure in Unreal. Past the base script I further expanded it in and tied it into our version control, backup management. Through which I had to re-write the script from scratch several times.
Brodie Williams
Felipe Lara
Jace Nielsen
Andrei Cabungcal
Enoch Choi
Katie Spence
Marion Edralin