Skip to project content
9Tae WorkshopDiscuss a project ↗
Portfolio archive/Game Development

Unity · 2D Isometric Survival Horror

HOTEL BETWEEN

A 2D isometric survival-horror/RPG prototype built around a clear loop: explore the hotel, complete environmental quests, then evade an Abyssal Terror that can spawn out of sight and kill the player in one hit. Tension comes from limited information and pursuit, not scripted jumpscares.

ROLE
Gameplay & Systems Programmer
YEAR
2026
DEPARTMENT
Game Development
STATUS
DEMO
HOTEL BETWEENCASE STUDY / 2026
GAME ARCHITECTUREPlayer & interaction → Quest & world state → Encounter & enemy AI → Vision & persistenceProject cover managed in Creator Studio
09detail sections
09tools
03media assets
BUILT WITH
Unity 6C#URP 2DInput SystemPhysics2DAI NavigationNavMeshPlusTextMeshProJSON
PLAYABLE DEMO

About This Game

A 2D isometric survival-horror/RPG prototype built around a clear loop: explore the hotel, complete environmental quests, then evade an Abyssal Terror that can spawn out of sight and kill the player in one hit. Tension comes from limited information and pursuit, not scripted jumpscares.

Hotel Between is a 2D isometric survival-horror RPG prototype about entering an unfamiliar hotel, understanding its rules, and completing environmental quests before the space turns hostile.

There are no scripted jumpscares. Fear comes from limited vision, uncertain spawn timing, the sound and movement of pursuit, and the knowledge that one hit ends the run.

EXPLORE THE HOTEL

Quest objectives publish state changes instead of coupling every door, candle, and save operation together. A typical chain is extinguish the required candles, unlock the route, persist progress, and restore the correct objective after loading.

ESCAPE THE HUNT

The enemy moves through Patrol, Hunting, and Attacking states. Contact triggers a local one-hit death flow without freezing the whole game through global time scale, keeping UI, transitions, and recovery controllable.

01ExploreRead connected hotel floors through limited vision.
02Complete questsInteract with candles, keys, doors, and objectives.
03The hunt beginsAn Abyssal Terror spawns out of sight and starts pursuing.
04Escape or dieBreak pursuit and reach safety; one hit ends the run.
02 / PLAY IN BROWSER

Play the WebGL demo.

The current Hotel Between build runs directly in this page. Desktop keyboard and mouse are recommended; click inside the game to capture input.

HOTEL BETWEEN · WEBGL DEMOOpen full screen ↗
DEMO BUILD

Explore the hotel, complete the candle objective, and react when the Abyssal Terror begins its pursuit. This is an active prototype, so content and balancing may change.

03 / GAME ARCHITECTURE

How the demo turns exploration into a systemic hunt.

The game keeps interaction, quest state, encounter selection, enemy behavior, presentation, and persistence in explicit systems so the core loop can be tuned without hiding side effects in the player controller.

PROJECT SYSTEM MAPPLAYER / WORLD / ENCOUNTER / PERSISTENCE
WHY THIS SHAPE

Quest events, encounter selection, AI state, player death, and save data remain separate enough to test and iterate without turning the player controller into the entire game.

COMPLETE SYSTEM INVENTORY

Every system behind the demo.

The diagram above is the runtime path. These cards show the concrete modules I implemented and how each one contributes to Explore & Escape.

PLAYER LAYER

Input & contextual interaction

Input System → target selection → distance validation → UnityEvent action.

WORLD LAYER

Quest pipeline & world state

Candles, keys, doors, objectives, floor state, and event-driven progression.

PERCEPTION LAYER

Vision, occlusion & sorting

URP Light2D, Physics2D line of sight, wall fade, and multi-floor render rules.

ENCOUNTER LAYER

Safe random spawn director

45–75 second window → five candidates → distance and visibility rejection → retry.

ENEMY LAYER

Abyssal Terror state machine

Patrol → Hunting → Attacking → local one-hit death and recovery flow.

NAVIGATION LAYER

Isometric multi-floor movement

NavMeshPlus paths pursuit across connected hotel spaces and floor transitions.

PERSISTENCE LAYER

Modular JSON save/load

Quest progress and world state restore through registered saveable modules.

TOOLS & QA

Repair tools and repeatable checks

URP ShadowCaster repair tooling and focused tests protect fragile transitions.

04 / FULL WALKTHROUGH

The decisions behind the result.

These sections are stored with the project and can be expanded, rewritten, or reordered from Creator Studio as the case study develops.

  1. 01

    Core game loop — Explore and escape

    Explore the hotel, complete environmental quests, react when the Abyssal Terror enters the floor, and escape the pursuit. The enemy kills in one hit, so tension comes from uncertainty, route choice, and lost safety—not scripted jumpscares.

  2. 02

    Event-driven quest pipeline

    Quest objectives publish state changes instead of coupling every door, candle, and save operation together. A typical chain is extinguish the required candles, unlock the route, persist progress, and restore the correct objective after loading.

  3. 03

    Contextual world interaction

    A shared interaction layer validates distance, selects the current target, manages listener lifecycles, and uses UnityEvents for object-specific behavior. New interactables can join the same player-facing flow without rewriting the controller.

  4. 04

    Darkwood-style vision and occlusion

    URP Light2D, Physics2D occlusion, and wall fading create a limited field of information. Enemies remain hidden when walls block line of sight, making spatial awareness more important than a scripted scare cue.

  5. 05

    Abyssal Terror AI and one-hit death

    The enemy moves through Patrol, Hunting, and Attacking states. Contact triggers a local one-hit death flow without freezing the whole game through global time scale, keeping UI, transitions, and recovery controllable.

  6. 06

    Safe random encounter director

    The prototype waits a random 45–75 seconds, evaluates five spawn points, rejects locations closer than 12 units or visible to the player, chooses among the safest candidates, and retries after four seconds when no valid point exists.

  7. 07

    Multi-floor isometric navigation

    Sorting layers, floor-aware visibility, and NavMeshPlus navigation support connected hotel floors while keeping movement, rendering, and pursuit behavior readable across vertical transitions.

  8. 08

    Modular save and load

    JSON-backed save data keeps quest progress and world state separate from scene presentation. The system is designed so additional saveable systems can register their own data without turning one manager into a project-wide dependency.

  9. 09

    Reliability and honest scope

    Editor tooling repairs URP ShadowCaster setup and repeatable tests cover fragile gameplay transitions. This remains a work-in-progress prototype; multiplayer authority and production-scale content are not claimed as completed systems.

MAINTAINABILITY

Decisions stay explainable.

Architecture and implementation details are documented as part of the work, not reconstructed after delivery.

MEDIA

Proof lives beside the story.

Cover art, screenshots, diagrams, and demo video can be updated without changing the project record or page structure.

GROWTH

Ready for the next iteration.

Clear layers and reusable patterns make future features easier to estimate, review, and deliver safely.

NEXT PROJECT

Need a useful system, not just another screen?

Start a conversation →Back to portfolio archive