Advertisement

AI test environments and artificial worlds

Started by October 24, 2006 06:09 AM
4 comments, last by hplus0603 18 years, 1 month ago
I'm not entirely sure how to phrase this question clearly, so please bare with me for a little explanation. I've just taken an AI course at university, and in it the Lecturer provided us with an Linux-based AI world/environment called Doxaworld (written in Lisp). The program provided a 2D environment with hills and plants and animals, objects, etc. Plants could be eaten, hills were 'bumped' into, animals attacked you, or could be attacked, etc. And how we worked with it was to provide our own AI routines for our agent, which the program loaded and implemented. Basically your agent would take percepts provided by Doxaworld (health, stamina, current utility, 'looking' functions, etc), and based on these things (via which ever AI techniques we wanted) our agent function returned an action (attack, move forward, turn left, eat, etc). Most actions and events affected the agent's overall utility (animals also had their own utility), and at the end of the agent's life their final utility score was displayed, and the idea was to get as high a utility rating as possible. Now, my question is, does anyone know of something similar to this for download (or even use online, etc)? I found the assignment to write my own agent for this world very interresting and want to continue doing so, practising various AI techniques as well as learning more myself. But I have a few problems with Doxaworld which make me not want to continue using it, mainly that it's Linux based (linux is a pain on my machine ATM, and if I can avoid it, I'd rather use windoze), it's in Lisp (which *can* be a pain :S plus I have a friend who's interrested in this area too, but doesn't know Lisp, so C/Cpp is preferable), and Doxaworld is essentially text-based. So if anyone knows of some such programs (even ones that don't meet my little wishlist, eheh) I'd be very interrested to hear about them. Thanks, Brad
snoogans
Microsoft's .NET Terrarium has a similar concept. You write the AI for a bug, and it competes for surviving against other bugs other people write.

I had fun participating a LOOOONG time ago, I dont know how it looks now.
Advertisement
There was a robot training game where you'd program robots and compete in a tournament against other players' robots. I can't recall the name though. I thought maybe RoboWars was the name, but that's not the one I remember. This one looks similar to what you are interested in though and it's in C/C++. The one I recall was in a custom scripting language to make it more accessible to non-programmers (and also had nicer graphics). Anyhow, there's probably more in the area of training bots to fight others you could search for.

EDIT: Some more I found.
Robocode
Roboforge
Mind Rover
A.I. Wars


[Edited by - reana1 on October 24, 2006 10:10:54 AM]
Tadd- WarbleWare
The Lisp program should work just as well on Windows as on Linux.

I'd recommend keeping hacking at the Doxaworld program. You're not really going to learn much from programming something completely different, like a robot fight, and I assume much of the professor's intent was to make you comfortable using Lisp. It's a good program once you get the hang of it (well, I've only used Prolog myself, but they're quite similar).
The use of simple worlds like Doxaworld is common in teaching AI. When I was at Monash we used a similar world (written by one of the other AI staff) to teach a range of AI methods. You'll find most of these written in Lisp for at least two reasons: Lisp is still commonly used within a subset of the AI community and so its a good opportunity for students to practice their Lisp skills; and it easily handles the implementation of a human readable interface that students can understand.

As for C/C++ based worlds... most of those I've seen are simulation environments for artificial life studies.

My suggestion would be inline with Asbestos'... get comfortable with Lisp and modify Doxaworld to do what you want. Teach your friend Lisp (it's not that hard to do) and let him play around with it... and find a Windows based Lisp interpreter (not hard to do).

Cheers,

Timkin

The problem is: what is your nomenclature?

There are "worlds" for approaches as different as Cyc and AI.Implant. You also see similar problem sets in writing Quake/Unreal/Counter-Strike bots, in writing behaviors for a scriptable game like Second Life, and in various stock market simulation games, to mention a few.

There is no single standard for these things, unfortunately.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement