Posts

Showing posts from October, 2018

Research AI Techniques in Other Games - Alien Isolation

Alien Isolation is "one of the biggest AI driven titles of modern times" (AI and Games, 2016) that uses a technique called Psychopathic Serendipity which "indicates that the creature is guided by its own procedural intelligence rather than the canned foreknowledge of a game designer: [sic] "   (Keogh and Jayemanne, 2018) this will help the alien to always find a way to disrupt and mess with the player, even the alien cannot see them, to pull this off the alien cannot be scripted and must work off events triggered by the player, such as noise while being guided by the game.  For the creation of Alien Isolation, Creative Assembly used a Two Tier System to control the alien. A Macro AI and a Micro AI. The Macro AI is similar to a director or God-Like entity that is always watching the current situation of the game world and has a constant reference to what is happening with and the current states of the player and the alien.  This means that the Macro AI will al

Research AI Techniques in Other Games - Halo 2

After watching a brief video by AI in Games called " The Behaviour Tree AI of Halo 2 ".  In this video they explain how Bungie made the artificial intelligence (AI) in Halo use the narrative of the game to visual show the player how the AI will react to the character. Using this method the player quickly understands that; Grunts   are small creatures that act in a scared manner. Jackals  are shifty creatures and act as snipers. Elites  are big and aggressive leader type characters Using this the player can quickly understand how the AI will react to certain events in the world, usually caused by the players actions. The AI in Halo is controlled by a Behaviour Tree (BT).  Because of this the AI in Halo reacts on what is happening and will traverse the tree asking "what is happening in the world, and what should I do?" and based on the predefined conditions, the agent will perform the appropriate behaviour. Halo's AI is able to think in context depe

Starting Proposal

This week I will be making a start on my proposal, using the research I have done over the past few weeks and what I have learnt over the past two years of University to formulate the thesis for my final project. I have currently been looking into different AI techniques, such as finite-state machines (FSM), hierarchal finite-state machines (HFSM) and behaviour trees (BT).  Previously I have used a FSM and a BT during my time at University.  I liked how simple and easy it was to implement an FSM however, I would like to make a complicated artificial intelligence (AI) agent with lots of states and actions to make it seem 'smart'.  If I used an FSM or a HFSM this could become very confusing with multiple transitions to states, and as I add more states throughout the course of the project it will soon become very hard to manage it all. For this reason I have decided to research further into BTs.  I aim to create the AI for a stealth based environment to test my knowledge of th

Researching Different AI Techniques - Behaviour Trees

I started reading "Getting Started with Decision Making and Control Systems" by Alex J. Champandard In this chapter Champandard speaks about different support frameworks, such as the schedular which can manage the tasks used in the system calling them one after the other during its update step.  Champandard (2014) then goes on to give a basic scheduler example Class Scheduler { public:           bool run (Task&);           bool halt (Task&);           void update(); protected:           struct Entry           {                  Task* task;                  Status status;                  // Other data for execution            };             std::vector<Entry> m_ActiveTasks; } Champandard then explains about task observers, that can watch other tasks deriving from a virtual base class, these should contain a function that is run once a task has finished executing, this allows the observer to complete actions and tasks as re

Researching Different AI Techniques - Steering Behaviours

Steering behaviours are a way of moving an agent autonomously around the game scene.  Steering behaviours were brought about by Craig Reynolds when he demonstrated his flocking behaviour, which was based on a simple set of rules.  A definition for an autonomous agent given by (Buckland, 2005, p85) "An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future." To get a better understanding of how an autonomous agent works (Reynolds, 1999) explains that you can divide the behaviours into several layers, these layers are; Action Selection Strategy Goals Planning Steering Path determination Locomotion  Animation Articulation There are different steering behaviours that cause an agent to act in different ways.  The first behaviour I will explain is the seek behaviour. The seek steering behaviour guides the

Researching Different AI Techniques - Hierarchical Finite-State Machine

Image
While researching into Finite-State Machines (FSMs) I came across a Hierarchical Finite-State Machine (HFSM).  (Buckland, 2005) explains them as "a state itself contain a state machine.".  This means if an agent has a combat state, that state might contain an FSM that manages the states needed for combat, such as dodge and shoot. A HFSM is similar to a FSM where the logic is built up state by state, however, in an HFSM states are grouped together to create a super state.  This allows the programmer to make transitions between the super states, rather than applying them to each individual state.  This reduces redundant transitions as they are only applied once to the super state. HFSMs make use of inheritance, this allows each substate of a super state to override specific behaviours, this allows internal transitions that are not recognised by the super state.  However, HFSMs still have issues with transitions between states which can become tedious.   Reference List