Introducing gender to the population didn't quite produce the results I wanted. Introducing gender should have produced different results depending on how quickly I did it. Ideally introducing gender suddenly should have resulted in the population dying and introducing gender slowly should have resulted in the population surviving. That way, I could be sure that gender had a big enough impact to cause the population to have to change their behaviour.
Unfortunately, the population survived in both cases. Now I have to look for other indicators of behaviour change. I'll be going back to check whether the rate of same gender mating attempts changed over time. In addition, I'll have to introduce different colours to the genders to help the robots identify genders. I'll have to be careful choosing colours, pink for females seems obvious but wrong.
This brings up new problems, what happens if robots aren't facing each other? The suggestion I was given was to imagine the robots identified gender based on scent. So when robots are near each other they can tell whether another robot is male or female if they are close enough to each other. This kind of goes against a few ideas I've had. Firstly, you shouldn't have to interpret things for the robots and this feels like some kind of interpretation is going on. Secondly, I can't fit this neatly into my idea of basing on how humans evolved. At the same time I'm going to give it a go, it won't take long to program (famous last words) and it'll provide more information about what's happening in the background.
The other thing I've been thinking about and it relates to the problem of robots facing each other is encouraging intentional behaviour. At the moment, if two robots are next to each other and happen to think about mating at the same time for a split second, they reproduce. It's like if you're sitting next to someone and if you both happen to think about sex you end up with a baby. My idea is that they have to do something that takes a prolonged effort. For example, they have to face each other for 5 seconds and in that time, both agree to reproduce. The same with food. That way, if they choose to reproduce they have to face another robot for a period of time and activate their pseudo mating mechanisms for a sufficient period of time and intensity.
Arms, Legs, and Maturation
At the same time I want to introduce the maturation condition, which makes younger robots depend on the help of older robots to survive. At the same, same time I want to introduce the arms and legs that I've been going on about for months now. Yeah, I should get to work, but writing this helps clarifies my thoughts.
The thing that would be useful to work on is the ability to introduce new neural network inputs and outputs on the fly. That's something that's useful for all three of my programming tasks. Once I have that feature, the task of implementing arms and legs becomes a lot smaller since I've done most of the physics programming.
This time, I've learned my lesson. Instead of modifying the neural network code, I'll make version two. It's weird, it's been so long since I've touched the neural network code that I don't know how the network gets set up. I suspect I'll find the physics code for arms and legs unfamiliar as well. Oh yeah, I want to do my game programming as well.