Projects
 

Y-engine

Active: since 2019 git

A game engine

This will be the successor to the x9 engine. Currently in a very early stage.

Features

Graphics

  • OpenGL and vulkan
  • forward and deferred rendering
  • physically based rendering
  • shadow maps
  • HDR and tone mapping
  • flexible pipeline with post processing stages
  • dynamic resolution scaling
  • shader graph editor
  • RTX path tracing (experimental)

Physics

Own engine mostly deprecated. Now using bullet.

Entity component system

One can write "component" classes in kaba source code files:

class Human extends Component
    # some additional data
    life, magic: float
    clothes: Model*[]

    func override on_collision(cd: CollissionData)
        life -= 10

    func override on_iterate(dt: float)
        # movement, animation, ...

These can be attached to any object/entity in the game world via the editor.

Components can be accessed easily:

let human = entity.get_component[Human]()
human.life = 100

Also simple queries for all components of the same type:

let all_humans = get_component_list[Human]()
for h in all_humans
    ....

The code will be compiled by the JIT compiler when loading the game world. This makes the development cycle very fast.

Plans

Currently I'm having less time. But some things, I had more serious ideas for:

  • ray traced global illumination - want to experiment with vulkan RTX
  • hot swapping (recompiling code when editing) - theoretically possible and already done in other projects

© by Michael Ankele 2026