Skip to content
forked from 3mcd/javelin

TypeScript ECS and multiplayer game development toolkit

Notifications You must be signed in to change notification settings

Game3DEE/javelin

 
 

Repository files navigation

CD codecov

javelin

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

Docs

Visit https://javelin.games

Packages

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

Examples

Example Description
networking Entity/component synchronization over WebRTC datachannels

Scripts

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

Development

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.

About

TypeScript ECS and multiplayer game development toolkit

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 78.8%
  • JavaScript 9.4%
  • SCSS 8.7%
  • HTML 3.1%