TEMPLATE DESIGN © 2008 www.PosterPresentations.com Last Resort AI, Animation, Modeling, and Networking Alex Bunch, Nick Hunter, Austin Lohr, Robert Schmidt,

Slides:



Advertisements
Similar presentations
Artificial Intelligence in Game Design
Advertisements

Wall Building for RTS Games Patrick Schmid. Age of Empires.
Soar and StarCraft By Alex Turner. What is StarCraft: Brood War? A Real-Time Strategy (RTS) computer game released in A sci-fi war simulation Continually.
Heuristic Search techniques
Introduction Games have always been a fundamental part of human life. Space storm “ عاصفة الفضاء” is a 3D SCI-FI game that consists of two stages presented.
Parameterizing a Geometry using the COMSOL Moving Mesh Feature
Dead Reckoning Objectives – –Understand what is meant by the term dead reckoning. –Realize the two major components of a dead reckoning protocol. –Be capable.
Week 7 - Monday.  What did we talk about last time?  Specular shading  Aliasing and antialiasing.
AIR NAVIGATION Part 3 The 1 in 60 rule.
AIR NAVIGATION Part 3 The 1 in 60 rule.
Best-First Search: Agendas
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Artificial Intelligence in Game Design Intelligent Decision Making and Decision Trees.
Computer Science 313 – Advanced Programming Topics.
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
Chapter 4: IMD Chapter 4: Character Animation Character Animation 1 Lecturer: Norhayati Mohd Amin.
1 of 25 Assignment Orthographic Wireframe Elevation Orthographic Wireframe Plan Orthographic Wireframe End-Elevation Perspective View.
Understand the football simulation source code. Understand the football simulation source code. Learn all the technical specifications of the system components.
Reza Gorgan Mohammadi AmirKabir University of Technology, Department of Computer Engineering & Information Technology Advanced design.
Automating Tasks With Macros
Computer Graphics 14: Surface Detection Methods
Brent Dingle Marco A. Morales Texas A&M University, Spring 2002
Modelling. Outline  Modelling methods  Editing models – adding detail  Polygonal models  Representing curves  Patched surfaces.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
Animation. Outline  Key frame animation  Hierarchical animation  Inverse kinematics.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Pre Production I.Concept II.Story Development III.Visual Development IV.Technical Direction V.Production Management.
Computer Animation Thesis “brief” Vic, CS 288, 10/22/98.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
HBar OR Reader Documentation A copy of the PowerPoint Viewer is shipped with the HBar OR Reader on the HBar Official Records [OR] CD. The PowerPoint Viewer.
Object Oriented Software Development
CSE 381 – Advanced Game Programming 3D Game Architecture.
SOURCE 2006 Presentation by Luke Arntson Game Programming Optimization.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University.
Networking Networking is done via a single component that is persistent in each machine’s game. This multiplayer manager component handles all Unity RPC.
Facial animation retargeting framework using radial basis functions Tamás Umenhoffer, Balázs Tóth Introduction Realistic facial animation16 is a challenging.
Town Defenders Strategy Game prepared by: Osama N
Object Oriented Analysis & Design SDL Threads. Contents 2  Processes  Thread Concepts  Creating threads  Critical sections  Synchronizing threads.
Defining the project You have presented your project proposal and you have the go-ahead to start the project. Before you start you need to ensure everyone.
Passage Three Multimedia Application. Training target: In this part , you should try your best to form good reading habits. In order to avoid your ill.
TEMPLATE DESIGN © Last Resort Animation, Modeling, AI, Networking, and Backend Alex Bunch, Nick Hunter, Austin Lohr, Robert.
Slide 6-1 Copyright © 2004 Pearson Education, Inc.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
Game Maker Terminology
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
The Software Development Process
Dakota Humphries (Project Lead) Thomas Impellitteri (Tech Lead) Daryl McGhee II (Design Lead) Keith Rosier (Asset Lead)
F.E.A.R. Game AI Evaluation by Robert Rak. What is F.E.A.R. ? FEAR is a First Person Shooter game Player takes on the role of an elite strike force team.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Computer Animation 3D Animation. How do I develop 3D models using a variety of editing tools and texturing techniques? Vocabulary: Meshes- Represent 3D.
CHAPTER 14 Classes, Objects, and Games XNA Game Studio 4.0.
Chess Strategies Component Skills Strategies Prototype Josh Waters, Ty Fenn, Tianyu Chen.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Introduction to Parametric Curve and Surface Modeling.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Review IMGD Engine Architecture Types Broadly, what are the two architecture types discussed for game engines? What are the differences?
OOP - Object Oriented Programming
Bones Skeletal Unity-2D How & When
Computer Programming.
Flicker Free Animation Using Vray
Parallel Sorting Algorithms
Prepared by: Engr . Syed Atir Iftikhar
Chapter I Introduction
UMBC Graphics for Games
1004 Enclosure and Life Support Management
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Computer Graphics Lecture 15.
Introduction to Parametric Curve and Surface Modeling
Module Recognition Algorithms
Presentation transcript:

