| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A top-down tactical arena shooter built with TypeScript - no Canvas, no WebGL.
Every game element is a DOM node; fog of war is a CSS clip-path polygon computed from a 2D raycast each frame. Why? Because why the hell not. This is a prototype game built for fun and learning, not performance or scalability.
Inspired by Counter-Strike, Zero Sievert, and Escape from Tarkov, it started as a learning exercise to understand raycasting, collision detection, and game loops in a familiar environment. It has since grown into a complete game with an economy system, AI bots, multiple maps, and configurable game modes.
Running at a stable 60 FPS with up to 10 AI opponents through DOM element pooling, throttled updates, and segment-based raycast culling.
Of course this was developed with the assistance of AI LLM models, however, the design, architecture, and code were all written and orchestrated by me. The AI was used as a tool to help implement specific features or solve particular algoritmic problems, but the overall vision and execution of the game are my own.
If you'd like to run the game locally, and/or develop on it, follow these steps:
pnpm install
pnpm run devThe game includes a WebSocket server for online multiplayer. Two terminals are required.
Terminal 1 - start the server:
npx tsx server/ws-server.ts
# WebSocket server listening on ws://localhost:8080Terminal 2 - start the client:
pnpm run devGetting into a lobby:
Players on the same network can connect by changing the server address to the host machine's LAN IP (e.g. ws://192.168.1.x:8080).
See ARCHITECTURE.md for the full developer guide -- runtime flow, module responsibilities, and how-to recipes for adding weapons, grenades, game modes, and maps.
MIT License - see LICENSE for details.
| Back | FazBrowse Home | New Git URL |