>I've been teaching myself to program with SICP lately and I was
>wondering why there are so few, if any, games written in Scheme/Lisp
>variants? On that subject, which Scheme is best for writing games?
There are games written in Scheme. There aren't a lot because, well,
there aren't as many people interested in writing games that are
interested in writing games in Scheme. :-)
That said, most of the more well known Scheme implementations have
OpenGL bindings, and plenty of them have 2 dimensional drawing
capabilities too. It depends on the type of game you want to write. Are
you looking to write a MUD? A Platformer? An FPS? You might like to see
http://www.gamerizon.com
which I believe uses Gambit Scheme in some of its games. PLT Scheme also
comes with a collection of games.
If I were going to write a game, I would do it in Chez Scheme, but
that's just me. :-)
Aaron W. Hsu
> That is, support for SDL, OpenGL, Allegro, efficient GC, etc.
The Gnome Games, especially the solitaires (AisleRiot) are in Guile.
Cheers, David Duffy,
I'm just having trouble finding a Scheme Implementation that fits my
needs. I'm running MS Windows, and would rather not have to switch to
using Linux unless I absolutely have to (even then I can run a
VM ;) ). Racket is great for the books I'm working through, but I
haven't been able to get any of the available 2d graphics
"packages" (I think that's what planet calls them) to install. Other
implementations that include similar packages are a hassle to install
on windows, requiring Cygwin or MinGW, and most of them are command
line interpreters/compilers, am I really expected to program in those,
or is there some way to hook them up with Emacs? Also as far as I can
tell, Chez Scheme isn't free, does the Petit version have what I need?
> Other implementations that include similar packages are a hassle to
> install on windows, requiring Cygwin or MinGW, and most of them are
> command line interpreters/compilers, am I really expected to program
> in those, or is there some way to hook them up with Emacs?
Yes, you can always use C-u M-x inferior-lisp RET /path/to/your/scheme RET
--
__Pascal Bourguignon__ http://www.informatimago.com/
Racket comes with a gui environment that lets you do 2d graphics, and
with opengl bindings.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!
>I'm just having trouble finding a Scheme Implementation that fits my
>needs. I'm running MS Windows, and would rather not have to switch to
>using Linux unless I absolutely have to (even then I can run a
>VM ;) ).
That's too bad, but there are good Schemes for Windows. Maybe even good
IDEs, although, I have an opinion on those [1].
> Racket is great for the books I'm working through, but I
>haven't been able to get any of the available 2d graphics
>"packages" (I think that's what planet calls them) to install.
Eli has already mentioned some things about PLT, but you should be able
to get some help with those packages if you just post something here or
in the mailing lists for Racket asking for help. I don't know much about
that area of PLT Racket myself, so I can't say much.
> Other
>implementations that include similar packages are a hassle to install
>on windows, requiring Cygwin or MinGW, and most of them are command
>line interpreters/compilers, am I really expected to program in those,
>or is there some way to hook them up with Emacs?
If you use Emacs, then you can hook just about any Scheme up to it
fairly well, and I would recommend checking out the Paredit mode. If you
like precompiled and ready made packages, I believe that MIT has a
fairly new release out that includes Edwin, which is an Emacs like
editor written in Scheme. It also was the first Scheme I ever used
comfortably on Windows. It has 2d graphics built in, but I can't speak
for their speed.
There is also some sort of thing called JazzScheme that some people like
which I believe runs on top of Gambit Scheme. It's supposedly an IDE of
some sort, I think, but I never did get into it much.
There is, of course, DrRacket.
SWL is (Petite) Chez Scheme's current offerings, but I can't recommend
it, and it's mostly only used in teaching; it's due for a replacement
soon, if anyone gets around to it.
As for whether or not you are expected to be using interfaces, well,
most Schemers spend a good deal of time in a REPL, which is, for all
intents and purposes, a Scheme command line. It is considered to be one
of the good things about Scheme development workflows.
>Also as far as I can
>tell, Chez Scheme isn't free, does the Petit version have what I need?
Chez Scheme is a commercial product, and Petite Chez Scheme is a free
version of it. It includes everything that Chez Scheme has except for
the compiler, which is necessary for, well, compiling and linking. This
means, practically, that you don't get access to the FFI system unless
you already have compiled code. There is a set of OpenGL and Graphics
libraries that were written for Chez Scheme, but I'm not aware of any
precompiled versions that are being maintained right now, so you
wouldn't be able to use them easily with Petite. On the other hand,
if you like Chez, you could probably get the maintainer of those
packages to compile them and distribute binaries.
Chicken, Gambit, and other Schemes also have full graphics libraries, so
I think you'll find that you can get graphics with most of the larger
and more popular Schemes. They can all work within Emacs, and some of
them have other Interfaces. For Windows I've always used either Chez,
MIT, or Racket.
Aaron W. Hsu
I think there might be more games in Common Lisp. This blog has
frequent CL game news:
http://lispgamesdev.blogspot.com
In fact the "2010 International Lisp Games Expo" is happening right
now, for which any dialect of Lisp is accepted:
http://dto.github.com/notebook/2010expo.html
That said, as a beginner with Scheme (on Windows) I'm using Racket. It
works well and the availability of other libraries through the FFI
opens up possibilities (for example I'm able to use a C/SDL roguelike
library, libtcod, because someone wrote a binding for Racket).
Incidentally, there's a Common Lisp mailing gamedev mailing list:
http://common-lisp.net/mailman/listinfo/lisp-game-dev
Would anyone be interested in a Scheme gamedev list?