Tuesday, 25 November 2008

Introduction PP

Well it's getting near the end of term now so I've started on my project proposal, what I've done so far is the introduction but I'm still not quite sure what is supposed to be in it so it's possible some of it may have to be moved out into the abstract.

  • Introduction

· AI is becoming more important in games development

The games industry used to be primarily focused with showing off new graphics techniques as soon as they were available and as such much of the development cycle was given to the area of a games graphics. However now the Artificial Intelligence (AI) of a game is becoming of more increasing importance as developers and publishers alike realise that game AI, like high end graphics, has the ability to make games seem more realistic and therefore increase its playability (Nareyek 2004) therefore giving a title a unique selling point.

· Evolutionary AI helps to increase enjoyment in a game

Part of AI that is widely overlooked as a means of judging efficient game AI (Rabin 2004) is evolutionary AI, which is the ability of AI to evolve to a higher standard based upon the strongest elements of its previous implementation. Large online communities surrounding a game are becoming more and more common place as more games implement multiplayer capabilities which allow players to play against opponents from anywhere in the world, this places extra demand on developers to develop AI that is of the highest standard so that players are still challenged by opponents that they have faced multiple times, to keep up with the ability of games to offer unique opponents with every game. There are a lot of different methods for implementing learning into AI, however some techniques fail to meet the necessary requirements to be implemented into a commercial computer game and therefore learning AI is treated with a cautious scepticism by developers (Manslow 2002). This is very unbeneficial as evolutionary AI has the ability to be implemented into most genres of computer games and is therefore an area that should be tackled at the highest levels of academia and professional development is resolving the issues that prevent its implementation into commercial games.

  • Talk about dynamic scripting

Dynamic scripting is a relatively new method for learning AI that was introduced to be an effective form of reinforced learning for commercial computer games and meets the requirements that currently other forms of learning AI fails too (Spronck and Kuyper and Postma 2004). Dynamic scripting works by using domain knowledge from a rules base, which is populated with predefined rules, and selects rules based upon a weights values and inserts them into the scripts which control AI behaviour. The weights of the rules are calculated based upon a particular rules performance in its last implementation against the human player and the weights are increased or decreased depending upon the success or failure which leads to rules with higher weight values being more likely to be selected (Spronck and Kuyper and Postma 2004).

  • Research Question

“Is Dynamic Scripting an effective method of online learning for game AI in RTS games?”

  • RTS games use tactics that need to be able to adapt to how the player is playing the game

The reason for testing the implementation of dynamic scripting into real time strategy (RTS) games is, since RTS simulations require players to be able to replay scenarios, this is a term used to describe a RTS match, which are the same in principle, access to the same buildings and troops, but require players to adapt their tactics based upon opponents behaviour, the size of map being played on and the amount of resources available. Therefore for a commercial game to remain challenging and entertaining to a player it is necessary for the computer controlled opponents to adapt to human players tactics, as the common practice for most game players is once they have a tactic that leads to victory they will rarely change it, until it is no longer an effective method of attaining victory.

  • Proposal Structure

The proposal structure is still empty because I'm aranging a meeting to see my project supivisor, Dr Ellision, to disscuss whats soposed to be in the proposal, but I'm also going to try taking to Dr Fortuna as well since he has had more experiance marking project proposals.

Will update again after talking to my supivisor,

Later

Stuart

Sunday, 16 November 2008

RQ Presentation

Well this week we had a ethic lecture in space of our usual dissertation one, fortunately I think mines should fly past no problem because I don't plan on involving anyone with my project, i.e in the form of a questionnaire or testers, and there are no ethical concerns I can think of with computer AI.

I also had a meeting with Dr Dave Ellison last week about my topic as he is my new technical supervisor and he seems fine with my topic as well, basically saying the same as Dr King when I meet with him a few times.

Mostly this week apart from reading Dr Pieter Spronck's Phdis, which is a highly insitful document into game AI and the dynamic scripting technique, I have also been getting ready for the RQ presentations we have to give tommorow. Mines in the afternoon so hopefully going to get another practice session in in the morning (already had one with Stu, Joe, Dave anf Jimmy last week) and I'm looking forward to hearing other lectures views on my topic.

Stuart "Tsoski" Robb

Tuesday, 11 November 2008

Worksheet 4

This is a copy of the final worksheet for the planning module for my honours dissertation project.

Introduction

The aim of this project is too look at dynamic scripting and try to determine what would be the most suitable method of implementation for use in a commercial real time strategy game. Dynamic scripting can be used in games were the artificial intelligence is defined in scripts, or rules, which are executed sequentially. What dynamic scripting does to this method of AI implementation is, it applies a weight value to each of the scripts, or rules, which can be updated so that rules with higher weight values, which are considered to be more successful than those with lower values, are more likely to be selected for use by the game AI. For instance the project will look at offline learning, which is dynamic scripting which calculates the new weight values for the rules after a game has been completed rather than during the game. As well as the underlying method for the learning algorithms for the AI for example, natural networks, genetic algorithms and evolutionary learning and try to determine the most suitable method of AI judged against factors that are important to commercial game developers.

Issues

