Steam_LibraryHero-thumb.jpg

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

 
vlcsnap-2020-11-23-10h48m08s273.png

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.

 

GAME TRAILER

 

THINGS THAT I WORKED ON

 
Trikya_Intergration.gif

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.

 
Trikya Level Layouts

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

 
WhiteBox

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.

AllLevels_edited.jpg

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. 

 
AnorLondoer LAdders.png

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.

AnorLondoer AldrichRoom.png

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

Final World Layout In Engine

Rough Draft Of World Layout

Rough Draft Of World Layout

Trikaya First Draft Of World Layout.jpg

Trikaya First Draft Of World Layout.jpg

 
Temple Build Pipeline .png

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.png

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.

ShaderOptimsiation_edited.jpg

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 Sprites.jpg

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.

Descruction.gif

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.

Performance.png

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 Leve Settings.jpg

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

CleanUnusesdAssets.jpg

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 

Crash.png

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-logo.jpg

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 01

Trikaya In-Game Screenshot 02

Trikaya In-Game Screenshot 02

Trikaya In-Game Screenshot 03

Trikaya In-Game Screenshot 03

Trikaya In-Game Screenshot 04

Trikaya In-Game Screenshot 04

Trikaya In-Game Screenshot 05

Trikaya In-Game Screenshot 05

Trikaya In-Game Screenshot 06

Trikaya In-Game Screenshot 06

Trikaya In-Game Screenshot 07

Trikaya In-Game Screenshot 07

Trikaya In-Game Screenshot 08

Trikaya In-Game Screenshot 08

Trikaya In-Game Screenshot 09

Trikaya In-Game Screenshot 09

Trikaya In-Game Screenshot 10

Trikaya In-Game Screenshot 10

Trikaya In-Game Screenshot 11

Trikaya In-Game Screenshot 11

Trikaya In-Game Screenshot 12

Trikaya In-Game Screenshot 12

Trikaya In-Game Screenshot 13

Trikaya In-Game Screenshot 13

Trikaya In-Game Screenshot 14

Trikaya In-Game Screenshot 14

Trikaya In-Game Screenshot 15

Trikaya In-Game Screenshot 15

Trikaya In-Game Screenshot 16

Trikaya In-Game Screenshot 16

Trikaya In-Game Screenshot 17

Trikaya In-Game Screenshot 17

Trikaya In-Game Screenshot 18

Trikaya In-Game Screenshot 18

Trikaya In-Game Screenshot 19

Trikaya In-Game Screenshot 19

Trikaya In-Game Screenshot 20

Trikaya In-Game Screenshot 20

Trikaya In-Game Screenshot 21

Trikaya In-Game Screenshot 21

Trikaya In-Game Screenshot 22

Trikaya In-Game Screenshot 22

Trikaya In-Game Screenshot 23

Trikaya In-Game Screenshot 23

Trikaya In-Game Screenshot 24

Trikaya In-Game Screenshot 24

Trikaya In-Game Screenshot 25

Trikaya In-Game Screenshot 25

Trikaya In-Game Screenshot 26

Trikaya In-Game Screenshot 26

Trikaya In-Game Screenshot 27

Trikaya In-Game Screenshot 27

Trikaya In-Game Screenshot 28

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. 

What did I learn