[plt-scheme] game libraries

From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com)
Date: Tue Jul 3 15:21:43 EDT 2007

On Tue, Jul 03, 2007 at 05:31:45PM +0100, Dave Griffiths wrote:
> > I/m considering a project that uses Debian, the allegro game library,
> > OpenGL, and the allegro plugin for OpenGL (which I haven't yet found in
> > Debian -- help welcome).  I plan to work in an exploratory style --
> > try something, see what's fun about it, refactor, build on what works
> > and discard what doesn't.
> >
> > Of course I'd like to try all this using Scheme.
> >
> > Has anyone done this combination before?
> > Does Scheme talk to the OpenGL plugin for allegro?  I've been told
> >      Scheme talks to allegro and OlenGL separatels, but together?
> > Even 3D graphics should be fast enough if I have OpenGL doing the
> >      heavy lifting.  Any dissent?
> >
> > Have you any advice as to how I should go about this?
> I don't use allegro (I used to ages ago though), but I've been working on
> something like this with OpenGL for a while:
> http://www.pawfal.org/fluxus/
> Which is capable of making games like this:
> http://www.pawfal.org/al-jazari/
> I've recently added a lot more to the engine, such as shadow mapping,
> skinning and skeletons for character animation.

Now that looks like fun.

> But yes, Scheme is great as a scripting language for this sort of thing,
> it even has a history of use in top selling games:
> http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
> The interesting part is how to present imperative graphics states to
> Scheme nicely, I haven't yet figured out a nice way to do this - I'm doing
> some very non-functional things in my Scheme API, lots of state and side
> effects.

I don't think there is any "nice" way to present imperative anything in 
Scheme -- if by "nice" you mean "side-effect-free".  About the closest I 
can imagine to that is write a functional program that generates a list 
of actions -- a script-generator. 
> It would be good to discuss this with another Schemer! :)
> cheers,
> dave

Posted on the users mailing list.