Death Mystery
In Project Short Burn, we created a first-person puzzler. The game is set between 1850 and 1920, and the story revolves around a murder where the killer attempts to keep their crime hidden by concealing everything behind puzzles.
In Project Short Burn, I served as the Scrum Master, facilitating discussions to ensure that everyone's ideas were heard until we collectively agreed on one game concept. I created two puzzles: TiltBox and ConnectWires. Additionally, I developed the interaction system to provide a consistent experience throughout the game. I also spent a significant amount of time fixing bugs and updating the models for all the puzzles, which led to some issues with a few of them.
Project Info:
Team members: Marco van Roskam (Dev), Elias A (Dev), Zeke Haccou (Artist), Victor Min (Artist) & Remy P (Sound)
Project Time: Year 2 Period 4 (14-05-2021 until 01-07-2021)
Engine: Unity
Code Languages: C#
Design Patterns: Singleton
void Update()
{
if (runPuzzle) {
Ray ray = PlayerCharacterController.instance.PlayerCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 10f, puzzleLayer)) {
if (Input.GetMouseButtonDown(0))
{
for (int i = 0; i < wiresStartPoint.Length; i++) //Checks if RayCast hits Connector.
{
if (hit.transform.gameObject == wiresStartPoint[i])
{
cableGrab.Play();
CableSelected = i;
break;
}
}
}
}
if (CableSelected != -1) //Runs when a cable is selected.
{
bool complete = false;
if (hit.collider != null) wires[CableSelected].SetPosition(1, hit.transform.localPosition);
if (Input.GetMouseButtonUp(0)) //When the player releases the Left MouseButton the position is getting checked for valid position.
{
for (int i = 0; i < wiresEndPoint.Length; i++)
{
if (hit.collider != null && hit.transform.gameObject == wiresEndPoint[i])
{
cableConnect.Play();
combination[CableSelected] = i + 1;
wires[CableSelected].SetPosition(1, wiresEndPoint[i].transform.localPosition);
complete = true;
}
}
if (!complete) wires[CableSelected].SetPosition(1, wiresStartPoint[CableSelected].transform.localPosition); //When the cable isn't connected it will be reset.
CableSelected = -1;
for (int i = 0; i < combination.Length; i++) //Checks if every wire is assigned a connector.
{
if (combination[i] == 0) break;
if (i == combination.Length - 1) CheckCombination(); //Checks For Right Combination
}
}
}
if (PlayerInputHandler.instance.pressedKey(KeyCode.E)) ClosePuzzle(); //Closes Menu
}
}