Finite State Machines using Alice Stephen Cano CIS 4914 Senior Project Wednesday December 5th.

Slides:



Advertisements
Similar presentations
Finite State Machines. Finite State Machines (FSMs) An abstract machine that can exist in one of several different and predefined states Defines a set.
Advertisements

Princess & Dragon Part 2: Teaching a Dragon to Fly—Methods & Properties By Elizabeth Liang under the direction of Professor Susan Rodger Duke University.
Game AI Kevin Dill Senior AI Engineer Blue Fang Games
While: Indefinite Loops Sec 8-14 Web Design. Objectives The student will: Understand what an Indefinite Loop is Understand how create an indefinite loop.
Information System Engineering
Intro to Programming Algebra-Geometry. Computer Programming? What is programming? The process of writing, testing, and maintaining the source code of.
Wombats Creating Games with Greenfoot The Walker School – Games and Simulations
Artificial Intelligence in Game Design Hierarchical Finite State Machines.
RED DEAD REVOLVER Artificial Intelligence Critique By Mitchell C. Dodes CIS 588.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
Alice Variables Pepper. Set to Java look Edit / preferences restart.
And Just Games etc.. EVOLUTION OF COMPUTER GAMES PongOdyssey Beginning of the use of microprocessors ATARI VCS system bit.
Chapter 1 Program Design
Creating an HTML page Skills: edit and debug HTML pages IT concepts: text editor This work is licensed under a Creative Commons Attribution-Noncommercial-
Wizard Game: Class-Level Variables in Alice By Jenna Hayes Under the direction of Professor Susan Rodger Duke University, July
How 3D is used in society.
01-Intro-Object-Oriented-Prog-Alice1 Barb Ericson Georgia Institute of Technology Aug 2009 Introduction to Object-Oriented Programming in Alice.
Making a Book Report in Alice by Jenna Hayes Under the direction of Professor Susan Rodger Duke University, June 2010.
AMANDA GILBERT Bridging the Gap: Storytelling Alice as a Precursor to Python.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Unit 1 – Improving Productivity. 1.1Why did you use a computer? What other systems / resources could you have used? I could have used a pen and paper.
V Avon High School Tech Club Agenda Old Business –Delete Files New Business –Week 16 Topics: Intro to HTML/CSS –Questions? Tech Club Forums.
by Chris Brown under Prof. Susan Rodger Duke University June 2012
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Study Guide For Test Chapter 5, 6,& 7 Test is Friday, May 15th.
ZOMBIE MADNESS! Jack Smith Steve Mander-Jones OUTLINE > GAME OVERVIEW > IMPLEMENTATION > AI FEATURES > CONCLUSION.
A Spring 2005 CS 426 Senior Project By Group 15 John Studebaker, Justin Gerthoffer, David Colborne CSE Dept., University of Nevada, Reno Advisors (CSE.
Othello Artificial Intelligence With Machine Learning
Artificial Intelligence in Game Design Behavior Trees.
Programming Languages 1.07a.  A computer program is a series of instructions that direct a computer to perform a certain task.  A programming language.
Level 2 IT Users Qualification – Unit 1 Improving Productivity Chris.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
Chapter 3 Developing an algorithm. Objectives To introduce methods of analysing a problem and developing a solution To develop simple algorithms using.
Artificial Intelligence Techniques Artificial Stupidity?
Methods Tutorial: Part Two By Deborah Nelson Duke University Professor Susan Rodger June 16, 2008.
Summer Computing Workshop. Introduction  Boolean Expressions – In programming, a Boolean expression is an expression that is either true or false. In.
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
CSE1GDT Game Design Theory About me: Paul Taylor I’m a lecturer in Games Design and Development Currently Studying my PhD in Artificial Intelligence.
By Melissa Dalis Professor Susan Rodger Duke University June 2011 Multiplication Table.
Machine Learning for an Artificial Intelligence Playing Tic-Tac-Toe Computer Systems Lab 2005 By Rachel Miller.
C++ crash course Class 8 statements, sort, flight times program.
A Simple Quiz: Ask User Functions. By Lana Dyck under the direction of Professor Susan Rodger Duke University June 2009, added Part 2 July 2011.
CCR Deadlock By: Laura Weiland April 30, Project Description Implement a module to the Train Operating System (TOS) that manages the deadlock problem.
Computational theory techniques in interactive video games.
Structured Programming (4 Credits)
What is Alice? Alice is an innovative 3D programming environment that makes it easy to create an animation for telling story, playing an interactive game,
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
1 2 Thinking is a matter of cleverness. 3 Wisdom is not as important as cleverness.
Methods for Multiplication Tutorial By: Melinda Hallock.
INTRO TO STATE MACHINES CIS 4350 Rolf Lakaemper. State Machines A state machine represents a system as a set of states, the transitions between them,
Othello Artificial Intelligence With Machine Learning Computer Systems TJHSST Nick Sidawy.
Using Placeholders to Simplify your Methods: Learning Methods, Part 2 By Deborah Nelson Duke University Professor Susan Rodger June 16, 2008.
Finite State Machines Logical and Artificial Intelligence in Games Lecture 3a.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
The Game Development Process: Artificial Intelligence.
Goal-Oriented Game AI Purpose and Utilizations Research Organized by: Evan Schipellite.
Swift by Kevin Gamboa Teky Alvarado Hieu Tran Elizabeth Sanchez
Decision Making: Decision Tree & State Machines Session 07
A Simple Quiz for Alice 3.2:
Othello Artificial Intelligence With Machine Learning
Othello Artificial Intelligence With Machine Learning
Finite State Machines Computer theory covers several types of abstract machines, including Finite State Machines.
Threads and Multithreading
A Simple Quiz for Alice 3.2:
Using Functions
PROGRAMMING FUNDAMENTALS Lecture # 03. Programming Language A Programming language used to write computer programs. Its mean of communication between.
Using Placeholders to Simplify your Methods: Learning Methods, Part 2
Zimmertwins.com Web 2.0 tool
Zimmertwins.com Web 2.0 tool
Presentation transcript:

Finite State Machines using Alice Stephen Cano CIS 4914 Senior Project Wednesday December 5th

Project Summary Motivation: In order to teach AI in a University setting, specifically high level AI algorithms such as Finite State Machines, there needs to be a foundational environment to work in. Motivation: In order to teach AI in a University setting, specifically high level AI algorithms such as Finite State Machines, there needs to be a foundational environment to work in. Save students the time of building characters or settings for artificial intelligence and instead focus on the algorithms themselves Save students the time of building characters or settings for artificial intelligence and instead focus on the algorithms themselves

Project Summary Problem: Can a successful Finite State Machine be assembled in the Alice programming environment? Problem: Can a successful Finite State Machine be assembled in the Alice programming environment? Alice is a tool made to teach beginners how to program, but contains the ability to easily render a 3D world (free at Alice is a tool made to teach beginners how to program, but contains the ability to easily render a 3D world (free at Is Alice’s “simple” environment enough to handle high-level programming concepts? Is Alice’s “simple” environment enough to handle high-level programming concepts?

Project Summary Solution: Create a 3D world with a single actor that is controlled by a finite state machine Solution: Create a 3D world with a single actor that is controlled by a finite state machine User interaction adds additional states and extra situations to the FSM User interaction adds additional states and extra situations to the FSM Start simple and build up, seeing what Alice can and cannot handle Start simple and build up, seeing what Alice can and cannot handle

Literature Search Anon, Carnigie Mellon (as-of Oct 10 th ) Anon, Carnigie Mellon (as-of Oct 10 th ) Alice tutorials and other work done in Alice Alice tutorials and other work done in Alice Steve Rabin, AI Game Programming Wisdom 2, Charles River Media (Dec 2003) Steve Rabin, AI Game Programming Wisdom 2, Charles River Media (Dec 2003) What is a Finite State Machine? What is a Finite State Machine? Good examples for single-actor FSM Good examples for single-actor FSM How to debug and enhance your finite state machine How to debug and enhance your finite state machine Ian Millington, Artificial Intelligence for Games, Morgan Kaufmann (June 2006) Ian Millington, Artificial Intelligence for Games, Morgan Kaufmann (June 2006) More basic information around Finite State Machines More basic information around Finite State Machines “Ant colony” finite state machine involving many actors “Ant colony” finite state machine involving many actors

Work Performed In Alice, created a single-actor finite state machine In Alice, created a single-actor finite state machine Main actor, the “penguin” character, goes between 3 different states when left to run, and can enter two different states based on user interaction. Main actor, the “penguin” character, goes between 3 different states when left to run, and can enter two different states based on user interaction. Created two “objects” the user can put into the scene Created two “objects” the user can put into the scene

State Diagrams

Main functions Penguin.FSM: Penguin.FSM: Main “always running” function, had a looped action that shows the finite state machine has entered a certain state. Main “always running” function, had a looped action that shows the finite state machine has entered a certain state. Example: if in “roam” state, call Penguin.roam, which makes the penguin take a few steps Example: if in “roam” state, call Penguin.roam, which makes the penguin take a few steps Also contains a check to see if conditions have been met to enter a new state Also contains a check to see if conditions have been met to enter a new state

Main functions Penguin.Statecheck Penguin.Statecheck Checks the environment of the character to see if the state needs to be changed Checks the environment of the character to see if the state needs to be changed Performs the necessary actions for pre- and post- state change processing Performs the necessary actions for pre- and post- state change processing Example: Sit down to eat when hungry, turn to run and hide when scared Example: Sit down to eat when hungry, turn to run and hide when scared

Conclusions: Positive While missing some high-level functionality, a simple FSM can be built in Alice While missing some high-level functionality, a simple FSM can be built in Alice Enough functionality exists for the purpose of educational ventures in AI. Enough functionality exists for the purpose of educational ventures in AI. Very fun, easy to use Very fun, easy to use

Conclusions: Negative FSM not as “smart” as it could be due to programming limitations FSM not as “smart” as it could be due to programming limitations If/Else statements only good available logic If/Else statements only good available logic Animations must finish before “moving” on, cannot have multiple threads running to constantly check states Animations must finish before “moving” on, cannot have multiple threads running to constantly check states Example: Penguin will not notice fear-enducing skeleton until he is done with his walk cycle Example: Penguin will not notice fear-enducing skeleton until he is done with his walk cycle Cannot dynamically add objects to the environment Cannot dynamically add objects to the environment

Future Work Could a more skilled Alice animator create sharper state transitions? Could a more skilled Alice animator create sharper state transitions? Can the Java base of Alice be directly modified to be more inclusive of AI technology? Can the Java base of Alice be directly modified to be more inclusive of AI technology? Can other AI algorithms also be replicated in Alice? Can other AI algorithms also be replicated in Alice? Is there a better programming environment for educational purposes of AI? Is there a better programming environment for educational purposes of AI?

Q/A time and quick notes Thanks to Professor Schmalz, Dr. Dankel, and my fellow Senior class Thanks to Professor Schmalz, Dr. Dankel, and my fellow Senior class I wish you all a great winter break, and a great spring semester! I wish you all a great winter break, and a great spring semester!