Evolutionary Computation:
. . . Evolutionary Computation (EC) is a subfield of artificial intelligence (AI) and the EC technique used in software programming can allow Non-Player Characters (NPCs or Agents) to perform continuous adaptive self-learning. Within a software simulation, rules and scoring are programmed and a population of game-playing NPCs/agents are assigned initial values equating to physical and decision making parameters, such as top speed, rate of turning, when to fire, when to stop, etc. These individual agents are evolved through the use of Darwinian concepts of Natural Selection and survival of the fittest such that only the best performers survive on to the next generation of individuals (agents) which will be mutated from the surviving parents. Evolution continues by competing the population of individuals against each other as those with the highest scores become parents to the next generation, which are created with slight mutations, just as in nature. Evolution can be scaled as needed to be performed on one computer or using several as a system of a distributed computing network (including mobile), each saving and reporting the best evolved population to a central database and evolving for from several milliseconds, days, weeks, months or continuously 24/7.
Tim Hays worked on many projects over the last ten years that used various combinations of Evolutionary Computation along with other artificial intelligence techniques such as artificial Object Neural Networks. Some projects are covered under non-disclosure. However, public papers can be discovered by reading through the Natural Selection publication library.