Hi everyone,
Earlier today on #lispgames, David hosted a discussion on how to create a nice standalone installer which would make it easy to develop games in Common Lisp. Here's my answer:
Introducing the Blackthorn Starter Pack, a standalone collection of libraries which can be used to develop with any game engine that uses lispbuilder-* and/or cl-opengl. The installation procedure goes something like:
* Install your favorite Lisp implementation. * Download and extract the Blackthorn Starter Packhttp://code.google.com/p/blackthorn-engine/downloads/list?can=2&q=Component%3DStarterPackfor your platform. * Load setup.lisp (e.g. for SBCL, run "sbcl --load setup.lisp"). * And you're ready to go! (Well, not quite. You need a game engine. But you have all the dependencies installed so that should hopefully be easy.)
Caveat: The system was originally written with SBCL in mind, but porting it should be pretty trivial, at least for everything which isn't Lispworks Personal Edition. Second Caveat: For Unix flavors, you'll need to install SDL yourself, because it's pretty much impossible to provide binaries for every possible Unix, and package managers do a better job of that anyhow.
So that much of the system is working right now. Of course, there are other things which might be nice to have too, including:
* An easy way to dump binaries on implementations that allow it. * An easy way to turn binaries into full-featured installers for Windows and apps/dmg files for Mac OS X. * Glue code that will automatically find and load dlls/sos/dylibs before your app starts up so that you don't have to worry about where those files are on the end-user system.
For Blackthorn, I've currently hacked these things into a Makefile which I distribute with my engine. But I think it would be not too difficult to provide this functionality as a part of the Starter Pack rather than keeping it in my engine.
Oh, and finally: licensing. Blackthorn is under the MIT license. Which makes it possible to use for literally anything. (Of course, the libraries are all under their own licenses and I can't change that. But at least the glue code is under the MIT license.)
Thoughts? Anyone interested in using such a system?