So a few years back I wrote my M.Sc. thesis as a part of which I implemented an engine for Polish interactive fiction (a.k.a. text adventure) games (which is a very different problem from English interactive fiction because of inflection and the fact that in Polish the order of words in a sentence is not as rigid as in English.) The example game I made using this engine was a remake of the classic "Hobbit." All the code was in Common Lisp and it was a console game at that point but I wanted to add some graphics to make it look more like the original.
I looked into several options, starting from cl-sdl, but (at least at the time) none of them worked on Linux and Windows with the Common Lisp implementation I used (which was clisp.) I don't remember the details but I spent a good week pounding my head against the wall. clisp has a very good ffi mechanism but you can't use ffi to call into SDL because SDL (on some platforms at least) needs to use its own main() function, so once you're running your Lisp code it's too late.
In the end I decided to implement the graphics part in C and just talk to the Common Lisp backend over a pipe. If you speak Polish you can check out the results on http://www.jfedor.org/pfedor/hobbit.html
Note that this method would not have been possible for anything much more complex, like say an arcade game, and also that in other languages it would typically be trivial (say using pygame in Python.)
I looked into several options, starting from cl-sdl, but (at least at the time) none of them worked on Linux and Windows with the Common Lisp implementation I used (which was clisp.) I don't remember the details but I spent a good week pounding my head against the wall. clisp has a very good ffi mechanism but you can't use ffi to call into SDL because SDL (on some platforms at least) needs to use its own main() function, so once you're running your Lisp code it's too late.
In the end I decided to implement the graphics part in C and just talk to the Common Lisp backend over a pipe. If you speak Polish you can check out the results on http://www.jfedor.org/pfedor/hobbit.html
Note that this method would not have been possible for anything much more complex, like say an arcade game, and also that in other languages it would typically be trivial (say using pygame in Python.)