Repository navigation
Interest Engine v0.1.0
Initial stable release of Interest Engine, a standalone C++20 attention-selection library for game NPCs.
Features
- Point, Bearing and NonSpatial stimuli with contextual tag affinities and weighted scoring.
- Acquire/release hysteresis, switch margins, optional minimum dwell and timestamped event novelty.
- Explicit host time, caller-owned observer memory and optional decision traces.
- Standard-library-only production code. Prepared
Step()calls allocate nothing;Reserve()may allocate during setup. - CMake integration through
InterestEngine::Core, regression tests, a compiled example and a benchmark harness.
Verification
All 10 GitHub Actions jobs passed on the release commit. Coverage includes MSVC, GCC and Clang Debug/Release builds, no-exceptions/no-RTTI checks, and Clang ASan/UBSan. Each job passed 15 CTest checks; all three Release consumer-integration checks also passed.
Installation
Requires CMake 3.20 or newer and a C++20 compiler.
git clone --branch v0.1.0 --depth 1 https://github.com/PullsarDev/InterestEngine.git
cd InterestEngine
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel 2
ctest --test-dir build -C Release --output-on-failureFor application integration, add the source directory with add_subdirectory() and link InterestEngine::Core. See the README for the API example and platform-specific commands.
Known limitations
- API, ABI and tuning compatibility may change before 1.0. Cross-platform bit-exact output is not guaranteed.
- Geometric gating and score saturation can limit target changes. Configuration and CPU cost depend on the workload.
- Tests and benchmarks use synthetic scenarios. Perception, snapshot gathering, animation and scheduling remain application responsibilities.
License
Copyright 2026 PullsarDev. Licensed under the Apache License 2.0. Test-support attribution is retained in third-party notices.