Zombie Raptor

Why Common Lisp?

Common Lisp is a rare programming language that aims at satisfying two seemingly contradictory goals: interactive development and compile-time programming.

As a Lisp, Common Lisp focuses on trivial metaprogramming via syntactic macros and other compile-time constructs. In fact, virtually everything that can be done is doable at compilation time.

At the same time, Common Lisp development is typically done in an interactive manner with a very powerful read-eval-print-loop (REPL) that allows almost everything to be redefined at runtime during the development process.

This combination of features makes Common Lisp very suitable for game engine development, even if it is an unusual choice. The ideal is to do both the game engine and the game scripting with one language that is able to meet both goals simultaneously.

Libraries

One of the disadvantages of using a niche language is the lack of popular libraries for common tasks. Although this is a game engine project, other libraries have to be written.

Most of this code has wound up in a utility library, called zr-utils.