TEMPLATE DESIGN © Last Resort AI, Animation, Modeling, and Networking Alex Bunch, Nick Hunter, Austin Lohr, Robert Schmidt, Eric Shryock, Ian Stitzlein The Ohio State University Computer Science and Engineering Networking AI Cont. Animation Animation Cont.Modeling AI Fog of War When the local player submits a command, the command is sent to the Network Manager, which delegates the sending and receiving of RPCs to the Network Messenger. The Network Messenger sends RPCs from the Network Manager out to other players and notifies the Network Manager when new commands arrive from the network. The Network Manager then gives new commands from the network to the Command List. Although the game is “real-time,” time is actually split into 200 millisecond “turns” during which player commands are recorded but not executed. The commands for a particular “turn” are sent across the network, and commands for that turn are not executed on a local computer until the commands for all other players for the same turn have been received. This "turn" concept is encapsulated in the Command List object. The Network Manager keeps track of the current turn and labels any outgoing player commands with that turn number. When the Network Manager receives a new player command from the network, the Network Manager sends the player command to its Command List object to be organized by “turn” and player. The Network Manager frequently queries its Command List for completed turns and asks the Command List to executed those turns when ready. This process of recording, sending, receiving, and executing turns is continued until one player is declared the winner of the game. The unit models of Last Resort have gone through a few iterations during the course of our development, mostly stemming from the fact that in order for our game to run smoothly units should consist of as few polygons as possible. Initially all of our models were either taken from free sources or purchased for a nominal fee, but soon after we realized that all of these models were too detailed to be used in masse in our game. Polygon reduction tools exist in most commercial software, and since we were already using Maya and 3ds Max we gave each of them a shot. Maya – Performed ‘dumb’ reductions, often creating spikes in the surface or reducing incorrectly. 3ds Max – Had a few options, ‘Pro Optimizer’ successfully reduced polygon counts to approximately a quarter of their old values while retaining the shape of the model (50,000 Polygons) Once we got further along the development process we realized that most RTS games limit themselves to <5000 polygons in order to accommodate hundreds of units potentially being on the screen at the same time. To reduce our models further we used a tool called 3D Coat to put reference points on our model and freehand a convex hull around it that still looked like our original models from a distance. Using this technique we were able to further reduce our models to around 5000 polygons. Figure 2 shows our progress reducing our polygon counts for a single model. Figure 2: Lowering Marine Polygon Counts (a) Initial Model (500,000) (b) 3ds Max (120,000) (c) 3D Coat (4200) The first step of the animation process is to take the models created and attach them to a skeleton so they exhibit lifelike motion, this process is known as rigging. During this process extra joints are added in areas that experience more bending in order to reduce deformation. In addition, constraints are added on most joints to ensure they bend the correct way and inverse kinematics can be used to made animating easier. All of the rigging was done in Maya and Figure 3 shows the end result of rigging a model. Even though there is no computer player, AI was still a significant portion of our project. One thing that we did differently than most mainstream Real Time Strategy games is that individual units are not build. Instead, you build squads consisting of one to six units. Players cannot directly interact with the units, and instead interact with the squads. Figure 5: AI Hierarchy All major AI decisions are made on the squad level, and then the squad decides how to implement those orders. It then passes on to the unit level a set of sub orders that will best implement the squad order. A MVC design pattern in combination with a Behavior Tree are what the squad uses to make decisions. Figure 6: Model View Controller Design Pattern Figure 7: AI Behavior Tree For path finding, a waypoint grid was overlaid on top of the map, with some waypoints being marked as impassable. An A* path finding algorithm was then used to find the best path, which was then smoothed using a curved non-uniform algorithm to create more realistic movement paths. Figure 8: AI Path Finding After rigging the model the next step before putting it in the game is animating it. Inverse kinematics make this process relatively painless, because it allows an animator to simply place then end of an extremity where he or she wants it and all the bones higher in the hierarchy will move naturally to allow for this position. Figure 4 demonstrates using inverse kinematics to have an elbow bend when a hand is positioned. Lastly, animations today can be created quickly by having the animators set ‘key’ frames they want in their animations and letting the program they are using interpolate the position of their model between each key frame. The challenge with networking in any Real-Time strategy game like Last Resort is that there are potentially hundreds of objects on the screen at once. Perfect synchronization would require sending all of the state information (position, animation state, health, attack damage, range of sight, etc.) for each and every unit across the network. A better solution, however, is to send less information across the network, which can be achieved in several ways. Last Resort uses two optimization methods. First, non-critical information is left unsynchronized, and second, calculated information (movement paths, etc.) is left unsynchronized. The only information sent across the network is the players' commands (Build, Mine, Move, Attack, etc.). All other information (animations, sounds, paths, damage) is decided on the local machine. Last Resort uses Remote Procedure Calls (RPC), which are essentially network messages that invoke a function on a remote computer with given parameters, to send these player commands across the network. The networking functionality in Last Resort is built around the three components pictured below: Network Manager, Network Messenger, and Command List Figure 1: Diagram of Network Manager Interactions Figure 3 : Rig for a Human Model Figure 4: Inverse Kinematics of an Arm Rig Fog of war was implemented using a semitransparent mesh and ray casts. Each unit, during the update cycle, shoots a ray into the mesh to find the triangle that was hit in the mesh. Once the triangle has been located we then find the surrounding triangles and we change their alpha to transparent, creating the “fog” effect. To hide the enemy units from displaying on the screen, when they are in the “fog”, we check during the update cycle if the triangle that they are above is one of the visible triangles to the friendly units. If the triangle is visible then we render the unit. If the triangle is not visible, then we do not render the unit. Figure 9: Fog of War in Debug Mode