U.S. Pat. No. 10,258,882

RECORDING COMPANION

AssigneeMICROSOFT TECHNOLOGY LICENSING, LLC

Issue DateFebruary 1, 2018

Patent Arcade analysis Read the full post

U.S. Patent no. 10,258,882: Recording companion

U.S. Patent no. 10,258,882: Recording companion

Issued April 16, 2019 to Microsoft Technology Licensing, LLC
Priority Date March 4, 2014

Summary:
U.S. Patent No. 10,258,882 (the ‘882 Patent) relates to creating recordings of active gameplay of a video game. When viewers are watching a live video broadcast, events may occur that may be of particular interest to the viewers. As such, this invention is directed at solving this problem by allowing for the recording and storage of these gameplay moments. During active gameplay of the video game, the gameplay is continuously and automatically buffered to a temporary storage buffer. During this gameplay the computer gaming device may receive a command to save a segment of the gameplay for later viewing. This can be accomplished without interrupting the gameplay and is saved from the temporary storage buffer to a library for the in-game recording companion.

Abstract:
Active gameplay of a video game on a computer gaming device is overseen by a platform-level in-game recording companion that executes separately from any of a plurality of different video games. During active gameplay of the video game, the active gameplay is continuously and automatically buffered to a temporary storage buffer. During active gameplay the computer gaming device receives a command to save a segment of the active gameplay for subsequent viewing. While displaying gameplay of the currently-executing video game, an interface for the platform-level in-game recording companion is displayed. The segment of the active gameplay is saved from the temporary storage buffer to a library of the platform-level in-game recording companion.

Illustrative Claim:
1. A digital video recording method for video games, the method comprising: on a computer gaming device configured to play a plurality of different video games, overseeing active = gameplay of a video game of the plurality of different video games with a platform-level in-game recording companion that executes separately from any of the plurality of different video games; during active gameplay of the video game, continuously and automatically buffering the active gameplay to a temporary storage buffer of the computer gaming device; during active gameplay of the video game, receiving a command to save a segment of the active gameplay for subsequent viewing; while displaying gameplay of the video game, displaying an interface for the platform-level in-game recording companion; and saving the segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion.

Illustrative Figure

Abstract

Active gameplay of a video game on a computer gaming device is overseen by a platform-level in-game recording companion that executes separately from any of a plurality of different video games. During active gameplay of the video game, the active gameplay is continuously and automatically buffered to a temporary storage buffer. During active gameplay the computer gaming device receives a command to save a segment of the active gameplay for subsequent viewing. While displaying gameplay of the currently-executing video game, an interface for the platform-level in-game recording companion is displayed. The segment of the active gameplay is saved from the temporary storage buffer to a library of the platform-level in-game recording companion.

Description

DETAILED DESCRIPTION In-game recording functionality may be provided for any video game at a platform level of a computer gaming device. For example, during active gameplay of a video game, active gameplay may be buffered to a temporary storage buffer with a platform-level in-game recording companion that is executed separate from any particular video game of the computer gaming device. Upon receipt of a command to save a particular segment of active gameplay, the platform-level in-game recording companion may save the active gameplay segment from the temporary storage buffer to a library of a platform-level in-game recording companion. FIG. 1schematically shows a computer gaming device100according to an implementation of this disclosure. The computer gaming device100is shown in simplified form. The computer gaming device100may take any suitable form including a game console, entertainment computing device, portable gaming device, tablet, laptop, desktop, smartphone, virtual- or augmented-reality device, or other computing device that may be used to execute a video game, live broadcast, and/or other content. The computer gaming device100includes an operating system102configured to manage hardware resources of the computer gaming device. Further, the operating system102may be configured to monitor, oversee, or otherwise manage operation of various software programs, services, and applications running on the computer gaming device100. For example, a video game104may be executed or played on the computer gaming device and the operating system may manage operation of the video game. The video game104may be one of a plurality of different video games that the computer gaming device is configured to play. Furthermore, a platform-level in-game recording companion106A and/or platform-level in-game recording companion106B may be executed on the computer gaming device. In particular, the platform-level in-game recording companion may be executed separately from the video game104and any other video games of the plurality of different video games configured to be played ...

DETAILED DESCRIPTION

In-game recording functionality may be provided for any video game at a platform level of a computer gaming device. For example, during active gameplay of a video game, active gameplay may be buffered to a temporary storage buffer with a platform-level in-game recording companion that is executed separate from any particular video game of the computer gaming device. Upon receipt of a command to save a particular segment of active gameplay, the platform-level in-game recording companion may save the active gameplay segment from the temporary storage buffer to a library of a platform-level in-game recording companion.

FIG. 1schematically shows a computer gaming device100according to an implementation of this disclosure. The computer gaming device100is shown in simplified form. The computer gaming device100may take any suitable form including a game console, entertainment computing device, portable gaming device, tablet, laptop, desktop, smartphone, virtual- or augmented-reality device, or other computing device that may be used to execute a video game, live broadcast, and/or other content.

The computer gaming device100includes an operating system102configured to manage hardware resources of the computer gaming device. Further, the operating system102may be configured to monitor, oversee, or otherwise manage operation of various software programs, services, and applications running on the computer gaming device100. For example, a video game104may be executed or played on the computer gaming device and the operating system may manage operation of the video game. The video game104may be one of a plurality of different video games that the computer gaming device is configured to play.

Furthermore, a platform-level in-game recording companion106A and/or platform-level in-game recording companion106B may be executed on the computer gaming device. In particular, the platform-level in-game recording companion may be executed separately from the video game104and any other video games of the plurality of different video games configured to be played on the computer gaming device100. In one example, a platform-level in-game recording companion106A is an application that runs while the video game is being played. In another example, a platform-level in-game recording companion106B is a part of the operating system. It will be noted that the platform-level in-game recording companion may also be used to record video content other than video games, such as a live broadcast or any other content being displayed.

