From: Chris Capel
Subject: Interesting simulation ideas
Date: 
Message-ID: <10r4dv9emfrad95@corp.supernews.com>
There have been a few newbies (including me) programming simulators
recently, and after doing my rather boring Battleship simulation, I was
wondering if there's something a bit more interesting out there to
simulate. Chess has been done. Maybe a more complex card game of some sort,
like Gin or Bridge?

But what I'd really enjoy is some sort of micro-ecosystem that reproduces in
miniature some sort of dynamic from the real world. This sort of thing can
be really entertaining, as I've done it in the past. But I'm fresh out of
ideas. Anyone?

As an example of what I mean, it's interesting to see how suburban
communities of largely homogeneous race can form from behavior that's only
marginally race-sensitive at the individual level. This can be simulated
simplistically on a grid where each square is only one of two colors, and
where two squares switch places each round if less than two (or three)
neighboring squares are of the same color. The squares, initially
distributed randomly, quickly come to form sharply segregated communities.
If the moving threshold is three, it takes less than a dozen rounds, IIRC.

That one was interesting, but maybe something more sophisticated?

Ideally, it would be an environment


Chris Capel

From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r4edpfh2i1365@corp.supernews.com>
Chris Capel wrote:

> Ideally, it would be an environment
> 

Oops. Mashed on the keyboard. Ideally, it would be a complex environment
where different strategies compete for success. The different strategies
would have to be sophisticated to be competitive, and maybe inviting for
others to get involved. This has been done before, I know, but a lisp
version would be interesting. I'm not sure how to make it work, though, and
how to make it appealing. The hope is that surprising behavior would arise
as a consequence of the interactions between the strategies and the
environment, leading to complex ecosystems that give the environment
"replayability", or long term interest.

Chris Capel
From: Jeff
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <Ndrsd.510751$D%.493851@attbi_s51>
Chris Capel wrote:


> But what I'd really enjoy is some sort of micro-ecosystem that
> reproduces in miniature some sort of dynamic from the real world.
> This sort of thing can be really entertaining, as I've done it in the
> past. But I'm fresh out of ideas. Anyone?
> 

As a sample for the engine I am putting together, I was thinking of
doing a genetic algorithm war between ant farms. They start on the same
"yard" and food "spawns". There is a time period where each side has to
collect food and fight amonst each other.

Jeff M.

-- 
http://www.retrobyte.org
··············@gmail.com
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r4go76rkk4c3e@corp.supernews.com>
Jeff wrote:

> Chris Capel wrote:
> 
>> But what I'd really enjoy is some sort of micro-ecosystem that
>> reproduces in miniature some sort of dynamic from the real world.
>> This sort of thing can be really entertaining, as I've done it in the
>> past. But I'm fresh out of ideas. Anyone?
> 
> As a sample for the engine I am putting together, I was thinking of
> doing a genetic algorithm war between ant farms. They start on the same
> "yard" and food "spawns". There is a time period where each side has to
> collect food and fight amonst each other.

This sounds sort of interesting. I'd be glad if you could elaborate on your
plans.

How do you model their mounds/tunnels? Is the ant farm a 2d thing like in
the glass cases? How is the hive mind thing handled? Do they communicate
telepathically? Through virtual pheremones, or physical proximity as a
close approximation? Does each ant in a colony get an identical brain, or
is it closer to real genetics? Do you include rounds and respawning, or is
development continual? What does the "fighting" consist of? What does a
gene consist of? Lisp tokens? Mathematical symbols? Is there a fixed
input/output for the brain of each ant?

I think this might have some potential, but depending on how you model the
non-living environment, it might not scale up to have other kinds of
species stuck into the simulation as well, which would limit its long-term
interest.

Chris Capel
From: Jeff
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <4Mrsd.200521$R05.102009@attbi_s53>
Chris Capel wrote:

> Jeff wrote:
> 
> > Chris Capel wrote:
> > 
> >> But what I'd really enjoy is some sort of micro-ecosystem that
> >> reproduces in miniature some sort of dynamic from the real world.
> >> This sort of thing can be really entertaining, as I've done it in
> the >> past. But I'm fresh out of ideas. Anyone?
> > 
> > As a sample for the engine I am putting together, I was thinking of
> > doing a genetic algorithm war between ant farms. They start on the
> > same "yard" and food "spawns". There is a time period where each
> > side has to collect food and fight amonst each other.
> 
> This sounds sort of interesting. I'd be glad if you could elaborate
> on your plans.