The issues that this project is going to address are why dynamic scripting is not already implemented in commercial games and the reasons why it is more preferable to the current AI algorithms already being used; including the issue that using dynamic scripting can lead to inferior AI especially if the player deliberately misleads the AI. This problem was looked at and a method of history fallback, were the weights associated with specific rules are reverted to a previous score when the AI tarts to produce less than desirable results, however the results of this method didn’t produce any significant advantage and therefore requires more optimisation. The method of automatic rule ordering for dynamic scripting has been shown to be just as effective as manual tuning rules (Spronck et al 2007) therefore automatic rule ordering combined with a means of history fall back could help prevent undesirable AI behaviour.

Research Question

"Is Dynamic Scripting a suitable method for AI decision making in a real-time strategy game?"

Addressing The Question


To address the question and to show significant results I will be using an open source game called “Wargus” which is a clone of the popular “Blizzard” real time strategy game “Warcraft 2” and I will try some different multiple implementations of dynamic scripting with a different underlying algorithm for the AI of the opponent in the game. Then using a serious of tests in which the game will be played by two AI controlled players one using the original implementation of the game AI and the other controlled by one of the different implementations of dynamic scripting I should be able to show which of the implementations would be best used in a commercial game using a few of that factors that are important to games developers i.e. Fast, Effective, Robust and Efficient (Spronck, Sprinkhuizen-Kuyper & Postma 2004)

Progress


So far the progress that has been made for the project is the selection of a suitable arena for the testing of dynamic scripting, i.e. “Wargus” which is an open-source clone of Warcraft 2 and I have acquired a “lua” editor, lua being the scripting language used by the engine which is the foundation of “Wargus”. I have also started to read tutorials on “lua” and I am starting to become familiar with its implementation and will then start to try editing the “Wargus” AI with some simple example to begin with. I have also read numerous articles and journals, most co written by Pieter Spronck who first suggested the idea of dynamic scripting, which discuss the issues associated with dynamic scripting and met with Dr King, a lecture at the university, twice to discuss my project and have arranged to meet my new project supervisor so that I can have his opinion on my topic as well.

Friday, 7 November 2008

Worksheet 3

Here is a copy of the worksheet 3 which is a draft copy of my project proposal.

Introduction

The aim of this project is too look at dynamic scripting and try to determine what would be the most suitable method of implementation for use in a commercial real time strategy game. For instance the project will look at offline learning, as well as reinforced learning, evolutionary algorithms and natural networks and try to determine the most suitable combination judged against factors that are important to commercial game developers.

Motivation

For most games, challenging gameplay is equivalent to having high-quality game AI (Laird 2000). Therefore commercial game developers are trying to make sure that there games are using high end AI, and dynamic scripting is an effective method to improve game AI. I think that it’s also important to have a strong AI opponent in games as a human opponent might not always be available and the current level of AI in games is too easy and static so it becomes less challenging and boring over time. Currently the research that has been done into applying dynamic scripting in games has looked at improving the implementation of dynamic scripting (Spronck, Sprinkhuizen-Kuyper & Postma 2004) and the research has already decided upon using an offline form of evolutionary learning, where as I think it may be possible to try using online learning with different forms of adaptive AI to improve the underlying game AI.


Research Question

"Is Dynamic Scripting a suitable method for AI decision making in a real-time strategy game?"


Addressing The Question

To address the question and to show significant results I will be using an open source game called “Wargus” which is a clone of the popular “Blizzard” real time strategy game “Warcraft 2” and I will try some different multiple implementations of dynamic scripting with a different underlying algorithm for the AI of the opponent in the game. Then using a serious of tests in which the game will be played by two AI controlled players one using the original implementation of the game AI and the other controlled by one of the different implementations of dynamic scripting I should be able to show which of the implementations would be best used in a commercial game using a few of that factors that are important to games developers i.e. Fast, Effective, Robust and Efficient (Spronck, Sprinkhuizen-Kuyper & Postma 2004)


Resource Requirements

For the project I am going to use an open source game called “Wargus” which has as its underlying game engine “Stratagus” which is an open source real time strategy engine, and I will be editing the scripts for the AI in “Wargus” which are writing in the scripting language “Lua”. To do this all I will require is a computer with “Wargus” installed and a Lua editor.


References And Bibliography

Bourg, D.M. and Seemann, G. 2004. AI for Game Developers. [online] Available from: http://proquest.safaribooksonline.com/0596005555 [Accessed 07 October 2008]


Ponsen, M.J.V. and Muñoz-Avila, H. And Spronck, P. And Aha, D.W. 2005. Automatically Aquiring Domain Knowledgw For Adaptive Game AI Using Evolutionary Learning. USA: American Association for Artificial Intelligence.


Ponsen, M and Spronck, P. 2004. Improving Adaptive Game AI with Evolutionary Learning. In: University of Wolverhampton.


Rabin, S (ed). 2004. AI Game Programming Wisdom 2. Massachusetts: Charles River Media, Inc.


Spronck, P. and Sprinkhuizen-Kuyper, I. and Postma, E. 2004. Enhancing the Performance of Dynamic Scripting in Computer Games. The Netherlands: Universiteit Maastricht, Institute for Knowledge and Agent Technology.