[Openmcl-devel] Simple Agent-based Engine 0.2
ralex at cs.colorado.edu
Sat May 30 13:04:11 EDT 2009
On May 29, 2009, at 11:30 PM, Neil Baylis wrote:
> OK, this thing is really cool. You've been burning the midnight
> oil ;- I downloaded it a week or so back, and it was crashing and
> burning. Today it seems much more solid, all the demos seemed to
> work properly.
I am glad to hear that! Yes, a lot of midnight oil got burned...
The CCL IDE has still some issues but we are pretty excited about the
result. XMLisp is really part of AgentCubes which has been
implemented with MCL and Allegro. The CCL version is already better
then the MCL version (Carbon, non native threading) ever was. There
has been a lot of discussion recently about things that are bad in CCL
and some people pointed me to other Lisp implementation including PLT
Scheme. I ran some benchmarks and the CCL version not only blew the
doors off Scheme (running the same OpenGL demo 2x - 5x faster) but was
also much more stable. Running multiple animations in different
windows at the same time, resizing/moving window, changing the camera,
running other stuff, ... no problem with CCL. OpenGL in Scheme, in
contrast, fell completely apart. Doing just about anything using the
mouse would slow the animation down or when moving or resizing any
window stop the entire thing. Running even two animations at the same
time: completely impossible.
A huge thanks goes to Clozure. The IDE including some of the debugging
tools may still be rough but the basic machinery is amazing. Native
threading, incremental garbage collection, incremental compilation,
64bit, solid event handling will allow CCL to go where few, if any,
Lisp implementations have gone before ;-) This is a powerful tool that
not only does great compared to other Lisps but also in comparison to
just about any programming language. I think Lisp programming is
becoming fun again!
> This comes at a good time for me, as I'm just getting ready to start
> a new project. Really it only requires 2d graphics (I was planning
> to use Quartz 2d) but you've made the 3D very easy. I could probably
> do it with 3D without too much trouble. It's an application that
> places colored tiles from a collection into an on-screen rectangle,
> subject to constraints.
OpenGL is actually quite good for these kinds of 2D applications. Have
a look at AgentCubes: http://www.cs.colorado.edu/~ralex/papers/PDF/AgentCubes_JVLC_article_inpress.pdf
Lots of 2D
> Is there documentation, or do I just need to read the code in the
> source & examples?
documentation is planned and has started but for now the best
documentation are the examples. It would help to hear what kind of
minimal documentation people need.
> Is full-screen supported?
not yet but the MCL version already had this. I think we will go the
same simple route. It may sound like a hack but has many advantages.
The MCL version hides the menu bar and resizes the window so that its
content becomes the full-screen. This is slightly slower but keeps
event handling simple (you need to handle full screen event
differently) and allows for other window layers to be on top. We need
this for transparent annotation windows and drag and drop.
> Is Quartz 2D supported? (Quartz provides antialiased graphics on my
> Mac, but OpenGL does not)
Apple has a nice demo of mixing Quartz, as layer, and OpenGL. The
problem for us with this idea is that we need to be cross platform. We
are exploring options with Clozure to get LUI with OpenGL to work on
windows as well.
In OS X ultimately everything goes through OpenGL but certainly Quartz
has some nice functions. Btw, OpenGL can do full scene antialiasing
and XMLisp has that enabled by default. Are you not getting
antialiased output? Some graphics cards need additional encouragement.
> Can I use it with Emacs & Slime, or must I use the embedded IDE?
I have not tried this but as long as you require :cocoa things should
work. You probably need to replicate some startup code from the cocoa-
application to get the event loop and other things initialized.
> (I hope the answers to these are 'yes', but none is a show stopper
> for me).
> Thanks for making this available,
> Neil Baylis
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
Prof. Alexander Repenning
University of Colorado
Computer Science Department
Boulder, CO 80309-430
More information about the Openmcl-devel