Heh, more of a rough sketch right now. Initially, I was just planning
on a simple 2D (top down) view of a yard. Two points (on opposite ends)
would represent the ant mounds. The ants come from their mound, travel
out into the yard looking for food and return with a piece of food to
their mound. Encounters with the "enemy" ants would result in some form
of combat (winner determined mathematically based on age, size, etc.)

This could be expanded, of course, but I'd get the basics working first
before attempting to expand on it. And I wouldn't include the actual
ant hive as part of the simulation. Using Lisp bit arrays, the GA
should be trivial to setup and mutate, combine, etc.

If there were to be an eventual "goal" (aside from just being a demo),
I'd have some user interaction in some way (dropping other kinds of
enemies where the ants must work together to kill it, dropping food,
obstacles, etc). Between user interaction and various differences in GA
mutation between the two colonies, one could watch one colony hopefully
become much more powerful than the other.

> I think this might have some potential, but depending on how you
> model the non-living environment, it might not scale up to have other
> kinds of species stuck into the simulation as well, which would limit
> its long-term interest.

I haven't thought anything beyond short-term (I have enough other
long-term things tumbling on in my head).. but it is something I've
mulled doing for quite some time now.

Jeff M.

-- 
http://www.retrobyte.org
··············@gmail.com
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r4j5njvj9cj66@corp.supernews.com>
Jeff wrote:

> Chris Capel wrote:
> 
>> Jeff wrote:
>> 
>> > Chris Capel wrote:
>> > 
>> >> But what I'd really enjoy is some sort of micro-ecosystem that
>> >> reproduces in miniature some sort of dynamic from the real world.
>> >> This sort of thing can be really entertaining, as I've done it in
>> the >> past. But I'm fresh out of ideas. Anyone?
>> > 
>> > As a sample for the engine I am putting together, I was thinking of
>> > doing a genetic algorithm war between ant farms. They start on the
>> > same "yard" and food "spawns". There is a time period where each
>> > side has to collect food and fight amonst each other.
>> 
>> This sounds sort of interesting. I'd be glad if you could elaborate
>> on your plans.
> 
> Heh, more of a rough sketch right now. Initially, I was just planning
> on a simple 2D (top down) view of a yard. Two points (on opposite ends)
> would represent the ant mounds. The ants come from their mound, travel
> out into the yard looking for food and return with a piece of food to
> their mound. Encounters with the "enemy" ants would result in some form
> of combat (winner determined mathematically based on age, size, etc.)

This sounds a lot more limited than what I was talking about. It limits the
necessary depth of the strategy to minimal levels. As a demo, I'm sure it's
great, but I wonder whether we couldn't cook up something a bit more
sophisticated. Have you seen Terrarium? I consider that too shallow.

http://www.windowsforms.net/Terrarium/

For one thing, the architecture ought to be open, so that more people can
participate, and so that distribution is cleaner, and GUIs can be modular.
For another, I think a two-dimensional plane is a bit limited as a
pseudo-physical environment. I would give the envirnoment at least a
two-dimensional, three-planed approach: subterranian, ground-level, and
air, for flying creatures. Even better, have dirt-level, shrubbery level,
and several tree levels, and implement some sort of climbing mechanics.

For another, I think the hardcoded division between plants and animals is
unnecessary and limited. I think that skill divisioning should be at a much
more basic level, so that things like stamina and speed, and even movement
abilities, are properties emerging out of a couple more basic parameters
and the logic of the creature.

So basically, one neat sounding thing is Terrarium, except more ambitious.
The key is getting it balanced and stable while being general enough, and
keeping complexity bound to the point where the simulation is
computationally feasible and easily viewable with a proper graphical
display.

> This could be expanded, of course, but I'd get the basics working first
> before attempting to expand on it. And I wouldn't include the actual
> ant hive as part of the simulation. Using Lisp bit arrays, the GA
> should be trivial to setup and mutate, combine, etc.

