Here is a copy of the final draft of my proposal:
Introduction:
“Artificial systems which exhibit lifelike behaviors are worthy of investigation on their own rights, whether or not we think that the processes that they mimic have played a role in the development or mechanics of life as we know it to be. Such systems can help us expand our understanding of life as it could be. By allowing us to view the life that has evolved here on Earth in the larger context of possible life, we may begin to derive a truly general theoretical biology capable of making universal statements about life wherever it may be found and whatever it may be made of”. Langton, 1989
As today’s games industry pushes more and more towards realism and immersion within their games, the need for believable AI systems is greater than ever before. Recent advances in gaming hardware – separate GPUs and more powerful processors- allow for games to be rendered in full high definition quality and still have processing power to spare. Before these more powerful machines were commercially available AI was almost always added at the end of the development process and had to use the minimum computational resources. Now that the technology is avaialable, developers are able to include more complex AI techniques which increase the realism of any virtual scene (Bourg & Seemann, 2004). Even the immersion created by the most beautifully detailed scenery can be shattered by predictable or un-realistic AI.
This project aims to explore the possibilities of AI systems for use enhancing virtual worlds for computer games.
Motivation:
One feature of a good computer game is immersion; the drawing of the user into the game world. This immersion can be increased by believable graphics, captivating subject matter and compelling stories. Immersion is when a user playing a game becomes unaware that he is a user playing a game and becomes enthralled solely in the action. Poorly coded AI which exhibits simple or predictable behavior reminds the user that he is playing a game and reduces the immersion which reduces the enjoyment of the game.
Until recently it has not been possible to produce commercial games which contain both modern high quality graphics and complex AI systems due to the hardware restrictions of most home gaming systems. Recent advances in technology have allowed home gaming systems to be manufactured with the capability to render high definition graphics with processing time to spare. Now that these capabilities are available, there is a new area of games development where complex AI systems will be able to help build immersion in a game by displaying believable behavior.
The development of AI systems for games also provides development for AI systems that could be used across all fields of creating intelligent computers. The project goal is to create an Artificially intelligent system that can replicate lifelike wildlife behavior in a simulation. This AI system will pave the way for a whole new side to gaming, where a players character can grow alongside the world around him. Allowing for systems where the game becomes harder as the enemies you face evolve and become stronger in wholly un-predictable ways while you play.
Research Topic:
The first thing that must be established is a definition for the intelligence we are trying to mimic. Princeton define intelligence as "the ability to comprehend; to understand and profit from experience". So to be intelligent, any AI system must be able to evaluate its situation and using its past experience make an "informed" desision on its next action. Storing all the data required for every creature of the system to have a worth-while set of memories would be costly and could become un-managable.
However with AI systems in games the dictionary definition of "intelligence" is not the aim. The aim is to create the appearance of intelligence. This system requires the ability to make decisions in a way that appears to be realistic; in a way that mimics the intelligence we see in the world around us. Fuzzy techniques provide a much more varied set of results than if-then statements from the same simple inputs, and require less implementation than coding each if-then statement individually. The varied nature of the results produced by fuzzy logic processes mimics the randomness found in nature.
This branch of AI is also known as A-Life (artificial-life) and is focussed on creating algorithms and programs that aim to recreate the behavior seen in nature. A-life came about in 1987 when professor C. Langton called other scientists who shared his curiousity about A-life to a workshop, during the workshop the learned that linear systems are incapable of modelling the complex interactions of nature but non-linear models were needed. It became increasingly clear, that linear models simply could not describe natural phenomena.
Research question:
The research question, regarding this research topic, could be summarized thus:
Can a virtual world populated by varied, artificially intelligent, virtual creatures be simulated in real-time and display believable, life-like behavior?
The project results should show the merits and downfalls of different AI techniques when creating realistic wildlife behavior.
Project Methodology:
Research will be done into different AI techniques which could be used in the project. Research will also be conducted into past AI and A-life projects which have been undertaken. According to the research conducted so far fuzzy cognitive maps and flocking systems both could be used together to simulate natural life, further research will identify other techniques which could be added to improve the final system.
To test my hypothesis I will need to implement this AI system and observe its operation, noting factors such as populations and the generations of different species. Also the virtual creatures should behave in a pseudo-random manner; their behavior should not be predictable. If truly un-predictable behavior is achieved we should see varied results between tests, the more variation, the more un-predictable the system.
The decisions of the creatures will be evaluated using fuzzy cognitive maps to provide a realistic pseudo-random pattern of behavior. The fuzzy system will consider the situation of each individual within the simulation and make the appropriate decision based on the individuals motives and environment. Flocking systems will be used to gracefully group similar creatures together, if it is indeed in their nature to travel together.The creatures will need to reproduce, and the ultimate goal of the project would be to simulate sexual-selection to drive evolution. This coupled with an element of hereditary attribute passing should provide a basic model of evolution. To achieve this there has to be some scale of how attractive each potential mate is relative to how strong his genes are.
The implementation will be a two dimensional world rendered using openGL. The creatures will be displayed as simple primitives and text output will be used to monitor appropriate system variables. The world will include deposits of food and water which creatures will need to consume to survive, these will be regenerated periodically. These will be simply displayed as areas of green and blue respectively.
Gantt Chart:
Week:
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Creating 2D world
|
|
|
|
|
|
|
|
|
|
|
|
|
Basic creature class
|
|
|
|
|
|
|
|
|
|
|
|
|
Fuzzy logic system
|
|
|
|
|
|
|
|
|
|
|
|
|
Flocking algorithms
|
|
|
|
|
|
|
|
|
|
|
|
|
Different creatures
|
|
|
|
|
|
|
|
|
|
|
|
|
Genetics system
|
|
|
|
|
|
|
|
|
|
|
|
|
Testing
|
|
|
|
|
|
|
|
|
|
|
|
|
Optimisation
|
|
|
|
|
|
|
|
|
|
|
|
|
There is more than twelve weeks available for the project, however in anticipation of un-forseen setbacks this schedule leaves room for extra work that may be required during implementation.
Project Evaluation:
The project will be focused on the decisions made by the program and how quickly they can be made. The project will not employ high detail graphics or physics systems as these would reduce available resources and slow down the program. For this reason the graphics used will be simple and the whole scene will be two dimensional. To evaluate the project, statistics from testing the program will be analysed with regard to creature populations and the speed at which the program can run. The speed at which the program runs will be measured in frames per second.
Issues:
During the course of this project, there are potential problems which could arise. If they can be identified early it will make them easier to overcome or avoid altogether.
Using any combination of AI techniques which will use fuzzy logic means that the system will produce random results. Whilst this is the goal of the project, it means that the process of debugging during development becomes difficult as the results could be difficult to predict. This could make finding potential problems in the code much more difficult than when working with linear systems.
The two dimensional simulation may not be able to display enough detail to fully represent the interactions taking place, care will need to be taken to log all the necessary data during run time to fully understand the simulation. With enough data about the factors input into the fuzzy system it will be possible to check effectively if the program is operating correctly.
Resource Requirements:
The project will require the use of a modern computer with a software development environment i.e. Microsoft visual studio. The code will be written in C++ and OpenGL will be used to render the graphics. Access to the internet and appropriate library items will be needed for research.
References and Bibliography:
References:
Bourg & Seemann (2004) AI for game developers [online]
[accessed November 2010]
C. Langton (1989) Artificial life: The proceedings of an Interdisciplinary Workshop on the Synthesis and Simulation of Living Systems, held September, 1987, in Los Alamos, New Mexico: Addison-Wesley Pub. Co
Bibliography:
Van Der Vaart & Verbrugge ( n.d. ) Agent-based Models for Animal Cognition:
Pfeifer R et al. (2001). Artificial Life. Institute for information technology, University of Zurich. Chapter 1. [online] Available at < http://www.ifi.unizh.ch/ailab/teaching/AL01/chap1.doc > [Accessed December 2010]
Carvalho & Tome (n.d.) Rule Based Fuzzy Cognitive Maps: Fuzzy Causal Relations [online] Available at < http://digitais.ist.utl.pt/uke/papers/cimca99rbfcm.pdf >[accessed January 2011]
B. Kosko (1994). Fuzzy thinking : Flamingo