Skip to content


Repository files navigation


Experimental bodacious game engine written in Common Lisp.

  1. Documentation
  2. Framework modules
  3. Guides
  4. Installation
  5. Misc
  6. Help and Support


See cl-bodge external documentation.

Framework modules

  • Foundations

    Basic engine blocks for memory management, concurrency, math, events and systems. Everything else is built on top. See cl-bodge/engine.

  • Host

    Abstraction layer over host OS-dependent functionality: windows, OS resource management, system and input events, etc. See cl-bodge/host.

  • Resources

    Asset management routines for asynchronous resource loading, preparation, retrieving and releasing. See cl-bodge/resources.

  • Graphics

    OpenGL-driven rendering engine. Provides convenience layer over bare GL functionality: shared shader libraries and programs, extended shader preprocessor, vertex array objects, GPU buffers, framebuffers/renderbuffers, textures, etc. See cl-bodge/graphics.

  • Canvas

    Hardware-accelerated 2d drawing routines. See cl-bodge/canvas.

  • Animation

    Support module for skeletal animation: keyframe sequences, keyframe interpolation, skinning shader. See cl-bodge/animation.

  • Audio

    OpenAL-driven postional 3D audio system: listener, audio sources, audio buffers, streaming, special effects, etc. See cl-bodge/audio.

  • Physics

    2D and 3D rigid body physics engine with collision detection: rigid bodies, joints, shapes, etc. See cl-bodge/physics.

  • Text

    Text rendering system. Signed Distance Field based rendering, fonts handling, glyph aligning, font-related math, etc. See cl-bodge/text

  • 2D GUI

    System for creating in-game hardware-accelerated multi-window user interfaces: windows, widgets, layouts. See cl-bodge/ui.

  • Distribution

    Utilites for packaging application for shipping across different OSes: lisp image dumping, execution file creation, OS bundles, assets and foreign dependencies packing. See cl-bodge/distribution.



;; Add cl-bodge distribution into quicklisp
(ql-dist:install-dist "")

;; Update main dist just in case
(ql:update-dist "quicklisp")

;; Load the demo
(ql:quickload :bodge-demo)
;; And run it!


Also, check out trivial-gamekit to get started with cl-bodge bit by bit.

Help and Support

If you have any troubles going through guides or running the demo, feel free to fire an issue here or ping me in #lispgames IRC channels at