Upload
kuanhung-chen
View
158
Download
1
Tags:
Embed Size (px)
DESCRIPTION
First release of the master defense presentation file, this edition is designed to be play off PowerPoint or dumped HTML with transitional effects.
Citation preview
Dynamic State Based AI Decision Framework
Presenter:Kuanhung Chen, MS in Software Engineering
Committee Members:Dr. Junhua Ding, Dr. Masao Kishore, Dr. Ronnie Smith
East Carolina University Fall 2011 Master’s Presentation
The Need for Better AI
Source: Penny Arcade - One Plausible Scenario
The Need for Better AI
Problem Statement
“In the field of video gaming, graphics is approaching visually apex. A few more pixels and polygons no longer provide any meaningful substance to improve the quality of gaming, however the AI of the games we play is no better than those we have played a decade ago.
I would like to propose a dynamic AI framework that allows end-users to experience the same game in potentially endlessly different ways by simply downloading user-generated AI plug-ins. This way, users can finally program/modify their own characters' AI algorithms and make games more difficult without games cheat.”
Project Functionalities
Dynamic AI Algorithm
Dynamic AI Algorithm
Data Layer – Class Diagram
Presentation Layer – Simplified Class Diagram (Semi-Manual Engine)
Presentation Layer – Character State
AI Layer – Action Engine
Data Link – Character Association
Graphical Layer - Stock Character
Scaffolding System Testing
Project Site – Log-In
Project Site – Stub Upload
Project Site – Stub Download
Project Site – Project Management
Character Selection
AI Stub Selection
Rounds Selection
Battle
Result Display
Question and Answer
Presenter:Kuanhung Chen, MS in Software Engineering
Committee Members:Dr. Junhua Ding, Dr. Masao Kishore, Dr. Ronnie Smith
East Carolina University Fall 2011 Master’s Presentation
Appendix Index Simplified User Project Interface Test Plan Simplified Class Diagram (Manual Engine) Class Diagram – Elaborated Action Diagram Animation Engine Animation Engine – Elaboration Simplified Character State Diagram Interface Design Camera Control – Design Camera Control – Camera Movement Camera Control – User Interface Audio Manager Implementation AI Stub Verification C# Reflection Invoke C# Reflection Invoke Differences AI Stub Injection AI Stub Injection Interface AI Algorithm Utility AI Design Strategies Data Link – Action Driver AI Stub Implementation – Template
Simplified User Project Interface
Test Plan
Simplified Class Diagram (Manual Engine)
Class D
iagram –
Elaborated
Action Diagram
Animation Engine
Animation Engine – Elaboration
Simplified Character State Diagram
Interface Design
Camera Control – Design
Camera Control – Camera Movement
Camera Control – User Interface
Audio Manager Implementation
AI Stub Verification
Name Verification: Existence and non-empty of input [full file name] Whether the referenced file exist
Name Validation: Whether the [full file name] fits the naming scheme:
[[NameSpace]].[ClassName].[Method].DLL Breaking down the name by delimiter of “.” Make sure there are at least four parts Make sure that the last part is “DLL”
No empty space exists in file name
C# Reflection Invoke
Class Reference:
Type classType = assembly.GetType(dllObject.TitleClass);MethodInfo method = classType.GetMethod(dllObject.MethodName);
Instantiate an Object of the Referenced Type:
object classInstant = classType.InvokeMember (null,BindingFlags.DeclaredOnly |BindingFlags.Public | BindingFlags.NonPublic |BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
Invoke Member in .NET:
public object InvokeMember (string memberName, BindingFlags invokeAttr,
Binder binder, object objectInstant, object[] arguements)
C# Reflection Invoke Differences
Dynamic Method Invoke in .NET:
object returnedValue = method.Invoke(classInstant, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance |BindingFlags.InvokeMethod, null, parameters, new CultureInfo(0x0009, false));
Invoke Member in Mono:
public object MethodBase.Invoke (object objectInstant,
BindingFlags invokeAttr, Binder binder, object[] arguments,
CultureInfo languageEncode)
AI Stub Injection
AI Stub Injection Interface
AI Algorithm Utility
Get All Characters Get Allies Get Enemies Get Characters by Team Get Character by ID Get Character by Query Total HP Move To Get Random Character Line of Sight
AI Design Strategies State-Based Statistical Analysis
Buffer copies of game state, run trend analysis to predict opponent action
Table Query More familiar to programmers
Team-Based Shared Memory Establish correlation to prevent redundant actions
Nested AI Stub Re-use AI Adaptor to pass on request to child adaptors for
specialized requests Target Buffer Strategy
Use previously determined and buffered actions to cut down on CPU time
Memory Based Analysis Dump accumulated data out to external file to be reused
later.
Data Link – Action Driver
AI Stub Implementation – Template
Dynamic State Based AI Decision Framework
The End