Notebook detective is a first-person adventure game set in the '20. The game revolves around collecting objects, gathering clues, and using the notebook provided to solve a murder case. I was the UI programmer for this project with a minor supporting role for gameplay. I also took care of a lot of bug-fixing. The game was made in a multidisciplinary team of 22 people using blueprints. The game has been released on Itch.io.
Role: UI and Gameplay programmer
Development Time: 8 Weeks (4 workdays per week)
Made in : Unreal Engine 4
Team Size : 22
Platform Support : Windows, Mac
- Implementation of the overall logic for the notebook (notebook navigation, narrator unlocking, word dragging, evidence tracking)
- Option menu implementation
- Outline shaders for pickable objects
- Bug-fixing and performance checking
Unreal Engine 4
UI - Notebook Navigation
For this project, we needed an UI resembling a notebook, with different sections - Index, Narrators, Evidence - containing all the information needed by the player to solve the case.
Because the information are locked until an object is examined - with additional information given based on the narrator - and the player has freedom of movement throughout the level, I kept track of all the data needed inside the object with a struct (Information, Name, UI picture, ID), using the ID as a way to check against and unlock the correct information inside the notebook when a specific object was picked up. All the information are hidden, reordered and revealed when needed. Also a new page is added to the notebook when an object is picked up.
For the navigation, throughout the development we noticed that different players like different ways of navigating the notebook and one was not enough.
Therefore the notebook can be navigated in multiple ways, by clicking on the specific item in the Index, by using arrows, keys or bookmark.
UI - Word Dragging
The central mechanic of the game revolves around dragging the words from certain part of the notebook to unlock narrators and solve the case at the end with the right information.
All the text that needs to be draggable is parsed into an array of string and, for each word, a new widget is created. By being all the information already contained but hidden in the notebook, this process is executed at the begin of the game.
Unreal provides built-in methods to manage the dragging and the dropping and when a widgets is dropped inside a field that needs to be filled in, there's a check to compare the string data contained against the ones needed.
UI - Setting Menu
Simple options menu that uses the built-in Unreal commands to control the graphical settings. Frame Rate, Vsync and Resolution scale were added as additional options later. The menu was added at the end of the optimization and performance process, to give more option to the players to run the game.
The settings of the menu are saved and they can be accessed both at the start screen and from the notebook. They can be tweaked in game without restarting the application.