Download presentation
Presentation is loading. Please wait.
Published byIrene Marcy Modified over 10 years ago
1
The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca
2
Whats This All About? One tool, one system for: Character mechanics Enemy behaviour Mission scripting Intended Audience: Gameplay & Tools Programmers Technical Artists & Animators Designers & Scripters
3
Session Overview The Incredible Hulk: Ultimate Destruction The Gym Demos and Details Successes and Pitfalls Conclusion
4
Introductions: Radical Entertainment www.radical.ca Founded in 1991, 25+ titles published, 230+ employees, based in Vancouver, BC, Canada Acquired in March 2005 by Vivendi Universal Games Recent hits: Simpsons Road Rage The Hulk Simpsons Hit and Run Crash: Tag Team Racing The Incredible Hulk: Ultimate Destruction (IHUD) Scarface (coming in 2006)
5
The Incredible Hulk: Ultimate Destruction GameRankings: 85.2% Very little overtime! ~24 months of development ~35 people Critical success with no death march
6
The Challenge Character mechanics 150 different moves for Hulk alone Enemy behaviour 18 enemy types Mission scripting 25+ story missions 40 challenge missions
7
Our Solution: The Gym Game logic editor
8
Fight Trees Fight trees are decision trees and state machines Types of fight trees in IHUD Motion tree : character mechanics AI tree : enemy behavior Scenario tree :mission scripting
9
Motion Tree Character mechanics Locomotion Simple Attacks Picking up objects of various types Attacking with objects Weaponizing Grapples Reactions to getting hit One motion tree for each character type 20 different motion trees in IHUD
10
Demo #1: Adding an attack Conditions Tracks collision attacks buttonPress( Punch ) animation( right_hook ) 1
11
Components of a Fight Tree Branches Conditions Tracks
12
Branches Branches are typically Banks Nodes Hulks motion tree: 750+ banks, 1600+ nodes
13
Conditions Fight Trees are decision trees Each branch contains a list of conditions Conditions evaluate to true or false 200+ types of conditions Button pressed / held / released Prop is being held Randomizer Evaluate a Lua expression Operators: and, or, not
14
Tracks Fight Trees are state machines Nodes represent a state Nodes contain a list of tracks Each track describes an action to be performed 230+ types of tracks Play an animation Play a sound Display a special effect Test for collision Conditionally transition to another node Run a Lua script
15
How Does It Work? Querying Evaluate tree conditions depth-first for a node that will become the next state. Execution If a node is found, run it! Node execution stops when either: All its tracks are finished running. A new node has been queued for execution.
16
Demo #2 – Combo attacks Conditions Tracks collision buttonPress( Punch ) animation( uppercut ) 1 2 opportunity( ) 2 animation( right_hook )
17
AI Tree Goal: Scripted, state-based enemy behaviour Sample decisions: Pursue target if too far away Engage target when in range Attack target when its my turn Solution: Use existing fight tree system
18
Scenario Tree Goal: Event-driven mission scripting Whats a mission? Free roaming 25+ Game missions 40 Challenge missions Whats an event? actor death, object pick-up / drop / destruction, trigger volume enter / exit, path waypoint traversal, etc. Solution: Use existing fight tree system But with minor tweaks!
19
How Did We Make It Work? Querying When an event is generated, query the tree for all nodes that match the event conditions. Often more than one event per frame Execution Run each node concurrently
20
Demo #3: Scenario Tree Conditions Tracks event( Prop - Destroyed ) lua( x = x + 1 hud_Message( x ) ) event_PropType( bus )
21
Successes Cross-disciplinary tool Ease of iteration Fast prototyping Build on what youve got!
22
Pitfalls Multi-user issues Instability Communication between trees UI bloat
23
Conclusion One tool, one system for: Character mechanics Enemy behaviour Mission scripting We couldnt have made IHUD without it!
24
Questions? Bryan Brandt bbrandt@radical.ca Kevin Coughlan kcoughlan@radical.ca Also check out: Harnessing Hulk: Controls, Motion, Gameplay! Eric Holmes, Bryan Brandt Thursday, 5:30pm 6:30pm
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.