Platform: PC
Technology: Unity, C#
Team size: Solo
Project Duration: 1 month (Aug. 2021- Sept. 2021)
Design And Gameplay
You find yourself standing in front of a door, with darkness behind you. You can hardly remember things and just want to escape from this place. But it that really possible for you to run away? Or, have you really gained your consciousness?
Inspiration
The ROOM is basically a tribute to a Hideo Kojima‘s game demo called Playable Teaser, which is an interactive trailer for Silent HILLS, the cancelled new installment in the popular psychological horror series Silent Hill. But the main purpose of THE ROOM is not to scare but to solve puzzles.
Interactivity Ideas
The game has a first-person perspective in which the player controls the protagonist who wakes up in a haunted house and experiences supernatural events. Players can solve puzzles by watching TV, reading paper on a table, etc.
Realtime Screenshots
Code Sample – The Portal
Each time the player passes through the door at the end of the corridor, he is actually teleported back to the beginning. This gives the player a sense of being in a loop in the scene.
private void Update()
{
var cpos = PCamera.transform.position;
var mt = Render.worldToLocalMatrix;
mt = Matrix4x4.TRS(Vector3.zero, Quaternion.AngleAxis(180, Vector3.up), Vector3.one) * mt;
Camera.transform.localPosition = mt.MultiplyPoint(cpos)+new Vector3(0,0,0);
Camera.transform.LookAt(Point);
Camera.nearClipPlane = -Camera.transform.localPosition.z;
const float renderHeight = 3.5f;
Camera.fieldOfView = 2 * Mathf.Atan(renderHeight / 2 / Camera.nearClipPlane) * Mathf.Rad2Deg;
}
private void OnTriggerEnter(Collider other)
{
other.GetComponent<CharacterController>().enabled = false;
other.transform.rotation = other.transform.rotation * Point.rotation * Render.rotation;
other.transform.position = Point.transform.position - new Vector3(0, 1.5f, 0);
other.GetComponent<CharacterController>().enabled = true;
Levels.GetComponent<Levels>().LevelUp();
}