COIT23003 Games Development 8. Elaboration: Behaviour.

Slides:



Advertisements
Similar presentations
Chapter 09 AI techniques in different game genres (Puzzle/Card/Shooting)
Advertisements

Turing Machines January 2003 Part 2:. 2 TM Recap We have seen how an abstract TM can be built to implement any computable algorithm TM has components:
7.1. O SCARS & A RTIFICIAL I NTELLIGENCE Interim awards and introduction to game AI.
Intelligent Agents Russell and Norvig: 2
2 We need programming languages to communicate with a computer. The two broad classifications of programming languages are: Low-level and High- level.
CPSC 322 Introduction to Artificial Intelligence October 29, 2004.
MSc. Publishing on WWW JavaScript. What is JavaScript? A scripting language devised by Netscape Adds functionality to web pages by: Embedding code into.
RED DEAD REVOLVER Artificial Intelligence Critique By Mitchell C. Dodes CIS 588.
CS 330 Programming Languages 09 / 07 / 2006 Instructor: Michael Eckmann.
SCRIPTING LANGUAGE. The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these,
Cmpt-225 Simulation. Application: Simulation Simulation  A technique for modeling the behavior of both natural and human-made systems  Goal Generate.
1 1 CMSCB3004 Systems, Cybernetics and Management Hard Systems Thinking.
Programming Concepts and Languages Chapter 12 – Computers: Understanding Technology, 3 rd edition 1November
CORE MECHANICS. WHAT ARE CORE MECHANICS? Core mechanics are the heart of a game; they generate the gameplay and implement the rules. Formal definition:
Games Development 2 Entity / Architecture Review CO3301 Week
COIT23003 Games Development 7. Elaboration: Design by Genre.
© HVR Consulting Services Ltd AI for OOTW Representing Plausible Behaviour in OOTW Simulators.
By: Felegh Solomon ITEC SPRING 2013 CHAPTER 4: KEY CONSTRUCTION DECISIONS.
There are only 10 types of people in the world, those who understand binary and those who don't.
Artificial Intelligence in Game Design Problems and Goals.
Game AI Fundamentals. What is Artificial Intelligence (AI)? Not easy to answer… “Ability of a computer or other machine to perform those activities that.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Introduction GAM 376 Robin Burke Winter Outline Introductions Syllabus.
ZOMBIE MADNESS! Jack Smith Steve Mander-Jones OUTLINE > GAME OVERVIEW > IMPLEMENTATION > AI FEATURES > CONCLUSION.
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Mr C Johnston ICT Teacher BTEC IT Unit 06 - Lesson 01 Introduction to Computer Programming.
Fundamentals of Game Design, 2 nd Edition by Ernest Adams Chapter 10: Core Mechanics.
COIT23003 Games Development 3. Elaboration: Pre-visualisation.
1 3. Computing System Fundamentals 3.1 Language Translators.
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
CHAPTER 10: CORE MECHANICS Definitions and Mechanisms.
Machine Learning for an Artificial Intelligence Playing Tic-Tac-Toe Computer Systems Lab 2005 By Rachel Miller.
Application of AI techniques for Computer Games BSc Computer Games Programming, 2006 Julien Delezenne GAMES ARTIFICIAL INTELLIGENCE.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Neural Networks and Machine Learning Applications CSC 563 Prof. Mohamed Batouche Computer Science Department CCIS – King Saud University Riyadh, Saudi.
1 CS145 Lecture 24 What’s next?. 2  What questions does Computer Science study?  Where is programming and Computer Science headed? –With special emphasis.
Chapter 6: Repetition Continued. 2 Validity Checks What’s weak about the following code ? do { s1 = JOptionPane.showInputDialog (“Enter a number: ”);
Dr Nick Mitchell (Room CM 224)
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
A Brief History of AI Fall 2013 COMP3710 Artificial Intelligence Computing Science Thompson Rivers University.
Designing Design Tools. What is design tools? Why do we need them?
Abstract BPEL Candidate Use Case: Modeling for Business Understanding Wednesday, May 23, 2004 Disclaimer: These are the views of Phil Rossomando and not.
Finite State Machines Logical and Artificial Intelligence in Games Lecture 3a.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Advanced AI – Session 6 Genetic Algorithm By: H.Nematzadeh.
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
The Game Development Process: Artificial Intelligence.
COIT23003 Games Development 6. Elaboration: Entities.
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
Chapter 14 Part 1: Core Game Mechanics By Nolan Driessen.
Java Programming: From the Ground Up
Introduction to Algorithms
Collision Theory and Logic
Decision Making: Decision Tree & State Machines Session 07
Collision Theory and Logic
Event driven architectures
C ODEBREAKER Class discussion.
Developing Applications
CO Games Development 2 Week 19 Extensions to Finite State Machines
Algorithms Chapter 3 With Question/Answer Animations
Interaction with artificial intelligence in games
Unit 6 part 3 Test Javascript Test.
Programming Language Basics
Introduction to Algorithms
Chapter 14 Part 1: Core Game Mechanics By Nolan Driessen
COMP3710 Artificial Intelligence Thompson Rivers University
Programming Languages, Preliminaries, History & Evolution
Games Development 2 Entity / Architecture Review
Presentation transcript:

COIT23003 Games Development 8. Elaboration: Behaviour

References Meigs, T., Ultimate Game Design: Building Game Worlds, McGraw Hill. Fairclough, C. et al, Research Directions for AI in Computer Games ResearchDirectionsForGameAI.pdf Fairclough, C. et al, Research Directions for AI in Computer Games ResearchDirectionsForGameAI.pdf McGugan, W., Beginning Game Development with Python and Pygame: From Novice to Professional. Apress.

Behaviour Entity behaviour is critical for providing an interesting/realistic/challenging gaming experience Two major approaches: – Scripting – Artificial Intelligence (AI)

Scripted Behaviour Entity behaviours are predefined and hard coded, (ie scripted) eg If (monster.canSeePlayer) Monster.attack(); Else if (monster.canSeeWeapon() … Not to be confused with scripting languages

Scripting Languages Scripting languages are languages that are – (Perceived to be) simpler to use (eg JavaScript, Python, Lua, …) than “real” languages (C++, Java, etc) and/or – Used to control applications (eg DOS Batch Language, Visual Basic) or libraries (eg Python) Games development typically employs scripting languages because of their “simplicity”. Typically, the whole game is developed in the scripting language, although languages like Python allow you to access libraries developed in other languages.

Scripting Languages Eg Pygame is a wrapper for the SDL library (written in C/C++)

Class Discussion What do you think might be the pluses/minuses in developing games using Python/Pygame vs C++/SDL?

Scripted Behaviour Scripted behaviours can occur either through – Entity deliberation (what should I do next) or – Environmental triggers (what should I do in response to in response to event x) The two approaches are not exclusive – triggers can result in deliberation (I’ve been shot at, what do I do?). The issue is that with scripting, the choices have been determined (and hard coded) by the developer

Scripted Behaviour: Summary Introducing variability into entity behaviours can be challenging Scripted behaviour is simple and straightforward to implement

Intelligent Behaviour Intelligent behaviour (among other things) requires the ability to plan and to learn. The routine implementation of these abilities is a long way off, so they are rarely seen in computer games. Rather, what we do see is the incorporation of simple and robust techniques from AI that make it easier for developers to produce entities that appear to behave intelligently.

AI Techniques Examples of the use of commonly used AI techniques include Specialised search techniques (eg A*) for route planning Finite state machines for structuring entity behaviour Flocking algorithms for coordinated group movements

Implementation For an example of simple state machine implementation, refer to McGugan, Chapter 7. Discussion question: – Is there any fundamental difference between using state machines or scripting to represent behaviour? i.e. are entities that employ state driven behaviour any more “intelligent” than entities that employ scripting?

Applications Game AI is different to conventional applied AI – the objective is to produce realistic and interesting behaviour as opposed to solving difficult problems. Hence AI might be used to produce – Challenging, but not invincible entities – “Dumb” entities – Entities that predict what the player might do next (Fairclough et al, 2007)

Intelligent Behaviour: Summary Focus remains on simple, robust techniques (Fairclough et al, 2007) Provision of “real” intelligence remains a research issue

A Design Example Meigs, pp Discussion Question: Variability is introduced through random number generation. Do you think that this, by itself, would provide for interesting gameplay? How might you improve the gameplay experience?