Kissrule

This is a lightweight rule-based system for game AI micro-decisions, written in C++20. It lets you register C++ object hierarchies as named facts, load rule sets from JSON, and evaluate them at runtime with lazy fact fetching and caching.

Copyright © 2026 Laurent Couvidou Contact: hello@lorancou.net
Source: https://codeberg.org/lorancou/kissrule

Features

Coding Convention

We're loosely following the LLVM coding standards: https://llvm.org/docs/CodingStandards.html, but use snake_case for everything: types, variables and functions. Private member variables end with an underscore: member_variable_. Template parameters are framed with two underscores: _type_.

Known Limitations

To-do List

Future Plans