source-code/
break-the-web
Public
codeCodeinfoIssues 0call_splitPull Requestsplay_circleActions
andreyyste
andreyysteAdd cover image URL to portfolio JSON
ff92b7a3 days agohistory10 Commits
Implement Footer component
6 days ago
folderpublic
Extract HeroSection logic
9 days ago
foldersrc
Create Navbar component
10 days ago
foldervite
Add cover image URL to portfolio JSON
3 days ago
description.gitignore
Add cover image URL to portfolio JSON
3 days ago
description.portfolio.json
Add AboutSection component
8 days ago
descriptionAGENTS.md
Refactor App.tsx to use modular components
5 days ago
descriptioncheck.js
Create ContactSection layout
7 days ago
descriptionindex.html
Refactor App.tsx to use modular components
5 days ago
descriptionLICENSE
feat: complete up to Checkpoint 7
10 days ago
descriptionlog.js
Extract HeroSection logic
9 days ago
Add cover image URL to portfolio JSON
3 days ago
descriptionpackage.json
Update README
5 days ago
Update README
5 days ago
descriptionREADME.md
add .portfolio.json metadata file
3 days ago
descriptionscreenshot.png
Refactor App.tsx to use modular components
5 days ago
feat: complete up to Checkpoint 7
10 days ago
descriptiontsconfig.json
feat: complete up to Checkpoint 7
10 days ago
README.md

Break The Web

A meta-puzzle game where a standard React portfolio website becomes the physics-based environment for a Phaser 3 snake game.

What starts as a simple 2D platformer quickly turns into a battle against the DOM itself. Drag and drop HTML elements into the game canvas, use CSS classes as weapons, and survive a total system failure.

Features

  • Cross-Realm Interactions: Use HTML5 Drag-and-Drop to pull UI elements (Inputs, Images) directly into the Phaser physics engine.
  • Bi-directional Communication: The React UI updates based on game state, and the game state updates based on UI interactions.
  • Persistent Horror Mode: Crashing the game permanently corrupts the website via localStorage, altering the entire aesthetic and unlocking new puzzles.

Prerequisites

  • Node.js (v16 or higher)
  • npm

Installation

  1. Clone the repository:
git clone https://github.com/your-username/break-the-web.git
cd break-the-web
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open http://localhost:5173 in your browser.

How to Play

  1. Click the #game-box on the homepage to start the game.
  2. Use WASD or Arrow Keys to move the snake.
  3. Pay close attention to the website around you—if you get stuck, the solution might be hidden in the HTML.
  4. If you enter Horror Mode, use the Developer Console (button in the footer) and run reset --hard if you wish to return to the normal portfolio.

Technologies Used

  • React 18
  • Vite
  • Phaser 3
  • Zustand (State Management)
  • Vanilla CSS
warningDESIGN PHILOSOPHY
  • Containment: Every element lives within a rigid bounding box. No floating content.
  • Contrast: High contrast borders (#1e1b19) are mandatory. 3px standard, 6px heavy.
  • Depth: Hard solid shadows. No blur. Physical displacement on interaction.

LIVE PRODUCTION DEMO

Experience the rigid geometry in real-time.

REBEL

About

Interact with the web page itself using HTML5 Drag-and-Drop to pull inputs and images directly into the Phaser physics engine. Alter the website state through bi-directional communication between React and Phaser, unlocking a glitchy horror mode. The game is built using React, Phaser 3, Zustand for state management, and Vanilla CSS.

ReactPhaser 3TypeScriptZustandVite

Contributors

1