It is now evident that Uncharted 4 is by far one of the best critically and commercially well received games of 2016. Scoring the highest on Metacritic for the current generation of consoles with 94/100 as well as it being expected to break almost all records for a console release commercially, Uncharted 4 is definitely how Naughty Dog would want to end this legendary series. Now, with the embargo uplifted and PlayStation owners have had a go on the game, we have the mind behind the ‘working on AI for single-player buddies and multiplayer sidekicks, as well as some gameplay logic’, Mr. Allen Chou publicly share insights into the creation of this masterpiece.
Posted on his blog and later on a reddit thread, he simplifies the many intricacies within the working of his assignment. A few snippets into his blog wherein he explains his design of the ‘Buddy Follow’ and ‘Buddy Lead’ are as follows:
The buddy follow system was derived from The Last of Us.
The basic idea is that buddies pick positions around the player to follow. These potential positions are fanned out from the player, and must satisfy the following linear path clearance tests: player to position, position to a forward-projected position, forward-projected position to the player.
Climbing is something present in Uncharted 4 that is not in The Last of Us. To incorporate climbing into the follow system, the climb follow post selector was added, that picks climb posts for buddies to move to when the player is climbing.
However it was found that simply telling buddies to use regular follow logic when the player is not climbing, and telling them to use climb posts when the player is climbing, is not enough. If the player quickly switch between climbing and non-climbing states, buddies would oscillate pretty badly between the two states. So some hysteresis was added, where the buddies only switch states when the player has switched states and moved far enough while maintaining in that state. In general, hysteresis is a good idea to avoid behavioral flickering.
In some scenarios in the game, buddies had to lead the way for the player. The lead system from The Last of Us was ported over and updated, where designers used splines to mark down the general paths we wanted buddies to follow while leading the player.
In case of multiple lead paths through a level, designers would place multiple splines and turned them on and off via script.
The player’s position is projected onto the spline, and a lead reference point is placed ahead by a distance adjustable by designers. When this lead reference point passes a spline control point marked as a wait point, the buddy would go to the next wait point. If the player backtracks, the buddy would only backtrack when the lead reference point gets too far away from the furthest wait point passed during last advancement. This, again, is hysteresis added to avoid behavioral flickering.
Dynamic movement speed was also incorporated into the lead system. “Speed planes” are placed along the spline, based on the distance between the buddy and the player along the spline. There are three motion types NPCs can move in: walk, run, and sprint. Depending on which speed plane the player hits, the buddy picks an appropriate motion type to maintain distance away from the player. Designers can turn on and off speed planes as they see fit. Also, the buddy’s locomotion animation speed is slightly scaled up or down based on the player’s distance to minimize abrupt movement speed change when switching motion types.
There are but many points such as ‘The Post System’, ‘Buddy Cover Share’, Medic Sidekicks’, and Sleath Grass’ to new a few, covered in his main blog, ‘A Brain Dump on What I Worked on for Uncharted 4’ which you can check out right here.
(Uncharted 4: A Thief’s End is an action-adventure third-person shooter platform video game developed by Naughty Dog and published by Sony Interactive Entertainment for the PlayStation 4. It is the fourth and final installment in the Uncharted series starring Nathan Drake,as well as the last in the series to be developed by Naughty Dog. The game was released worldwide on May 10, 2016.)