Join us on Discord!
v.1.0.0 is releasing soon! You can check it out with
npm i @javelin/[email protected]
and review the progress in thenext
branch.
Javelin is a collection of packages used to build multiplayer games for the web.
Note – each package is an active work in progress and each minor release will likely introduce breaking changes prior to a 1.0 release.
The primary goals of Javelin are developer experience, performance, and a built-in networking protocol. A secondary goal is to provide examples of client-side prediction, input reconciliation, and other algorithms commonly used in fast-paced online games.
Javelin is comprised of an Entity-Component System (ECS) and an associated networking package used to synchronize game data between a client and server (or other clients).
Visit https://javelin.games
Package | Description |
---|---|
@javelin/ecs | Build games using the ECS pattern |
@javelin/net | Synchronize @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:networking |
An example of synchronizing entities over WebRTC |
yarn
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.