1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

Pages

Sunday, November 25, 2018

Red Dead Redemption 2 Recap

I worked on Red Dead Redemption 2 since milestone 1 in June of 2012. It has been 6.5 years and it's surreal to see the game has finally been shipped and well received by critics. Here are some of the features I made major contributions to during the course of the project.

The embedded videos have been resized to fit the Blogger post so they may not be as high quality as the actual video on YouTube itself.  Compared to the full YouTube videos these embeds have start and end times appropriate for quickly explaining the features.

Human Body Looting

Red Dead Redemption 2 features realistic and seamless dead body looting that lifts up the corpse slightly and picks at appropriate spots (waist, chest, etc) to get items.  We had lots of challenges to deal with related to ragdolls, slopes, and custom animation implementations to get such a feature to work.  Support for fallback swipes uses a generic asynchronous helper which does probes and route checks.





Animal Skinning

One of the most well received features I worked on is the animal skinning.  Compared to the previous entry in the series animal skinning in this game is seamless, gritty, and realistic.  Very small animals (e.g. rats) can be put straight into your satchel.  Slightly larger animals like rabbits need to be skinned with a pelt you put away like so.  Doing this seamlessly presented many challenges dealing with dynamic terrain, obstacles, target poses, slopes, and foot sliding.



Medium sized animals like deer have a carriable pelt after the skinning that you can put onto your horse.  We also had to support this in first person which presented some challenges with cameras and forced us to deliver on a high fidelity for such a feature that lets the player get this close to the action.




For the very large animals you can only get a large pelt and we do allow fade transitions to speed it along but the entries into it are still seamless.



Hogtie

A major tool for bounty hunting, missions, and ambient fun is the ability to hogtie (tie up) a character to carry them around without killing them.  Consistent with other improvements from the first Red Dead Redemption the hogtie, cut free, pickup, drop, stow, and unstow actions are seamless.  Compared to the other carriables like dead humans and objects hogtied characters are alive and thus support directional idles for various situations like being in shallow water or gun shots whizzing by.





Lasso

I spent a good deal of time getting the lasso working in a new codebase.  The basic blend trees, casting out, and reaction behaviors.  We have a fully physically simulated rope for the lasso in Redemption 2 so I'm really happy with the quality of it.




Carrying

You can pickup, drop, throw, stow, and unstow a lot of different things in Red Dead Redemption 2.  This presented complicated problems related to IK, reservations, mover fixups on sloped surfaces, and syncing it in multiplayer.  The final product supports pickup actions with humans (dead, knocked out, hogtied, dead and hogtied), animals (dead), and objects (moneybags, pelts, etc).  Fallbacks are supported for messy situations such as the corpse being under a wagon.

Another challenge we had to deal with was seamless transitions to and from cutscenes to carrying gameplay (see below).



Plant Picking

As part of our collection and looting mechanics we also have plant picking which features separate prompts for eating and storing in the player's satchel.  Similar to the other interactions we don't have camera cuts like in the first Red Dead Redemption and it's all seamless.  The player can walk away and continue this action with an upperbody performance when appropriate.




If you have time you can watch a video of all the herbs you can pick below.





Vehicle Locks

A minor but fun ambient feature in Red Dead Redemption 2 involves saving prisoners from the back of wagons and looting coaches with locks on the back.  To avoid making noise you can sometimes use a lockbreaker item to do it silently.  I worked on the basic vehicle extension for this which would spawn and attach the right lock object models and correctly sync this to the vehicle door state when broken.




Scenario Script Interface (Ambient AI)

Our scenario system in Red Dead Redemption 2 is used to give believable schedules and behaviors to NPCs in our world.  Typically we have points that are placed by designers and saved out into a binary file.  The script interface I added allowed scripters to add, remove, and modify scenario points on the fly which was very handy for missions and ambient scripts.

Volume Editor

We have an in-house tool that allows designers to specify volumes in their scripts to be used for queries and triggers.  I provided some support for this editor early in development to make it easier to use and add some features they needed.

Horse Saddlebag Searching

A relatively minor but still fun feature allows the player to loot the horse saddlebags of horses not owned by the player or the gang.



Dead Horse Saddlebag Searching

Searching a dead horse saddlebag is quite a bit different than our other dead interactions because we only animate the saddlebag itself.  This presented a very tricky penetration and animation problem which required a convex hull, swept circle, a static frame pose, and a lot of IK to alleviate.




Damage Tracking

Part of the challenge with hunting in Red Dead Redemption 2 is not just finding, killing, and skinning animals but retrieving high quality pelts and corpses.  This means the way the animal is killed matters in terms of where they are shot, the weapon used, and the ammo used.  From a programming perspective this meant we had to classify damage for an animal and then correlate that damage to the item received based on that damage quality.




Other

Minor contributions to early dueling prototypes, weapon prototypes, loot tables, blocking areas, ransacking, etc.

Saturday, September 22, 2018

Almost done

I've been working on this project for over 6 years and I'm happy to say it's set to ship in less than 40 days!