A multiplayer top-down arena shooter demo built with Asobi game backend and the Asobi Unity SDK.
Players match up, spawn into an arena, move with WASD, aim with mouse, and shoot with left click. 90-second rounds, most kills wins. Scores submit to a global leaderboard.
- Unity 2021.3+ (LTS recommended)
- Asobi backend running locally (
rebar3 shell) - PostgreSQL (via
docker compose up -din the asobi project)
- Configure the arena game mode in your asobi
sys.config:
{asobi, [
{game_modes, #{
<<"arena">> => asobi_arena
}}
]}- Start the backend:
cd /path/to/asobi
docker compose up -d
rebar3 shell- Open this project in Unity
- The SDK is pulled automatically via Package Manager (see
Packages/manifest.json) - Create 4 scenes in
Assets/Scenes/:
| Scene | Setup |
|---|---|
| Login | Create empty GameObject, add LoginBootstrap component |
| Lobby | Create empty GameObject, add LobbyBootstrap component |
| Arena | Create empty GameObject, add ArenaBootstrap component |
| Results | Create empty GameObject, add ResultsBootstrap component |
- Add all 4 scenes to Build Settings (File > Build Settings > Add Open Scenes)
- Make sure Login is the first scene (index 0)
- Hit Play
- WASD - Move
- Mouse - Aim
- Left Click - Shoot
- Match lasts 90 seconds, most kills wins
Login → Lobby → [Matchmaker] → Arena → Results → Lobby
↓
Leaderboard
- Login: Register/login via REST API
- Lobby: Connect WebSocket, enter matchmaker queue
- Arena: Real-time game state sync at 10 ticks/sec via WebSocket
- Results: Show standings, submit kills to leaderboard
All UI is created programmatically by the Bootstrap scripts — no prefabs or scene setup needed beyond adding a single component to an empty GameObject.