Skip to content

Implementation Details

gnitr edited this page Nov 26, 2017 · 8 revisions

Architecture

The architecture will be open and modular. Contributors will be able to take control remotely and in real-time of the mind of one or more bots by using the web api.

There will be a very crude web visualisation of a world and the bots so anyone can have an overview of the activity. More advanced and fancy visualisations can be contributed later by using the web api.

Main components:

  • World Engine: execute all actions from the bots, update the world and keep it coherent
  • Non-living object logic (extensible): e.g. tree, a chair, and how they interract with bots and other objects
  • Living objects: i.e. bots
  • Web API for the bots to communicate with the world and its objects
  • Bot Mind: a piece of code that remotely controls a bot via the Web API
  • Visualisation (e.g. a 2D map of the world in a web page), via Web API

Having the Bot Mind implemented on the client side makes the system open to external contributors. It is also a strategy to prevent the AI implementation from knowing and using internal state of the world. The API will only expose what a bot can observe from it's position in the world.

The World Engine uses a database to store, retrieve and update the World and thing states. There will be different backends: mongodb, pymemdb (in-memory collection of python objects), apidb (a proxy used by python clients to interact with the world, will be used by the remote bot minds).

Other ideas

  • support for individual memorisation of events
  • possibility to transport and trade items
  • bots can alter the world
  • bots can create new things
  • bots can communicate (using emergent language expressed in ascii strings)
  • improve the rendering of the world with nicer 3D models
  • bots have physical and inherited attributes such as maximum height, max strength or facial traits (for aesthetic purpose and help with relatedness, uniqueness, identification of bots)
  • ...

Questions

  • human genome and brain doesn't contain memories; but the bot genome could potentially be a complete snapshot of a mind; should it be avoided, if so how, if not what are the implications?
  • can bot evolution really emerge from the genetic transmission and survival?
  • how does the bot mind update itself during its life if there are no predefined feedback or reward system from the world? Everything is neutral; can the bots build their reward system from it?
  • could we create a self-modifying mind? if so, how much can be changed and how can it be changed?
  • ...