BITPICKE Engine (Noesis)
Category: Low-Level Engine / Assembly Implementation
Codebase: Noesis Repository
BITPICKE (E for Existence) is a complete tabletop roleplaying system implemented in x86 assembly. It functions as a high-performance “headless” engine for character management, scenario execution, and physicalized logic resolution.
The Technical Spine: Assembly & Complex Math
My goal was to translate the abstract PICK (Physique, Intuition, Cognition, Kinesthesia) model into a performant, digital-native format without high-level abstraction overhead.
1. Functional Assembly Architecture
The engine is built on functional programming principles in assembly, consisting of several modular components:
- Core Engine (
src/pick_system.asm): An interactive interpreter that handles character creation, attribute budgeting (8-point starting pool), and dice resolution. - Complex Math (
src/pick_complex.asm): Implements complex number arithmetic to handle 2D positions and movement vectors as single register values. - Dual Quaternions (
src/pick_dualquat.asm): A module providing 8-scalar math (real/dual) for 3D translation and rotation extensions.
2. Attribute-Driven IK & Physics
I mapped the PICK attributes directly into the Inverse Kinematics (IK) solver’s heuristics:
- KIN (Kinesthesia): Determines joint flexibility and convergence rates for the
REACHsolver. - PHY (Physique): Influences limb mass and momentum during movement calculations.
- COG/INT (Mental): Used for predictive reach and balance heuristics (
BALANCEcommand).
Domain-Specific Language (PICK Language)
The engine features a built-in DSL for rapid character definition and scenario scripting.
PICK> COG = 6
PICK> INT = 4
PICK> PHY = 2
PICK> KIN = 4
PICK> GODLESS
PICK> LOCK
Character locked. Entering play mode.
Scenario Runner & Activities
The script runner executes .run files. Scenarios like Castles Burning in the Night use the engine to manage tactical states, inventory restrictions (capped at 50 weight), and archetype biases (LARGE, AGILE, BALANCED).
BITPICKE is a proof-of-concept for logic-first game development, where the system is resolved at the bitwise and register level.