Joël van der Werf
All projects

Eonlore

A tactical turn-based RPG that mixes 2D and 3D: pixel-art characters in lit 3D scenes. I'm building it on my own engine, Hydro, so every engine feature has to work in a real game.

Role
Design and development
Built with
Hydro, C++17
Status
In development
Code
github.com/joelnl74/Eonlore

Overview

You play Miko, a shrine maiden, through a world of shrines, temples and lantern-lit streets. The world is built in 3D, but the people in it are hand-drawn pixel-art sprites standing in that world: they cast shadows, are lit by lanterns, and walk on real terrain.

Eonlore started as the test project inside the engine repository. In November 2026 it moved to its own repository, which builds against a pinned Hydro commit, like any game on any engine would. The story of that move is in the devlog.

Scenes

One scene, three lights

Each scene has its own lighting preset: sun, ambient light, fog, exposure, bloom and grading. They are stored as data, not code, so the same scene can be tuned or switched without a rebuild.

The tonemap keeps the darks exactly as painted, so pixel art never drifts off its palette in the shade. Why that matters.

Battles

  • Turn order by speed, shown at the top of the screen, so you can plan ahead.
  • Elemental weaknesses, hidden until you discover them.
  • Shields and Break: hitting weaknesses wears an enemy's shield down; at zero it breaks and loses its next turn.
  • Momentum: save it up and spend it to boost an attack or skill.
  • Guard, items and running, with damage numbers coloured by weakness, resistance and healing.

The battle rules are plain functions over plain values, tested without a window or GPU. How the game code is structured.

Black glass panels with gold frames over the paused scene, built on Hydro's runtime UI: anchored layouts, bitmap fonts and keyboard navigation. Items, characters and quests come from data tables edited in the editor.

Art direction

  • Actors are drawn finer than the world, on purpose: 38.4 texels per metre, so characters read clearly against the scenery.
  • Saturation by importance: the party is the most saturated (Miko's red and white), villagers are muted earth tones, and the environment is the most muted.
  • Checked by scripts: a validator checks every sprite for binary alpha, sheet grids, pivots and a feet anchor within one pixel.

Under the hood

Every screenshot on this page uses engine features I've written about:

Status

In development. Next up are the abilities and equipment menus, more battles and enemies, and fading out scenery that hides Miko. Follow along on GitHub or in the devlog.

Building a game, an engine, or the tools around them?

I'm based in Tokyo and open to conversations about Unity, C++ and engine roles, C# and .NET software roles, and teams that want to put AI agents to work on real codebases.