A new patent filed by Take-Two Interactive in October 2020 sheds light on possible next-gen NPC tech in Grand Theft Auto 6.
The patent itself is immensely technical and describes new advanced methods to improve in-game NPC movement schemes and virtual navigation. The documents are actually pretty illuminating and highlight how NPC systems actually work in Rockstar's games; the NPCs and vehicles move linearly across nodes throughout the game world.
The information is admittedly difficult to decipher, but the main gist seems to be that Take-Two (and by extension, Rockstar Games) wants to find ways to enhance its NPC systems to allow more immersion and realistic interactions. This ranges from how characters move, what they do, how they collide and interact with the game world, and how NPCs drive across huge metropolises. The document specifically focuses on vehicles and strongly indicates that Grand Theft Auto 6 (and other Take-Two games) will have next-level NPC AI, especially when it comes to vehicles.
Pathfinding and subsequent node traversal will be streamlined based on rendered frames, and NPCs will be a lot less dumb. They'll move out of your way during a high-speed chase, for example, and react much more realistically to what you're doing--and what other NPCs are doing--around them.
Another interesting tidbit is the inventors of the patent both work at Rockstar: David Hynd is associated director of technology, and Simon Parr is lead AI programmer at Rockstar Games.
Here's some of the relevant parts of the patent:
A node-based vehicle in conventional video games may make arbitrary decisions at junctions (wandering behavior). These node-based vehicles may not consider certain factors--such as traffic--when determining navigation. For example, some systems rely on low level vehicle avoidance to only have NPCs avoid vehicles and objects directly around it. This cannot account for changing lanes when parking cars, anticipating a road exit, weather conditions, and the like.
Furthermore, conventional systems only provide limited resources for automating NPCs. For example, processing power, memory, and efficiency only allow for a predetermined number of NPC controlled cars in any single instance of a conventional system.
As an additional drawback, conventional systems relied almost entirely on local traffic avoidance for NPCs to avoid collisions. This involves, each frame, checking the local environment for any potential obstructions (vehicles, pedestrians, objects), building up a view of that obstruction from the local vehicle (creating a `front facing` polygon which is a list of points/lines that the vehicle will need to avoid in order to not hit the obstruction), generating information about the road the vehicle is on so they can avoid going off-road into buildings and finally generating and detecting the best steering angle to avoid all the obstructions. This is done every frame for each entity and no knowledge of the previous frame is used. This can result in very late detection of potential issues and no high level knowledge of `this road is blocked;` instead, the system only indicates that there's something in my way to be avoided. Vehicles cannot plan accordingly, for example, if there is any type of road blockage.
In view of the foregoing, a need exists for an improved system for virtual navigation in an effort to overcome the aforementioned obstacles and deficiencies of conventional video game systems.
In yet another embodiment, NPCs can also account for exigent circumstances, such as a high-speed chase. For example, in addition to using local avoidance based on the coarse graph 200, splines can be generated through ambient traffic. In other words, vehicles in the virtual world that are obeying traffic laws are used to generate routes through/around them. A list of ambient traffic in the area can be generated and for each vehicle, information related to the subject NPC is recorded. For example, the space between two vehicles, relative direction of travel, velocity differences, and so on. Based on this information, a route can be plotted towards the final destination.