Textyle 0.1.0 is out!

Posted on 21-12-2020

This is the first version of Textyle and it’s more like a Minimal Viable Product. I wanted to have a minimal set of working features instead of implementing tons of buggy systems.

The main goal of this launch was to stablish a overall architecture for the project while placing React, Rust and WebGL in their respective modules. I think this objective was achieved, each layer of the stack now clearly has one main purpose:

  • React JS: UI
  • Rust (WASM): Tilemap maths, logic and algorithms
  • WebGL: Tilemap rendering

There’s still some small adjustments I need to work on the export format to make it better for using in games and importing back into the editor. But in a general view, I worked hard to eliminate all the bugs I could find until now and to maintain the UI simple at the same time.

Here’s a list of the main features available in this version:

  • 2D batch rendering
  • Pencil tool (single tile placement)
  • Fill tool
  • Eraser tool
  • Zoom in / zoom out
  • Pan tool
  • Multiple layers
  • Multiple tilesets per layer
  • Variable tile size (even within the same project)
  • Export to JSON
  • Show / hide grid in each layer

Now I want to have some days of code refactor. I won’t go too far, I just want to make sure the code remains clear. Also, one of next urgent goals is to port the code to TypeScript. I was somewhat tired of C++ types when I started the project, so I decided to make the initial development iterations easier with dynamic typing. However, I’m beginning to spend an uncomfortably amount of time on problems that would be easily avoided with types.