Skip to main content
cleanup / image
Source Link
DMGregory
  • 136.3k
  • 22
  • 247
  • 373

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, near and far detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

Screenshot of vision boxes in Splinter Cell Blacklist

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively/progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awarenessperception.

More details about the details of Blacklist's detection scheme can be found in this GDC talk by AI lead Martin Walsh, which is where the image above is from. They're also accessibly summarized in this Game Maker's Toolkit video.

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awareness.

More details about the details of Blacklist's detection scheme can be found in this GDC talk by AI lead Martin Walsh. They're also accessibly summarized in this Game Maker's Toolkit video.

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, near and far detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

Screenshot of vision boxes in Splinter Cell Blacklist

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with shorter range/progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of perception.

More details about the details of Blacklist's detection scheme can be found in this GDC talk by AI lead Martin Walsh, which is where the image above is from. They're also accessibly summarized in this Game Maker's Toolkit video.

Adding links
Source Link
DMGregory
  • 136.3k
  • 22
  • 247
  • 373

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awareness.

More details about the details of Blacklist's detection scheme can be found in this GDC talk by AI lead Martin Walsh. They're also accessibly summarized in this Game Maker's Toolkit video.

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awareness.

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awareness.

More details about the details of Blacklist's detection scheme can be found in this GDC talk by AI lead Martin Walsh. They're also accessibly summarized in this Game Maker's Toolkit video.

Source Link
DMGregory
  • 136.3k
  • 22
  • 247
  • 373

There isn't really a standard - it's going to be dictated by the needs of your gameplay.

For Splinter Cell, determining whether the player (or suspicious evidence) is seen by an AI is the heart of the stealth gameplay. We needed a lot of nuance - consideration of peripheral vision versus direct line of sight, illumination, AI alertness level, movement state, partial occlusion, etc - but we also needed it to be predictable & intuitive enough for players to learn and plan their tactics around.

As recently as Blacklist, our AI used multiple overlapping detection volumes, and designers could fine-tune their sizes, offsets, detection speeds, and tolerance for shadow/occlusion, in order to dial-in the behaviour to just the right difficulty for each case.

These volumes aren't necessarily frustums either - a perspective camera view frustum gets taller and wider in the distance, but in practice people don't really look up very often, and climbing along ceilings to get a drop on guards is one of the thrills of a Splinter Cell game. So capping the detection height (for guards who haven't been alerted to look up) can make for a better play experience.

Typically our AI had a long narrow "search beam" that would detect quite rapidly in a corridor shape directly ahead of them, peripheral volumes to the sides with much shorter range and progressively less sensitive detection, and a small "bump radius" to react to threats in their immediate personal space (which would be missed by a strict frustum-based approach)

I expect you'll need to do some similar case-by-case tuning to find what's right for your project. Try exposing your detection parameters for runtime tweaking if that's supported in your engine, or hot reload them from a configuration file. That way you can play the game, get into a situation where it feels like the AI should / should not see something, then tune the parameters to get that desired result. Repeat until you're happy with their level of awareness.