AI Post Mortem Inside Sims Medieval By David “Rez” Graham.

Slides:



Advertisements
Similar presentations
Request Management Solutions Tim Prado Dan Maddux TMA Systems, LLC.
Advertisements

Matt Kendra Anne Carol Becky
Anxiety A response to stress Dickey LaMoure Special Education Unit.
Terrapin Trader Transformation by Oliver Stohr - Olga Kuznetsova Tyler Cordrey - Brett Holbert December 9, 2008.
Use Case & Use Case Diagram
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 6 Managing and Administering DNS in Windows Server 2008.
“What do you want me to do now?”
Workflow & Event Derivation Workshop
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Reza Gorgan Mohammadi AmirKabir University of Technology, Department of Computer Engineering & Information Technology Advanced design.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
MOBILITY SUPPORT IN IPv6
Change is a Process Organizational Stages Individual Stages (ADKAR) Business Need Concept and Design Implementation Post-Implementation Awareness Desire.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
Generic Simulator for Users' Movements and Behavior in Collaborative Systems.
Service Broker Lesson 11. Skills Matrix Service Broker Service Broker, provides a solution to common problems with message delivery and consistency that.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Mapping Internet Addresses to Physical Addresses (ARP)
1 The SpaceWire Internet Tunnel and the Advantages It Provides For Spacecraft Integration Stuart Mills, Steve Parkes Space Technology Centre University.
Module CC3002 Post Implementation Issues Lecture for Week 4 AY 2013 Spring.
Healthy people/Healthy communities Disaster Planning and People with Disabilities.
Project Requirements COP 4331 OO Processes for Software Development © Dr. David A. Workman School of EE and CS University of Central Florida March 22,
When You Don't Have Time to Manage Time! Principles of Time Management.
Therapeutic Use of Life Simulation Games for People with Cognitive Impairments Edmund F. LoPresti 1,2,3, Michael McCue 1, Deborah Endres 1 1 University.
© MMII JW RyderCS 428 Computer Networking1 Private Network Interconnection  VPN - Virtual Private Networks  NAT - Network Address Translation  Describe.
VLAN Trunking Protocol (VTP)
Requirements Gathering this process determines exactly what is required (and not required) of a project Three key areas include: Identify and prioritize.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
2013 Texas Ad Astra Summit Monday, July 22 nd Optimizing Academic Scheduling Presented by: Kelly Hollowell, Manager of Education, Ad Astra.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
© E. Kowch iD Instructional Design Evaluation, Assessment & Design: A Discussion (EDER 673 L.91 ) From Calgary With Asst. Professor Eugene G. Kowch.
(Business) Process Centric Exchanges
PMI is a registered trademark of the Project Management Institute Knowledge Exchange Forum October 28, 2003 Getting to Yes with Unreasonable Requirements.
1 (Worker Queues) cs What is a Thread Pool? A collection of threads that are created once (e.g. when a server starts) That is, no need to create.
CS 346 – Chapter 4 Threads –How they differ from processes –Definition, purpose Threads of the same process share: code, data, open files –Types –Support.
VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wananga o te Upoko o te Ika a Maui SWEN 432 Advanced Database Design and Implementation MongoDB Architecture.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 3 v3.0 Module 9 Virtual Trunking Protocol.
On The Cooperation of Web Clients and Proxy Caches Yiu Fai Sit, Francis C.M. Lau, Cho-Li Wang Department of Computer Science The University of Hong Kong.
AI Pr0n Maximum Exposure of your debug info! By David “Rez” Graham.
Online Simulation Creation Wizard Introduction to Project
Oracle Services Procurement
Mapping IP Addresses to Hardware Addresses Chapter 5.
CHAPTER 14 Classes, Objects, and Games XNA Game Studio 4.0.
OpEnSp a Ce LCA Proposal Calvin Chin David Couvrette Jung Son Mikiko Jama CSE403 Summer 06.
Generalizing this Design CS 5010 Program Design Paradigms "Bootcamp" Lesson © Mitchell Wand, This work is licensed under a Creative Commons.
ACT Now Achieving College Transitions Now: Implementation Strategies for Secondary Youth.
VLAN Trunking Protocol (VTP)
6.2 Classes “ A class is basically a structure with member functions as well as member data. Classes are central to the programming methodology known as.
ISA 95 Working Group (Business) Process Centric Exchanges Dennis Brandl A Modest Proposal July 22, 2015.
A presentation by Kate Cumiskey, MFA Cumiskey Education Group, LLC 5/1/2015.
Get More Referrals Now! Presented by: Bill Cates Presented by: Bill Cates Copyright 2010 by Bill Cates How to Ask for Introductions without Begging or.
OO Methodology Elaboration Iteration 3 – Part 3 - More Design Patterns -
Classic Connections: Innovative Methods for Making Education Work.
T Project Review Wellit I1 Iteration
Anytime, Anywhere Access Benefits Functionality Work Order Administration Dispatch Work Order Work Order Details New Work Order Additional Functionality.
Cross-functional team who negotiates and implements changes in the FRAG Framework Responsible for finding common solutions that should be added to the.
SIP wg Items Jonathan Rosenberg dynamicsoft Caller Preferences: Changes Discussion of Redirects –Previous draft only proxy –Nothing different for redirect.
Thread Pools (Worker Queues) cs
CS 134 Video Game “AI”.
RSVP: A New Resource ReSerVation Protocol
Behavioral Design Patterns
Generalizing this Design
Design Patterns with C# (and Food!)
Introduction to Computers
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Using Functions
Using Use Case Diagrams
Homework Reading Machine Projects Labs
Software Engineering and Architecture
Presentation transcript:

