Sunday, March 23, 2014

AIWorld6: Without the ability to be functionally different, there is no predation

Normally the predator species would evolve quite quickly (first 1000 generations) but this world goes to 50,000 generations and we never see it.

The difference is a change I made. It's clear that predation relied on a feature I just removed: When a creature attacks they steal a certain amount of energy from the creature they attack. Normally the amount of energy is a function of how much energy they already have (I was trying to model the idea of being able to eat more because you're bigger). In this world, I made it a constant (20 energy).

In retrospect, I was foolishly doing something I said I wanted to avoid: allowing the agents to be functionally different in any way. I want them to compete on brain power alone.

But it does make me wonder if somehow forcing them to compete on brain power will actually result in a less complex and less advanced world. Luckily, I have a simulator to test such things. :)

First then, I'll try to generate speciation without allowing them to be functionally different in any way; I'm going to modify the terrain. Some places will be harder to move over. Some will have less food. We'll see if that causes it. (The simulation for this is running now)

Monday, March 17, 2014

AIWorld6 GreenVsPurple

AIWorld6: New UI and abilities

New abilities

I fixed a bug that prevented them from using the signal/communication system. So now you'll be seeing a lot more signaling than they did before. As reminder, the way this works is that they can write three floating point numbers to the location they're standing on. Those numbers persist until another agent re-writes them. Any agent nearby can read the numbers from that location.

Also, I gave all the agents memory. Twenty of their outputs are saved and then fed back in as inputs the next turn.

In both cases I haven't figured out if they're using those features. Even if they are saving data to memory and communication, it could be just noise.

The new UI

The new UI shows a lot of things. For starters, I sized the world down to 200x200 and then made the UI map 600x600 so it's easier to see what each individual agent is doing.

I also gave them shapes that represent their decisions. So a 'C' shape is attacking, 'O' is replicating, '+' is growing, 'x' is turning, '^' is moving. I made the growing/turning/moving shapes small and the attacking/replicating shapes big because I want to highlight those less common activities.

The speciation is also dramatically improved. Before I'd parse their brains and then make species judgement from that. Now I just simply give an agent a number, when they replicate their spawn gets that number + or - 1. It turns out most of the time there's so much selection going on, the current generation is only 10 or 20 generations from having a single common ancestor. Thus, the numbers stay quite tight around a species. I then simply map that number to a color to make it easy to see.

This speciation improvement also made parsing species stats a lot easier. You'll notice the system now differentiates and gets statistics on predatory behaviour far easier.