



Game Overview
Framed in fear is a prototype game with initial plans of it being multiplayer. The game's concept explores themes of psychological horror, betrayal and the illusion of control, playing with the prisoner's dilemma, forcing players to choose between cooperation and self-preservation. The house itself serves as a metaphor for inescapable fate and the cyclical nature of suffering.
Learning Points
Occlusion Culling
Knowing the size of the project by estimating the sizes of textures and the sheer quantity of entities in the scenes, I prioritized occlusion culling to ensure that the performance of the game would not be as impacted by the large number of models and meshes present in the scene.
NavMesh
In this prototype, since there wasn't sufficient time to learn how to do netcode and multiplayer games, I looked into NavMesh agent navigation, creating hotspots around the map for the simulated "other player" which is AI to roam around and help out.
Roles & Contributions
Lead Programmer, NavMesh Specialist
During this prototype, I spearheaded the gameplay, movement and interaction mechanics by creating a 3D controller. I also created the scene manager and scene transitions and debugged the game with results from continuous sessions of playtesting.
I also looked into and implemented the NavMesh agent that was supposed to simulate the other player in this prototype, since the game's original intention was to be a multiplayer game, and that the prototype wouldn't exactly work without another user.
Development Process
Mechanics Planning & Implementation
When starting this project, I went about creating the mechanics in a sandbox while the level designers got the location ready for implementation. I primarily focused on the animation implementations and player controller to interact with the pictures in the scene. All the basic interactions that had to do with the pictures and the picture fragments were implemented here and later carried over into the scene.

After integrating the player's mechanics into the scene with the house, I worked on painting the floor with the NavMesh plane, essentially identifying areas for the agent to walk along. My primary issue would be to create dynamic NavMesh flooring when the doors were opened or closed, that the agent wouldn't be able to phase through the door.
With this issue in mind, I took testing to another scene and eventually managed to get the results I was looking for by having the door be marked as a NavMesh Obstacle. NavMesh obstacles are naturally obstructive by nature on a NavMesh grid, but since these obstacles can be moved and the NavMesh is not baked, I can make the obstacle move dynamically, creating space for the agent to walk through.


NavMesh Integration
In the primary scene, the NavMesh would need to be re-created, with objects around the place needing to be marked as obstacles so the agent itself would pathfind its way to its next designated location via the next best route. The image showcased on the right is the final result of it, where some fine-tuning was required.

Occlusion Culling
After ensuring that the door and NavMesh can operate as needed, I got to work on implementing unity's occlusion culling with the camera, which lessened the load of the system on the models it render. This especially includes the assets outside of the premise such as fences and trees- static entities that have little to no contribution to the gameplay.


Post-processing & Lighting
Once the main features and technical buffers were in place, the rest of the development process was connecting the scenes and introducing post-production and lighting. I included a flash of bright light that would come from outside, simulating lightning in an eerie environment.



Framed In Fear

*This project is affiliated with DigiPen



