Repository navigation
Releases: PullsarDev/InterestEngine
Release list
Interest Engine v0.2.0
Interest Engine v0.2.0 adds configurable event novelty directionality to the standalone C++20 attention-selection library for game NPCs.
Features
CandidateSnapshot::eventDirectionalitycontrols novelty's angular gate independently of raw preference scoring. The default1.fpreserves the legacy numerical path exactly;0.fremoves novelty's angle penalty, and intermediate values interpolate.
For example, an important event behind an observer can contribute to novelty without changing the angular preference used for ordinary stimuli.CandidateTrace::noveltyGateexposes the actual rounded gate used by novelty scoring.- Directionality must be finite and within
[0,1]. Invalid values reject the candidate asInvalidEvent, including when events are absent or novelty is disabled. - Distance gating, perception strength, raw scoring, temporal policy and allocation-free prepared
Step()calls are preserved.
Compatibility
Public structs include new fields. Rebuild consumers with matching headers and library; positional trace aggregate initializers must account for noveltyGate.
On tested Windows x64 MSVC and Linux x86-64 GCC/Clang builds, CandidateTrace remains 96 bytes with all 17 pre-existing field offsets unchanged. These verified layouts are not a general ABI guarantee.
Verification
All 10 GitHub Actions jobs passed for this version. 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.2.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, use add_subdirectory() and link InterestEngine::Core. See the README for the API example and platform-specific commands.
Known limitations
- Documented desktop measurements at default directionality were approximately 0.8–3.8% slower in nonempty single-observer configurations and 1.0–2.0% slower in reference variants than v0.1.0. These observations do not establish a universal overhead bound or a performance improvement.
- API, ABI and tuning compatibility may change before 1.0. Cross-platform bit-exact output is not guaranteed; other architectures remain unverified.
- Gating, score saturation, margins and dwell can limit target changes. Tests and benchmarks use synthetic scenarios. The host controls perception strength, event generation and candidate range, and supplies snapshot gathering, animation and scheduling.
License
Copyright 2026 PullsarDev. Licensed under the Apache License 2.0. Test-support attribution is retained in third-party notices.
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.