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 workflowThe 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.