What I'm wondering is at what level the GA would operate. I think what
you're suggesting is letting each colony have a single brain that gets
given to each spawned ant, and after each round, combining them genetically
with each other. However, I think actually modelling the genetics of a real
ant community would be very feasible and giving them some more interesting
spawning patterns. In any case, a more general approach would be to model
the digging nature of subterranian creatures and let the strategy spawn as
it desires. The trick is making this feasible.

Chris Capel
From: Jeff
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <LMtsd.135748$V41.130260@attbi_s52>
Chris Capel wrote:

> Jeff wrote:
> 
> > Chris Capel wrote:
> > 
> >> This sounds sort of interesting. I'd be glad if you could elaborate
> >> on your plans.
> > 
> > Heh, more of a rough sketch right now. Initially, I was just
> > planning on a simple 2D (top down) view of a yard. Two points (on
> > opposite ends) would represent the ant mounds. The ants come from
> > their mound, travel out into the yard looking for food and return
> > with a piece of food to their mound. Encounters with the "enemy"
> > ants would result in some form of combat (winner determined
> > mathematically based on age, size, etc.)
> 
> This sounds a lot more limited than what I was talking about. It
> limits the necessary depth of the strategy to minimal levels. As a
> demo, I'm sure it's great, but I wonder whether we couldn't cook up
> something a bit more sophisticated. Have you seen Terrarium? I
> consider that too shallow.
> 
> http://www.windowsforms.net/Terrarium/

Looks interesting. Thanks for the link! :)

> For one thing, the architecture ought to be open, so that more people
> can participate, and so that distribution is cleaner, and GUIs can be
> modular.  For another, I think a two-dimensional plane is a bit
> limited as a pseudo-physical environment. I would give the
> envirnoment at least a two-dimensional, three-planed approach:
> subterranian, ground-level, and air, for flying creatures. Even
> better, have dirt-level, shrubbery level, and several tree levels,
> and implement some sort of climbing mechanics.

Sounds rather ambitious. I don't want to knock it. In fact, I highly
encourage you, and I'd help in whatever way I could. But this is a very
large project you are "designing". I'd start with something smaller,
and build it modularly like you want -- then just slowly add to it.

> > This could be expanded, of course, but I'd get the basics working
> > first before attempting to expand on it. And I wouldn't include the
> > actual ant hive as part of the simulation. Using Lisp bit arrays,
> > the GA should be trivial to setup and mutate, combine, etc.
> 
> What I'm wondering is at what level the GA would operate. I think what
> you're suggesting is letting each colony have a single brain that gets
> given to each spawned ant, and after each round, combining them
> genetically with each other....

Generall speaking, yes. Although you could just give "health" to each
individual ant. The health would slowly go away until the ant died. At
which time, the length of time that the ant survived could be used as a
fitness score. For each successful piece of food returned, a health
"bonus" could be awarded (allowing for higher fitness).

What would be truely amazing would be to cross-breed the GA's between
the two hives periodically. I'd be willing to bet that over time.
Instead of competing, they would end up working together (or at least
staying out of each other's way). Much like solving the prisoner's
dilemma.

Once this (or similar system) was in place, then I'd begin expanding on
it (add an animal that eats ants into the environment). The difficulty
would be in expanding the GA (or other form of AI) for existing
entities modularly. I believe this is where Lisp could really shine,
though. NN's have an advantage here, as adding another input to a
network is trivial. Adding another bit into a GA and giving it meaning
is far more work.

Jeff M.

-- 
http://www.retrobyte.org
··············@gmail.com
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r59le85osfl78@corp.supernews.com>
Jeff wrote:

> Chris Capel wrote:
> 
>> This sounds a lot more limited than what I was talking about. It
>> limits the necessary depth of the strategy to minimal levels. As a
>> demo, I'm sure it's great, but I wonder whether we couldn't cook up
>> something a bit more sophisticated. Have you seen Terrarium? I
>> consider that too shallow.
>> 
>> http://www.windowsforms.net/Terrarium/
> 
> Looks interesting. Thanks for the link! :)
> 
>> For one thing, the architecture ought to be open, so that more people
>> can participate, and so that distribution is cleaner, and GUIs can be
>> modular.  For another, I think a two-dimensional plane is a bit
>> limited as a pseudo-physical environment. I would give the
>> envirnoment at least a two-dimensional, three-planed approach:
>> subterranian, ground-level, and air, for flying creatures. Even
>> better, have dirt-level, shrubbery level, and several tree levels,
>> and implement some sort of climbing mechanics.
> 
> Sounds rather ambitious. I don't want to knock it. In fact, I highly
> encourage you, and I'd help in whatever way I could. But this is a very
> large project you are "designing". I'd start with something smaller,
> and build it modularly like you want -- then just slowly add to it.

