A 3D game engine, built from scratch.
A Vulkan renderer, a dockable editor, a visual designer for in-game interfaces, a node graph that drives both logic and animation, physics, audio and an asset pipeline. Gameplay is C++, and it reloads while the editor keeps running.

Three choices the rest of the engine follows from
I build Vilanel on my own, for the games I want to make, and that shapes everything in it. These are the three choices the rest of the engine was built around.
Gameplay is C++, and it reloads
Game code is the same language as the engine, so there is one debugger and nothing in between the two to keep in sync. Rebuilding swaps it in with the editor still running. The cost is real: a crash in gameplay takes the editor down with it.
The interface system is built here
Menus, HUDs and inventory screens are laid out in a visual designer inside the editor and saved as files. Owning the widget model and the file format is what lets the designer keep pace with the engine instead of lagging a release behind it.
Depth over breadth
One model format, designed around rather than adapted to. Proven language features rather than experimental ones. Each choice is narrower than it could have been, so that the parts which exist are finished rather than eighty percent done.
One editor for game logic and animation
Wiring up game logic and building an animation blend tree use the same canvas, the same file format and the same runtime. Only the available nodes differ.
One canvas means one set of habits. Learn to pan, zoom, box-select and rewire while building a shader, and you already know how to drive the animation editor. Undo, saving and the properties panel work the same way in both because they are the same code.
How the graph works
Twelve connection types
Written down as it is built
A record of the decisions behind the engine, and why it works the way it does. Mostly the reasoning, because the reasoning is the part worth keeping.
Mixing animations by speed
A character that walks at one speed and runs at another needs something sensible in between. Doing that by hand stops being workable at the fifth clip.
02 Aug 2026Opening more than one file format
glTF is still the format the engine is built around, but it is no longer the only thing it will open.
19 Jul 2026Four tree views that disagreed with each other
The editor had four places showing a tree, and each had been drawn separately. They disagreed on indentation, icon size, text size and where you had to click to expand a row.
Vilanel is a personal project.
It is my engine, built for the games I want to make. There is nothing to download and no plan to distribute it, which is also what lets it stay this opinionated. This site is the record: what got built, and why it was built that way.