Javelin is a suite of packages used to build multiplayer games for the web.
The primary goals of Javelin are speed, minimalism, and ease-of-use. A secondary goal is to provide examples of client-side prediction, input reconciliation, and other algorithms commonly used in fast-paced online games.
Visit https://javelin.games
Package | Description |
---|---|
@javelin/ecs | Build games using the Entity-Component System pattern |
@javelin/net | Synchronize @javelin/ecs instances between client and server |
@javelin/devtool | Inspect and manipulate remote and local @javelin/ecs instances |
@javelin/hrtime-loop | Create a smooth, high-resolution game loop in NodeJS |
Example | Description |
---|---|
networking | Entity/component synchronization over WebRTC datachannels |
Script | Description |
---|---|
yarn build |
Build all packages and examples |
yarn test |
Run all unit and integration tests |
yarn perf |
Run all performance tests |
yarn example:basic |
Preview basic ECS capabilities |
yarn example:networking |
An example of synchronizing entities over WebRTC |
yarn --ignore-engines
yarn build
yarn example:networking
Note that when developing, changes to code in local, dependent packages will not automatically refresh development apps. Just build the dependent packages and restart the dev server process when you want to test a change.
Author: 3mcd
Demo: https://javelin.games/introduction/
Source Code: https://github.com/3mcd/javelin
#nodejs #node #javascript #typescript