How sriharichincholi/manashot-io works
ManaShot.io is a browser-based, first-person arena game with real-time multiplayer synchronization. The main loop takes player input through the game controller, updates movement and combat against demons, and presents status and effects through the HUD, audio, and rendered scene. The server serves the browser assets and relays player and spell events. The README is empty, and source excerpts are partial; the graph reflects documented behavior and sampled code, leaving uncertain wiring out.
Main entry points: client.js Game controller · server.js Game server · weapon.js Weapon and projectiles · demons.js Demon AI
Components 12
Browser game
- Game controller
public/client.js
Arena gameplay
- Arena environment
public/js/environment.js - Weapon and projectiles
public/js/weapon.js - Demon AI
public/js/demons.js
Game presentation
- Particle effects
public/js/particles.js - HUD
public/js/hud.js - Procedural audio
public/js/audio.js
Multiplayer
- Network manager
public/js/network.js - Game server
server/server.js - Player state
server/server.js
Other components
- Player
- Browser
Connections 19
- Player → Browser: plays in
- Browser → Game controller: loads game
- Game controller → Arena environment: creates arena
- Game controller → Weapon and projectiles: handles firing
- Game controller → Demon AI: updates combat
- Game controller → Network manager: syncs gameplay
- Game controller → HUD: updates display
- Game controller → Particle effects: updates effects
- Game controller → Procedural audio: plays landing sound
- Weapon and projectiles → Particle effects: spawns trails
- Weapon and projectiles → Procedural audio: plays firing sound
- Demon AI → Particle effects: spawns trails
- Demon AI → Game controller: reports player hits
- Game controller → HUD: reports combat events
- Network manager → Game server: emits socket events
- Game server → Network manager: broadcasts game events
- Game server → Player state: updates player records
- Browser → Game server: requests game assets
- Game server → Browser: serves public files