

Overview
Murder in the Blue Train is a short 3D adventure game in first person where the player will have to solve a murder in a 30's train, obviously inspired by Agatha Christie.
The player takes the role of Ulysses O. Lexter, a detective invited to board on the first-class wagons of Neptune Express by its owner and his old friend, Thomas Harris. What appeared to be a relaxing trip became a murder mystery...
Puzzle Programmer / Designer
March – Jun 2023
5
Unity
C#
Introduction
In the third year of the Video Game Design degree, it was time to move on to larger projects and collaborate with other students. We were assigned to develop a narrative adventure game, with full creative freedom regarding its direction. I anticipated the start of the project and set up a Discord server in advance to organize communication and coordination within the team.
I co-designed the puzzles, and I coded all them, and I also was involved in writing dialogue, managing the UI, and implementing both the audio and save systems.
Despite facing several internal challenges as a team, we worked through our differences and successfully delivered a cool game, earning the highest grade in the class.
The main highlights I want to share are the Crossword Puzzle, and the Scale Puzzle, which took some time to figure out a proper solution.
Crossword Puzzle
As you can imagine, this puzzle revolves around filling in missing words. We decided not to require players to type the full word manually. Instead, they were given a set of available letters to drag into place. While this made the puzzle significantly easier, it improved clarity and usability, especially within the context of a narrative-focused experience.
The biggest technical challenge was handling intersecting words. When a word was partially or fully completed, any crossing words had to update dynamically to reflect the newly placed letters. To achieve this, I created references to all affected grid cells and tracked the letter positions introduced from intersecting entries, ensuring that both words remained synchronized at all times.
Since the entire puzzle was built within a Unity Canvas and letters could be dragged directly into blocks, I also had to account for players potentially dragging letters off-screen and softlocking themselves. To prevent this, I implemented a margin around the edges of the screen, approximately 5 percent of the player's resolution. If a letter was moved beyond this boundary, it would smoothly return to its original position using a Lerp, preventing unintended loss of interactable elements.
Scale Puzzle
In the second act of the game, the player must search for clues in the Guest carriage, as well as find a key to unlock a blocked door. In one of the rooms, there is a scale puzzle where the player must place weights correctly to balance it and unlock an important clue.
For this puzzle to function properly, it required:
-
An object grabbing mechanic. Grabbing is handled through a Raycast that detects whether an object is interactable. Once grabbed, the object maintains a fixed distance from the player, as well as a rotation relative to the player's orientation.
-
A script attached to each side of the scale that detects the rigidbodies placed on top of it and reads their mass values. The script sums the total weight on each side and checks whether both sides are exactly balanced before triggering the puzzle's completion.








