- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
?
Warlocks: Weekend Journeys
What started as a weekend browser experiment turned into a fully functional multiplayer game — and a deep dive into performance, sync, and game architecture.
? Phase 1 – Prototype
Movement and fireballs were handled entirely client-side.Sync was "best effort" — enough to demo, but chaotic under pressure.
? Phase 2 – Load Testing Reality Check
The Node.js backend capped out at ~300 players.Sync issues, message storms, and heavy desync.Started rewriting the backend in Rust.
? Phase 3 – Rust Rewrite + Server Authority
Moved the entire game loop to Rust.Fireball collisions, HP, knockback — all centralized.Clients only send inputs; the server owns the world state.Stress-tested up to 3,000 concurrent players with 0 visible lag.
Phase 4 – Cleanup & Core Mechanics
Fixed movement prediction & "infinite knockback" bugs
Added fireball cooldowns + visual indicators
Health bars, player names, 8-player custom lobbies
Implemented win conditions and match lifecycle
?️ Phase 5 – Real Game
You can now play a full match, win, return to the menu, and rejoin.Everything is synced. Everything just works.All in the browser.
?️ Next Step – Standalone Game
Currently building a native Bevy (Rust) version.What I enjoy most is learning through building!
? Play the browser version here: might not find an opponent since this is a share, but feel free to open a second tab to try it out.)
What started as a weekend browser experiment turned into a fully functional multiplayer game — and a deep dive into performance, sync, and game architecture.
? Phase 1 – Prototype
Movement and fireballs were handled entirely client-side.Sync was "best effort" — enough to demo, but chaotic under pressure.
? Phase 2 – Load Testing Reality Check
The Node.js backend capped out at ~300 players.Sync issues, message storms, and heavy desync.Started rewriting the backend in Rust.
? Phase 3 – Rust Rewrite + Server Authority
Moved the entire game loop to Rust.Fireball collisions, HP, knockback — all centralized.Clients only send inputs; the server owns the world state.Stress-tested up to 3,000 concurrent players with 0 visible lag.
Fixed movement prediction & "infinite knockback" bugs
Added fireball cooldowns + visual indicators
Health bars, player names, 8-player custom lobbies
Implemented win conditions and match lifecycle
?️ Phase 5 – Real Game
You can now play a full match, win, return to the menu, and rejoin.Everything is synced. Everything just works.All in the browser.
?️ Next Step – Standalone Game
Currently building a native Bevy (Rust) version.What I enjoy most is learning through building!
? Play the browser version here: might not find an opponent since this is a share, but feel free to open a second tab to try it out.)