Saturday, 27 October 2012

Fuzzy Inference, Decision Trees and the ART Network

I managed to schedule a meeting with Dr David King last Thursday, as a published researcher on the implementation of Neural Networks and Fuzzy Inference Systems, his advice was invaluable in consolidating my own research question.

We started by scaling back my research question, to the key thing that drives it - which I identified as wanting to make NPC's less predictable, this allowed Dr King to be on the same page as me going forward with my proposal.

Dr King also suggested that I could my project more scalable by comparing a number of techniques of increasing difficulty, this means should I fail to implement my desired endpoint. I can scale back my question and still have something completed to write about.

With that in mind Dr King suggested a number of techniques of varying difficulty as well as a few texts to look into to research these techniques and others alongside. A few in particular have caught my interest:


  • Fuzzy Inference Systems - Though not a massive technical leap, Fuzzy Inference Systems provide a very quick to implement way of producing unpredictability particularly if you treat the continuous output as probability. So rather than being 90% State A, 10% State B it would be State A 9 times out of 10 and State B 1 time out of 10. Of course states are hard typed so it any expansion on an existing system would require additional code on each of these fuzzy inference systems.
  • Adaptive Resonance Theory Neural Networks - ART Networks are a really interesting expansion on the traditional ANN, Artificial Neural Networks suffer from the problem that once trained a neural network can't have complimentary training, you must start from scratch. An ART Network manages to get around this issue however Dr King suggests that he has yet to see a working implementation of it.
This meeting has certainly generated many useful leads and I hope I get the chance to discuss my findings with Dr King again.

Friday, 12 October 2012

First Honours Seminar

I attended my first Honours project seminar this week, the goal being to refine my project Aim's, Objectives and Research Question.  So with some slight anxiety about sharing my thoughts with my peers for the first time I came in with some quick notes on my idea. As shown below, the gist of it is a desire to research the area of NPC behaviour, in particular looking at how possible it is to make NPCs procedurally react to events in game. From the research I've done so far it looks using Neural Networks to classify the event and interpret the reaction (i.e. is the event positive or negative, or good for one faction, bad for another) then pass the outcome into the three tier Finite State Machine I've spoken about in earlier blog posts for actual actions.

Being slightly unordered about my thoughts at this stage I did the last step first and had prepared a sort of research question for going in: "Are evolutionary artificial neural networks, combined with a 3 layer Finite State Machine, an efficient and effective method of producing realistic and procedural responses to random events within non-playable characters?"

At this stage I'm certainly not set on evolutionary artificial neural networks and this may well be reined in when I start to look at the scope of the project.

In the process of the seminar I developed this into an aim and set of objectives.

Aim: To discover if Evolutionary Artificial Neural Networks are an efficient component in creating more intelligent reactive NPCs.

Objectives:
  1. (Learning) To research the efficiency of EANNs in real-time NPC behaviour classification.
  2. (Doing) To test the real-time efficiency of the research method.
  3. (Analysis) To assess whether this algorithm produces more intelligent and reactive NPCs.


Finally, someone in my seminar group came up with a rather catchy name for the project: "Enhancement of real-time NPC Behaviour Algorithms."


Tuesday, 9 October 2012

Multi-layer Finite State Machines

So I was chatting to a friend in White Space today about my Honours project, a very vague and confusing topic to begin with, however I described as wanting to look at the evolution of behaviour in NPCs in response to new and untrained situations.

Anyway, my friend Russell - described his theory of a strong NPC behaviour routine as taking the form of a three layer finite state machine, as part of comprehending his approach I labelled these layers like this.

  • Objective Layer
    This state machine holds ultimately what you're trying to achieve, for example "Get up and go to work"
  • Step Layer
    This next level of abstraction looks at the steps necessary to complete the Objective Layer, for example "Get Dressed" and "Leave House".
  • Action Layer
    The final layer deals with the individual actions required to achieve the next step, for example "Get out of bed", "Walk to wardrobe", "Drive to work"

I have to admit that I really like the robust nature of this system and feel it could work quite well with what I intend to do, in combination with other AI procedures to produce a classification of unique experiences or so.

Monday, 8 October 2012

The Introduction

I've never been good at Introductions but here goes, my name is Brian Beacom and I'm currently a final year Student at the University of Abertay Dundee. My degree programme is BSc(Hons) Computer Games Technology and for my final year I am required to produce a piece of independent research on Games Technology.

That is what this blog is for - recording my thoughts, processes and notes during the course of my final year - there are a few stages to this project so during semester one you should expect the blog to contain mostly research notes and thoughts on my project topic. Semester two will primarily focus on implementation of an application, of some sort, in order to test my theories and develop some results to discuss in my final dissertation.

Finally, I'd like to note straight away that this project is my own, original work however by arrangement with the University of Abertay Dundee the final dissertation only may be reproduced, stored or transmitted in any form and by any means without my written consent and would request that all derivatives and references are attributed appropriately.