[Uh-user] Beginning work on an AI implementation design

Thomas Kinnen nihathrael at unknown-horizons.org
Sun Nov 15 15:44:32 CET 2009


Hi all,
as some of you know i am currently taking a course on artificial
intelligence at the university, so I am kind of into AI development at
the moment. I started working on a basic design, which will most likely
change very often and drastically in the future to come. I thought I
will share my progress with all of you via the mailing-list.

Feel free to add any comments, I am still learning this stuff, so
chances are high I will be writing some stuff that is not the optimum :)

So here are my first ideas:

= Computer Players in Unknown Horizons =
To allow for a better single-player experience it is important to offer
computer players
that the human player can play with/against. Those computer
players(AI[Artificial Intelligence] in the following)
will have to act as similar as possible as humans playing the game, so
that for the human
player it feels like he would be playing against other human players,
and not versus a
AI. For this it is important that the AI acts upon certain goals, which
are similar to
goals humans set themselves when playing the game.

= Requirements for an AI in Unknown Horizons =
- Has to be able to follow certain goals (settle on island, etc)
- Has to be able to judge goals quality based on the current game state
- Should be able to solve problems (like not enough building space
available)
- Problem solving is done by creating action plans, these consist of a
set of commands that
  the AI has to execute in order to solve the problem.
- Has to be able to execute multiple action plans at the same time (move
ship, build stuff)
- Should be flexible in order to implement different difficulty levels
- Should "feel" like a human player is playing when watching it act (not
10 actions in one turn, etc)
- Possibly have subgoals in one goal
- Problems should be able to depend on other Problems, in order to allow
dependencies.
- Problems have to know if they are already solved for the current context

== Specific technical requirements ==
- Has to work with the game internal tick system
- Should be threaded to make use of multi core processors and to make
sure it does not cause
  the game to lag when calculating it possibilities
- Should use the Command classes to invoke changes on the world,
possible derived classes are needed for special AI use

So long, Thomas



More information about the Uh-user mailing list