Textyle is a simple web-based tilemap editor for 2D games built using React JS and Rust (WASM).
Textyle aims to simplify and speed up the process of making tilemaps for your games. Running on the web means that you don't have to download any additional tools for creating your maps, and exporting it to an easy format means that you don't have to add additional libraries or plugins to your game.
The project is in its initial stages of development, expect great improvements to come!
Please, consider donating to the project and supporting its development.
Check the wiki for a simple provisional tutorial. A complete documentation will come soon!
Currently Textyle exports to JSON. It's a simple and widely used format in game development, you can use any JSON parser to get you tilemap data to your game; check the details here. One of the priorities, however, is to allow multiple export targets so it will be a lot easier to integrate your map to the most common game engines.
- Multiple layers
- Multiple tilesets
- Tools:
- Pencil
- Fill
- Zoom
- Pan
- JSON export
- Batch Rendering
- Autotile
- Custom brushes
- CSV and tmx format exports
- Selections (free, rectangular, magic wand)
- Support for isometric and hexagonal tiles
- Data layers
- Custom parameters on tiles
- Images over the tiles
- Undo/Redo
Stack:
- React JS
- WebGL
- Rust (WASM)
Textyle is built using React JS for the UI, WebGL for rendering graphics and Rust (WASM) for managing tiles data and logic. In this sense, we try to explore each technology's strength: React JS for easily building complex UIs, WebGL API for rendering using the GPU and Rust compiled to WASM for managing tilemap's logic and algorithms with high performance.
Textyle has been tested on Firefox and Chrome. Currently it doesn't run on Safari because it needs WebGL2 support, which Safari lacks. There are plans, however, to port the code to WebGL1.
Are you learning Rust, JavaScript or React? Are you an expert already? Found a way to improve the code? You are more than welcome to contribute to this project! But before that, please check our code of conduct and take a look on the guidelines for contributing.