Skip to content
Vilanel
In development · v0.1.0C++ · Vulkan · Windows

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.

The Vilanel editor: scene tree on the left, 3D viewport in the middle, properties panel on the right, and a log along the bottom.
Decisions

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.

Node graph

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
The Vilanel node graph, showing nodes wired together with colour-coded connections.

Twelve connection types

ExecBoolIntFloatStringVectorColorObjectStructTextureEventWildcard

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.