AI Post Mortem Inside Sims Medieval By David “Rez” Graham

Who's this Rez guy, anyway?

What We’re Going to Talk About Core Design Changes – Quests – Sim Types oProfession Sims oRole Sims oTownies – Schedules Implementation Solutions – Bouncer System – Sim Scheduler

Sims AI Crash Course Meta Autonomy – Which lot should I be on? – Based on venue desire tuned by designers – Schedules Local Autonomy – What should I do on my current lot? – Based on Utility provided for each interaction on each object – Utility is based on Commodities, like hunger, energy, social, etc.

Design Changes: Quests The Problem: –The Witch is back! –Player must confront the witch in the town square –The player arrives just in time…. –.… to see the witch go home to make a sandwich

Profession Sims –Created with Create-A-Sim –Playable Townies –Background characters –Unplayable yet fully simulated Role Sims –Townies with a purpose –Activated by event –On a schedule Design Changes: Sim Types

Design Changes: Schedules Why schedules? Quests: –Remember the witch? –Need to lock a Sim somewhere Work: –No rabbit holes for work –Need to send Sims to the right place at the right time –Need to behave appropriately during business hours On Schedule: –Special work motives & socials –Schedule Lots –Commodities can be frozen –Meta & Local Autonomy can be disabled Off Schedule: –Normal Behavior

Implementation: The Bouncer Gets Sims in and out of the world one at a time Handles prioritized Sim requests –General Requests oGeneric request for N Sims oDon’t care who gets assigned or when they respond oUsed to fill the world with Townies –Specific Requests oFiltered by age, gender, faith, or even SimDescription oSim is locked in request

Implementation: Specific Requests 1.Client inherits from ISimRequestor interface 2.Client calls CreateRequest() on Bouncer Singleton 3.Bouncer creates a request and returns an ISimRequest ptr 4.The ISimRequest ptr is used as proxy to send messages to the Bouncer regarding this request 5.Bouncer uses concrete request object to send messages to the client

Implementation: ISimRequestor Requestor gets notified when a Sim is actually assigned to the requestBouncer notifies client when a higher priority request comes in and it’s up to the client to handle that appropriately Bouncer can ask the client about the Sim’s local/meta autonomy restrictions

Implementation: ISimRequest Client must submit the request when it’s ready and withdraw the request when it’s done Client can update general requests to the bouncer Client controls when a Sim is unassigned from a request since it knows when this is safe

Implementation: Schedules 1.Schedule client calls AddScheduleByTag() on SimDescription 2.SimDescription caches the schedule data from the SimScheduler singleton 3.SimDescription calls AddSim() on ScheduledSimManager singleton 4.ScheduledSimManager creates a ScheduledSim object 5.Each tick, ScheduledSimManager iterates over all ScheduledSim’s and submits low- priority bouncer requests for any who are on a schedule.

Implementation: Schedules 6.Bouncer spawns the Sim 7.The Sim initializes his SimSchedulerState and sets the appropriate state based on time. 8.Every AI update, Autonomy will call RunScheduleAutonomy() 1.Submits a higher priority bouncer request 2.Reconciles all motives, freezes commodities if necessary, etc. 3.Sends the Sim to the appropriate lot.

Implementation: Professions & Roles Roles: –RoleSystem Singleton acts as Schedule Client –Activated by Event –Role sim is chosen from Townie Pool based on Filter –Sim is modified for role (Traits, skills, Equip, etc.) –Schedule is added to SimDescription Professions: –ProfessionManager Singleton acts as the Schedule Client –Sims are created through Create-A-Sim, which generates a SimDescription object –When not controllable by the player, Profession Sims behave according to schedule –Sims controlled by player have their schedule removed

Summary Remember the Witch? –The Witch is now just a role –The Role filters on Adult Female –When activated, she is put on a 24/7 schedule oTarget Lot = Town Square oCommodities are frozen –When player confronts her, a new schedule is pushed

Performance: Local Autonomy The Problem: –Autonomy is taking too long! –Specifically, it takes too long for one Sim to score interactions for local autonomy –Adding a player to this makes it especially bad Proposed Solution: –Distribute scoring across multiple frames Hitches: –Several systems outside of the AI call scoring functions directly –GameObject state changes out from under the Sim What We Did: –Internal scoring functions run across multiple frames –Externally called functions run synchronously –Lots of object validation

Performance: Routing The Problem: –Routing is too expensive! –Routing was solving an entire path synchronously –No dynamic obstacle avoidance Proposed Solution: –Nuke it! Hitches: –Hell of a lot of work Final Solution: –Replaced Sims 3 router with NavPower

Thank You!