Zafkiel Arcade
Zafkiel Arcade is a high-stakes, time-manipulating survival game inspired by the aesthetic of Kurumi Tokisaki. Unlike standard arcade clones, Zafkiel integrates a full Modular Monolith backend to track highscores, enforce zero-trust inputs, and stream real-time temporal state.
๐ Why Zafkiel Arcade?
Zafkiel Arcade is a high-stakes, time-manipulating survival game inspired by the aesthetic of Kurumi Tokisaki. Unlike standard arcade clones, Zafkiel integrates a full Modular Monolith backend to track highscores, enforce zero-trust inputs, and stream real-time temporal state.
| ๐ Time-Manipulating Play | Use REWIND, FREEZE, ACCEL, and COLLECT skills to survive. |
| ๐ Zero-Trust Logic | Every game event and payload is validated via Zod schemas. |
| ๐ Real-time Persistence | High-performance SQLite database tracks highscores & logs. |
| ๐น Aggressive Scaling | Dynamic difficulty algorithms increase anomaly spawn rates. |
| ๐ก๏ธ Hardened Security | Rate-limiting, CORS locks, and secure session management. |
๐ฏ Key Features
Game Mechanics
| Skill / Mechanic | Status | Description |
|---|---|---|
| HP Drain (-1/s) | โ | Constant depletion of Time Essence. Collect stars to live. |
| REWIND (๐) | โ | Reverse player trajectory to escape traps or reposition. |
| FREEZE (โ๏ธ) | โ | Freeze all enemies temporarily to plan strategic moves. |
| ACCEL (โก) | โ | Speed up game-loop speed to harvest resource stars quickly. |
| COLLECT (๐) | โ | Massive black-hole gravitational pull on nearby essence stars. |
| Rift Scaling | โ | Enemy speeds and spawn frequencies ramp up over survival time. |
Technical Capabilities
| Capability | Status | Description |
|---|---|---|
| Modular Monolith | โ | express.js v5 modular routing keeping logic compartmentalized. |
| Native DB Bindings | โ | Native better-sqlite3 bindings for lightning-fast IO execution. |
| Winston Auditor | โ | Audit-trail pipeline capturing every action to persistent JSON. |
| Zod API Schema | โ | Strict type-enforcement on incoming requests to prevent cheats. |
| Docker Packaging | โ | Multi-stage Docker config ready to run on any VPS. |
๐๏ธ Architecture
The codebase separates the layout engine (Frontend UI) from temporal persistence (Backend API) while sharing core validation utilities:
zafkiel-arcade/
โโโ core/
โ โโโ engine.js # Time-manipulation mathematical rulesets & tick rate
โโโ interface/
โ โโโ api/ # Express backend controllers, security middleware
โ โโโ web/ # React SPA client bundle (Vite + Tailwind CSS)
โโโ utils/
โ โโโ validation.js # Zero-trust validation rule files
โ โโโ logger.js # Winston logger instance (Temporal log outputs)
โ โโโ errors.js # Global HTTP exception interceptors
โโโ assets/ # Creative graphics, icons & theme audio files
โโโ arcade.db # Active local SQLite binary database
โโโ vercel.json # Vercel deployment instructions
๐ Quick Start
Option A: Local Development
# Clone the repository
git clone https://github.com/Curzyori/zafkiel-arcade.git
cd zafkiel-arcade
# Install production and development dependencies
npm install
# Rebuild native better-sqlite3 drivers (Crucial for Linux platform)
npm rebuild better-sqlite3
# Create environment variable lock
cp .env.example .env
# Run hot-reload backend + Vite client
npm run dev
Option B: Docker Container
# Build and package app stack
docker build -t zafkiel-arcade .
# Start container instances mapping live ports
docker run -d -p 3000:3000 --name zafkiel-instance zafkiel-arcade
๐ Security & Logging
Temporal Audit Trails
Zafkiel records every major database change, highscore submission, and cheat anomaly detected directly to standard outputs and /error.log via the Winston engine:
{"level":"info","message":"Temporal rewound executed successfully","timestamp":"2026-06-20T11:45:00Z"}
Input Hardening
Any client attempting to tamper with coordinates or simulate score updates will be blocked at the network gate. The server enforces a strong schema matching client structure using the Zod engine.
๐ License
This project is released under the MIT License โ free for educational, personal, and research purposes.
โ Support
If this project is useful, consider supporting its development!
<p align="center"> <a href="https://donate.curzy.dev/"><strong>๐ Donate via Crypto or QRIS</strong></a> </p>Crypto payment details are maintained at donate.curzy.dev.
<sub>Built with passion as the 1st Project of the 50 Projects Challenge by @curzyori</sub>