Friday 6 July 2012

Programming Games

I was reminded the other day about the old programming games that I was only vaguely aware of when I was in my teens: RobotWar, Code War etc. I just had a look around and most of these seem to have disappeared; only a handful are still active/remain and many of those are very old now. Most are some sort of very constrained adversarial game - the most open ended active one seems to be Imperfect World of Robots (IWOR) which is still incredibly constrained for testing general AIs. What would be best is something like the Matrix for testing bots.

Taking an aside for a second, consider what happens to children who grow up in the wild without contact with other humans (feral children). There have only been a few cases and documentation is notoriously bad but none of them turn out like the Jungle Book. Feral children seem to act pretty much the same as humans did before the stone age - almost no social skills, unable to learn language, etc. My point is that their brains at birth are entirely capable of doing all of these things but due to a lack of socialisation in a culture that we would consider even rudimentary, they fail to develop these skills. So if we manage to create a general AI as powerful as the human mind but fail to provide it with a cultured, social environment to develop in, it will end up an incoherent idiot.

But there are two problems:

  • Where do the "original" (first generation) parents come from?
  • A full 3D world with all the complex interactions of the real world would require processing power far too great for our initial algorithms... and how would we work out whether it is working anyway?
Ideally we would also like to run the simulated world faster than real time which means that the world needs to be simple but not too simple otherwise it won't be rich enough to generate "intelligent" behaviour. So what do we need?

I would suggest that a 2D world (think flatland) where the bots receive stereoscopic 1D visual information, have pressure/touch sensors, rudimentary hearing, etc (essentially all the human senses but scaled down a lot). That still leaves us the problem of the parents, however; in order to do something here, I would suggest that a load of scripted AIs be generated using a crowd-sourcing approach to play the part of parents and the rest of society. In other words, we need to create an entire flatland world and society... what I like to call the Flatrix.

So here's the plan:
  1. Determine the physics of the world.
  2. Design the physical characteristics and detailed sense information for the inhabitants.
  3. Define the way that we want society to work (languages, trade, governance, etc).
  4. Identify a scoring system to identify the best parent scripts/programmes.
  5. Define the interface for competitors (a protocol on top of TCP... or maybe even UDP)
  6. Create several of our own bots to start to populate the world.
  7. Open the competition, preferably with a website with a nice UI.
I would suggest two types of entry: free and $10. The $10 entry money will go into a central pot and at the end of the competition, will be split between, say, the top three entries. The free entries will not be eligible for any prize money.

Next time: Flatrix Physics Design

No comments:

Post a Comment