The platform-level in-game recording companion may be configured to oversee any currently playing video game or other content on the computer gaming device100and provide in-game recording functionality for that currently playing video game. In particular, since the platform-level in-game recording companion is executed at the platform level and not within any particular video game, the in-game recording functionality provided by the platform-level in-game recording companion may be the same for every video game played on the computer gaming device. Moreover, video games that are compatible with the computer gaming device may be made less complex relative to video games with built-in game specific in-game recording functionality. Game developers need not design game-specific in-game recording experiences. Rather, every video game may interface with the platform-level in-game recording companion for in-game recording functionality without additional effort from the developer. Such in-game recording functionality will be discussed in further detail below with reference to an in-game digital video recording method300shown inFIG. 3, in-game digital video recording method400shown inFIG. 4, and in-game digital video recording method500shown inFIG. 5.

FIG. 2schematically shows a graphics and audio pipeline200according to an implementation of this disclosure. The graphics and audio pipeline may be implemented in the computer gaming device100shown inFIG. 1, or various stages of the graphics pipeline may be distributed throughout two or more different computing devices (e.g., a local gaming machine and a remote computing system running a gaming service). The graphics and audio pipeline200enables platform-level in-game recording functionality.

The graphics and audio pipeline200comprises one or more central processing units (CPU)202, one or more graphics processing and audio processing units (GPU/APU)204, an audio/video encoder206, a random access memory (RAM) device208including a ring buffer210, an audio/video decoder212, an input/output interface device214, a storage device216, and a display218. It will be understood that the graphics and audio pipeline may include additional and/or alternative processing logic and other hardware blocks without departing from the scope of this disclosure. It will be further understood that the graphics processing and audio processing at GPU/APU204may be performed at a single unified processing circuit as illustrated or at separate processing circuits.

In one example, the CPU202fetches game instructions from the video game104. The CPU202decodes the instructions into game data including drawing instructions for rendering video imagery of gameplay and sound instructions for producing audio data to be provided to speakers to produce the gameplay audio of the video game of the video game104. The CPU202passes the drawing instructions, sound instructions, and other game data to the GPU/APU204. The GPU/APU204executes the drawing instructions to produce rendered image frames of the video game104and the sound instructions to produce the audio data to be provided to the speakers to produce the gameplay audio of the video game104(collectively referred to as active gameplay data). For example, the image frames rendered by the GPU/APU204may be uncompressed image data (e.g., every pixel in an image frame has full color definition). Similarly, the audio data produced by GPU/APU204may be uncompressed. The GPU/APU204sends the active gameplay data for display on the display218.

Additionally, the GPU/APU204sends the rendered image frames and the audio data of the active gameplay to the audio/video encoder206to be compressed or otherwise encoded. For example, the rendered image frames and the audio data may be encoded into MPEG-4, H.264, or another suitable audio/visual format. Alternatively, the rendered image frames and the audio data may be encoded separately in a suitable video only format and a suitable audio only format. The audio/video encoder206sends the encoded active gameplay data to the RAM device208for buffering in the ring buffer210. The RAM device208may include any suitable type of memory including SDRAM (e.g., DDR, GDDR, etc.). Moreover, the RAM device208may be any suitable size.

In some implementations, the CPU and the GPU/APU may be combined in a single package. In some implementations, the CPU or the GPU/APU may be omitted. In some implementations, the RAM device may be integrated with the CPU and/or GPU/APU in a system-on-chip (SOC) configuration.

The ring buffer210may be automatically and continuously loaded with active gameplay data from the audio/video encoder206until filled. Once the ring buffer210is filled, an oldest portion of active gameplay data may be overwritten with new active gameplay data. Accordingly, a most recently played portion of active gameplay from a currently playing video game may be automatically buffered in the ring buffer210in a continuous fashion. The ring buffer210may be any suitable size. In one example, the ring buffer210has a capacity of five minutes worth of active gameplay data. In other words, the ring buffer continuously buffers the most recent five minutes of gameplay of the currently playing video game.

It will be understood that the ring buffer is merely one example of a storage mechanism, and the active gameplay data may be stored in the RAM device in any suitable fashion. For example, the active gameplay may be buffered in any suitable storage mechanism that abides by the first-in-first-out (FIFO) principle. In other words, any storage device that may function as a temporary storage buffer for the active gameplay data.

When an in-game recording is requested during active gameplay of the currently playing video game, an active gameplay segment from the most recently played portion of active gameplay buffered in the ring buffer210may be saved to a library of a platform-level in-game recording companion on the storage device216via I/O214. A variety of different active gameplay segments can be saved to the storage device216in this manner. Thus, the variety of different active gameplay segments may be simultaneously stored by the storage device216. Any of the different active gameplay segments may be independently accessed at a later time (e.g., for viewing, editing, sharing, etc.). When a particular active gameplay segment is accessed for viewing, the information pertaining to that segment may be provided from the storage device216to an audio/video decoder212. The audio/video decoder212decodes the encoded gameplay data of the saved active gameplay segment into uncompressed image data and sends the uncompressed image data directly to the display218. The display218displays the saved active gameplay segment. Additionally, the audio/video decoder212decodes the encoded gameplay data of the saved active gameplay segment into uncompressed audio data which may be sent to the speakers to produce the gameplay audio of the active gameplay segment.