You know what? I've changed my mind. I was getting carried away. The problem
with getting it more and more complicated is that it gets harder and harder
to observe your little simulation, and harder to get people to contribute
creatures. :-) So it needs to be pretty simple. Hmm. I still like the whole
ants idea, though. But what would be really impressive graphically? That's
what we have to think about, dealing with all this graphics stuff!

How about this? Each ant farm gets its own two-dimensional underground hive
that's connected at the top to a two-dimensional perpendicular ground-level
plane. There are multiple ant farms connected to the same ground. So,
looking at it from the side,

,     ,         ,  ,
----------------------
     |     |
     |     |
     |     |
     |     |
     |     |

The commas are little food thingies. :-) The straight vertical lines are the
ant hives. Of course, each is a plane, we're just having a side view.

Then you could view any individual ant farm in a separate window, or you
could view the ground level. And you could even see a 3d representation
with transparency and all that cool stuff, or have the view follow an ant
around while it wends its way through the ant-world. And you have
individual ants with identities that always have a location (they never
disappear to anywhere), and a queen that makes little baby ants at the
bottom. Only the queen can make baby ants, but the baby ants can be queens
if the strategy wants them to be, so you can have more than one. They're
expensive to maintain, though.

This might be a bit too complicated for a genetic algorithm (you still
haven't told me how your genes will relate to the behavior of ants--do they
just control a number of parameters in the behavior of the ants, or are
they able to affect the logic the ants use in moving around and such?) but
it would be much more fun for programming hive-minds, and not too ambitious
of an infrastructure at all to start out with, do you think?

Then later, the sim could grow by making the ground-level plain support
other forms of life. The food sources could become life forms in
themselves, or there could be carnivores, like anteaters :-). Then we could
go all out!!

Chris Capel
From: Peter Seibel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <m3r7m5xobs.fsf@javamonkey.com>
Chris Capel <······@iba.nktech.net> writes:

> Jeff wrote:
>
>> Chris Capel wrote:
>> 
>>> This sounds a lot more limited than what I was talking about. It
>>> limits the necessary depth of the strategy to minimal levels. As a
>>> demo, I'm sure it's great, but I wonder whether we couldn't cook up
>>> something a bit more sophisticated. Have you seen Terrarium? I
>>> consider that too shallow.
>>> 
>>> http://www.windowsforms.net/Terrarium/
>> 
>> Looks interesting. Thanks for the link! :)

Have you seen <http://www.ant-wars.com/>? Sounds similar to what
you're talking about.

-Peter

-- 
Peter Seibel                                      ·····@javamonkey.com

         Lisp is the red pill. -- John Fraser, comp.lang.lisp
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r5b5sgmgkfc69@corp.supernews.com>
Peter Seibel wrote:

> Chris Capel <······@iba.nktech.net> writes:
> 
>> Jeff wrote:
>>
>>> Chris Capel wrote:
>>> 
>>>> This sounds a lot more limited than what I was talking about. It
>>>> limits the necessary depth of the strategy to minimal levels. As a
>>>> demo, I'm sure it's great, but I wonder whether we couldn't cook up
>>>> something a bit more sophisticated. Have you seen Terrarium? I
>>>> consider that too shallow.
>>>> 
>>>> http://www.windowsforms.net/Terrarium/
>>> 
>>> Looks interesting. Thanks for the link! :)
> 
> Have you seen <http://www.ant-wars.com/>? Sounds similar to what
> you're talking about.

