inconceivable
a framework for modern web games
Inconceivable attempts to provide a framework for rapid game development that promotes modern JavaScript and Typescript.
inconceivable is under active development
Installation
NPM
npm i inconceivable
Features
- Map loaded and file format
- Spritesheet support (we suggest you use the amazing SpriteSheet Packer)
- Asset Server for maps, sprites and other static content
- unobstructed access to the PIXI.js and Matter.js APIs
Getting Started
We recommend using Parcel and Typescript to develop games using this framework. Using Parcel (or a similar bundler) will decrease the size of your game (allowing more space for your stunning assets) and speed up your development cycle through hot module replacement. We find that Typescript reduces bugs in the development process, but if you choose to use vanilla JavaScript, a type definition file is provided to help with IDE autocomplete signatures.
Basic Project
The simplest Inconceivable game has an entry file and a spritesheet.
let parent = document { } { }
Meta
Created by Matt Hall - @matthallosu - matthew349hall@hotmail.com
Distributed under the MIT license. See LICENSE
for more information.
TODO
- Error if Sprite in level file cannot be found in spritesheet.
- Error on corrupted JSON.
- Add a level layer property to allow nonrendered objects
- Don't require hard reload on level file change.
- Make Parcel hot reload on JSON changes
- Create a Base Class for GameObjects with Physics support
- Remove Physics methods from GameObject
- audio support
- Support Z index of layers
- global configuration file (
inconceivable.json
) - change
Game()
constructor to take query string instead of HTMLElement.