Table of Contents

Welcome to Xelf

Xelf is a simple game engine written in Common Lisp. Xelf supports 2-D games with smooth scrolling, efficient quadtree-based collision detection between game objects having axis-aligned bounding boxes, custom collision detection, A-star pathfinding, TrueType fonts, basic OpenGL, and more. Future versions will support 3-D gameplay. Xelf currently runs on Linux, Windows, and Mac. Android support is also being worked on.

Xelf is a work in progress, but has been used to create several fun games, including 2x0ng and Squareball.



Xelf is Free Software, licensed under the GNU LGPL v3, and requires only Free Software to run. With the use of SBCL and Wine, Lisp games for Windows can be cross-compiled from GNU/Linux using only Free Software. All this combined with the ability of SBCL to make binaries for GNU/Linux and Mac OSX when running on those platforms, makes it possible to create Common Lisp games, animations and other multimedia projects and deliver them to a wide audience without using any proprietary programs. This is important for games-as-speech, for if a game is to count as an act of truly free expression, both its creators and its players must be free of proprietary restrictions insofar as they meet together in the experience.

Please also visit our friends at the lisp games wiki to find out more about the use of Lisp in games.

Download the 4.9 release

Dated April 14, 2017. Source code, documentation, and two example games are included.

Or you can use Git to check out the master branch from Gitlab. The current release tag is "4.9".

Check the included README file for more information. The documentation is in the xelf/doc folder, but can also be read online via the links below.

Read the documentation

Xelf has been tested to work with SBCL and CCL; ECL support is almost ready. Please send questions to dto@xelf.me or visit the #lispgames channel on Freenode IRC.

See the videos

Play the games

See my profile page.

A note about the future of Xelf

The Xelf 4.0 series uses SDL 1.2 and legacy OpenGL. These are widely supported on target platforms right now, but limited in comparison to SDL 2.0 and newer OpenGL. I am currently working on a Xelf 5.0 series with updated SDL/GL support, but this will take time. The purpose of the 4.x releases is to:

  • Provide a stable base for compiling and improving existing Xelf games
  • Provide interested lispgames developers with an improved, stable release for developing and distributing their own games
  • Correct some issues with the codebase that arose in 2016 which made both previous goals more difficult

The upcoming Xelf 5.0 series should be in beta by about 2018. Backward compatibility is a primary goal for the new Xelf; Xelf 4.0 games should require only minor changes to work with the 5.0 API. (Some additional work may be required if custom OpenGL code was used.)

I will continue to maintain Xelf 4.0 series and produce bugfixes until such time as a 5.0 release is completely stable. The 4.0 release can be found at http://xelf.me , and bugs may be reported to me at dto@xelf.me

Have fun! And don't forget to visit #lispgames on Freenode IRC.


Author: David O'Toole

Created: 2017-04-14 Fri 09:45