It will be understood that the saved active gameplay segment may include any suitable amount of the active gameplay data stored in the ring buffer. For example, the saved gameplay segment may include some or all of the active gameplay data stored in the ring buffer. In one example, a default length of the saved active gameplay segment is thirty seconds. In some implementations, a length of the saved active gameplay segment used for in-game recording may be adjusted via the platform-level in-game recording companion. In some implementations, a length of the saved gameplay segment used for in-game recording may be adjusted on a per video game basis, or a per gameplay scenario basis, for example according to a parameter specified by the video game via an application programming interface (API).

It will be understood that because the gameplay data that is buffered to the ring buffer is rendered by the GPU/APU prior to being buffered, the buffered active gameplay segment may be saved directly from the ring buffer without having to be reprocessed by the GPU/APU. Such an approach facilitates saving of a segment of active gameplay on demand with little or no performance loss. On the other hand, if game data that is not rendered is buffered to the ring buffer, then the game data may be rendered by the GPU/APU before being saved.

In some implementations, the audio/video encoder206and the audio/video decoder212may be incorporated with the RAM device208, and the GPU/APU204sends the rendered image data and the audio data corresponding to the active gameplay directly to the RAM device. Correspondingly, in such implementations, the RAM device208may send a buffered gameplay segment directly to the display218for immediate viewing.

Encoded active gameplay data may be sent to the storage device216for long term storage based on a variety of different triggers. For example, the active gameplay data may be sent to the storage device216in response to user selection of a particular gameplay segment of the currently playing video game that the user desires to view again at a later time. In another example, the video game may automatically select a particular gameplay segment for storage in the storage device216. For example, a gameplay segment may be automatically selected for storage in a video game DVR responsive to a user achieving a new high score, accomplishing a game-determined feat (e.g., defeating AI boss, defeating multi-player opponent, encountering multi-player friend, etc.), or otherwise having an in-game experience that the video game deems worthy.

For storage of active gameplay data, the audio/video encoder206and/or the RAM208sends the encoded active gameplay data to the input/output interface device214, and the input/output interface device214performs a write operation to write the encoded active gameplay data to the storage device216. Correspondingly, for retrieval of active gameplay data, the input/output interface device214performs a read operation on the storage device216to retrieve the encoded active gameplay data. It will be understood that the storage device may take any suitable form including an internal or external hard disk drive, solid state drive, network accessible storage service, and/or other suitable storage device(s).

In some implementations, the audio/video encoder206and the audio/video decoder212may be incorporated with the RAM device208or otherwise bypassed, and the GPU/APU204may send the rendered image data and the audio data corresponding to the active gameplay directly to the input/output interface device214for storage on the storage device216.

It is to be understood that by automatically and continuously buffering the active gameplay of the currently playing video game to the RAM device, the most recently played portion of active gameplay from the currently playing video game may be available for storage. In particular, since the active gameplay may be stored directly from the RAM device without any additional read/write operations, the active gameplay may be stored with little or no performance loss.

FIG. 3shows an in-game digital video recording method300for video games and/or other content according to an implementation of this disclosure. For example, the in-game digital video recording method300may be performed with the platform-level in-game recording companion of the computer gaming device100shown inFIG. 1.

At302, the method300may include overseeing active gameplay of a video game with a platform-level in-game recording companion that executes separately from the video game. For example, the platform-level in-game recording companion may monitor game events to recognize when an in-game recording is to be stored.

At304, the method300may include continuously and automatically buffering the active gameplay to a temporary storage buffer of the computer gaming device. For example, rendered image frames and audio data of active gameplay may be continuously encoded and stored in a ring buffer of a RAM device while the currently playing video game is being played.

At306, the method300may optionally include receiving from a camera image data temporally corresponding to a segment of active gameplay. For example, image data of a user playing the game may be captured by a camera peripheral connected to the computer gaming device. The image data may then be provided to the computer gaming device and buffered with and/or incorporated with the temporally corresponding active gameplay in the storage buffer.

At308, the method300may optionally include receiving from a microphone audio data temporally corresponding to a segment of active gameplay. For example, audio data of a user playing the game may be captured by a microphone peripheral connected to the computer gaming device. The audio data may then be provided to the computer gaming device and may be buffered with and/or incorporated with the temporally corresponding active gameplay in the temporary storage buffer.

At310, the method300may optionally include buffering the image data from306and the audio data from308to the temporary storage buffer.

At312, the method300may include, during active gameplay of the video game, determining whether a command to save an active gameplay segment for subsequent viewing is received. In some cases, receiving the command to save a segment of the active gameplay may include recognition of a programmatically defined trigger event within the active gameplay of the video game. For example, during active gameplay of a soccer simulation videogame, the platform-level in-game recording companion may recognize the scoring of a goal as a command to save the active gameplay including the scoring of the goal.

In other cases, receiving the command to save the segment of active gameplay may include receiving the command via a microphone. In other cases, receiving the command to save the segment of active gameplay may include receiving a command sent from a companion computing device via a network connection. It will be understood that the command to save the segment of active gameplay may also include gesture recognition, controller input, interaction with an interface of the platform-level in-game recording companion, or any other suitable interaction with the computer gaming device. If it is determined that a command to save the segment of active gameplay is given, then the method300moves to314or316. Otherwise, the method300returns to304.

Optionally, at314, the method300may include editing the active gameplay segment prior to saving the gameplay segment to the library of the platform-level in-game recording companion. For example, a start time, a stop time, and a length of the saved active gameplay segment may be specified by the user via transport controls provided by the platform-level in-game recording companion. The user may be provided with instant editing options, including options for combining the active gameplay segment with other recorded content, including voice-over, video-over, etc. The other recorded content may be recorded simultaneously with or separately from the active gameplay segment. Combining the other recorded content may include overlaying the content on top of a portion of the active gameplay segment, such as placing a combined video-over recording on top of a portion of the active gameplay segment, or decreasing the volume of the active gameplay in order to better hear a combined voice-over. Additionally, editing may include inputting metadata to associate with the active gameplay segment, such as a title, annotations, tags, etc. It will be understood that the platform-level in-game recording companion may provide any suitable transport or editing controls for editing the active gameplay segment.

