This might interest you, it's not Clojure, but Lisp. Do you know the
online game Vendetta? They  have used Lisp extensively for non-player
character behavior, and have a REPL integrated into the game.
http://www.vendetta-online.com
"Vendetta Online has a Lisp environment (using SBCL) which controls
much of its NPC behavior and will soon be in charge of generating
player and NPC missions. Partly in order to get around some
thread-safety issues, and partly for convenience we built an REPL into
a secret chat channel. (it only responds to developer accounts)"
http://www.a1k0n.net/2005/11/04/lisp-repl-vendetta-online.html

Later they started using Erlang in combination with Lisp since they
had some problems with concurrency and garbage collection in SBCL.
http://www.vendetta-online.com/x/msgboard/1/15560#196333

> We chose common lisp primarily for its rapid-prototyping capabilities. In CL, 
> it is very easy to
> define 'mini-languages', which is what I've done for missions, objectives, 
> senses, reflexes,
> state-machines, business-models and more. All the code written in these 
> special languages
> will remain untouched, and be auto-translated (by CL code) into erlang. As I 
> develop new
> missions, reflexes, etc, I will continue to use the mini-languages; the 
> processes they describe
>  will simply be running on a distributed, fault-tolerant, erlang-based 
> platform instead of the
>  simplistic single-threaded one they have been running on. We had hoped for 
> the simplistic
>  system to continue to serve for a while yet, so that we could focus on 
> player-visible
> features, but we always knew it would need to be made more scalable at some 
> point.
> If you know of a 'more mainstream (/debugged/tested/reliable)' 
> language/runtime than erlang that provides:

>   1) *very* light-weight processes
>   2) distributed, message-passing concurrency;
>   3) unification/pattern-matching
>   4) a soft-real-time, distributed, disk and/or ram-based relational/object 
> database usable
>       with or without transactions (just a few of mnesia's features),
>   5) facilities for zero-downtime code-upgrades, and other high-availability 
> features
> 6) a powerful enough set of semantics (eg. closures) to make auto-translation 
> from lisp less painful than a complete rewrite

- Raju

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to