Tesselate is a 2D tilemap engine and editor written in Javascript. It is comprised of several modules:
tesselate-world
- stores world data in layers and provides an interface to accessing and manipulating the world datatesselate-layer
- provides methods to add and remove tiles from a layertesselate-scene
- abstracts the rendering codetesselate-canvas2d
- renders the tilemap to an HTML5 canvastesselate-webgl
- renders the tilemap to a WebGL contexttesselate-util
- contains several common methods used in tesselate
Please note: tesselate is in active and volatile development; it is not intended to be used in any production environments for now.
This project uses Browserify to compile all source scripts into a single browser-ready bundle.
To build tesselate for development, I use beefy. To test in a browser, simply run the following command in a terminal where npm is available and then navigate to 127.0.0.1:9966.
npm run serve
To build tesselate for production, use npm run build
.
- Use chunked map loading
- Implement sparse array storage
- Implement continuous (infinite) worlds
- Write WebGL renderer
- Implement level saving/export/import
- Rebuild local edge/corner cache on world edit
- Documentation
- Load tileset tiles from arbitrary places (define template?)
- Optimizations
- Merge layers (save topmost) for Tilemap.finalize() ?? -- what about transparent blocks/layers?
- http://www.metanetsoftware.com/technique/tutorialA.html#section1
- http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/
- https://www.youtube.com/playlist?list=PL006xsVEsbKjSKBmLu1clo85yLrwjY67X