Disclaimer : this project is no longer maintained. If you're looking for a roguelike toolkit for the web, you can check doryen-rs
yendor.ts is a TypeScript toolkit for roguelike developers. It provides a true color console, a robust random number generator, a field of view toolkit, and other utilities frequently used in roguelikes.
umbra.ts is a TypeScript lightweight game framework built on top of yendor.ts. It handles player input and the game scene graph.
GeneRogue is a generic roguelike loosely based on the famous python roguelike tutorial.
- fast WebGL/Canvas true color console (using pixi.js)
- BSP based dungeon building toolkit
- CMWC random number generator
- field of view toolkit using restrictive precise angle shadowcasting
- A* pathfinding toolkit
- a scheduler to handle the order in which creatures with different speed are updated
- a simplex noise toolkit
- a persistence toolkit with support for both local storage and indexedDb.
- scene graph management
- user input management
- event bus
- basic log system
- multi-level procedurally generated dungeon
- key/lock puzzles
- melee combat, ranged combat, magic items and scrolls
- lighting
-
ECMAScript 6 compliant browsers (yendor/div renderer) :
- Edge 13+
- Firefox 47+
- Safari 9.1+
- Chrome 49+
- Opera 39+
-
For pixi renderers, check pixi.js documentation
- install node.js, at least version 6.5.0.
- install the dependencies
npm install
npm run build:generogue
Then open build/index.html in your browser.
npm run build:tests
Then open build/index.html in your browser.
npm run build:benchmark
Then open build/index.html in your browser.
By default, Yendor will render the screen using PIXI. PIXI will try to use a webGL renderer and fall back to a canvas based renderer if that doesn't work. Yet, if you have rendering issues, you can force the use of a specific renderer by adding the renderer
parameter to the URL.
http://mysite/index.html?renderer=<rendererName>
Following renderer names are supported :
- pixi/webgl : should be the fastest except if you have broken OpenGL drivers or an old browser
- pixi/canvas : should work on not so recent browser, but not on very old browsers
- yendor/div : failsafe but slow (and ugly) classic HTML renderer
If the savegame gets corrupted, you might be stuck, not being able to start a new game. You can force the start of a new game and ignore the current savegame by adding the clearsavegame parameter to the URL.
http://mysite/index.html?clearsavegame=1
The default font is terminal12x12.png but you can force the use of another font with the font parameter :
http://mysite/index.html?font=terminal16x16.png
Generogue comes with 3 fonts : terminal8x8.png, terminal12x12.png and terminal16x16.png.
Yendor's code uses the MIT license, see our LICENSE
file.