Building a basic multiplayer 3d top down rpg using babylon.js and colyseus
- fully player authorative movement with client side prediction and server reconciliation
- Simple scene management & switching
- multiplayer animated characters
- zoning system (ability to teleport to a different room (eg: a dungeon for example) )
- global chat (works accross zones)
- server controlled collisions (via a navmesh)
- persistence with mysql lite
- 4 abilities ( basic attack, fireball, dot, heal )
- patrolling monsters (with basic FSM states: IDLE, PATROL, CHASE, ATTACK, DEAD)
- selecting characters and monsters
- monsters have a loot table and can drop items
- ability to pick up items and see them in your inventory
- standard UI (experience bar, abilities bar, panels, etc...)
- and more...
You can follow the progress here: FORUM POST
- Download and install Node.js LTS
- Clone or download this repository.
- Run
yarn install
- Babylon.js 6.x.x (3d rendering engine)
- Colyseus 0.15.x (networking)
- SQLite (database)
- Run
yarn client-dev
- Run
yarn server-dev
The client should be accessible at http://localhost:8080
.
The WebSocket server should be available locally at ws://localhost:3000
, and http://localhost:3000 should be accessible.
- Run
npx tsx ./loadtest/test.ts --room game_room --numClients 1 --endpoint ws://localhost:3000
Everything under ./src is licensed under the GNU license except for the yuka library who is MIT license. All models under the ./public/races/models folder does not fall under the GNU license and cannot be used commercially.