CSE4MOD Bot Navigation and Karma Paul Taylor 2009.

Slides:



Advertisements
Similar presentations
7.2. AI E NGINE AND S TEERING B EHAVIOUR I Design of an AI Engine and introduction to steering in game AI.
Advertisements

RoboCell and Cell Setup
Kinematics & Grasping Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions Goal.
CS4455 Physics Engines Maribeth Gandy Jeff Wilson Clint Doriot
5/20/20151 Using UDK Editor CIS 488/588 Bruce R. Maxim UM-Dearborn.
Done already for your convenience! Telerik School Academy Unity 2D Game Development.
CSE4MOD Final Bot Navigation Paul Taylor Last Week JumpSpot Do Bots jump to or from these? Doors Without the door actor With the door actor.
1 CS 599 Physically Based Modeling for Interactive Simulation and Games Case Study: Havok Engine for Game Physics Jernej Barbic University of Southern.
1 Geometry A line in 3D space is represented by  S is a point on the line, and V is the direction along which the line runs  Any point P on the line.
CS274 Spring 01 Lecture 5 Copyright © Mark Meyer Lecture V Higher Level Motion Control CS274: Computer Animation and Simulation.
Theoretical & Industrial Design of Aerofoils P M V Subbarao Professor Mechanical Engineering Department An Objective Invention ……
CS 4730 Physical Simulation CS 4730 – Computer Game Design.
3-D Modeling Concepts V part 2.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Newton’s Second Law Chapter 4 Net Force causing acceleration Friction Air resistance.
UFCEKU-20-3Web Games Programming Unity 3D Physics Colliders and Object Collisions.
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
Modelling and Simulation Dynamics. Dynamics Dynamics is a branch of physics that describes how objects move. Dynamic animation uses rules of physics to.
CS324e - Elements of Graphics and Visualization Checkerboard World.
DYNAMICS Part I Physics Engine By Willis (The Magnificent) Louie Fei (The Coyote) Liao.
CSE 380 – Computer Game Programming Box2D Box2D TestBed.
$100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100 $200 $300 $400 $500 $100.
AI in FPS. Contents FPS AI Architecture –Animation –Movement –Combat –Behavior Positioning strategy –Waypoint –Pinch Point.
Momentum and Collisions
Web Games Programming An Introduction to Unity 3D.
UFCFS D Technologies for the Web Unity 3D: Review of Topics and Related Concepts.
CSE 381 – Advanced Game Programming Code Setup.
By Melissa Dalis Professor Susan Rodger Duke University June 2011 Multiplication Table.
NVTune Kenneth Hurley. NVIDIA CONFIDENTIAL NVTune Overview What issues are we trying to solve? Games and applications need to have high frame rates Answer.
1 Chapter 12: Form Builder Objects and Flexible Code.
CSC505 Particle Systems. CSC505 Object Representations So far we have represented (rendered) objects with –Lines –Polygons (triangles) –Curves These techniques.
Jumping, Climbing, and Tactical Reasoning Section 2.5 Tom Schaible CSE 497 – AI & Game Programming.
1 ball, 2 ball, red ball, blue ball By Melissa Dalis Professor Susan Rodger Duke University June 2011.
UFCEK-20-3Web Games Programming Unity 3D: Review of Topics Publishing for the Web.
Particles Paul Taylor Polygons are not so hot! Good for representing objects like A Cup A Robot A Pyramid Not so hot for creating Hair Snowflakes.
Point Sprites Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended.
Chapter 9 Advanced Assembly Modeling Techniques. After completing this chapter, you will be able to perform the following: –Create sketch blocks –Create.
Chipmunk Physics Remember that we talked about this a bit when we did collision handlers for the space ship integration task (SpritesActionsPhysicsSound).
Unity3D Physics April 3, 2015 Comp Game Design Michael Shah.
Computer Game Design and Development
Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.
Sega 500 Scripted events and Sequences Jeff “Ezeikeil” Giles
Particles and their home in Geometry Shaders Paul Taylor 2010.
Improving the appearance of 3D OpenGL scenes
Advanced Games Development Game Physics CO2301 Games Development 1 Week 19.
Graphics for Games Particle Systems CO2301 Games Development 1 Week 23.
UFCEKU-20-3Web Games Programming Instantiating World Objects.
UFCFSU-30-13D Technologies for the Web An Introduction to Unity 3D.
Computer Graphics Imaging Ying Zhu Georgia State University Lecture 29 Soft Bodies and Rigid Bodies.
Get your software working before putting it on the robot!
Yingcai Xiao Game Development with Unity3D Inside/Outside Unity3D.
Introducing To 3D Studio Max George Atanasov Telerik Corporation
Chapter 9 Advanced Assembly Modeling Techniques. After completing this chapter, you will be able to perform the following: –Create design view representations.
Unity 3D Rolfe Bozier 24-Apr-2017
Game Development with Unity3D Inside/Outside Unity3D
Done already for your convenience!
Computer Animation Ying Zhu Georgia State University
12 Examination 1. Which of the below commands can be used to make decision in program based on a condition? a. If…else b. Set c. Switch d. Assignment e. Wait.
Projectiles in Unreal Engine 4
Unreal Engine and C++ We’re finally at a point where we can start working in C++ with Unreal Engine To get everything set up for this properly, we’re going.
Skeletons and Skinning
Chemical Reactions and Enzymes
CIS 488/588 Bruce R. Maxim UM-Dearborn
CIS 488/588 Bruce R. Maxim UM-Dearborn
Week 6: Time and triggers!
Unreal Interactive Elements
Advanced Games Development Game Physics
GPAT – Chapter 7 Physics.
Presentation transcript:

CSE4MOD Bot Navigation and Karma Paul Taylor 2009

Unreal 4 For the Next, Next Generation Consoles – Due around games-unreal-engine-4-ready-in-2012.ars

Karma Karma was the Physics Engine in Unreal. Used from UT2003 & Unreal Championship Until UT2K4 Basically used on all versions of the Unreal 2.x Engine As of Unreal3 Karma has been dropped in favour of Ageia’s PhysX – Now owned and hardware supported by Nvidia!

Access to Karma To use Karma you need to have a special actor – KActor – This class + children can react dynamically with the environment – In the movement category the Physics property is set to PHYS_Karma. – How objects react is stored in the KParams property (in the Karma category)

Surfaces That Interact All surfaces in the Unreal Level have a variable bBlockKarma

Multiplayer = Failure Karma does not replicate. The Physics that reacts to your explosions etc, will not replicate as Karma is local only ?? One of the reasons Karma was dropped ??

Static Mesh Performance UseSimpleKaramaCollisions This is the complicated way to use Karma – You need to have a Collision model for your mesh – Otherwise you set it to false, and Karma will use every Polygon in your static mesh – = Slow!!! – If you set it to true without a Collision Mesh

Enabling Karma Karma doesn’t get enabled till enough force is applied to an Actor. – This is not a bug, it’s an optimisation feature. – In Kparams you can alter KStartEnabled

Karma Parameters bDestroyOnWorldPenetrate bDoSafeTime – Extra safe checks on world penetration bHighDetailOnly – Removes actions for lower machines bKAllowRotate – Allows z-axis rotation Only affects actors with KStayUpright set

bKDoubleTickRate – Increases the speed + Accuracy of physics calculations but should be set Uniform to any objects which MAY collide bKNonSphericalInertia – Calculate Inertia NOT based on a sphere bKStayUpright – Duh! = zAxis

KActorGravScale – Gravity Multiplier per-actor KAngularDamping – Rotational Drag Kboyancy – 0 = ignored – 1 = float mid water – >1 = float to surface

