the gym: where the incredible hulk goes to train bryan brandt lead gameplay programmer...

24
The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer [email protected] Kevin Coughlan Technical Director [email protected]

Upload: irene-marcy

Post on 28-Mar-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 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

The Gym:Where The Incredible Hulk Goes To Train

Bryan BrandtLead Gameplay

[email protected]

Kevin CoughlanTechnical [email protected]

Page 2: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

What’s This All About?

One tool, one system for: Character mechanics Enemy behaviour Mission scripting

Intended Audience: Gameplay & Tools Programmers Technical Artists & Animators Designers & Scripters

Page 3: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Session Overview

The Incredible Hulk: Ultimate Destruction

The Gym Demos and Details Successes and Pitfalls Conclusion

Page 4: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Introductions:Radical

Entertainmentwww.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)

Page 5: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

The Incredible Hulk: Ultimate Destruction GameRankings: 85.2% Very little overtime!

~24 months of development ~35 people

Critical success with no death march

< IHUD video >

Page 6: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

The Challenge

Character mechanics 150 different moves for Hulk alone

Enemy behaviour 18 enemy types

Mission scripting 25+ story missions 40 challenge missions

Page 7: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Our Solution: The Gym

Game logic editor

Page 8: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

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

Page 9: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

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

Page 10: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Demo #1: Adding an attack

Conditions

Tracks

collision

attacks

buttonPress( Punch )

animation( right_hook )

1

Page 11: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Components of a Fight Tree Branches Conditions Tracks

Page 12: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Branches

Branches are typically Banks Nodes

Hulk’s motion tree: 750+ banks, 1600+ nodes

Page 13: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

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

Page 14: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

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

Page 15: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

How Does It Work?

Querying1. 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.

Page 16: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Demo #2 – Combo

attacks

Conditions

Tracks

collision

buttonPress( Punch )

animation( uppercut )

1

2

opportunity( )

2

animation( right_hook )

Page 17: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

AI Tree

Goal: Scripted, state-based enemy behaviour

Sample decisions: Pursue target if too far away Engage target when in range Attack target when it’s my turn

Solution: Use existing fight tree system

Page 18: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Scenario Tree

Goal: Event-driven mission scripting

What’s a mission? Free roaming 25+ Game missions 40 Challenge missions

What’s 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!

Page 19: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

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

ExecutionRun each node concurrently

Page 20: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Demo #3: Scenario Tree

Conditions

Tracks

event( Prop - Destroyed )

lua( “x = x + 1

hud_Message( x )” )

event_PropType( bus )

Page 21: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Successes

Cross-disciplinary tool Ease of iteration Fast prototyping Build on what you’ve got!

Page 22: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Pitfalls

Multi-user issues Instability Communication between trees UI bloat

Page 23: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Conclusion

One tool, one system for: Character mechanics Enemy behaviour Mission scripting

We couldn’t have made IHUD without it!

Page 24: The Gym: Where The Incredible Hulk Goes To Train Bryan Brandt Lead Gameplay Programmer bbrandt@radical.ca Kevin Coughlan Technical Director kcoughlan@radical.ca

Questions?

Bryan [email protected]

Kevin [email protected]

a

Also check out:

Harnessing Hulk: Controls, Motion, Gameplay!Eric Holmes, Bryan Brandt

Thursday, 5:30pm — 6:30pm