Article: Rules, Types, and Glue — Evaluating Prolog, Coalton, and CL (SBCL/ECL) for Game Simulation Engines
Hey everyone,
I wanted to share a technical write-up and domain exercise I’ve been working on that explores a multi-paradigm approach to game simulation architecture within the Lisp ecosystem.
The core of the article focuses on isolating system responsibilities to prevent integration plumbing from destroying runtime performance, using three specific layers:
Rules: Using Prolog for declarative knowledge representation, symbolic reasoning, and handling complex entity relationship queries.
Types: Utilizing Coalton to inject strict, ML-style static type safety and compile-time invariants directly inline where data boundaries need rigor.
Glue: Leveraging Common Lisp as the high-performance runtime, compiler orchestration layer, and dynamic tissue holding it all together.
Beyond the design philosophy, I wanted to see how this holds up under load, so the article includes baseline performance evaluations and benchmarks comparing SBCL (leveraging native compilation) and ECL (for potential C-embeddability scenarios) when driving these high-throughput simulation loops.
Full post is here: https://dwightaspencer.com/posts/03-rules-types-and-glue/
I'd love to get the community's perspective on this approach—particularly regarding how you handle boundaries between embedded logic engines and the underlying CL image, or any nuances you've run into when scaling Coalton boundaries alongside standard ANSI CL code.