Hey, that is interesting! But they only allow a *stateless* and *tiny*
subset of scheme to define ant brains. We can do better than that. :-) I
think, if I can get this safety stuff worked out, I can get it to where
people can use most of common lisp to define their ant brains. Now that
would be cool.

Chris Capel
From: Jeff
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <bPxsd.137160$V41.5583@attbi_s52>
Peter Seibel wrote:

> Chris Capel <······@iba.nktech.net> writes:
> 
> > Jeff wrote:
> > 
> >> Chris Capel wrote:
> >> 
> >>> This sounds a lot more limited than what I was talking about. It
> >>> limits the necessary depth of the strategy to minimal levels. As a
> >>> demo, I'm sure it's great, but I wonder whether we couldn't cook
> up >>> something a bit more sophisticated. Have you seen Terrarium? I
> >>> consider that too shallow.
> >>> 
> >>> http://www.windowsforms.net/Terrarium/
> >> 
> >> Looks interesting. Thanks for the link! :)
> 
> Have you seen <http://www.ant-wars.com/>? Sounds similar to what
> you're talking about.
> 
> -Peter

Haha! Sweet. Thanks, Peter.

Jeff M.

-- 
http://www.retrobyte.org
··············@gmail.com
From: Jeff
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <c8ysd.443266$wV.254130@attbi_s54>
Chris Capel wrote:

> Jeff wrote:
> 
> > Sounds rather ambitious. I don't want to knock it. In fact, I highly
> > encourage you, and I'd help in whatever way I could. But this is a
> > very large project you are "designing". I'd start with something
> > smaller, and build it modularly like you want -- then just slowly
> > add to it.
> 
> You know what? I've changed my mind. I was getting carried away. The
> problem with getting it more and more complicated is that it gets
> harder and harder to observe your little simulation, and harder to
> get people to contribute creatures. :-) So it needs to be pretty
> simple. Hmm. I still like the whole ants idea, though. But what would
> be really impressive graphically? That's what we have to think about,
> dealing with all this graphics stuff!
> 
> How about this? Each ant farm gets its own two-dimensional
> underground hive that's connected at the top to a two-dimensional
> perpendicular ground-level plane. There are multiple ant farms
> connected to the same ground. So, looking at it from the side,

I understand what you want, but I guess I don't understand the final
goal/motivation. Do you want a simple SIM-style game or a biological
simulator (two very different things). If you want the simulator, I
think you are still too complicated. Get the above ground working. Then
worry about what happens underground.

I agree, it would be rather cool, but if your ants are "learning" how
to find food, do they need to learn how to navigate their home, too?
Likewise, will they have to make a bigger home to handle increasing
populations? Whats the algorithm for this?

> The commas are little food thingies. :-) The straight vertical lines
> are the ant hives. Of course, each is a plane, we're just having a
> side view.

If you are thinking of a 2D (cross section) view of the hive, and a 1D
line segment for the ground where food is, this would be much more
doable. But is limiting for expansion above ground. I really do think
making the hive some mystical "it works" area (easier to expand later
to become more complex) is better, and working the yard/ground plane
would be more efficient. But maybe that isn't as interesting to you :)

