Game programming utilities

Upstream URL


Morgan Veyret <patzy at oxyde dot org>




The goal of GLAW is to provide a collection of basic functionalities to help developping games.


Using Quicklisp

You can get glaw directly from quicklisp by just doing:

(ql:quickload "glaw")

This may not be the latest git version depending on when I pushed changes.

If you want the latest git version first clone this repository:

git clone git://

Then change to the new glaw directory and issue the quickload call from here.

If you want to try the examples just do:

(ql:quickload "glaw-examples")

Manual install

Get the following required dependencies (and their respective dependencies):

If you want to use the included extension you may need:

  • imago: glaw-imago for image based assets loading
  • lispbuilder-sdl and lispbuilder-sdl-image: glaw-sdl for image based assets loading

Get ASDF and configure it so glaw's .asd are in the search path and then run:

(asdf:operate 'asdf:load-op :glaw)

for the lib itself, or:

(asdf:operate 'asdf:load-op :glaw-examples)

for the examples.


A few examples are provided in the examples/ directory, they depend on:

  • glop for windowing and input.
  • imago for texture loading.

It is possible to use the examples with lispbuilder-sdl and lispbuilder-sdl-image instead of glop and imago. To do so:

  • change the :depends-on line in glaw-examples.asd
  • use :glaw-examples-sdl in *features* instead of :glaw-examples-glop

Note that I don't test often with lb-sdl and it may not work/compile properly.

To run an example:

 (glaw-examples:run-example 'glaw-examples:example-name)

Where example-name may be one of the following:

  • sprites
  • gui
  • particles
  • text
  • pathfinding
  • texture
  • tilemap
  • sound
  • skeletons
  • console
  • input

In all examples you may use ESC or q to quit and alt-s to toggle render stats display.

There's also a simple breakout game using glaw here, a more polished asteroid clone here and an adaptation of the clans board game here.

Dependencies (5)

  • cl-openal
  • cl-opengl
  • glop
  • imago
  • lispbuilder

Dependents (0)

    • GitHub
    • Quicklisp