Table of Contents
- Overview
- Role
- Concept
- Goal
- Solution
- Technical Implementation
- Game Design
- Playtesting
- Challenges and Learnings
- Final Thoughts
Overview
Don’t Blink is an innovative 2D horror game for macOS that uses SpriteKit and CoreML to detect player eye blinks through the webcam. Each blink advances the horror, creating unprecedented tension where players must literally keep their eyes open to survive. The game explores the intersection of physical discomfort and psychological horror.
👨💻 Role
Game Developer and ML Engineer
💡 Concept
Inspired by the “Weeping Angels” from Doctor Who and the natural human need to blink, Don’t Blink creates horror through involuntary player actions. The webcam becomes a window for the game to watch you back, while your inability to stop blinking becomes the core challenge.
🎯 Goal
- Create a unique horror experience that leverages physical player behavior.
- Implement reliable eye-blink detection using CoreML and Vision Framework.
- Design escalating horror that responds to player blinks in real-time.
- Balance difficulty to be challenging but not physically harmful.
- Explore the psychological impact of being watched while playing.
✨ Solution
MDA Framework Application
Mechanics:
- Eye-blink detection triggering enemy movement
- WASD maze navigation with collision detection
- Enemy spawning system tied to player blinks
- Auto-pause when face detection fails
Dynamics:
- Tension between physical need to blink vs game progression
- Strategic blink timing to manage enemy distance
- Exploration risk assessment in maze environments
- Managing eye strain vs game completion
Aesthetics:
- Horror atmosphere through enemy behavior
- Audio feedback for immersion
- Psychological tension from being watched
- Time pressure creating urgency
🛠️ Technical Implementation
Technical Features:
- Real-time eye tracking using Vision framework
- Dynamic enemy system that appears when player blinks
- Maze navigation with collision detection
- Game pauses automatically when no face is detected
🧪 Playtesting
Tested with 5+ players to identify core issues:
Key Findings:
- Initial difficulty was too punishing
- Blink detection inconsistent for players with smaller/narrower eyes
- Eye shape variations affected Vision framework accuracy
Adjustments Made:
- Reduced overall game difficulty
- Implemented custom blink threshold for different eye shapes
- Calibration system to accommodate eye variations
- Fine-tuned detection sensitivity for better accuracy
⚙️ Challenges and Learnings
- Detection Accuracy: Eye shape variations and lighting conditions required calibration for each player.
- Difficulty Balance: Initial builds were too punishing, leading to threshold adjustments for accessibility.
- Performance: Maintaining Vision framework processing without impacting game performance on macOS.
✨ Final Thoughts
- Physical Mechanics: Using blink detection created unique tension but required careful consideration for player comfort.
- Accessibility: Custom thresholds essential for accommodating different eye characteristics and blink patterns.