At316, the method300may include, without interrupting active gameplay of the videogame, saving a segment of active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion. In some implementations, the gameplay segment may be saved directly from the ring buffer of the RAM device to storage associated with the library of the platform-level in-game recording companion. For example, a portion of a hard disk drive may be allocated for the platform-level in-game recording companion, and the segment of active gameplay may be written to the hard disk drive for long term storage and playback at a later time. Further, in some implementations, the segment of active gameplay may be sent to a remote computing machine via a service for sharing the gameplay clip with other users.

In some cases, the segment of active gameplay saved may include active gameplay that precedes the command (e.g., save a predetermined or selected duration of gameplay leading up to the command). In other cases, the segment of active gameplay saved may include active gameplay that follows the command. In the cases above, the duration of the segment of active gameplay saved may be configurable to include any suitable duration not to exceed the capacity of the temporary storage buffer. Furthermore, the platform-level in-game recording companion may be configured such that the active gameplay segment includes gameplay preceding and following the command. For example, upon receipt of the command to save the segment of active gameplay, the platform-level in-game recording companion may save a segment including thirty seconds of active gameplay preceding the command and 30 seconds of active gameplay following the command.

In other implementations, the duration of the segment of active gameplay may be defined by the receipt of multiple commands denoting a beginning and an end of the segment of active gameplay. These implementations will be discussed in detail with reference toFIG. 4.

FIG. 4shows an in-game digital video recording method400for video games according to an implementation of this disclosure. For example, the in-game digital video recording method400may be performed with the platform-level in-game recording companion of the computer gaming device100shown inFIG. 1

At402, the method400may include overseeing active gameplay of a video game with a platform-level in-game recording companion that executes separately from the video game. For example, the platform-level in-game recording companion may monitor game events to recognize when an in-game segment of active gameplay is to be saved.

At404, the method400may include continuously and automatically buffering the active gameplay to a temporary storage buffer of the computer gaming device. For example, rendered image frames and audio data of active gameplay may be continuously encoded and stored in a ring buffer of a RAM device while the currently playing video game is being played.

At406, the method400may include, during active gameplay of the video game, determining whether a first command indicating a beginning of the segment of the active gameplay is received. In some cases, the command may be generated through determining that a programmatically defined trigger event within the video game has occurred as discussed above. In some cases, the command indicating the beginning of a segment of active gameplay may be given via user input, by voice command, gesture, or controller input, for example. Additionally, the platform-level in-game recording companion may display an interface including executable objects configured to effectuate issuance of the command in a split screen layout with the active gameplay as shown inFIGS. 6-9. The interface of the platform-level in-game recording companion may also be sent to a companion computing device over a network as shown inFIG. 13.

If it is determined that a command indicating the beginning of a segment of active gameplay is received, then the method400moves to408. Otherwise, the method400returns to402.

At408, the method400may include, during active gameplay of the videogame, determining whether a second command indicating an end point of the segment of the active gameplay is received. As discussed above for the command to indicate the beginning of the segment of active gameplay, the command may be received via a programmatically defined trigger within active gameplay, voice command, user interaction with the interface of the platform-level in-game recording companion, or other suitable mechanism. If it is determined that a command indicating the end point of the segment of active gameplay is received, then the method400moves to410or412. Otherwise, the method400returns to408.

Optionally, at410, the method400may include editing the active gameplay segment prior to saving the gameplay segment to the library of the platform-level in-game recording companion as discussed above.

At412, the method400includes, without interrupting active gameplay of the videogame, saving the segment of active gameplay, as defined by the commands indicating the beginning and end point of the segment of active gameplay, from the temporary storage buffer to a library of the platform-level in-game recording companion. It will be understood that saving the segment of active gameplay from the temporary storage buffer to the library of the platform-level in-game recording companion may be performed as described above.

FIG. 5shows an in-game digital video recording method500for video games and/or other content according to an implementation of this disclosure. For example, the in-game digital video recording method500may be performed with the platform-level in-game recording companion of the computer gaming device100shown inFIG. 1.

At502, the method500may include overseeing active gameplay of a video game with a platform-level in-game recording companion that executes separately from the video game. For example, the platform-level in-game recording companion may monitor game events to recognize when an in-game recording is to be stored.

At504, the method500may include continuously and automatically buffering the active gameplay to a temporary storage buffer of the computer gaming device. For example, rendered image frames and audio data of active gameplay may be continuously encoded and stored in a ring buffer of a RAM device while the currently playing video game is being played.

At506, the method500may include, during active gameplay of the videogame, determining whether a command to save a segment of active gameplay for subsequent viewing is received. It will be understood that the platform-level in-game recording companion may receive the command to save the segment of active gameplay as described above forFIG. 3. If it is determined that command to save the segment of active gameplay is given, then the method500moves to508or510. Otherwise, the method500returns to504.

Optionally, at508, the method500may include editing the active gameplay segment prior to saving the gameplay segment to the library of the platform-level in-game recording companion as described above.

At510, the method500may include, without interrupting active gameplay of the videogame, saving a segment of active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion. It will be understood that saving the segment of active gameplay from the temporary storage buffer to the library of the platform-level in-game recording companion may be performed as described above.

