A 2D side-scrolling psychological horror game that challenges the Filipino superstition about black cats.
The name "CAT-A-CUTE" is a phonetic play on katakot, the Filipino word for "scary." The game reframes fear into empathy.
Hackathon: #hackthekitty 2026 — World Catdomination Day
Reference ID: 6W9WT6UA
Team: Karl Pelayo (Team Leader), David Palencia Jr.
The #hackthekitty 2026 theme is World Catdomination Day — build projects that drive positive impact for cats, cat owners, and the broader cat community.
In the Philippines, black cats are widely believed to bring bad luck (malas). People avoid them, abandon them, and sometimes harm them because of this superstition. CAT-A-CUTE drives positive impact for cats by changing how people feel about them.
You play as someone trapped in a haunted house at night. A black cat appears, and your neighbor warns you that it brought the evil. But as you play, you discover the opposite is true: the cat is the only thing keeping you alive. The cat dominates the haunted house not through force, but through quiet, persistent protection.
The game teaches empathy through action. Instead of telling you that black cats are harmless, it makes you depend on one for survival. By the time the story reveals the truth, you already feel it.
Playtime: 15 to 20 minutes
- Cat companion AI that warns you of danger through visual behavior changes (hissing, defending, running)
- Flashlight system with limited battery that drains over time and recharges at wall switches
- Sanity meter that drops when you ignore the cat's warnings or stay in darkness
- Puzzle-based progression through six rooms (keys, a fuse box sequence, locked doors)
- Scripted horror events including jumpscares, flickering lights, ghostly whispers, and screen shake
- 60-second escape sequence with a ghost chasing you back through the house
- Narrative twist that reframes the entire experience in the final room
- Save/continue system so you can pick up where you left off
| Technology | What it does |
|---|---|
| Phaser 3.60.0 | Game engine that handles graphics, physics, sound, and input. Loaded from CDN (no install needed). |
| JavaScript (ES Modules) | The programming language used for all game logic. Runs directly in the browser with no build step. |
| HTML5 + CSS | The web page that contains the game canvas. |
| Python 3.x | Runs a simple local web server so the game can load properly. |
| Google Fonts | Provides the pixel-art font (Press Start 2P) and horror title font (Nosifer). |
Why no build tools? The project avoids npm, webpack, and similar tools on purpose. This means anyone can run the game in under 10 seconds with just Python and a browser. No package installs, no configuration files, no version conflicts.
You need three things to run this game:
| Requirement | Why |
|---|---|
| Python 3.x | Runs the local web server that serves the game files |
| A modern web browser (Chrome, Firefox, or Edge) | Displays the game |
| Internet connection (first load only) | Downloads the Phaser game engine from CDN |
No other software, packages, or accounts are needed.
Check if Python is installed:
python --versionIf that does not work, try python3 --version. If neither works, install Python from python.org.
-
Clone the repository:
git clone https://github.com/KaelJP/CAT-A-CUTE.git
-
Navigate into the project folder:
cd CAT-A-CUTE -
Start the server:
python server.py
-
Open your browser and go to: http://127.0.0.1:8000
You should see:
- Terminal says:
Serving at port 8000 with caching disabled - Browser shows a dark menu with the game title and three options: New Game, Continue, How to Play
To stop the server: Press Ctrl+C in the terminal.
Important: Do not open
index.htmldirectly by double-clicking it. The game requires a web server to function. Opening it as a file will result in a blank screen.
macOS/Linux: Use
python3 server.pyifpythonis not recognized.
| Key | Action |
|---|---|
| ← → (Arrow keys) | Move left and right |
| SPACE | Turn flashlight on/off |
| E | Interact with objects, advance dialogue, pet the cat |
| ESC | Pause the game |
- Start a new game from the main menu
- Press E to advance through the opening dialogue
- Explore each room, collect keys, and interact with objects using E
- Watch the cat. When it hisses or raises its shield, stay behind it and wait 10 seconds
- Manage your flashlight battery. Recharge at light switches (press E near them)
- Complete the mission objectives shown in the top-right corner of each room
- Survive until dawn
Living Room → Hallway → Kitchen → Bedroom → Basement → Living Room (Dawn)
Each room introduces a new mechanic or escalation. The player learns to trust the cat step by step.
CAT-A-CUTE/
├── index.html # The web page that loads and runs the game
├── server.py # Python server (serves files on port 8000)
├── src/
│ ├── main.js # Game startup configuration
│ ├── scenes/ # Game screens (menu, gameplay, pause, game over, etc.)
│ ├── systems/ # Game logic modules (cat AI, flashlight, puzzles, etc.)
│ └── data/ # Game data (room layouts, dialogue text, events)
├── assets/
│ ├── audio/ # Sound effects and music
│ └── images/ # Character sprites, backgrounds, and UI elements
└── documentation/
└── project_report.md # Detailed technical report
The game uses a modular architecture. One central file (GameScene.js) acts as the coordinator and delegates work to independent system modules:
| Module | Responsibility |
|---|---|
| PlayerSystem | Character movement, keyboard input, sanity tracking |
| CatSystem | Cat behavior AI (following, hissing, defending, running) |
| LightSystem | Flashlight rendering, battery drain and recharge |
| PuzzleSystem | Item collection, locked doors, fuse box puzzle |
| HorrorEventSystem | Jumpscares, ghostly effects, timed escape sequence |
| DialogueSystem | Story text and NPC conversations |
| MissionSystem | Objective tracking and room completion |
Each module handles one job and does not interfere with the others.
| Problem | Solution |
|---|---|
python command not found |
Use python3 server.py instead |
| Port 8000 already in use | Edit PORT = 8000 in server.py to another number (e.g., 8080) |
| Black/blank screen in browser | Make sure you are visiting http://127.0.0.1:8000, not opening the file directly |
| No sound when the game starts | Click anywhere on the page first (browsers block audio until you interact) |
| Game does not scale to window | Resize the browser window; the game adjusts automatically |
| Keyboard not responding | Click on the game canvas to give it focus |
- Keyboard only. No mobile, touch, or gamepad support.
- One continuous playthrough. No chapter or room selection.
- Sound requires a click to start (browser security policy).
- Save data is stored locally in your browser. It does not sync across devices.
- The server only works on your own computer (localhost). Other devices on your network cannot access it.
| Role | Name |
|---|---|
| Team Leader | Karl Pelayo |
| Developer | David Palencia Jr. |
Built for #hackthekitty 2026
- Project Report — Full technical report covering architecture, testing, design decisions, and development learnings
© 2026 CAT-A-CUTE Studio. All rights reserved.