Week 2January 11, 2026

Custom Love.js with WebGL2

⚠️ This English content was machine-translated from Japanese.

Overview

I created custom builds of Love2D and love.js to add WebGL2 support and more.

Working demo:

What I Did

1. Custom LÖVE Build with WebGL2 Support

  • Applied patches to Love2D for WebGL2 support and rebuilt with Emscripten.
  • Resolved issues with font rendering
  • With WebGL2 support, color representation has greatly improved.

2. Two-Stage Asset Loading

In the old love.js, all assets were bundled into a single file that had to be loaded before startup.

I made it possible to split and load assets so that rendering can start as soon as possible.

I also created a mechanism for communication between JS ←> Lua needed for this. (I used a mechanism where signal files are written to MEMFS shared by JS/WASM and polled by Lua)

preload.data (immediate loading)
  • All Lua files
  • Loading screen assets
  • Lightweight bitmap font (ASCII only)
game.data (asynchronous loading)
  • Main game assets
  • Large bitmap font (font with over 7000 characters including JIS Level 1 and JIS Level 2 kanji)
  • Music and images

3. Template Creation

Set up boilerplate code to recreate the texture of old games I love.

More details to come!