Haunted Hallway: The Conclusion

Browser-based Halloween game with procedurally generated characters and arcade-style gameplay.

Haunted Hallway: The Conclusion

A Halloween-Themed Browser Game

Role: Solo Developer & Designer
Duration: 3 Weeks (2019)
Platform: Web Browser
Status: Playable on OpenProcessing
Technologies: p5.js, JavaScript, Creative Coding

Project Overview

Haunted Hallway: The Conclusion is a Halloween-themed arcade game built entirely through creative coding. Players navigate a haunted hallway, avoiding procedurally animated ghosts using mouse-controlled movement. All visual elements—from the Ms. Pac-Man-inspired player character to the ghostly enemies—are generated purely through code with no external sprites or assets.

This project demonstrates my ability to rapidly prototype engaging gameplay experiences while exploring the intersection of programming and visual design through procedural generation.

Gameplay & Design

Core Mechanics

  • Mouse-driven vertical movement restricts player to dodging within a confined hallway

  • 60-second survival challenge tests player reflexes and spatial awareness

  • Collision detection triggers game-over state, encouraging risk-reward decision making

  • Instant restart functionality (press any key) supports "one more try" engagement

Visual Design & Inspiration

  • Character designs inspired by classic arcade aesthetics and Halloween decorations

  • Player character pays homage to Ms. Pac-Man's iconic design language

  • All graphics procedurally generated through code—no sprites or image assets used

  • Dynamic ghost animations created through algorithmic movement patterns

Player Experience

  • Clear win/loss states with celebratory animations and "surprise" reward for successful completion

  • Progressive difficulty as ghosts populate the hallway

  • Immediate feedback through collision system and visual cues

  • Accessible controls (mouse movement only) lower barrier to entry

Technical Implementation

Creative Coding Approach

  • Built using p5.js, a JavaScript library designed for creative coding and visual experimentation

  • Procedural character generation: all sprites created through code-based drawing functions

  • Real-time animation systems for smooth ghost movement and player response

  • Custom collision detection algorithms for precise hit-box interactions

Key Technical Features

  • Procedural Generation: Characters, animations, and visual effects generated algorithmically

  • State Management: Clean game state system handling menu, gameplay, win, and loss states

  • Input Handling: Responsive mouse tracking for vertical player movement

  • Timer System: 60-second countdown with win condition triggering celebration sequence

  • Restart Functionality: Seamless game loop with instant restart capability

Development Process

  • Rapid prototyping approach: from concept to playable game in 3 weeks

  • Iterative design testing gameplay feel and difficulty balance

  • Code-first visual design exploring p5.js drawing capabilities

  • Cross-browser compatibility testing for web deployment

Outcomes & Impact

  • Fully functional browser game playable on any device with web access

  • 100% code-generated visuals demonstrating procedural generation skills

  • Rapid development cycle from concept to completion in 3 weeks

  • Published on OpenProcessing for public play and code inspection - with 1200+ views

  • Engaging gameplay loop encouraging repeated play sessions

Skills Demonstrated

Game Development: Arcade game mechanics, collision systems, state management, difficulty balancing, player feedback loops

Creative Coding: Procedural generation, algorithmic animation, p5.js framework, visual programming

Technical Skills: JavaScript, p5.js library, real-time input handling, browser-based game development

Design: Character design, visual aesthetics, user experience, arcade-inspired gameplay

Rapid Prototyping: Quick iteration, scope management, polish within tight timeframes

Project Reflection

This project explores how constraints drive creativity. By building all visual elements through code rather than using pre-made assets, I gained deep insights into procedural generation and algorithmic design. The 3-week timeline challenged me to focus on core gameplay and polish, resulting in a tight, engaging experience.

The success of the mouse-driven movement system demonstrated how simple, well-executed mechanics can create compelling gameplay. This philosophy—that elegant simplicity often beats complex systems—has influenced my approach to game design and prototyping ever since.

Links

Play and view game code on OpenProcessing