
TRIKAYA
Worked as the Technical Level Designer on this Team-Based Project
GAME DESCRIPTION
​
Trikaya is an atmospheric first-person puzzle game where the player explores a long-forgotten temple and pieces together a mighty and mysterious artifact to master magics to uncover the intriguing history of the extraordinary artifact.
​​
Development Details
Team Name: Team 134b @SMU Guildhall
Team Size: 11
Genre: 1st person exploration puzzle
Engine: Unreal Engine 4
Develop Time: 16 Weeks
Shipped Date: Dec 2020
DOWNLOAD FROM STEAM

ROLES RESPONSIBILITY
​
Level Design for 3 out of the five major levels in the game.
Prototype multiple action blocks to find the fun for the game.
Implemented the descrutables objects to improve player interaction in the game.
Meeting with the team leads and the stakeholders.
Designed and refined levels to support the intended gameplay.
Iterated and re-designer levels based on lead, stakeholder and playtester feedback.
Prototyped destruction-based gameplay interaction to ensure the programmers could later build on top of it.
Established the project and managed various things such as folder structures, collections, removing redundant plugins, project-level optimization, and level streams.
Used various optimization techniques such as LOD’s, Visibility Portals, etc., throughout the entire project to make the game run at constant 60+FPS on most machines.
Lighting the overall game in collaboration with an external artist.
Tweaked lightmaps for every static mesh in the scene for lightmaps optimization and created additional shadow casters as needed.
Provided technical support and additional debugging for the team.
THINGS THAT I WORKED ON

The Overall Level Layout and Integration
One of the major roles that was assigned to me wsas to integrate all the levels from 62 different streams into one cohesive persistent level and make sure that everything is snapping together with no leaks.

Setup and management of level streams
One of the first tasks that I did was to set up the level streams. It was quintessential that I did this first as this helps a lot in getting out workflow and pipeline structured and solidified early on.
​
There were total of 4 main levels one hub level and 3 transitional level that go back and forth for the first three level over all the entire game consists of 9 levels.
​
I wanted multiple people to work on a level an be organised a well so every steams of the level was divided into multiple sub streams.
Environment_A (For Props decoration,walls etc)
Environment_B (For Puzzle elements s, Blueprint Actors , Sequences, Level Blueprint Triggers etc)
Lights_A (Point/Spot Lights)
Lights_B (Blueprint Light Actors, Movable Lights)
​
I also created some global levels to override the pipeline in case of specie special cases which ended up being extremely helpful later on.
​
At the end of the day I creating over 75+ levels but only ended using 40 level in the final product.
​
By organizing the entire level structure it was extremely easy to manage tasks.
​
I understand the creating level streams is a very basic stuff but by doing this right and doing this early on in the project mitigated many further complications that we would have had otherwise.
​
THE LEVEL DESIGN

WHITEBOXING THREE PLAYABLE LEVELS
I was responsible for setting up the surrounding environment while the other designers worked on the puzzle mechanics
The 3 levels was made up of 3000 small modular wall pieces and yielded in over 15 minutes of exploration and gameplay. As this was so early on in the milestone and I could only use existing assets the entire space was made with 2 wall pieces and special wand prop whitch was scaled up and inverted for representational purposes.

ITERATIVE LEVEL DESIGN
Designed levels from paper maps to final production quality
I mostly worked on the hub level,level 2 and the final level in the game. Throughout the lifecycle of the project those spaces went to immense amount of changes, polish and changes. The overall structure remained the same but with every iteration the player's experience was drastically improved.
Inspirational From The Original Dark Souls
I am a huge fan of the original dark souls level design and thus many of the spaces in the level were inspired from it and designed keeping them in mind. I wanted the players to feel the same feeling of grandiosity when playing our game.
​

THE PAINTED WORLD UPPER ROOM - THE EARTH GEM PLATFORMS
I wanted to keep somewhat similar feel when the player walks on the ledge in the painted world from dark soules room and thus I designed many platform in the earth gem room to simulate the feel.

ANOR LONDO STAIRSÂ Â - THE FINALÂ GEM AREA ENTRANCE
Similarly the first visit to Anor Londo was grandiose and I wanted to recapture that moment in our game. The main way to final area (Initially planned as boss area ) was design in that retrospect.
WORLD LAYOUT AND DESIGN
During the initial stage of development I worked on overarching world layout and to how the different zone were to be constructed and how the hub would inter connect the neglite gameplay space.
![]() Final World Layout In Engine |
---|
![]() Rough Draft Of World Layout |
![]() Trikaya First Draft Of World Layout.jpg |

BUILD PIPELINE AND AUTOMATION
As our entire game had a over 20,000+ assets building lighting and HLOD's took a very long time at production quality. I wasn't authorised to use the nightly build system so I had to come up with a highly efficient manual build workflow and pipeline that made sure that the game was of production quality on each day of work without interfering with the development schedule.
​
* This is not a nightly build process
THE TECHNICAL DESIGN
I am a huge fan of the original dark souls level design and thus many of the spaces in the level were inspired from it and designed keeping them in mind. I wanted the players to feel the same feeling of grandiosity when playing our game.
​

LIGHTS, SHADOWS AND OPTIMISATION
Experimenting, tweaking and fixing all lighting related issues and bugs
Throughout the project there we ran into many many lighting issues. weird shadows expositionally long lighting building times,flat lighting you name it. I spent a very long time experiment,debugging and finding solution to fix this problems and making sure that did not impact any other parts of the game or the performance.
After lots of trial error estimation and experiment the one stop solution that I found to fix this problem was to enabling mesh distance fields and shadows and to use force volumetric lightmaps per object in the scene.