> This might be a bit too complicated for a genetic algorithm (you still
> haven't told me how your genes will relate to the behavior of
> ants--

Not too much to really say here. Haven't thought about it too much. If
I was forced to come up with something in five minutes (like now), it
would probably consists of the following sequence of inforamation:

Inputs:
 Obstacle in front?
 Obstacle to right?
 Obstacle to left?
 Carrying food?
 Enemy nearby (subjective)?
 Am I dying?
 Alarm sounding nearby?
 ...

Outputs:
 Go home (automatic, probably via A* or something similar)
 Attack
 Call for help
 Assist fellow ant
 Turn left
 Turn right
 Move forward
 ...

Already this is a rather complicated GA sequence, and it should
probably be simplified. Have you looked at the Norns model from
Creatures (sorry, don't havea url on hand). That used small NNs
combined with small (and simple) GAs to produce some very convincing
models...

Jeff M.

-- 
http://www.retrobyte.org
··············@gmail.com
From: Pascal Bourguignon
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <87pt1o69xg.fsf@thalassa.informatimago.com>
Chris Capel <······@iba.nktech.net> writes:
> You know what? I've changed my mind. I was getting carried away. The problem
> with getting it more and more complicated is that it gets harder and harder
> to observe your little simulation, and harder to get people to contribute
> creatures. :-) 

Ok, a suggestion to aleviate the difficulty of observing your little
universe, and make it much more funny: use first person!

Keep a 3D universe: it's more interesting to have a first person view
of a 3D universe than a 2D.

The god^Wuser can choose which individual he wants to be, and may be
take command of.

(A good idea could be to watch "The Fourteenth Floor" first).

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r6hqi9slh8d3b@corp.supernews.com>
Pascal Bourguignon wrote:

> Chris Capel <······@iba.nktech.net> writes:
>> You know what? I've changed my mind. I was getting carried away. The
>> problem with getting it more and more complicated is that it gets harder
>> and harder to observe your little simulation, and harder to get people to
>> contribute creatures. :-)
> 
> Ok, a suggestion to aleviate the difficulty of observing your little
> universe, and make it much more funny: use first person!
> 
> Keep a 3D universe: it's more interesting to have a first person view
> of a 3D universe than a 2D.
> 
> The god^Wuser can choose which individual he wants to be, and may be
> take command of.

It's pretty easy to make a 3D universe out of a 2D sim.

> (A good idea could be to watch "The Fourteenth Floor" first).

Couldn't find anything on google. What's this you're referring to?

Chris Capel
From: Pascal Bourguignon
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <878y8c5y5p.fsf@thalassa.informatimago.com>
Chris Capel <······@iba.nktech.net> writes:

> Pascal Bourguignon wrote:
> 
> > Chris Capel <······@iba.nktech.net> writes:
> >> You know what? I've changed my mind. I was getting carried away. The
> >> problem with getting it more and more complicated is that it gets harder
> >> and harder to observe your little simulation, and harder to get people to
> >> contribute creatures. :-)
> > 
> > Ok, a suggestion to aleviate the difficulty of observing your little
> > universe, and make it much more funny: use first person!
> > 
> > Keep a 3D universe: it's more interesting to have a first person view
> > of a 3D universe than a 2D.
> > 
> > The god^Wuser can choose which individual he wants to be, and may be
> > take command of.
> 
> It's pretty easy to make a 3D universe out of a 2D sim.
> 
> > (A good idea could be to watch "The Fourteenth Floor" first).
> 
> Couldn't find anything on google. What's this you're referring to?

No. Movies are to be searched in http://www.imdb.org

But it's not the 14th, it's the 13th. The one that does not exist in
most supersticious buildings... (Sorry).

http://imdb.com/title/tt0139809/


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
From: Pascal Bourguignon
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <87llcd73sm.fsf@thalassa.informatimago.com>
Chris Capel <······@iba.nktech.net> writes:
> But what I'd really enjoy is some sort of micro-ecosystem that reproduces in
> miniature some sort of dynamic from the real world. This sort of thing can
> be really entertaining, as I've done it in the past. But I'm fresh out of
> ideas. Anyone?

Have a look at: http://www.nobleape.com

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
From: mikel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <wNzsd.54690$QJ3.31663@newssvr21.news.prodigy.com>
Chris Capel wrote:
> There have been a few newbies (including me) programming simulators
> recently, and after doing my rather boring Battleship simulation, I was
> wondering if there's something a bit more interesting out there to
> simulate. Chess has been done. Maybe a more complex card game of some sort,
> like Gin or Bridge?
> 
> But what I'd really enjoy is some sort of micro-ecosystem that reproduces in
> miniature some sort of dynamic from the real world. This sort of thing can
> be really entertaining, as I've done it in the past. But I'm fresh out of
> ideas. Anyone?
> 
> As an example of what I mean, it's interesting to see how suburban
> communities of largely homogeneous race can form from behavior that's only
> marginally race-sensitive at the individual level. This can be simulated
> simplistically on a grid where each square is only one of two colors, and
> where two squares switch places each round if less than two (or three)
> neighboring squares are of the same color. The squares, initially
> distributed randomly, quickly come to form sharply segregated communities.
> If the moving threshold is three, it takes less than a dozen rounds, IIRC.
> 
> That one was interesting, but maybe something more sophisticated?
> 
> Ideally, it would be an environment

