UNPKG

jsge

Version:

Javascript Game Engine

44 lines (37 loc) 2.08 kB
# JavaScript Game Engine This engine was designed to simplify creating games in JavaScript. No external libraries are used, no TypeScript, strict OOP structure - no cyclic dependencies. It is easy to use and debug. ![Alt text](Debug.gif?raw=true "Title") ### Advantages: * OOP modular structure * No external dependencies, only native Javascript * WebGL 1 under the hood, wide browser support * Masks and WebGL [blend effects](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/blendFunc) * Assets manager for file preloading: Images, Audio, Image Atlas (Atlas.xml), etc. * Tilemaps with tileset support from [Tiled editor](https://www.mapeditor.org) * Unlimited size tilesets: 800x800 cells, with 16x16 pixels [example](https://codepen.io/yaalfred/pen/zYegGGb) * Frame animations for sprites and tiles * Spine 2D skeletal animation as a plugin * Collisions for tiles and objects * Boundaries (collision shapes) drawing as a debug option ![Boundaries draw](boundaries_draw.png?raw=true "Boundaries draw") ### Tilemaps support: * Full file format support: - JSON (.tmj, .json) - XML (.tmx, .xml) - Internal tilesets (as part of tilemap file) - External JSON tilesets (.tsj, .json) - External XML tilesets (.tsx, .xml) - Attached image uploading * [Animated tiles support](https://doc.mapeditor.org/en/stable/manual/editing-tilesets/#tile-animation-editor) * [Tiled collision shapes](https://doc.mapeditor.org/en/stable/manual/editing-tilesets/#tile-collision-editor) ### How to run examples: 1. `git submodule update --init` 2. `npm i` 3. `npm start` 4. Visit `localhost:9000` **API docs and tutorials:** [https://jsge.reslc.ru](https://jsge.reslc.ru) **GitHub:** [https://github.com/ALapinskas/jsge](https://github.com/ALapinskas/jsge) **Issues:** [https://github.com/ALapinskas/jsge/issues](https://github.com/ALapinskas/jsge/issues) **Discussions/Help**: [https://github.com/ALapinskas/jsge/discussions](https://github.com/ALapinskas/jsge/discussions) **NPM:** [https://www.npmjs.com/package/jsge](https://www.npmjs.com/package/jsge)