Simulation / Modeling / Design

Coffee Break Series: NVIDIA Highlights

NVIDIA Highlights enables automatic video capture of key moments, clutch kills, and match-winning plays, ensuring gamers’ best gaming moments are always saved without requiring player intervention. NVIDIA Highlights automatically captures high quality video clips of those dramatic moments.

Many of the world’s biggest games – Fortnite, Call of Duty World War II, PLAYERUNKNOWN’S Battlegrounds, and more – have integrated NVIDIA Highlights. Why? Because people love posting videos of their gaming victories on social media… and Highlights makes the process of capturing killer clips automatic.

In this new coffee break series, Bryan Dudash – Senior Manager, Developer Technology – will show you how easy it is to add NVIDIA Highlights into your games. And in the interest of keeping your exploration of Ansel and Highlights manageable, we’ve made sure you can take in every session in ten minutes or less.

Part 1: What is NVIDIA Highlights? (8:58 min)

NVIDIA Highlights allows players to rest easy, knowing that their best in-game moments will be captured automatically. It’s been a great new tool for empowering players to tell their own in-game stories to friends. Bryan dives into the details, shows the technology in action, and provides best practices for creating tags.

Five Key Things from Part 1:

  • Highlights captures video automatically based on game events. The technology leverages the GeForce Experience overlay.
  • It’s easy to upload to YouTube, Facebook, Imgur, or Weibo.
  • Captures can be exported as MP4s or animated GIFs.
  • Highlights is even easier than Ansel to integrate. There are only half a dozen calls, with no impact to the render pipeline. You just basically tell highlights, “capture video now”.
  • A good Highlight is an event that users will want to save; something they will take pride in, find funny, or want to share.

Part 2: Highlights API Calls (9:10 min)

Bryan walks you through the API calls used in NVIDIA Highlights, and offers a series of best practice tips for integration.

Five Key Things from Part 2:

  • NVGSDK_Create (): Initializes the SDK interface with the requested highlight scopes.
  • Note that there are more results than than “on success”: NVGSDK_SUCCESS, NVGSDK_IPC_SUCCESS_OLD_SDK, NVGSDK_IPC_SUCCESS_OLD_GFE
  • Because there are more than one success, do *not* test result == 0, but rather test result >= 0 for success.
  • NVGSDK_ConfigureAsync(): Provides a list of all possible Highlights to GFE. You define all highlights your game captures, so be sure to define interesting highlights!
  • You can provide localization for the names of your highlights with this call. This is not required and a NULL table is acceptable, in which case the highlight ID will serve as the name (beware special characters in the IDs!)
  • NVGSDK_OpenGroupAsync(): Opens a group container to hold the highlights. Capturing any highlights requires at least one open group.
  • NVGSDK_SetVideoHighlightAsnc(): The bread and butter of the SDK. This call tells GFE to capture a video highlight in a group using the start and end deltas passed in as parameters. It’s best to keep the length of video highlights to running buffer no longer than 90 seconds for effective social media sharing.
  • NVGSDK_SetScreenshotHighlightsAsync(): Tells GFE to save ascreenshot highlight in a group.

Part 3: Highlights: The Player Experience (3:59 min)

The Five Most Important Takeaways from Part 3:

  • The Highlights button will appear on the interface at the end of a session, allowing players an easy way to access their new clips.
  • Play is never interrupted by the need to manage clips or recording.
  • Players can choose to export as a video or as a GIF.
  • The upload process is made clear to the player, and resolves quickly.
  • Checking on Highlights clips after a heated session becomes a satisfying part of the play loop for many players.

Part 4: Highlights: Final API Calls and Best Practices (8:27 min)

There are a few final API calls that are important to consider; Bryan guides you through them. He concludes with a set of best-practice tips for giving players an optimal NVIDIA Highlights experience in-game.

Five Key Things from Part 4:

  • NVGSDK_CloseGroupAsync() closes up a highlight group, potentially deleting any unsaved highlights.
  • NVGSDK_GetNumberOfHighlightsAsync() retrieves a number of highlights in a group. You should decide if a Summary button should be shown to the user.
  • No need for a Highlights enable option in game settings. The permission dialog created on initial API call allows user to control feature state. Settings in the Share UI allows users to control individual highlights.
  • If something can be accomplished regularly by an average player, it is not a highlight. Find situations users would be proud to show off!
  • Summary should be accessible after a match or level. Limit invocation to when user has plenty of time to interact with the highlights.
  • Do not automatically show it, provide a button/control to let the user invoke.

Part 5: Ansel & Highlights GDC Q&A (4:17 min)

GDC audience members ask Bryan a series of questions about NVIDIA Highlights and Ansel integration.

Questions Asked and Answered in Q&A:

  • Does the developer of the game define the game tags for the Highlights?
  • Is there a standardization of tags in the game?
  • Is there a limit to the number of highlights that can be defined by the developer?
  • Can you use Highlights as a pure developer tool?
  • Can you customize the UI?
  • Can you bypass the NVIDIA UI with your own?
  • Does it have to be an engine plugin for Unreal?
  • Do you have plans for stereoscopic images in Ansel?
  • Is there a VR viewer available for Ansel?
  • Are they plans to provide access to NVFBC on the GeForce?

We hope you’ve gotten value from the this installment in NVIDIA’s Coffee Break series!

To learn more about NVIDIA Highlights, check out the NVIDIA Highlights developer page. You can also check the full GDC video if you want to view it in a single sitting.

Discuss (1)

Tags