When I was first teaching myself 6502 assembly language many years ago, 
I spent weeks fooling with a cellular automaton similar to Conway's 
life. The basic idea was that is was life except that there were four 
populations inhabiting the same grid. One population used the normal 
Conway rules; the other three were slightly different (for example, one 
population liked a more crowded situation; two liked less crowded 
situations. All types of live cells could see each other, and took 
occupied cells into account regardless of what type of live item 
occupied them, so in effect the four populations were sort of competing 
for scarce resources. The results were visually beautiful, very 
unpredictable, and very changeable under quite small perturbations of 
the rules and initial conditions.

Later, I wrote another automaton in Lisp that I called "beasties". In 
that one, mobile blobs moved around in a "pond". Dots of "food" called 
"flecks" continually drifted down from the top, and the beasties swam 
around trying to eat them. Beasties could also eat one another, but they 
could also decided to mate instead, giving rise to new beasties. Each 
beastie had a simple genome that controlled how far away it could see 
food and potential mates, how rapidly it moved (and therefore how 
rapidly it burned up body mass), and how liikely it was to choose mating 
rathern than eating. Again, that was good for weeks of fun tweaking.

I think it would be fun to do something roughly like beasties, but to 
throw in some code that influences body shape as well, to see what 
interesting forms develop. The code would be something like the Blind 
Watchmaker software that Dawkins released years ago, but with the 
difference that different shapes would correspond to different values in 
the genome, so that there would be a functional relationsho between 
beastie behavior and appearance. I think that would yield a few weeks of 
fun hacking as well.
From: Chris Capel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <10r6f8hjs8jua4@corp.supernews.com>
mikel wrote:

> Chris Capel wrote:
>> But what I'd really enjoy is some sort of micro-ecosystem that reproduces
>> in miniature some sort of dynamic from the real world. This sort of thing
>> can be really entertaining, as I've done it in the past. But I'm fresh
>> out of ideas. Anyone?
> 
> Later, I wrote another automaton in Lisp that I called "beasties". In
> that one, mobile blobs moved around in a "pond". Dots of "food" called
> "flecks" continually drifted down from the top, and the beasties swam
> around trying to eat them. Beasties could also eat one another, but they
> could also decided to mate instead, giving rise to new beasties. Each
> beastie had a simple genome that controlled how far away it could see
> food and potential mates, how rapidly it moved (and therefore how
> rapidly it burned up body mass), and how liikely it was to choose mating
> rathern than eating. Again, that was good for weeks of fun tweaking.
> 
> I think it would be fun to do something roughly like beasties, but to
> throw in some code that influences body shape as well, to see what
> interesting forms develop. The code would be something like the Blind
> Watchmaker software that Dawkins released years ago, but with the
> difference that different shapes would correspond to different values in
> the genome, so that there would be a functional relationsho between
> beastie behavior and appearance. I think that would yield a few weeks of
> fun hacking as well.

That sounds fun. In your original simulation, was the shape of the blobs
important? 

Chris Capel
From: mikel
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <uSHsd.29055$zx1.10676@newssvr13.news.prodigy.com>
Chris Capel wrote:
> mikel wrote:

>>I think it would be fun to do something roughly like beasties, but to
>>throw in some code that influences body shape as well, to see what
>>interesting forms develop. The code would be something like the Blind
>>Watchmaker software that Dawkins released years ago, but with the
>>difference that different shapes would correspond to different values in
>>the genome, so that there would be a functional relationsho between
>>beastie behavior and appearance. I think that would yield a few weeks of
>>fun hacking as well.
> 
> 
> That sounds fun. In your original simulation, was the shape of the blobs
> important? 

No, not at all. They were all ovals. The *area* was significant: the 
area of each beastie was proportional to its mass. Since movement 
decreased mass, and eating increased it, beasties tended to grow and 
shrink as they moved around, and being big was an advantage, both for 
individual survival and ability to reproduce (when two beasties mated, 
their mass was decreased by the mass of the offspring).
From: Gareth McCaughan
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <873bylgckg.fsf@g.mccaughan.ntlworld.com>
Chris Capel wrote:

> There have been a few newbies (including me) programming simulators
> recently, and after doing my rather boring Battleship simulation, I was
> wondering if there's something a bit more interesting out there to
> simulate. Chess has been done. Maybe a more complex card game of some sort,
> like Gin or Bridge?

Scrabble? Nice combination of skill and chance; really good play
requires you to look ahead a bit; scope for some interesting algorithms
to find playable words quickly. You might want to avoid actually
*calling* it Scrabble if you don't fancy a lawsuit from Hasbro
or whoever it is that owns the US trademark.

Poker is still wide open, I think.

> But what I'd really enjoy is some sort of micro-ecosystem that reproduces in
> miniature some sort of dynamic from the real world. This sort of thing can
> be really entertaining, as I've done it in the past. But I'm fresh out of
> ideas. Anyone?

Formation of rivers, lakes etc.: water drops fall at random and
run downhill, eroding the terrain slightly. (Plot it in three
dimensions, or in two dimensions with contours and a velocity map
showing where water flows.)

Iterated Prisoners' Dilemma, with strategies encoded by short
programs. Neighbours play against one another, and when someone
wins a game others nearby might copy bits of their strategy.
You could add some sort of "tribal" identification and let
players see what tribe they're playing against a member of;
tribe-dependent strategies will evolve.

Evolution of commerce. Commodities come into existence (by
magic) at various places and at various rates; there are
shops and people. Shops get goods by some mechanism which
you might want to make explicit or not; they sell goods
to people nearby; people move around (and respond to what
that does to the availability of the goods they want),
and shops move around (and respond to what that does to
their sales), etc., etc.

Formation of paths. There are a number of sites people
travel between (with various frequencies, but it's probably
OK to set them all equal). People prefer not to change
direction too much, and prefer to follow existing paths;
initially (when there are no paths) they move about
more or less at random. Usage gradually establishes
paths, which are initially pretty random but get smoothed
out by (1) the preference for not changing direction too
much and (2) an averaging process. You could add different
kinds of terrain, varying in how easily worn they are
or in how fast one can move across them. (People prefer
to travel on ground they can move faster on.) Does this
converge to a bunch of straight paths directly between
sites, or to something like a Steiner tree, or what?

Politics. People (as in your racial thing) like to be
in a neighbourhood whose politics isn't too different
to their own, but they also discuss politics with their
neighbours, thus either (1) moving closer to agreement,
if their differences are minor, or (2) becoming angrily
entrenched if their differences are larger. Political
opinions vary continuously, not discretely, but this
will tend to produce rather homogeneous clusters with
fairly sharp divisions. Now you can add gerrymandering:
there are electoral districts, and every now and then
the Powers That Be try to make small changes to their
boundaries so as to favour one party somehow. Does this
eventually result in boundaries aligned with the boundaries
between different political opinions, or what? What
happens if individuals with very strong views like to
move to live in marginal districts?

One small wrinkle you should consider in most of these:
try using a hexagonal rather than a square lattice, and
see if it produces more anisotropic results.

-- 
Gareth McCaughan
.sig under construc
From: Patrick May
Subject: Re: Interesting simulation ideas
Date: 
Message-ID: <m2d5xo8wvs.fsf@gulch.intamission.com>
Chris Capel <······@iba.nktech.net> writes:
> There have been a few newbies (including me) programming simulators
> recently, and after doing my rather boring Battleship simulation, I
> was wondering if there's something a bit more interesting out there
> to simulate. Chess has been done. Maybe a more complex card game of
> some sort, like Gin or Bridge?

[ Second attempt to post this, apologies if anyone sees it twice. ]

     Two ideas I've been playing around with are an elevator control
system simulator and a traffic light control system simulator.  In the
elevator control system, for example, the complexity can be adjusted
by modifying the number of floors in the building, the number of
elevators available, and the usage patterns (e.g. peaks at start of
day, end of day, and lunchtime).  The goal would be to minimize both
average and total wait time.

     The traffic light system would be similar, with the additional
criteria of optimizing throughput.

     This project is still in the "hacking around" stage.

Regards,

Patrick