After saving the segment of the active gameplay to the library of the platform-level in-game recording companion, the method500may continue active gameplay of the video game. As such, the method500returns to502. As such, without interrupting active gameplay of the videogame, a second, third, fourth, etc. segment of active gameplay may be saved from the temporary storage buffer to a library of the platform-level in-game recording companion. Each subsequent segment may be saved independent of the other segments. Further, two or more segments may be saved without active gameplay ever being interrupted.

The above described methods facilitate in-game recording of any currently playing video game playing on a computer gaming device. In particular, because the method is performed with the platform-level in-game recording companion, the in-game recording functionality works for any video game that is compatible with the computer gaming device. Moreover, the in-game recording experience is the same for any of the video games. For example, the platform-level in-game recording companion may have the same visual appearance and controls regardless of the particular game with which it is being used.

FIGS. 6-9show an interface for the platform-level in-game recording companion602displayed alongside a currently playing video game604. As shown in the illustrated examples, the platform-level in-game recording companion is snapped to the right of the currently playing video game. However, other arrangements may be implemented. In the examples ofFIGS. 6-9, the currently playing video game604may be continuously executed with full game action. The currently playing video game need not pause, stop, or be switched away from or put out of focus, in order to effectuate in-game recording.

FIG. 6shows that the interface for the platform-level in-game recording companion602includes various executable objects606,608, and610for managing in-game recordings. For example, executable stop object606may be configured to effectuate issuance of a command indicating an endpoint of a segment of active gameplay. Executable start object608may be configured to effectuate issuance of a command indicating a beginning of a segment of active gameplay. Executable display object610may be configured to effectuate viewing a library of the platform-level in-game recording companion where previously saved segments of active gameplay may be accessed.

Executable edit object616may be configured to effectuate issuance of a command to edit the segment of the active gameplay. Upon execution of edit object616, platform-level in-game recording companion602may provide additional editing functionality to the user. For example, platform-level in-game recording companion602may provide the user options to select a duration of active gameplay within the segment of active gameplay to remove from the segment of active gameplay, thus clipping extraneous active gameplay from the segment of active gameplay. Furthermore, platform-level in-game recording companion602may allow the user to combine two or more different segments of active gameplay. Platform-level in-game recording companion602may allow the user to remove or suppress audio and/or image data corresponding to the segment of active gameplay (e.g., received locally from a camera/microphone). Further, additional audio data and/or chat log data from social interactions temporally corresponding to the segment of active gameplay may be removed. Thus, the editing functionality provided by platform-level in-game recording companion may be employed by the user to protect the privacy of the user. Such editing functionality may be accessible via Executable edit object616, another user interface element, voice command, a game controller button, and/or any other suitable mechanism.

The platform-level in-game recording companion602may be configured to save segments of active gameplay without obscuring the currently playing video game. The platform-level in-game recording companion may be simultaneously displayed in a snapped configuration, as illustrated. Alternatively, the platform-level in-game recording companion may be executed without a GUI component. In either example, commands may be provided to the companion via voice, gesture, controller, or any other suitable mechanism while the game is unobscured.

FIG. 7shows another aspect of in-game recording companion602. Flexible options are provided to set a recording length duration. For example, executable objects612A,612B,612C,612D, and612E each may be configured to effectuate setting a duration of the segment of active gameplay saved by the platform-level in-game recording companion. These options may be provided when a user selects a command to end a clip, for example. Thumbnails optionally may be provided from the buffer containing the most recently played portions of active gameplay to show what was occurring at the beginning of each of the listed intervals. For example, the executable objects may take the form of thumbnails, or thumbnails may be displayed adjacent to the executable objects. The platform-level in-game recording companion may provide executable objects specifying a duration of active gameplay preceding the receipt of a command to save the segment, a duration of active gameplay following the receipt of the command to save the segment, or both preceding and following such that receipt of the command to save the segment occurs within the saved segment of active gameplay.

FIGS. 8 and 9show other aspects of the interface of the platform-level in-game recording companion602. Specifically,FIG. 8shows a view in which a user is provided an executable start object608to indicate the beginning of a segment of active gameplay from the currently playing video game604as it is rendered. Additionally, interface602may include a timer614providing an elapsed time since beginning the segment. In addition to providing an indication of a duration of a current segment of active gameplay, timer614may also provide a direct or indirect indication of the remaining capacity of the temporary storage buffer.FIG. 9shows options for indicating the endpoint of the segment of active gameplay from the currently playing video game604. As discussed above forFIG. 8, timer614indicates a current duration of the segment of active gameplay to be saved. Executable stop object606may be actuated effectuating a command indicating the endpoint of the segment of active gameplay.

The various options provided inFIGS. 6-9, as well as other in-game recording options, may be controlled remotely using a companion experience through a linked companion device.

FIGS. 10 and 11show an example scenario where a natural user input (NUI) interface system1000monitors an environment including a human subject1002. The NUI interface system is positioned above a display1004. The NUI interface system1000and the display1004are operatively coupled with a computer gaming device (not shown). The NUI interface system1000may be configured to image the environment as well as detect audio in the environment.

FIG. 10shows an example scenario where the human subject1002performs a waving gesture1006with his arm1008. The waving gesture1006may be recognized by the NUI interface system1000as a command that triggers the saving of a segment of active gameplay of a currently playing video game. The NUI interface system1000sends an indication of the gesture to the platform-level in-game recording companion. In response to receiving the indication, the platform-level in-game recording companion saves the segment of active gameplay from the most recently played portion of rendered gameplay or indicates a beginning or end point of the segment of active gameplay as the gameplay is rendered. The waving gesture is not limiting. Other gestures may be used.

