jamjar
v0.10.0
Published
WebGL based browser game engine
Downloads
2
Readme
JamJar 2D Typescript Game Engine
JamJar is a 2D typescript game engine, designed to simplify building browser WebGL based games. The engine is built for the source to be looked at and understood, to help in understanding game dev concepts.
JamJar provides the following:
- Entity-Component-System architecture.
- Composition based entities and components.
- Messaging.
- Regular game loop.
- Custom shader support.
- Set of standard systems to use
- WebGL - rendering using WebGL onto a HTML5 canvas.
- Collision - collisions between colliders.
- Fullscreen - fullscreen events and pointer lock.
- Interpolation - smoothing movements between frames.
- Keyboard - keyboard input.
- Pointer - browser pointer input (mouse, touch etc.)
- HTTP Image - loading image assets over HTTP.
- Sprite - processing sprites and images before rendering.
- Motion - simple motion; velocity, acceleration, angular velocity etc.
- UI - user interfaces (HUDs etc.).
- Text - processing text before rendering, handling fonts.
- Sprite Animation - animation through sprites.
- Audio - audio playback.
- Scripting - runtime execution of scripts, interface for interacting with core the game logic
More information
Check out the Wiki for more information.
Examples
Check out the examples directory to see different features showcased.
Dependencies
Dependencies for developing this project:
The docs are generated using a Python tool, requiring Python and pip:
Docs also require some plugins, use pip install -r docs/requirements.txt
to get the required plugins.
Set up
- Clone this project.
- Install dependencies
yarn install
.
Developing
Commands available:
yarn lint
- Lints the code, if this doesn't pass the CI will fail.yarn beautify
- Runs a beautifier against the code, if this is not run the CI will fail.yarn test
- Runs unit tests against the code, if this doesn't pass the CI will fail.yarn build
- Builds the/lib
folder,/lib
is the JS distributable codebuilt from the TypeScript.yarn watch
- Builds the project, but rebuilds on changes.yarn docs
- Serve documentation locally.yarn generate-reference
- Generate the markdown reference, the CI will generate this and if there is a diff it will fail.