- Rename 'three-pronged' folder to 'knowledge-layers' — prong metaphor
was misleading (implied parallel tines), replaced with epistemic layers
(deductive base, empirical middle, probabilistic oracle — vertical stack)
- Collapse 11 overlapping files into 3 coherent documents:
- knowledge-layers/_index.org: core framework (two engines + one store,
World Model formula, 0-14 layer table, provenance store design,
conflict resolution, cold-start, stage mapping)
- knowledge-layers/practical-implications.org: design-world-aware-of-
physics, 10 powers, Schafmeister existence proof, epistemic transparency
- knowledge-layers/neurological-empirical.org: neural networks in
provenance framework (kept intact)
- Relocate wolfram/mathematica and Schafmeister docs to ideas/viability/
- Integrate into main architecture _index.org:
- Gate: expanded from two vectors (ACL2+LLM) to three (deductive,
provenance/empirical, LLM oracle)
- Autodidactic loop: split into Track 1 (deductive hardening, fast)
and Track 2 (empirical validation, slow, experimental-feedback-driven)
- See also: added Knowledge Layers cross-reference
- Add all-lisp geometry engine note (ideas/lisp-geometry-engine.org) as
concrete illustration of the empirical layer's effect on design work
- Rebuild site: 148 files, 0 errors
30 lines
2.6 KiB
Org Mode
30 lines
2.6 KiB
Org Mode
:PROPERTIES:
|
|
:CREATED: [2026-06-05 Fri]
|
|
:END:
|
|
#+title: Lisp as Game Engine Substrate
|
|
|
|
The GOAL compiler (Naughty Dog, Jak and Daxter) proved Lisp could ship SOTA games on constrained hardware (PS2, 32MB RAM). Twenty years later, the question is whether Lisp can do it again on modern hardware — and whether the CL Modernization work makes it viable.
|
|
|
|
**What Lisp gives you that C++ cannot match:**
|
|
|
|
- Interactive development at runtime — change AI, physics, or rendering code while the game runs. No compile-link-run cycle. C++ engines for large projects measure iteration in minutes; Lisp measures it in frames.
|
|
- Macros for game DSLs — behavior trees, animation blend graphs, dialogue trees, state machines become native Lisp code instead of external tools with serialization boundaries.
|
|
- CLOS multiple dispatch for ECS — generic functions on component types replace manual message routing.
|
|
- Image-based workflow — save and resume the entire engine state (GPU, audio, physics, editor) from anywhere.
|
|
|
|
**Where Lisp falls short:**
|
|
|
|
- GC tail latency — concurrent generational GCs (single-digit ms) are acceptable for 60fps (16ms budget) but problematic for VR at 90fps (11ms) or competitive esports. The CL Modernization analysis identifies this as inherent but mitigatable, and eliminates it entirely on a tagged RISC-V core with hardware CONS and concurrent collection.
|
|
- GPU interop — no idiomatic Vulkan/DirectX 12 bindings. This is an ecosystem gap (fixable), not a language limitation.
|
|
- No modern engine exists — Unreal Engine 5 is ~5M lines of C++. At 3-5x density, a Lisp equivalent might be 1-2M lines. Massive but smaller than the C++ baseline.
|
|
|
|
**The GOAL lesson:** Naughty Dog's compiler used disciplined Lisp written to avoid allocation on hot paths, proving the constraint is programmer practice, not language capability. Modern SBCL with type declarations compiles to within 2x of C on hot numerical code — sufficient for games where the bottleneck is GPU fill rate, not CPU-bound game logic.
|
|
|
|
**What changes with the CL Modernization work:** A verified Lisp runtime eliminates the class of bugs that causes engine crashes; a RISC-V Lisp extension with hardware CONS and concurrent GC eliminates the tail-latency argument against real-time use; and the density advantage makes a from-scratch engine build tractable for an AI agent working at 10x human velocity.
|
|
|
|
For further analysis, see [[https://en.wikipedia.org/wiki/GOAL_(programming_language)]].
|
|
|
|
See also:
|
|
- [[id:971cd9e7-2cc5-4743-8042-2469dbe4078f][Lisp Foundation]] — the CL Modernization analysis this builds on
|
|
- [[id:1c3ec48b-446c-50d2-b53e-126a81f5143f][Architecture]] — the verified Lisp machine target
|