FIG. 11shows an example scenario where the human subject1002speaks a phrase1100(e.g., “RECORD THAT!!!”, “START RECORD!!!”, or “STOP RECORD!!!”). The spoken phrase may be recognized by the NUI interface system1000as a voice command that triggers the saving of a segment of active gameplay from a currently playing video game. The NUI interface system1000sends an indication of the command to the platform-level in-game recording companion. In response to receiving the indication, the platform-level in-game recording companion saves the segment of active gameplay from the most recently played portion of active gameplay or indicates the beginning or endpoint of the segment of active gameplay as the gameplay is rendered.

FIG. 12shows a scenario where a hand1200of a user is holding a gamepad controller1202. The gamepad controller1202may be operatively coupled with the computer gaming device (not shown). The user may provide input to the gamepad controller1202that indicates a command to save a segment of active gameplay. The gamepad controller1102sends an indication of the command to the platform-level in-game recording companion. In response to receiving the indication, the platform-level in-game recording companion saves the segment of active from the most recently played portion of active gameplay or indicates the beginning or endpoint of the segment of active gameplay as the gameplay is rendered. For example, the user input may include a particular combination of buttons to trigger saving the segment of active gameplay. In some implementations, the combination of buttons may be the same for any of the different video games.

FIG. 13illustrates a companion computing device1306usable to remotely effectuate issuance of a command to save a segment of active gameplay from a currently playing video game and/or save segments of other types of content. As shown, computer gaming device1302displays active gameplay1304of a basketball video game, and companion computing device1306displays a platform-level in-game recording companion user interface1308. In such an implementation, the computer gaming device may send the user interface1308for the platform-level in-game recording companion to companion computing device1306via the network. User interface1308may include an executable stop object1312configured to effectuate a command indicating an endpoint of the segment of active gameplay, an executable start object1314configured to indicate a beginning of the segment of active gameplay, and an executable display object1316configured to effectuate viewing of the library of the platform-level in-game recording companion. Additionally, user interface1308may include timer1310or any other suitable executable objects that may be used to control the saving, displaying, editing, etc. of a segment of active gameplay via the platform-level in-game recording companion user interface1308. The companion computing device1306may be used in conjunction with computer gaming device1302to provide a secondary gaming experience that enhances gameplay of a video game. Non-limiting examples of companion computing device1306include a portable gaming device, a mobile computing device, a tablet computer, and a smartphone.

