Tower of Time
# Tower of Time *Entry for Beginner's Jam Summer 2025* A time-traveling tower defense game where you defend your base against waves of enemies using the power to rewind time. **[🎮 Play the game at https://m4v3k.itch.io/tower-of-time](https://m4v3k.itch.io/tower-of-time)** ![Screenshot](screenshot.png) ## About the game Tower of Time is a unique tower defense game that combines strategic building with time manipulation mechanics. When enemies overwhelm your defenses, use your time-travel powers to rewind and rebuild your strategy. The game features multiple tower types, energy management, and wave-based enemy spawning. ### Key Features - **Time Rewind**: Roll back time to survive the enemy waves - **Multiple Tower Types**: Basic turrets, sniper towers, slowdown towers, and splash damage towers - **Energy System**: Manage energy for building towers and rewinding time ## Controls Game supports both keyboard and gamepad. - **Move**: Arrow Keys / Gamepad Analog Stick - **Action**: Spacebar / Cross (PlayStation) / A (Xbox) - **Rewind**: Backspace / Left Trigger ## Vibe Coding Proof of Concept This game serves as a proof of concept for AI-assisted game development. Approximately 95% of the codebase was written by AI using: - **[Augment Code](https://augmentcode.com)** - Advanced codebase context and AI coding assistance - **[Cursor](https://cursor.sh)** - AI-powered code editor, mostly using Agent mode - **Claude Sonnet 4** - My LLM of choice for this project (also used OpenAI o3 and Claude Opus 4 occasionally) For detailed prompts and development process, see [PROMPTS.md](PROMPTS.md). What I've learned: - It is entirely possible to develop a game with AI, but you need to know what you're doing - AI makes prototyping super fast, but as you transition from prototype to final game you need to be careful - AIs like to write *a lot* of code, this project could probably have two times less code - Claude Sonnet 4 knows Phaser.js pretty well but for key areas I've given it a URL to the docs for the specific feature I was working on and it helped - If the AI gets stuck on something ask it to add debug/console logs and share them with the agent - If after that it still gets stuck don't fight it, roll back everything and try rephrasing the prompt or giving it more context ## Tech Stack - **Engine**: Phaser 3 (v3.90.0) with Phaser Editor v4 - **Language**: TypeScript - **Build Tool**: Vite ## Development ### Requirements - [Node.js](https://nodejs.org) (for package management) - [pnpm](https://pnpm.io) (package manager) ### Available Commands | Command | Description | |---------|-------------| | `pnpm install` | Install project dependencies | | `pnpm dev` | Start development server | | `pnpm build` | Build for production | ### Project Structure ``` src/ ├── main.ts # Entry point and configuration ├── scenes/ # Scenes (Title, Level, Configure) ├── prefabs/ # Prefabs (Player, Towers, Enemies) ├── systems/ # Systems (Energy, Building, Config) ├── components/ # Components (Input, Rewind) ├── ui/ # UI components (Bars, Menus, Dialogs) └── utils/ # Utilities (Sound, Music, Keys) public/ ├── assets/ # Assets (Images, Sounds, Fonts) ├── style.css # Basic CSS styles index.html # Game entry point ``` ## Credits - **Idea, coding & art**: m4v3k - **Balancing, menu music & testing**: death_unites_us - **In-game music**: Amnesia Fortnight - "A - Spacebase DF-9" ### Art Assets - **Space Station-Game** asset by **jonik9i** - **Ocunid** Monster by **Robocelot** - **Void Main Ship** by **Foozle** - **Pixel purple gem** by **Lunarnia** - **Seamless Space Backgrounds** by **Screaming Brain Studios** - Sounds from freesound.org ## License MIT License - see [LICENSE](LICENSE) file for details.