This project consists of multiple Unity C# scripts that handle various gameplay mechanics, such as scene transitions, teleportation, puzzle-solving, and player movement.
- Clone the repository:
git clone https://github.com/Stoobyy/BeyondTheOffice/
- Open the project in Unity.
- Attach the scripts to the appropriate GameObjects.
Handles scene fading transitions and teleportation.
- FadeInStart(): Fades in the scene at the start.
- FadeIn(): Performs a manual fade-in.
- FadeOutAndTeleport(Transform player, Vector3 newPosition): Fades out, teleports the player, and fades back in.
Teleports the player to a new scene on collision.
- OnCollisionEnter2D(): Detects player collision and triggers scene transition.
- FadeAndSwitchScene(): Calls
SceneFaderto fade out and load a new scene.
Loads a new scene after a video ends.
- OnVideoEnd(): Triggers when the video finishes playing.
- DelayedSceneLoad(): Waits for a delay before switching scenes.
Handles an office-themed puzzle with sequence-based door navigation.
- PlayerEnteredDoor(string doorName): Checks if the player follows the correct sequence.
- ResetPlayer(): Resets the player's position if they take the wrong path.
- TeleportWithDelay(): Teleports the player after completing the puzzle.
- Various effects (e.g., camera shake, flickering lights) enhance immersion.
Manages door interactions and teleportation.
- OnCollisionEnter2D(): Triggers teleportation when the player collides with the door.
- UpdateSpriteWithDelay(): Updates the door's sprite based on the number of passes.
Handles scene transition when a button is clicked.
- OnMouseDown(): Deletes player progress and starts a fade-out transition.
- FadeAndLoadScene(): Loads the target scene after a fade-out effect.
Manages puzzle counters and updates sprites based on progress.
- IncrementCounter(): Increases the counter and saves progress.
- ChangeSprites1() / ChangeSprites2(): Changes object sprites based on counter value.
- EnableCollider2(): Enables interaction with the next puzzle.
Handles door collision events in a puzzle environment.
- OnCollisionEnter2D(): Calls
OfficePuzzle.PlayerEnteredDoor()when the player collides with a door.
Manages a directional sequence puzzle.
- PlayerEnteredDoor(string door): Tracks the player's path and checks for correctness.
- ResetPlayer(): Resets progress if the player takes a wrong turn.
- LoadNextLevel(): Loads the next scene upon completion.
Controls player movement.
- Update(): Reads input for movement.
- FixedUpdate(): Moves the player and updates animation parameters.
- Attach scripts to the relevant GameObjects.
- Configure the Inspector settings (e.g., assign
sceneToLoad,fadeImage,correctSequence). - Run the Unity project and interact with objects to trigger the scripts.
- Mainly kids above the age of 14 and adults seeking entertainment, nostalgia and the thrill of light horror.
- Market is decently large as horror and puzzle games are very popular genres, especially among mobile gamers.
- Very easy to develop, and distribute as it is a 2D platformer
- Assets are easy to build and hence can be distributed as a completely free or freemium model
- Light advertising
- Word of Mouth
- Publishing in open source environments like itch.io
- Amrith Saras - Scripting
- Diya Jothish - UI Design
- Abhay T P - Testing and Debugging, Assets
- Abraham Thomas - Puzzle Design
For any issues or contributions, please open a GitHub issue or contact the developers.