In one example, the user provides input to the companion computing device that indicates a command to the platform-level in-game recording companion. The user interface1308is sent from the computer gaming device to the companion computing device1306. An executable object is actuated effectuating issuance of a command to save a segment of active gameplay (e.g., directly via wired or wireless communication, or via a network accessible service in communication with the companion computing device1306and computer gaming device1302. In response to receiving the command, the platform-level in-game recording companion saves the segment of active gameplay from the most recently played portion of active gameplay. Alternately, start executable object1314or stop executable object1312may be actuated effectuating the issuance of commands indicating the beginning or endpoint of the segment of active gameplay as the gameplay is rendered. In another example, the user provides input to the companion computing device1306that indicates a command to the platform-level in-game recording companion. For example, a user actuates executable display object1316to effectuate viewing the library of the platform-level in-game recording companion in order to view a recently saved segment of active gameplay. The command is sent from the companion computing device1306to the platform-level in-game recording companion on the computer gaming device via the in-game recording companion user interface1308. In response to receiving the command, the platform-level in-game recording companion commands the computer gaming device and/or the companion computing device to display the library of the platform-level in-game recording companion. The user may then select the segment of active gameplay to be viewed. It will be noted that while the companion computing device1306is shown being used in conjunction with a computer gaming system playing a video game, the companion computing device may be used with other computing systems and may be used with types of video content other than video games.

In some implementations, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.

FIG. 14schematically shows a non-limiting implementation of a computer gaming system1400that can enact one or more of the methods and processes described above. Computer gaming system1400is shown in simplified form. Computer gaming system1400may take the form of one or more console game systems, personal computers, server computers, tablet computers, home-entertainment computers, network computing devices, gaming devices, mobile computing devices, mobile communication devices (e.g., smart phone), and/or other computing devices. For example, computer gaming system1400may take the form of computer gaming device100shown inFIG. 1or companion computing device1306shown inFIG. 13.

Computer gaming system1400includes a logic machine1402and a storage machine1404. Computer gaming system1400may optionally include a display subsystem1406, a communication subsystem1408, and/or other components not shown inFIG. 14.

Logic machine1402includes one or more physical devices configured to execute instructions. For example, the logic machine may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.

The logic machine may include one or more processors configured to execute software instructions. Additionally or alternatively, the logic machine may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors of the logic machine may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic machine optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic machine may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.

Storage machine1404includes one or more physical devices configured to hold instructions executable by the logic machine to implement the methods and processes described herein. When such methods and processes are implemented, the state of storage machine1404may be transformed—e.g., to hold different data.

Storage machine1404may include removable and/or built-in devices. Storage machine1404may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Ray Disc, etc.), semiconductor memory (e.g., RAM, EPROM, EEPROM, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others. Storage machine1404may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.

It will be appreciated that storage machine1404includes one or more physical devices. However, aspects of the instructions described herein alternatively may be propagated by a communication medium (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for a finite duration.

Aspects of logic machine1402and storage machine1404may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe an aspect of computer gaming system1400implemented to perform a particular function. In some cases, a module, program, or engine may be instantiated via logic machine1402executing instructions held by storage machine1404. For example, the platform-level in-game recording companion may be instantiated via logic machine1402executing instructions held by storage machine1404. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

When included, display subsystem1406may be used to present a visual representation of data held by storage machine1404. This visual representation may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the storage machine, and thus transform the state of the storage machine, the state of display subsystem1406may likewise be transformed to visually represent changes in the underlying data. Display subsystem1406may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic machine1402and/or storage machine1404in a shared enclosure, or such display devices may be peripheral display devices.

When included, input subsystem1408may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some embodiments, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity.

When included, communication subsystem1408may be configured to communicatively couple computer gaming system1400with one or more other computing devices. Communication subsystem1408may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network. In some implementations, the communication subsystem may allow computer gaming system1400to send and/or receive messages to and/or from other devices via a network such as the Internet.

As noted above, an NUI interface system1401may be configured to provide user input to computer gaming system1400. To this end, the NUI interface system includes a logic machine1410and a storage machine1412. To detect the user input, the NUI interface system receives low-level input (i.e., signal) from an array of sensory components, which may include one or more visible light cameras1414, depth cameras1416, and microphones1418. Other example NUI componentry may include one or more infrared or stereoscopic cameras; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity. In some implementations, the NUI interface system may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller.

The NUI interface system processes the low-level input from the sensory components to yield an actionable, high-level input to computer gaming system1400. Such action may generate corresponding text-based user input or other high-level commands, which are received in computer gaming system1400. In some implementations, NUI interface system and sensory componentry may be integrated together, at least in part. In other implementations, the NUI interface system may be integrated with the computer gaming system and receive low-level input from peripheral sensory components.

An example provides, on a computer gaming system, a digital video recording method for video games. The method may be executed on a computer gaming device configured to play a plurality of different video games. The method comprising overseeing active gameplay of a video game of the plurality of different video games with a platform-level in-game recording companion that executes separately from any of the plurality of different video games. During active gameplay of the video game, the active gameplay is continuously and automatically buffered to a temporary storage buffer of the computer gaming device. The method further comprises, during active gameplay of the video game, receiving a command to save a segment of the active gameplay for subsequent viewing and, without interrupting active gameplay of the video game, saving the segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion. In such an example, receiving the command may additionally or alternatively include receiving a voice command via a microphone. In such an example, receiving the command may additionally or optionally include receiving a command sent from a companion computing device via a network. In such an example, receiving the command may additionally or alternatively include recognizing a programmatically defined trigger event within the active gameplay. In such an example, the segment of active gameplay may additionally or alternatively precede the command. In such an example, the segment of active gameplay may additionally or alternatively follow the command. In such an example, receiving the command may additionally or alternatively include receiving a first command indicating a beginning of the segment of the active gameplay and receiving a second command indicating an end point of the segment of the active gameplay. In such an example, the method may additionally or alternatively comprise displaying an interface for the platform-level in-game recording companion in a split screen layout with the active gameplay. The interface may additionally or alternatively include an executable start object configured to effectuate issuance of a command indicating a beginning of the segment of the active gameplay, an executable stop object configured to effectuate issuance of a command indicating an end point of the segment of the active gameplay, and an executable display object configured to effectuate viewing of the library of the platform-level in-game recording companion. In such an example, the method may additionally or alternatively comprise sending an interface for the platform-level in-game recording companion to a companion computing device, where the interface includes an executable start object configured to effectuate issuance of a command indicating a beginning of the segment of the active gameplay, an executable stop object configured to effectuate issuance of a command indicating an end point of the segment of the active gameplay, and an executable display object configured to effectuate viewing of the library of the platform-level in-game recording companion. In such an example, buffering the active gameplay may additionally or alternatively include receiving from a camera image data of a user temporally corresponding to the segment of active gameplay, receiving from a microphone audio data of a user temporally corresponding to the segment of active gameplay, and buffering the image data and the audio data to the temporary storage buffer. In such an example, the method may additionally or alternatively comprise upon saving a first segment of the active gameplay to the library of the platform-level in-game recording companion and during active gameplay, receiving a second command to save a second segment of the active gameplay for subsequent viewing, where the second segment of active gameplay includes active gameplay not included in the first segment of active gameplay, and without any interruption in active gameplay of the video game from the first segment of active gameplay to the second segment of active gameplay, saving the second segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion independent of the first segment. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

Another example provides, on a computer gaming system, a digital video recording method for video games. The method may be executed on a computer gaming device configured to play a plurality of different video games. The method comprising overseeing active gameplay of a video game of the plurality of different video games with a platform-level in-game recording companion that executes separately from any of the plurality of different video games. During active gameplay of the video game, the active gameplay is continuously and automatically buffered to a temporary storage buffer of a random access memory device of the computer gaming device. The method further comprises, during active gameplay of the video game, receiving a command to save a segment of the active gameplay for subsequent viewing where the command is sent from a companion computing device via a network and, without interrupting active gameplay of the video game, saving the segment of the active gameplay from the temporary storage buffer of the random access memory device to a library of the platform-level in-game recording companion. In such an example, the segment of active gameplay may additionally or alternatively precede the command. In such an example, the segment of active gameplay may additionally or alternatively follow the command. In such an example, the method may additionally or alternatively comprise sending an interface for the platform-level in-game recording companion to a companion computing device, where the interface includes an executable start object configured to effectuate issuance of a command indicating a beginning of the segment of the active gameplay, an executable stop object configured to effectuate issuance of a command indicating an end point of the segment of the active gameplay, and an executable display object configured to effectuate viewing of the library of the platform-level in-game recording companion. In such an example, receiving the command may additionally or alternatively include receiving a first command indicating a beginning of the segment of the active gameplay and receiving a second command indicating an end point of the segment of the active gameplay. In such an example, buffering the active gameplay may additionally or alternatively include receiving from a camera image data of a user temporally corresponding to the segment of active gameplay, receiving from a microphone audio data of a user temporally corresponding to the segment of active gameplay, and buffering the image data and the audio data to the temporary storage buffer. In such an example, the method may additionally or alternatively comprise upon saving a first segment of the active gameplay to the library of the platform-level in-game recording companion and during active gameplay, receiving a second command to save a second segment of the active gameplay for subsequent viewing, where the second segment of active gameplay includes active gameplay not included in the first segment of active gameplay, and without any interruption in active gameplay of the video game from the first segment of active gameplay to the second segment of active gameplay, saving the second segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion independent of the first segment. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

In another example, a storage machine holding instructions executable by a logic machine to instantiate a platform-level in-game recording companion that executes separately from any of a plurality of different video games is provided. The platform-level in-game recording companion is configured to oversee active gameplay of a video game of the plurality of different video games and, during active gameplay of the video game, continuously and automatically buffer the active gameplay to a temporary storage buffer of a random access memory device. During active gameplay of the video game, receive from a microphone a voice command to save a segment of the active gameplay for subsequent viewing, and without interrupting active gameplay of the video game, save the segment of the active gameplay from the temporary storage buffer of the random access memory device to a library of the platform-level in-game recording companion. In such an example, the storage machine may additionally or alternatively hold instructions where the platform-level in-game recording companion is further configured to, upon saving a first segment of the active gameplay from the temporary storage buffer of the random access memory storage device to the library of the platform-level in-game recording companion and during active gameplay, receive a second voice command to save a second segment of the active gameplay for subsequent viewing, where the second segment of active gameplay includes active gameplay not included in the first segment of active gameplay, and without any interruption in active gameplay of the video game from the first segment of active gameplay to the second segment of active gameplay, save the second segment of the active gameplay from the temporary storage buffer of the random access memory storage device to a library of the platform-level in-game recording companion independent of the first segment. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific implementations or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.

The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.

Claims

  1. A digital video recording method for video games, the method comprising: on a computer gaming device configured to play a plurality of different video games, overseeing active gameplay of a video game of the plurality of different video games with a platform-level in-game recording companion that executes separately from any of the plurality of different video games;during active gameplay of the video game, continuously and automatically buffering the active gameplay to a temporary storage buffer of the computer gaming device;during active gameplay of the video game, receiving a command to save a segment of the active gameplay for subsequent viewing;while displaying gameplay of the video game, displaying an interface for the platform-level in-game recording companion;and saving the segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion.
  1. The method of claim 1 , wherein the command to save the segment of the active gameplay is received from a game controller.
  2. The method of claim 1 , wherein the platform-level in-game recording companion is an application that runs while the video game is played.
  3. The method of claim 1 , wherein the platform-level in-game recording companion is part of an operating system.
  4. The method of claim 1 , wherein the active gameplay is buffered in the temporary storage buffer after rendering.
  5. The method of claim 1 , wherein the active gameplay is buffered in the temporary storage buffer before rendering.
  6. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable start object configured to effectuate issuance of a command indicating a beginning of the segment of the active gameplay.
  7. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable stop object configured to effectuate issuance of a command indicating an end point of the segment of the active gameplay.
  8. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable edit object configured to effectuate issuance of a command to edit the segment of the active gameplay.
  9. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable display object configured to effectuate viewing of the library of the platform-level in-game recording companion.
  10. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable display object specifying a duration of active gameplay preceding the receipt of a command to save the segment.
  11. The method of claim 1 , wherein the interface for the platform-level in-game recording companion includes an executable display object specifying a duration of active gameplay following the receipt of the command to save the segment.
  12. The method of claim 1 , wherein the interface for the platform-level in-game recording companion is displayed to a side of the active gameplay.
  13. The method of claim 1 , wherein gameplay of the video game is displayed with full game action while the interface for the platform-level in-game recording companion is displayed.
  14. The method of claim 1 , wherein gameplay of the video game is displayed without pausing while the interface for the platform-level in-game recording companion is displayed.
  15. The method of claim 1 , wherein gameplay of the video game is displayed without stopping while the interface for the platform-level in-game recording companion is displayed.
  16. The method of claim 1 , wherein gameplay of the video game is displayed in focus while the interface for the platform-level in-game recording companion is displayed.
  17. A video game console system, comprising: a game controller including one or more buttons;and a computer gaming device including: a temporary storage buffer;a long term storage device;an input subsystem configured to recognize activation of each of the one or more buttons of the game controller;and a logic machine configured to separately execute a plurality of different video games and a platform-level in-game recording companion, wherein the platform-level in-game recording companion is configured to: continuously and automatically buffer, to the temporary storage buffer, a video of active gameplay of a currently-executing video game of the plurality of different video games;display an interface for the platform-level in-game recording companion while displaying gameplay of the currently-executing video game;and save, from the temporary storage buffer to the long term storage device, a segment of the video of active gameplay of the currently-executing video game responsive to the input subsystem recognizing activation of a button of the one or more buttons of the game controller.
  18. The video game console system of claim 18 , wherein the interface for the platform-level in-game recording companion is displayed responsive to activation of a button of the one or more buttons of the game controller.
  19. A computing device, comprising: a logic machine;and a storage machine holding instructions executable by the logic machine to instantiate a platform-level in-game recording companion that executes separately from any of a plurality of different video games, the platform-level in-game recording companion configured to: oversee active gameplay of a currently-executing video game of the plurality of different video games;during active gameplay of the currently-executing video game, continuously and automatically buffer the active gameplay to a temporary storage buffer;during active gameplay of the currently-executing video game, receive a command to save a segment of the active gameplay for subsequent viewing;while displaying gameplay of the currently-executing video game, display an interface for the platform-level in-game recording companion;and save the segment of the active gameplay from the temporary storage buffer to a library of the platform-level in-game recording companion.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.