1 / 24

The Gym: Where The Incredible Hulk Goes To Train

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:

mateja
Télécharger la présentation

The Gym: Where The Incredible Hulk Goes To Train

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 < IHUD video >

  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 attacks buttonPress( Punch ) 1 Tracks animation( right_hook ) collision

  11. Components of a Fight Tree • Branches • Conditions • Tracks

  12. Branches • Branches are typically • Banks • Nodes • Hulk’s 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. 1 2 2 Demo #2 – Combo Conditions attacks buttonPress( Punch ) Tracks animation( uppercut ) animation( right_hook ) collision opportunity( )

  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 it’s my turn • Solution: Use existing fight tree system

  18. 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!

  19. How Did We Make It Work? • Querying • When an event is generated, query the tree for allnodes that match the event conditions. • Often more than one event per frame • Execution Run each node concurrently

  20. Demo #3: Scenario Tree Conditions event( Prop - Destroyed ) event_PropType( bus ) Tracks lua( “x = x + 1 hud_Message( x )” )

  21. Successes • Cross-disciplinary tool • Ease of iteration • Fast prototyping • Build on what you’ve 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 couldn’t have made IHUD without it!

  24. Bryan Brandt bbrandt@radical.ca Kevin Coughlan kcoughlan@radical.ca Questions? Also check out: Harnessing Hulk: Controls, Motion, Gameplay! Eric Holmes, Bryan Brandt Thursday, 5:30pm — 6:30pm

More Related