KLinearDamping – Translational Drag Kmass – Relative to the volume of the Karma Primitives KMaxAngularSpeed – Max speed of actor rotating KMaxSpeed – Plain old speed

KStartAngVel (XYZ) KStartEnabled KStartLinVel KVelDropBelowThreshold – Causes an Event StayUprightStiffness – Springiness to stay upright StayUprightDamping

Kfriction – 1=Full friction – 0 = no friction KImpactThreshold – Calls an event Krestitution – Bouncyness 0 = None 1 = perfect energy retention

bKDoConvulsions – Allows RagDolls to convulse! At interval: KConvulseSpacing bRubbery – Makes Ragdolls bend and flex dramatically Kskeleton – This sets the ragdoll skeleton to be used.

KCOMOffset – Centre of mass offset (XYZ) KInertiaTensor – 6 variables, 0 3 and 5 are important 0 = ease of roll, changes with Kmass and Drawscale 3 = ease of pitch 5 = ease of yaw

Collision Primitives MCDBX MCDSP MCDCY MCDCX

Collision Primitive Prefixes MCDBX - Box MCDSP - Sphere MCDCY - Cylinder MCDCX – Convex Mesh These will allow a static mesh to be imported with the collision already set

Viewing Collisions In UnrealEd

Constraints So far we have covered free objects Constraints will let us tie objects together – The Three Constraint actors – KBSJoint Ball-Socket Joint – KConeLimit This applies to existing joints and seves to limit rotation – KHinge

KHinge HT_Normal HT_Springy HT_Motor HT_Controlled – Motor + Specified Destination Angle Hinges are Triggerable

Ragdolls and Complex Physics KAT The Karma Authoring Tool Karma Workspaces And Karma Assets

Maya -> KAT -> Unreal Objects are created in Maya with Joints – Exported with axTools to the Unreal PSK format KAT opens the.PSX and can then be used to create the.KA file. – You must copy the.AK into the KarmaData folder of UT. – Then set the KSkeleton variable of your object

Bot Navigation and AI basics Bots navigate primarily through the Navigation Path network The engine uses the A* path-finding algorithm to navigate from X to Y

Storing Paths LevelInfo class contains var const NavigationPoint NavigationPointList; The Bot Brains come from Bot.uc in the UnrealGame Package. Yes the original Unreal Package (UT). ~c1994 TeamAI again from UnrealGame

Bot.uc 260 Functions 24 events derives a lot of code from Controller.uc

Path Colours White – Very Wide Green – Large NPCs Blue – Cramped decreased game flow Purple – Lift, Teleporters and Jump Pads Light Purple – Ladder Yellow – Forced Paths Red – Proscribed Paths (Inverse of Forced)

Order of preference Bots will usually take White, then Green, then blue, but the true answer is hidden in the navigation code Bots navigate by attaching a cost to every action. – This allows you to entice them into blue paths with goodies.

Remember your console! Navigation Debuging: ShowDebug Viewclass <> ReviewJumpSpots - Spawns a bot and forces it to attempt various jump types on every jump spot in your level. Limits: – Transloc – Combo – Jump – LowGrav

ShowAI – AI debugging ViewBot – cycles bots ViewFlag – CTF Debugging SoakBots – When errors happen bots will pause the game Rememberspot Used by showdebug to show a white line directly, and if possible green lines following the navigation points

Jump Pads and Teleporters JumpSpot points act as a Jump Destination, bots will jump TO this point, not from it! – JumpSpot Properties bForceDoubleJump bDodgeUp bForceDoubleJumping – no check on success of a jump bNeverImpactJump – disables shield jumping bNoLowGrav – not used in low G bOnlyTranslocator TranslocTargetTag – set a target for using the TransLocator TranslocZoffset – Adjusts bot aiming up / down (z)

Doorways The Door actor acts as a navigation point. – If you have a simple actor as your door, you just need to set bPathColliding to false.