SHADER OPTIMISATION
+7 FPS gained on average without losing any art quality
Although not many there were instance where I had to manually optimize certain shaders without losing any of the artistic fidelity. In this case in the 3'rd Level the framerate was dropping drastically when entering this space and the main cause of it was translucency. So I uses tricks like camera position based dither and by changing the material to masked I could fake the translucency and still have the same artistic look.

IMPOSTER MESHES
Reduced polygonal draw calls
I create multiple imposter meshes to replace high poly models in the scene with static planes which orient themself with respect to the player's camera orientation. This cut down the polygonal load dramatically Although we had to remove this feature the end of the day.

DESTRUCTIBLE SEQUENCES
Finding the fun With Destruction
During the initial stages of development One of the earlier tasks that I did was finding the fun using destructible sequences. I implemented them and experimented with lots of large set pieces and level blueprints so create some memorable moments.

PROFILER ANALYSISÂ AND DECONSTRUCTION
Improved performance by using various optimisation techniques
I often used the ue4 profiler and other debugging tools like console commands groups, tick dump file etc to find out what was the most expensive feature and mitigating them.

PROJECT LEVEL OPTIMIZATION
Some of the setting and tweaked that i made to the engine to make the game run smoother and better.
Unreal engine comes with a tremendous amount of bloatware that is very generic and applicable to almost every time of project.The things that are not useful for our our project only increase the games load.
Some of the things that I did to make this happen are:
Removed all redundant plugins
Changed the maximum number of iterative loops so execute process faster
Removed non supported RHI like vulcan
Removed any and all multiplayer, VR, AR, arc-viz, co-op, split screen, AI features etc to let the engine utilise its maximum resources to the current genre of game
Used blueprint nativization on spective blueprints that are math heavy to work faster.
Foliage and memory optimization through the use of early z-pass

GAME SIZE REDUCTION
Reduced the project size from 4.75 GB to 750MB a whooping 83.33% reduction is project size
In the final stages of our development the project turned out massive in its size. I was takes to reduce it size. Here are some of the steps that I took to make that happen.
Removed any and all old and unreferenced assets to free up space through the use of a simple python script.
Changed the lightmap resolution for all the 2000+ assets the

LOTS AND LOTS OF CRASHES AND BUG FIXES
Provided Tech Support too all the team mates
When a game is in development it is never ever stable. There are many moments the build and the editor crashed halting progress. One of the other that I did was diagnose that issue find its cause and resolve it . Sometimes the issue would be a simple out of dat drive while other times its major project level settings change or improper merge conflict resolution. I had to asses every issue on a case by case basis resolve it.

PLAYSTATION 4 PORT
(Work in Progress)
I am currently working on the playstation dev kit in order to port the game to the playstation 4 console and to make it possible to run it t a constant 60+fps.
GALLERY
![]() Trikaya In-Game Screenshot 01 | ![]() Trikaya In-Game Screenshot 02 | ![]() Trikaya In-Game Screenshot 03 |
---|---|---|
![]() Trikaya In-Game Screenshot 04 | ![]() Trikaya In-Game Screenshot 05 | ![]() Trikaya In-Game Screenshot 06 |
![]() Trikaya In-Game Screenshot 07 | ![]() Trikaya In-Game Screenshot 08 | ![]() Trikaya In-Game Screenshot 09 |
![]() Trikaya In-Game Screenshot 10 | ![]() Trikaya In-Game Screenshot 11 | ![]() Trikaya In-Game Screenshot 12 |
![]() Trikaya In-Game Screenshot 13 | ![]() Trikaya In-Game Screenshot 14 | ![]() Trikaya In-Game Screenshot 15 |
![]() Trikaya In-Game Screenshot 16 | ![]() Trikaya In-Game Screenshot 17 | ![]() Trikaya In-Game Screenshot 18 |
![]() Trikaya In-Game Screenshot 19 | ![]() Trikaya In-Game Screenshot 20 | ![]() Trikaya In-Game Screenshot 21 |
![]() Trikaya In-Game Screenshot 22 | ![]() Trikaya In-Game Screenshot 23 | ![]() Trikaya In-Game Screenshot 24 |
![]() Trikaya In-Game Screenshot 25 | ![]() Trikaya In-Game Screenshot 26 | ![]() Trikaya In-Game Screenshot 27 |
![]() Trikaya In-Game Screenshot 28 |
RETROSPECTIVE
Visually all the levels in the game look pretty good.
Added a tonne of detail and clutter to the Level to make the space move livelier.
Easy gameplay doesn’t require a lot of skill to complete the level
Implement a pretty decently cinematic sequences
Leard how to work virtually pretty quickly and was efficient at it.
What went well
We spent a good chunk of time working on Level Streaming but because of how our levels were setup it caused more harm than good. Since the eitner world was comprised of over 20,000+ assets loading and unloading all of that caused a huge load on the memory dump which cause stutters and framerate drops.
Did not understand the value of a project pipeline pretty earn on and broke the pipeline to get a job done.
Perspective matters, other player felt a bit of motion sickness from the cinematic sequence that I set up and I had to change it a lot
Miscommunication in between cross departments made things had as we had to miss
Performance, We never considered any and all performance costs,optimisations and fixes from the LD stand point and Left it to the SD'd entirely which drastically tanked the games overall framerate.
What went wrong
"Trust in your teammates to get the job done"; The biggest mistake I made initially was it took me a while to completely understand each and every one of my teammate's skillset. And once I got to know that I could place my complete unwavering trust in them
"Being Virtual has its advantages and Disadvantages"; One of the by-products of the Covid-19 Pandemic is that I got the experience of a virtual development environment. It wasn't the same as being in person and had its advantages and disadvantages.