Skip to content

Repository files navigation

CAT-A-CUTE

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.


Overview

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


Features

  • 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

Tech Stack

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.


Prerequisites

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 --version

If that does not work, try python3 --version. If neither works, install Python from python.org.


Installation

  1. Clone the repository:

    git clone https://github.com/KaelJP/CAT-A-CUTE.git
  2. Navigate into the project folder:

    cd CAT-A-CUTE
  3. Start the server:

    python server.py
  4. 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.html directly 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.py if python is not recognized.


Usage

Controls

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

How to Play

  1. Start a new game from the main menu
  2. Press E to advance through the opening dialogue
  3. Explore each room, collect keys, and interact with objects using E
  4. Watch the cat. When it hisses or raises its shield, stay behind it and wait 10 seconds
  5. Manage your flashlight battery. Recharge at light switches (press E near them)
  6. Complete the mission objectives shown in the top-right corner of each room
  7. Survive until dawn

Room Progression

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.


Project Structure

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

How the code is organized

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.


Troubleshooting

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

Known Limitations

  • 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.

Credits

Role Name
Team Leader Karl Pelayo
Developer David Palencia Jr.

Built for #hackthekitty 2026


Documentation

  • Project Report — Full technical report covering architecture, testing, design decisions, and development learnings

License

© 2026 CAT-A-CUTE Studio. All rights reserved.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages