This is an example project of how one might set up an action MOG using Colyseus for networking, p2.js for physics, and three.js for rendering.
yarn # Install project dependencies
yarn dev # Docker Compose development workflow
yarn dev:server & yarn dev:client # Host development workflow
The project is a Lerna monorepo broken up into four major packages: ecs
, core
, server
, and client
.
The @warbird/ecs
package contains tools to help organize server-side game logic using the using the Entity-Component System (ECS) pattern.
The @warbird/core
package contains game entities, components, and systems. In addition, core
houses shared helpers and networking protocols used by both server and client packages.
The @warbird/server
package houses the game server that contains a single room used in each arena. Currently, the server does not scale and is limited to a single room.
The @warbird/client
package houses a web client for the game. The game is rendered using three.js and the UI is built with React.