I’ve been learning Lisp for just over a year now. Unfortunately my employer isn’t interested in letting me use it on the job so instead I have been hacking together simple toys and one-off scripts while I work my way through various books and articles. Recently my experiments have led me to programming games using the excellent lispbuilder-sdl package. This has helped me to accelerate the learning process and has helped me a great deal.
As I finished hacking on a simple top-down shooter I started this morning, I started to consider the pros and cons of developing games with Lisp. This is a powerful language and it has been really fun learning how to work with it. So is it possible to do this more and develop full-fledged games with it?
It’s dynamic and meta-circular goodnessPygame was my first experience developing games using a language other than C++. It showed me how much more productive and fun it could be. Dynamic languages let me “sketch” ideas in code. It’s a very rapid process and therefore very pleasing.
Lisp also has an advantage in that I can update my games' running code without stopping and restarting it. The ability to drop into the debugger in the middle of a running game is really useful. Instead of losing all that information when the stack unwinds in Python and trying to figure out what happened from the stack trace, Lisp lets me interact with the entire Lisp image an an interactive environment and without losing a beat. There’s nothing else like it that I know of.
Writing games with Lisp is fun and really easy if you know what you’re doing. The development tools, the language itself, and everything that goes with that make building games fast and enjoyable. You can skip past the edit->compile->run cycle and can stop reading trace logs and debugger output. If you have some experience making games and grasp the fundamentals of Lisp, you’re good to go.
Is it possible to write full-fledged games destined for a commercial market in Common Lisp? I think that it’s possible. It already is if your market is targeting PCs. However if you want to develop for consoles you may want to consider alternatives. Lisp might be a good tool in your toolbox, but I don’t think you can write a full game in pure Common Lisp for the Xbox360 or PS3 any time soon.
But you might some day.