Case study
Berni Rush — browser 3D arena game prototype
Playable side project focused on real-time interaction, game state, rendering and browser deployment.
Problem
A browser game needs fast interaction, clear state handling and a playable loop rather than static screens.
Goal
Create a playable 3D arena prototype with controls, enemy waves, pickups and saved local progress.
Status
Playable prototype / Side project
Stack
ReactTypeScriptViteThree.js@react-three/fiber@react-three/dreiZustandVercel
Key features
- 3D arena gameplay in the browser.
- Keyboard and touch controls.
- Playable class styles, skins and loadout choices.
- Enemy waves, elites, boss encounters, projectiles and pickups.
- Local progress for profile, records, wallet, class and skins.
- Mobile-aware rendering quality adjustments.
Technical decisions
- Game state is separated from 3D rendering concerns.
- Local persistence supports a prototype loop without account infrastructure.
- The project is positioned honestly as a side project, not a business app.
What I learned
- Managing a real-time interaction loop in a browser UI.
- Working with Three.js through React components.
- Persisting local progress and tuning browser performance.
Next improvements
- Add onboarding for first-time players.
- Improve sound, feedback and enemy variety.
- Add screenshots or short gameplay clips.
- Add focused tests for pure balancing and save helpers where practical.
Limitations
This is a playable prototype and side project. It is not presented as a finished commercial game.