U.S. Pat. No. 9,526,995

Video Game Recording and Playback with Visual Display of Game Controller Manipulation

AssigneeSONY INTERACTIVE ENTERTAINMENT AMERICA LLC

Issue DateAugust 31, 2007

Patent Arcade analysis Read the full post

U.S. Patent no. 9,526,995: Video game recording and playback with visual display of game controller manipulation

U.S. Patent no. 9,526,995: Video game recording and playback with visual display of game controller manipulation

Issued December 27, 2016 to Sony Interactive Entertainment America LLC
Priority Date November 22, 2006

Summary:
U.S. Patent No. 9,526,995 (the ‘995 Patent) relates to recording gameplay. Specifically the recording of game data also includes a visual display of game controller manipulation. The invention allows for spectators or other players to view a recording of gameplay and at the same time view a recording of how the controller is used during the same sequence of actions. As video games increase in complexity, the ‘995 Patent allows newcomers and other competitors to learn from the gameplay of other players to further improve their own gameplay and understanding of a video game. The gameplay can be either recorded locally or sent via a network device to a recording computer. A second recording may be created while the first is still being viewed by a user and thus a comprehensive record of gameplay can be created. This advancement will allow for higher levels of competition in games as players are able to learn from and reproduce complex maneuvers in video games.

Abstract:
A system and method for recording and playback of game data is provided. A recording engine may be configured to record and playback game data, including broadcast data received over a network. The recording engine may be included in a game console or at other network-enabled devices, such as a desktop computer. The recording engine may be configured to record the game data in a buffer memory, an archival memory, and to assist in the display of the game (e.g., interacting with a graphics processing unit). Game data stored in the buffer memory may later be transferred to the archival memory. Playback commands may be operable when a portion of the game broadcast has been recorded. When a playback command is received, the game recording engine may access a portion of the game data from buffer or archival memory and displays a selected portion and may be subject to certain seek functions (e.g., fast forward and rewind). Spectators may be able to independently archive and playback game data using local memory.

Illustrative Claim:
1. A system for network playback of a video game, the system comprising: a participant client computing device associated with at least one participant playing a video game, the participant client computing device coupled to a network, the participant client computing device including: a recording engine that receives game data generated by the at least one participant playing the video game, the game data including controller manipulation data corresponding to a physical domain manipulation of a game controller coupled to the participant client computing device, the controller manipulation data generated during participant interaction with the video game, and a memory coupled to the recording engine that stores the game data received by the recording engine and corresponding meta-data to identify different portions within the same game data; and a spectator client computing device coupled to the network, the spectator client computing device including a processor and a memory storing executable instructions, wherein execution of the instructions by the processor: generates a user interface that receives playback commands from a spectator associated with the spectator client computing device, transmits the playback commands over the network, wherein the playback commands include: an indication to play back a spectator-selected portion of the game data stored in the memory of the participant client computing device, wherein the spectator-selected portion of the game data is selected based on user input via a menu associated with the spectator client computing device, the user input corresponding with the meta-data included in the game data stored in the memory of the participant client computing device, and wherein the spectator-selected portion of the game data is a section of the stored game data that is shorter than the full length of the stored game data, and an indication to edit the spectator-selected portion of game data, wherein editing includes introducing into the spectator-selected portion of game data at least one of advertising, captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture, displays the spectator-selected portion of the game data on the spectator client computing device and one or more other spectator client computing devices coupled to the same network; generates a textual interface that facilitates communication between a spectator of the spectator client computing device and one or more other spectators viewing the spectator-selected portion of game data, and generates the menu that provides a plurality of options including searching other stored game data via the meta-data and sharing the spectator-selected portion of game data with one or more other the one or more other spectators.

Illustrative Figure

Abstract

A system and method for recording and playback of game data is provided. A recording engine may be configured to record and playback game data, including broadcast data received over a network. The recording engine may be included in a game console or at other network-enabled devices, such as a desktop computer. The recording engine may be configured to record the game data in a buffer memory, an archival memory, and to assist in the display of the game (e.g., interacting with a graphics processing unit). Game data stored in the buffer memory may later be transferred to the archival memory. Playback commands may be operable when a portion of the game broadcast has been recorded. When a playback command is received, the game recording engine may access a portion of the game data from buffer or archival memory and displays a selected portion and may be subject to certain seek functions (e.g., fast forward and rewind). Spectators may be able to independently archive and playback game data using local memory.

Description

DETAILED DESCRIPTION FIG. 1illustrates a schematic diagram of an exemplary network gaming architecture for game data recordation and playback according to an embodiment of the present invention. The elements identified inFIG. 1are exemplary and may include various alternatives, equivalents, or derivations thereof. One or more participant clients102may be communicatively coupled to a server108via a communications network106. The participant clients102may include one or more video games104and a recording engine110. Video game104may be built-in (e.g., pre-loaded into memory) to the participant client102or be introduced through a computer-readable medium such as an optical disk or memory card. Video game104may also be obtained over a network as further discussed herein. Video games104may be designed or otherwise capable of network game play. Recording engine110may be built-in to the participant client102or a separate device or part of a separate device coupled to the participant client102either locally or over the network106(e.g., at a game server108or a dedicated game recordation server (not shown)). One or more spectator clients112may be connected to the server108via communications network106. The spectator clients112may include a recording engine110and one or more optional video games104. In some embodiments, components of the recording engine110(e.g., various software modules) may be provided as a part of a particular video game104(e.g., provided on the same machine-readable medium as the game). In a preferred embodiment, however, the recording engine110offers cross-platform and cross-title neutrality (i.e., the engine110is not dedicated to any particular piece of hardware or game title). A module (or application), as referenced in the present application, is to generally be understood as a collection of routines that perform various system-level functions and may be dynamically loaded and unloaded by hardware and device drivers as required. The modular software components described herein may also be incorporated as part of a larger software platform or integrated as part of an application ...

DETAILED DESCRIPTION

FIG. 1illustrates a schematic diagram of an exemplary network gaming architecture for game data recordation and playback according to an embodiment of the present invention. The elements identified inFIG. 1are exemplary and may include various alternatives, equivalents, or derivations thereof.

One or more participant clients102may be communicatively coupled to a server108via a communications network106. The participant clients102may include one or more video games104and a recording engine110. Video game104may be built-in (e.g., pre-loaded into memory) to the participant client102or be introduced through a computer-readable medium such as an optical disk or memory card. Video game104may also be obtained over a network as further discussed herein. Video games104may be designed or otherwise capable of network game play. Recording engine110may be built-in to the participant client102or a separate device or part of a separate device coupled to the participant client102either locally or over the network106(e.g., at a game server108or a dedicated game recordation server (not shown)). One or more spectator clients112may be connected to the server108via communications network106. The spectator clients112may include a recording engine110and one or more optional video games104.

In some embodiments, components of the recording engine110(e.g., various software modules) may be provided as a part of a particular video game104(e.g., provided on the same machine-readable medium as the game). In a preferred embodiment, however, the recording engine110offers cross-platform and cross-title neutrality (i.e., the engine110is not dedicated to any particular piece of hardware or game title). A module (or application), as referenced in the present application, is to generally be understood as a collection of routines that perform various system-level functions and may be dynamically loaded and unloaded by hardware and device drivers as required. The modular software components described herein may also be incorporated as part of a larger software platform or integrated as part of an application specific component.

In some embodiments of the present invention, a user not actively playing a game may be a spectator. That is, the user may be watching others play the particular game. Alternatively, a spectator may become an active participant in a game depending on certain admission requirements of the particular game (e.g., ‘room’ for additional players, skill level requirements, identification requirements, membership in a particular ‘clan,’ hardware and/or network capability requirements, and so forth). In still further embodiments, an active participant may later become a spectator. For example, the user may be killed in the game environment, falls to achieve a particular objective, or ‘taps out’ whereby the particular user voluntarily leaves the environment and another user enters. In that regard, changing from participant to spectator status may be involuntary (in the case of, for example, death of a game character) or voluntary (as may the case with regard to ‘tapping out’).

The participant client102may comprise a game console such as a PlayStation® 3, a laptop computing device, a portable game device such as the PlayStation® Portable, a desktop computing device, a cellular telephone, or any other device capable of executing the video game104and connecting to the network106. In some embodiments, the participant client102may be identified by an identification number such as a client ID or an address mechanism such as an IP address. In other embodiments, a user of the participant client102may ‘sign on’ to a network with a user name and/or password and may be temporarily associated with the participant client102.

The spectator client112may similarly comprise a game console such as a PlayStation® 3, a laptop computing device, a portable game device such as the PlayStation® Portable, a desktop computing device, a cellular telephone, or any other device capable of rendering game data generated by the video game104and connecting to the network106. The spectator client112may, in certain embodiments, not be enabled to act as a participant client102in video game104. For example, the spectator client112may only have or have access to certain software related to the video game104that, while allowing for passive viewing, does not allow for interactive game play. In some embodiments, the spectator client112may be identified by an identification number such as a client ID or an address mechanism such as an IP address. In other embodiments, a user of the spectator client112may ‘sign on’ to a network with a user name and/or password and may be temporarily associated with the spectator client112.

A spectator client112may further be configured with certain ‘chat’ functionality such that users may comment as to game occurrences as they observe the game being player (e.g., ‘great move!’ or ‘did you see that!?!’). Such chat functionality may be introduced through a textual interface (e.g., an instant messenger application) or through voice interaction as may occur through VOIP and a headset/microphone. Chat functionality may be broadcast to all recipients of the game data or unicast or multicast between particular users having a private conversation.

It should be noted that in some embodiments of the present invention, a single game console device (e.g., a PlayStation® 3) may be capable of acting as both a participant client102and a spectator client112. This dual functionality may depend on the presence of particular a video game104or version thereof (e.g., a fully operative version versus a passive viewing version). The particular functionality of a particular device at any given time may also be a result of certain admission requirements of the game104or the network106as may be governed by a central or master game server (e.g., server108). Other rules governing user and device status as a spectator or a client are within the scope of the present invention. Other network connection methodologies and system architectures may be implemented, like those disclosed in commonly owned U.S. patent application Ser. No. 10/059,837 for a “System and Method for Distributing Data between a Telephone Network and an Entertainment Network,” the disclosure of which is incorporated herein by reference.

In some embodiments of the present invention, the server108may include the video game104used in network game play and the participant clients102and the spectator clients112access the video game104on the server108via the network106. The video game104on the server108may be the entire game, a portion of the game, data related to the game or simply a node allowing for the pass though, observation and/or collection of data related to the game as the game is played by users in the game community. The video game104may be similarly organized at various participant clients102(e.g., portions of the game or game data related to the game). Video game104may also be provided through, for example, a third-party content library server. In such an embodiment, the library server may or may not be a part of the playback architecture.

In some embodiments of the present invention, a portal114may also be offered. Portal114may comprise a recording engine110and a game broadcast switch116. The portal114may receive portions of the game data from the participant clients102or from the server108as it communicates with participant clients102. This game data may be unicast, multicast, or broadcast depending upon, for example, the particular transmission point of the game data (e.g., server108versus a participant client102). The spectator clients112may also provide for the delivery of game data to the portal114. For example, a spectator client112may receive game data being generated at participant client102. The spectator client112may find that particular content particularly interesting and subsequently transmit that data to another spectator client112or to the portal114.

It should be noted that each client (both spectator112and participant102) may act as various nodes in a vast network of gaming devices with regard to passing along game data to other nodes in the network for actual use or subsequent transmission to yet another recipient. Similarly, certain game devices as may be used in an embodiment of the present invention may utilize mobile ad-hoc network technology (sometimes referred to as MANET). Ad-hoc network technology, generally, allows for a self-configuring network of mobile routers and hosts to be connected by wireless links that form an arbitrary topology. The routers may randomly organize themselves thus causing the network's wireless topology to change rapidly and, sometimes, unpredictably. Ad-hoc networks may allow for the creating of a network ‘on the fly’ (e.g., two users with portable gaming devices encountering one another), which may operate either in a standalone fashion (e.g., device to device) or may connect to a larger communications network such as the Internet.

The broadcast switch116may be configured to provide a series of commands from a user of the portal114, which may include a video game104, a portion of game data relating to network game104, and an identifier indicating a participant client102or spectator client112(e.g., a source of the game data). The broadcast switch116may then provides for the receipt of the appropriate portion of the game data related to the appropriate game data as generated or passed along by the appropriate participant client102or spectator client112. In this respect the broadcast switch116may offer functionality similar to that of changing a television station wherein the user of the portal114times into the appropriate channel, which in this case may be representative of a game and particular game data as may be generated by a particular user. In some embodiments, the game data identified by the broadcast switch116may actually refer to game data stored in archival memory, either at a client, device or, for example, a dedicated server or other network storage device.

The portal114may be accessed by users via an interface over the network106. For example, the interface may comprise a website providing informational connectivity to the Internet or a secure location accessed via a private network. In some instances, the portal114may be a dedicated computing device (e.g., a kiosk in a computer store advertising a specific game) offering only portal functionality, that is, the user of the portal114may not be able to switch from client to spectator status and may also have limited control over certain game data versus a spectator who could subsequently enter the game environment.

The interface of portal114may indicate, for example, at least one network game104, the number of participants participating in the network game104, the number of spectators watching the network game104, and portions of the game data of the network game104available for broadcast in addition to the locale of those game data portions. For example, a first ‘live’ portion of game data may be accessed from a participant actually playing the game. Another portion of game data (e.g., an archived portion) may be accessed from a spectator. Another archived portion may be accessed from yet another spectator. Still yet a third archived portion may be accessed from, for example, server108or some other central storage archive. Through the use of optional recording engine110, the user of the portal114may also record (locally) a live game feed or record an archived game feed being displayed via, for example, another spectator (e.g., the user of the portal114may be making a local copy of a spectator copy of previous live game data).

Various users in the network (i.e., spectators and participants) may set security credentials as to the access of certain game data. For example, the credentials may identify who may access what portions of what game data and from where. As such, portal114may require certain user credentials (e.g., name and password) in order to gain access to certain game data.

The interface of portal114may further indicate a level in the network game104, whether permission is required to be an active participant or a spectator relative this particular game or user, the skill level or game clan affiliation of the participants, and so forth. The interface of portal114may further include an option to download or upload a portion of game data to be accessed at a later time via other users of the portal114.

It should be understood that the reference to a participant client102, a spectator client112, a portal114, and a server108is merely for the convenience of understanding the present invention. Embodiments of the present invention may be implemented in the context of a peer-to-peer network, a client-server network, an ad hoc network, or within a peer-group (e.g., a specified group of peers). Therefore, in some instances, a client may junction as a server and vice versa depending on the timing and the nature of a data exchange. For example, various clients in a peer-to-peer or ad hoc network may each comprise a portion of a network game104or game data and may send and receive the same. As such, any reference to a client or a server is meant to be inclusive of operations performed by either of the entities unless specified otherwise by a particular limitation in the claims. In some instances, a device with participant/spectator/portal/server functionality may be referred to by the generic moniker, ‘network node’ or ‘computing node.’ In that regard, participant client102, the spectator client112, portal114, and server108may ail be considered network or computing nodes.

The game104may comprise software instructions that may be processed on or by the participant client102or the spectator client112as well as by portal114and that may allow for communication and data exchanges with the other clients, the portal114, or the server108via the network106. The network106may include, for example, the internet. Other proprietary or closed networks may be used either exclusively or in conjunction with the Internet. Certain security protocols (e.g., SSL or VPN) or encryption methodologies may be used to ensure the security of data exchanges over network106, especially if the network106is a publicly accessible network such as the Internet. The network106may include a dedicated game network. The game network may be further dedicated to one video game104or to members of a game lobby or a clan.

Users associated with each of the participant clients102may interact with other users (e.g. other participant clients102) playing the video game104. Accordingly, the users at each of the participant clients102may compete with one another despite not being physically present with one another or sharing a common gaming device or console.

Users associated with each of the spectator clients112may also act as participant clients102, such that these users are able to join a game104as a participant. These users may be able to join the game104depending on factors such as the aforementioned references to skill level and clan, affiliation. These users may additionally be able to leave the network game104and return to spectator status. Alternatively, spectator clients112may have limited capabilities such that the users associated with them may not be able to participate in a game104.

The record and playback process may be implemented by the recording engine110(e.g., recording engine300ofFIG. 3). The recording engine110provides the collective means for a user to save and subsequently view game data independent of when the network game104may be played or data related to the game104may be broadcast. For example, a player or a spectator may be able to pause a displayed game, review portions of the game data, and so forth using game data stored by use of the recording engine110. The operation of the recording engine110with respect to game data and an exemplary implementation within an electronic entertainment system are discussed in greater detail herein.

Referring now toFIG. 2A, a block diagram of one embodiment of an exemplary electronic entertainment system200, such as may constitute participant client102and for playing the game104in accordance with one exemplary embodiment of the invention is shown. The elements identified inFIG. 2Aare exemplary and may include various alternatives, equivalents, or derivations thereof.

The system200may comprise, but is not limited to, a main memory202, a central processing unit (CPU)206, vector processing units VU0204and VU1208, a graphics processing unit (GPU)210, all of which may be coupled via a bus236to an input/output processor (IOP)212. The system200may also comprise an IOP memory214, a controller interface216, a memory card218, a Universal Serial Bus (USB) interface220, and an IEEE 1394 interface222. The system200may further include an operating system read-only memory (OS ROM)224, a sound processing unit (SPU)226, an optical disc control unit228, and a hard disc drive (HDD)230, all of which may be connected via a bus238to IOP212.

Some embodiments of the system200may also include a network adaptor240, which may offer an Ethernet connection242and/or telephony connection244. The system200may be, in one exemplary embodiment, an electronic gaming console; however, the system200(or portions thereof) may also be implemented as a general-purpose computer, a set-top box, a hand-held gaming device, or in a mobile device such as a cellular phone. System200may further include or be coupled to a recording engine as discussed herein. Various other system architectures may be utilized in conjunction with or as an alternative to the system ofFIG. 2Aand remain within the scope of the present invention.

An example of such an architecture is shown inFIG. 2B, which illustrates a portion of an electronic entertainment system250based on a Cell processor252. The elements identified inFIG. 2Bare exemplary and may include various alternatives, equivalents, or derivations thereof. Certain aspects of a computer architecture and high speed processing model utilizing a Cell processor are disclosed in U.S. patent publication number 2002-0138637 for a “Computer Architecture and Software Cells for Broadband Networks,” the disclosure of which is incorporated herein by reference.

Through the use of the aforementioned Cell processor, data and applications may be processed and packaged into uniquely identified and uniformly formatted software cells. The uniformity of structure and unique identification facilitates the processing of applications and data throughout a network of Cell processor equipped computing devices. For example, one computing device may formulate a software cell but can distribute that cell to another device for processing. Thus, the cells may migrate throughout a network for processing on the basis of the availability of processing resources on the network.

The cell processor252, in one exemplary embodiment, comprises a main memory254, a single power processor element (PPE)256and eight synergistic processor elements (SPE)258. The cell processor252may be configured, however, with more than one PPE and any number of SPEs258. Each SPE258comprises a synergistic processor unit (SPU) and a local store (LS).

Memory254, PPE256, and SPEs258may communicate with each other and with an I/O device260over, for example, a ring-type-element interconnect bus (EIB)264coupled to a bus interface controller (BIC). The PPE256and SPEs258may access the EIB264through, bus interface units (BIU). The PPE256and SPEs258may access the main memory254over the EIB264through memory flow controllers (MFC) and memory interface controller (MIC).

Memory254may comprise a program262that implements executable instructions. The instructions may be read from a CD/ROM or other optical disc in CD/DVD reader266coupled to the I/O device260, the CD/ROM or other optical disc being loaded into the reader266. The CD/ROM, too, may comprise a program, executable instructions, or other data274.

In some embodiments of the aforementioned processor, PPE256may be a standard processor capable of stand-alone processing of data and applications. In operation, PPE256may schedule and orchestrate the processing of data and applications by SPEs258and the associated SPU. In one embodiment, the SPU may be a single instruction, multiple data (SIMD) processor. Under the control of PPE256, the SPUs may process data and application in a parallel and independent manner. MIC may control accesses by PPE256SPUs to data and applications in main memory254

Returning toFIG. 2A, which may implement a Cell processor like that described inFIG. 2B, the CPU206, the VU0204, the VU1208, the GPU210, and the IOP212communicate via a system bus236. The CPU206communicates with the main memory202via a dedicated bus234. The VU1208and the GPU210may also communicate with one another via a dedicated bus232. The CPU206executes programs stored in the OS ROM224and the main memory202. The main memory202may contain pre-stored programs and may also contain programs transferred via the IOP212from, a CD-ROM, DVD-ROM, or other optical disc (not shown) using the optical disc control unit228. The IOP212controls data exchanges between the CPU206, the VU0204, the VU1208, the GPU210and other devices of the system200, such as the controller interface216, or from other such systems via the network adaptor240.

The GPU210executes drawing instructions from the CPU206and the VU0204to produce images for display on a display device (not shown). The VU1208transforms objects from three-dimensional coordinates to two-dimensional coordinates, and sends the two-dimensional coordinates to the GPU210. The SPU226executes instructions and processes data to produce sound signals that are output on an audio device (not shown).

A user of the system200may provide instructions via the controller interface216to the CPU206, which may be coupled to a control device comprising a joystick, directional buttons, and/or other control buttons. Certain game data (as discussed in the context ofFIG. 6B, for example) relevant to subsequent playback of game interactions may be generated by the aforementioned manipulation of a controller interface216. Further, the user may instruct the CPU206to store certain game information on the memory card218, which may be removable (e.g., a flash memory or other non-volatile memory card), or may instruct a character in a game to perform some specified action. Other devices may be connected to the system200via the USB interface220and the IEEE 1394 interface222, such as an external hardware device having an increased storage capacity, such as an external hard drive for the archival storage of game data.

Some embodiments of the system200may comprise a network adaptor240. The network adaptor240may provide the hardware functionality necessary for the system200to connect to the network106. The network adaptor240may comprise, for example, a system connector that operates to connect the adaptor240to the system200through an expansion bus connector246. The network adaptor240may also comprise a power connector and data connector to allow for the provisioning of power from the system200to the adaptor240and the exchange of data between the system200and the adaptor240. In some embodiments of the present invention, the network adaptor240may also require the installation of certain software in the system200to allow for identification and connection to a particular IP address and/or dial-up to a particular Internet Service Provider. Software may also provide other functionalities, such as the creation and maintenance of user profiles, in addition to functional interaction between the system200and the network adaptor240.

The network adaptor240may also comprise an Ethernet connection242. Through the Ethernet connection242, a network cable (e.g., a 100 Base-TX or 10-Base T) may be coupled to the network adaptor240for connection to a network106. The network cable may, for example, be communicatively coupled to a DSL or cable modem. The network cable may also be communicatively coupled to, for example, a router via a LAN port; the router may then be coupled to a DSL or cable modem through a WAN port. In further embodiments, the Ethernet connection242may allow for a network cable to be connected to a wireless Ethernet bridge. The wireless Ethernet bridge may be communicatively coupled to a wireless router utilizing, for example, an 802.11x protocol. The wireless router may be further communicatively coupled to a cable or DSL modem.

The network adaptor240may also comprise a telephony connection244. Through the telephony connection244, a standard telephone line with, for example, an RJ-11C telephone connector may be connected to the network adaptor240and a telephone wall jack. In this regard, the network adaptor240may further comprise modem functionality such that the system200may communicate data over the public switched telephone network via the telephony connection244.

Referring now toFIG. 3, a block diagram, of one embodiment of an exemplary recording engine architecture300, such as may be used with a participant client102(FIG. 1) or a spectator client112(FIG. 1), portal114(FIG. 1) and for recording the game104(FIG. 1) and related controller manipulation data in accordance with one embodiment of the invention is shown. The elements identified inFIG. 3are exemplary and may include various alternatives, equivalents, or derivations thereof.

The recording engine300may be disposed within the participant client102or spectator client112, portal114or, alternatively, may be a separate device in a local area network, or coupled to the client102/112or portal114. One or more components or functionalities of the recording engine300may be distributed over the system and/or network architecture like those disclosed inFIGS. 1, 2A, and 2B. The network architecture may be dedicated to network gaming or a public network, such as the internet. For example, the archival memory306accessed by a spectator client112may be located at server108or another dedicated archival server (not shown).

The recording engine architecture300may comprise, but is not limited to, a buffer memory302, a compressor304, an archival memory306, and a decompressor308. The recording engine architecture300ofFIG. 3may be coupled to GPU310. The buffer302may be coupled to both the compressor304and to the GPU310. The compressor304may further be coupled to the archival memory306which may be coupled to the decompressor308. The decompressor308may be further coupled to the GPU310which may produce image data for display on a display312, which may include images of controller device manipulation as discussed in the context ofFIG. 6A, below. Certain data from buffer memory302or archival memory306may be intermediately subject to processing by vector processing units VU0204or VU1208. Additionally, compressor304and decompressor308may be a single CODEC module for the compression/decompression and/or transcoding of data and may be embodied in hardware or part of a software based CODEC scheme.

The buffer302may receive game data from either a network game104being executed on the participant client102or from a server108. The game data may comprise data and drawing instructions received, from, for example, the CPU206or the VU0204. The game data may comprise game104information as well as player instructions. The buffer302may comprise a volatile memory such as random access memory (RAM), and may be configured to store a portion of the game data over a specified period of time. The game data (examples of which are discussed in the context ofFIG. 6B, below) may be stored using a first-in-first-out (FIFO) methodology in which the oldest data in the memory is overwritten with new data as that data is generated. Therefore the buffer302may store a limited portion of the game data. The actual amount of the game data may be adjusted by the user based on the amount of volatile memory available or may be intelligently adjusted based on available system resources.

In one example, the portion of the game data may translate into a game segment 30 minutes long. The game data may be subsequently routed from the buffer302to the GPU310and/or the compressor304depending on the particular disposition of the game data as is discussed herein (e.g., archival, display, broadcast, and so forth).

The compressor304may receive game data from the buffer302and compresses the game data. The compressor304may additionally be configured to convert the game data to another data format prior to compression. After compression, the compressed game data may be delivered to the archival memory306as may occur over a bus. The game data may be compressed prior to archival storage in order to conserve memory space using a compression algorithm such as MPEG, MPEG-2, MPEG-4, or H.264. Other data compression algorithms may be used in accordance with the present invention and will be apparent to one skilled in the art.

The archival memory306may receive and store the compressed game data. When a user wishes to play back a selected portion of the game data, a portion of the compressed game data may be delivered to decompressor308, which may occur over a bus. As noted above, the decompressor306may be part of a single compression/decompression module (CODEC). The archival memory306may comprise a non-volatile memory, such as random access memory (RAM), large enough to store significant portions of the compressed game data. The user may additionally expand archival memory306by, for example, adding memory or connecting the recording device to external storage, such as a hard drive. The archival memory306may further comprise memory accessed over a network. The archival memory306may also include an index used to organize the compressed game data to simplify data retrieval. For example, the index may reflect game title, data played, last access data, modification data, whether or not the data was broadcast, recipients of the broadcast, sue, player who generated the data, game level, user notes concerning the particular game data such as the performance of a particular move or defeat of a particular enemy, and other indicia that might be of use in searching for particular game data. This data may be used by a user of portal114with respect to directing the broadcast switch116to particular game data.

When the user selects a portion of the compressed game data to be displayed (either by specific file name or in response to a structured search), the decompressor308may receive the appropriate portion of the compressed game data from the archival memory306, decompresses the portion of the game data, and deliver the portion of the game data to the GPU310.

The GPU310may receive game data from either the buffer302or the decompressor308. As discussed herein, the GPU310may receive two-dimensional data and executes drawing instructions to produce images for display on a display312. Thus, the recorded game data may be displayed to a user, for example, in either real-time (e.g., having come directly from buffer memory302) or having been time-shifted as may be the case with data from archival memory306. Game data—either archived or real-time—may also be broadcast to other recipients as discussed herein.

FIG. 4illustrates a flow diagram of an exemplary process for recording game data in a recording engine110according to an exemplary embodiment of the present invention. The steps identified inFIG. 4(and the order thereof) are exemplary and may include various alternatives, equivalents, or derivations thereof including but not limited to the order of execution of the same. The steps of the process ofFIG. 4(and its various alternatives) may be embodied in hardware or software including a machine-readable medium (e.g., optical disc, memory card, carrier waves, etc.) comprising instructions executable by a machine such as the processor of a computing device.

The exemplary process illustrated inFIG. 4may be performed repeatedly during the play of a game104or a game broadcast such that particular portions of the network game104(as played) may be recorded into archival memory306rather than an entire broadcast. The process for recording game data may also operate simultaneously with a process for playback control, as discussed herein, for example inFIG. 5.

In step402, the buffer302may receive game data generated by the game104and/or the play thereof. The game data may be generated locally on a participant client102or received as part of a received broadcast, multicast, or unicast of game data from one or more participant clients102. Game data may also be generated by spectator clients112not local to buffer102(e.g., one user is broadcasting game data they previously received and recorded from another user to still further users after the game play actually took place). Alternatively, the game data may be received as a real-time broadcast from a server108or in response to broadcast instructions received by the server108from, for example, a participant client102on the network106and wanting to share their game data. Game data may embody any variety of data types, protocols, and so forth. Game data may include information related to controller manipulation vis-à-vis in-game interactions as discussed in the context ofFIG. 6Bbelow as well as U.S. patent application No. 60/860,937, the disclosure of which has been previously incorporated herein by reference.

It should be noted that any reference to broadcast herein is for convenience and is meant to be applicable to other forms of transmission such as multicast (e.g., data is transmitted to select multiple recipients who have joined the appropriate multicast group); unicast (e.g., a specific user receives a specific data transmission); as well as a broadcast (e.g., a data transmission to a number of recipients simultaneously). The particular transmission methodology should be understood to be limited only as specifically set forth in the claims.

In step404, the recording engine300may record the game data in the buffer302. As discussed herein, game data may be recorded in the buffer302using a FIFO method or other cyclical process. The buffer302may, therefore, contain only recently generated game data. The buffer302is not limited to FIFO storage and other memory maintenance methodologies may be implemented (e.g., last-in-first-out (LIFO), user-queried storage, prioritized storage and so forth).

In step406, the recording engine300may determine whether to record the game data in the archival memory306(FIG. 3). This determination may be based on whether the recording engine300has received a command from the user to begin archiving the game. The user may issue the playback command by setting a timer to record a network game104to be broadcast or by initiating recording during a network game104via a controller or input device.

In step408, if the recording module has a received a command to record the game data in the archival memory, the data in buffer302may be directed to the compressor304from which the archival memory306may receive the compressed game data. The archived portion of the game data may then be accessible to the user after the buffer302has overwritten the portion of the game data from its memory.

In step410, the GPU310may render the game data and/or the game data may be broadcast over a network106regardless of whether the game data has been stored in the archival memory306. In the rendering scenario, the GPU310may render the game data stored in the buffer302or the archival memory306. The game data may then be displayed to a user on an appropriate display device. The display312may comprise or be a part of a user interface that supports the receipt or display of playback commands such as a media player application. The user interface may be particular to a computing platform or a video game104. For example, a particular game104may cause for the generation of a game specific user interface. The interface and the commands generated through the interface may be coupled to the recording engine300, which may be configured to respond to the receipt, of particular commands (e.g., rewind, play, fast forward) including an indication to display a particular portion (e.g., a selected portion) of game data.

In some embodiments of the present invention, the game data received over a broadcast may not immediately be rendered or broadcast in step410. For example, game data may be received in the background while the user is engaged in not networked game play (e.g., playing a game versus the CPU and not another player over a network or playing another player locally on the same entertainment system). Depending on, for example, the particularities of the entertainment system and network adaptor (e.g., processing power, data exchange capabilities, and the like), the user may also be engaged in network game play while simultaneously receiving the game broadcast. In this way, the user may be able to play a game while receiving a game broadcast for later viewing when the user's particular game is complete. This operation would be akin to watching one television program while recording another through the user of dual receivers.

In the broadcast scenario, the game data or a portion of the game data may be broadcast over the network106. The broadcast game data may then available to one or more spectator clients112and portal114. The game data may be broadcast from a server108or one or more participant clients102. The broadcast may be real-time or, if it has been stored in the archival memory306, time-shifted. If the broadcast is time-shifted, the compressed game data may be broadcast over the network106and decompressed at the spectator clients112and portal114. The game data may be simultaneously rendered and broadcast.

FIG. 5illustrates a flow diagram of an exemplary process for controlling playback of game data according to an exemplary embodiment of the present invention. The steps identified inFIG. 5(and the order thereof) are exemplary and may include various alternatives, equivalents, or derivations thereof including but not limited to the order of execution of the same. The steps of the process ofFIG. 5(and its various alternatives) may be embodied in hardware or software including a machine-readable medium (e.g., optical disc, memory card, carrier waves, etc.) comprising instructions executable by a machine such as the processor of a computing device.

The playback commands may comprise play, pause, stop, rewind, fast forward, skip, record, and the like. Editing commands may also be used. The playback commands may be represented through any variety of computing languages, protocols, formats, structures and so forth. The playback commands may be unique to a particular user interface, game104, computing device and so forth. In order for the playback commands to operate, the selected portion of the game data may need to be present in the buffer302or in the archival memory306either locally or accessible over some communications means (e.g., via a LAN). Particular portions of data to be played back, edited, or otherwise handled by an embodiment of the present invention may be indicated through the aforementioned playback command or a combination of the same.

In step302, the recording engine300may receive game data from the game104. The game data may be rendered and displayed on a display312. The game data may be generated locally on a participant client102. Alternatively, the game data may be received as a broadcast from a server108or one or more participant clients102. In some embodiments, the game data may be data that has been passed from a number of different spectator clients112(e.g., ‘viral video’) in that the game data reflects a particularly impressive action in a game that is shared with a number of game players in a particular community.

In step504, the recording engine300may determine whether a playback command has been received. The playback command may be received from a user via a user interface at display312. The display312may be configured to display a menu from which the user selects a portion of a game104. An input device may also be present and to provide playback control functionality. Input device may include a remote control, a keyboard, a mouse, a touchpad, a joystick, a game controller, or the like.

If a playback command has not been received, the recording module may return to step502in which the game may or may not be displayed. During this period, a local memory buffer or other memory may continue to receive game data that may be later subject to various playback commands. In some embodiments, game data may be received in real-time (during which time filling of a memory buffer may be desirable) or may be transmitted in faster-than-real-time subject to the compression of the data prior to delivery (whereby extended portions of the data may be immediately accessible as a client buffer has been filled with more game data than can be rendered at any one time). In some embodiments, playback control may not be offered until a particular quantity of game data has arrived in order to avoid ‘starving’ the buffer of game data during playback.

In step506, the recording engine300may access a portion of the game data from the buffer302or the archival memory306. If the portion of the game data is available in the buffer302, the portion may first be retrieved from the buffer302. Alternatively, older data may be retrieved from the archival memory306and decompressed by the decompressor308(FIG. 3). Data may be accessed in response to not only playback control but also certain search functionality if several archived selections of game data are present. Various means for searching game data have been previously described (e.g., title, date, etc.).

In step508, the selected portion of the game data may be processed by the GPU310and displayed on display312. The selected portion of the game data may be a shorter section of the portion of the game data retrieved in step506.

In step510, the recording engine may determine whether the end of the selected portion of the data has been reached. A user may interrupt playback of a selected portion of the game data at any point during the playback to end the playback or to select a different portion of the data. The user may interrupt the playback by transmitting a playback command such as stop, play, fast forward, rewind, or pause. If the end of the portion has not been reached, the selected, portion of the game data may continue to be displayed while the recording engine repeats step504.

In some embodiments of the present invention, various portions of game data may be edited and/or concatenated, to create a ‘best of’ highlight real that may be independently stored and broadcast. Further, as may be subject to the availability of particular editing tools that may be local or remote to an entertainment system, a user may add music or other ancillary data to the highlight real whereby a background music track may be added to accompany the highlights. This ‘highlight reel’ may be generated by exporting certain archived game data via a portable memory device to another computing device comprising the requisite editing tools. The edited highlight reel may then be reintroduced to the game system via the same aforementioned portable memory device. Editing may further include the introduction of advertising, captions, titles, special effects, slow-motion or accelerated replay, picture-in-picture, and other effects.

In step512, if the end of the portion of game data has been reached, the recording module may determine whether the end of game104or the recorded game data has occurred. Alternatively, step512may determine whether an end of a game level has occurred. If the network game104or the recorded game data has not yet occurred, the recording module may repeat step502and continue displaying the game data.

FIG. 6Aillustrates an exemplary embodiment of the present invention where recorded game data is displayed during a playback operation. In the exemplary embodiment illustrated inFIG. 6A, the playback operation includes a graphic display of a game controller610representing the real-world manipulation of a physical control device (not shown) to execute a particular maneuver being viewed on display device620during the playback operation. A more detailed discussion with respect to providing game assistance through a graphic controller display is provided in U.S. patent application No. 60/860,937, the disclosure of which has previously been incorporated herein by reference.

As shown inFIG. 6A, when the controller is manipulated in the physical domain during the original game play session, (e.g., the orientation of the controller with respect to the physical world was changed), this change is reflected in controller manipulation data as is discussed in the context ofFIG. 6B. For example, if a game participant used yaw in the physical domain to manipulate an in-game character630(e.g., the airplane), then the change in yaw that may have caused a change in the orientation of the in-game character630may be further reflected in the controller manipulation data. The controller manipulation data may be recorded by recording engine300as was discussed in the context of, for example,FIG. 3.

Playback of the game data recorded by recording engine300may include the graphic display of game controller610. This graphic display (610) may be representative of the aforementioned real-world manipulation of the physical, controller device as reflected in the aforementioned controller manipulation data. Layout on the display device620may be controlled by a particular network game title (104) and/or by the recording engine (300). The layout may include a game area640and a controller area650. Other display areas may also be included on display620such as advertisement or sponsorship areas (not shown).

Game area640may include the game environment and various characters and/or objects being viewed during a playback operation. Content displayed in the game area640may be generally or identically representative of the actions and events seen by the participant that generated the game data being viewed during playback (i.e., the user who played the game).

Controller area650may include the graphic display of the game controller610. Graphic display610provides a graphical view of the manipulation of the controller in the physical domain and that relates to the action and/or events being displayed concurrently in game area640. In this way, the means by which to execute a particular maneuver that is not easily explained may be easily viewed and imitated.

Controller area650may also display text related to the graphic display of the game controller610, an audio accompaniment reciting the text (e.g., a voice over), or various combinations of the same. The graphic display610illustrates the particular means in which the real-world controller was oriented (e.g., position) and/or manipulated (e.g., particular button presses) in the physical domain to result in the corresponding actions and/or events being displayed in game area640. In some embodiments, the controller area650may also include a graphic representation of hands of a user actually manipulating the controller.

FIG. 6Billustrates an exemplary embodiment of the present invention where game data is displayed during a recording operation including a graphic display of a game controller representing the real-world manipulation of a control device to execute a particular maneuver being viewed during the recording operation. When the controller is manipulated in the physical domain during the game play session (e.g., the orientation of the controller with respect to the physical world is changed), this change is reflected in controller manipulation data.

For example, and as shown inFIG. 6B, the game participant is using yaw to the right and in the physical domain (as depicted with respect to the graphic display610of the controller) to manipulate the in-game character630. The change in yaw causes a change in the orientation of the in-game character630as may be reflected in the controller manipulation data, which may be recorded by recording engine300.

FIG. 6Cillustrates an exemplary embodiment of the present invention where recorded game data is displayed during a playback operation including a graphic display of a game controller representing the real-world manipulation of a control device to execute a particular maneuver being viewed during the playback operation. The ‘played back’ data ofFIG. 6Cmay include the ‘recorded data’ ofFIG. 6B.

With respect toFIG. 6C, the controller has been previously manipulated in the physical domain during the original, recorded game play session. Changes in controller orientation have been reflected in controller manipulation data. Specifically, the game participant previously used (and recorded) yaw to the left in the physical domain as depicted with respect to the graphic display610of the controller. This manipulation resulted in a corresponding manipulation of the in-game character630. The change in yaw, in turn, caused a change in the orientation of the in-game character630as reflected in the controller manipulation data, which as previously recorded by recording engine300. The recorded data has, in turn, been processed to display the played back display of game information.

The controller image rendered on the display is optional and may be turned on or off during a recording session and/or playback session. Further, the rendering of the controller image may have various display permutations. For example, the screen may be split or otherwise scaled. The controller image itself may be scaled or displayed in a half-tone or some other blending with the remainder of the game environment in order to be informative yet non-intrusive.

FIG. 6Dillustrates an exemplary set of controller manipulation data660and character position data670as may be generated in some embodiments of the present invention. Controller manipulation660and character position670data may be received at a game console or other computing device from a game player's controller device. Manipulation data660and position data670may, respectively, represent commands and controller manipulations that occurred during the course of game play.

Controller manipulation data660may be representative of data received from a controller device during the course of game play. Position data670, in turn, may be representative of a position of a game character during game play. The controller manipulation data660and position data670are, in an embodiment, synchronized whereby game action may be replayed in the context of information related to controller manipulation.

By synchronizing data, a game participant, spectator, or any other party viewing a recorded game session may observe the manipulation of the controller and corresponding action in the game that corresponds to that manipulation. For example, in addition to playing back a touchdown thrown in a football game, the console can display the controller manipulations which resulted in the touchdown. In another embodiment, game data and corresponding controller manipulation data can be played back in slow motion. Various other implementations of a graphic display of controller data are discussed in the aforementioned U.S. patent application No. 60/860,937.

In some embodiments, the controller may include a controller device like that described in U.S. patent publication number 2007-0021208 for “Obtaining input for Controlling Execution of a Game Program,” the disclosure of which is incorporated herein by reference. Such a controller may allow for generation of controller manipulation data660corresponding to pitch, roll, and yaw along individual axes in three-dimensional space. Such a controller may further include accelerometers or inertial sensors for generating additional controller manipulation data660.

While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. For example, any of the elements associated with the participant client102, the network game104, the spectator client112, the portal114, and/or the server108may employ any of the desired functionality set forth hereinabove. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments.

The present invention may be further implemented in a game104that may be operable over a mixed network of end user devices (e.g., participant clients102and/or spectator clients112). For example, one participant client device may be a personal computer; a second participant client device may be a home entertainment system such as a PlayStation®2 or PlayStation®3 available from Sony Computer Entertainment Inc. Another participant client device may be a portable gaming device such as a PSP™ (also from Sony Computer Entertainment Inc.) whereas a fourth participant client may be a home entertainment system of a different manufacture such, as an Xbox as manufactured by Microsoft Corporation or a GameCube or a Wii as manufactured by Nintendo Co., Ltd. The present playback methodologies described herein are fully intended to be operable amongst a related or non-related group of devices. The present invention may also be implemented with cross-title neutrality wherein an embodiment of the present system may be utilized across a variety of titles from various publishers.

Claims

  1. A system for network playback of a video game, the system comprising: a participant client computing device associated with at least one participant playing a video game, the participant client computing device coupled to a network, the participant client computing device including: a recording engine that receives game data generated by the at least one participant playing the video game, the game data including controller manipulation data corresponding to a physical domain manipulation of a game controller coupled to the participant client computing device, the controller manipulation data generated during participant interaction with the video game, and a memory coupled to the recording engine that stores the game data received by the recording engine and corresponding meta-data to identify different portions within the same game data;and a spectator client computing device coupled to the network, the spectator client computing device including a processor and a memory storing executable instructions, wherein execution of the instructions by the processor: generates a user interface that receives playback commands from a spectator associated with the spectator client computing device, transmits the playback commands over the network, wherein the playback commands include: an indication to play back a spectator-selected portion of the game data stored in the memory of the participant client computing device, wherein the spectator-selected portion of the game data is selected based on user input via a menu associated with the spectator client computing device, the user input corresponding with the meta-data included in the game data stored in the memory of the participant client computing device, and wherein the spectator-selected portion of the game data is a section of the stored game data that is shorter than the full length of the stored game data, and an indication to edit the spectator-selected portion of game data, wherein editing includes introducing into the spectator-selected portion of game data at least one of advertising, captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture, displays the spectator-selected portion of the game data on the spectator client computing device and one or more other spectator client computing devices coupled to the same network;generates a textual interface that facilitates communication between a spectator of the spectator client computing device and one or more other spectators viewing the spectator-selected portion of game data, and generates the menu that provides a plurality of options including searching other stored game data via the meta-data and sharing the spectator-selected portion of game data with one or more other the one or more other spectators.
  1. The system of claim 1 , wherein the spectator-selected portion of the game data is played back from the memory of the participant client computing device.
  2. The system of claim 1 , wherein the spectator-selected portion of the game data is played back from a network storage device communicatively coupled to the network, the game data having been copied to the network storage device from the participant client computing device.
  3. The system of claim 1 , wherein the recording engine stores the game data while the game data is simultaneously broadcast to another recipient over the network.
  4. The system of claim 1 , wherein the recording engine stores the game data while game data associated with a second video game is simultaneously broadcast to another recipient over the network.
  5. The system of claim 1 , wherein the spectator-selected portion of the game data played back in response to the playback commands includes a graphic display of the game controller.
  6. The system of claim 6 , wherein the graphic display of the game controller is scaled against a game environment of the video game.
  7. The system of claim 6 , wherein the graphic display of the game controller is visually blended with a game environment of the video game.
  8. The system of claim 6 , wherein the graphic display of the game controller includes at least one participant manipulation of the game controller that corresponds to the physical domain manipulation of the game controller by the at least one participant during interaction with the video game and that generated the spectator-selected portion of the game data stored in the memory of the participant client computing device.
  9. The system of claim 9 , wherein the game controller coupled to the participant client computing device generates controller manipulation data corresponding to pitch, roll, and yaw in three-dimensional space.
  10. The system of claim 9 , wherein play back of the game data includes a graphic representation of hands of the participant manipulating the game controller.
  11. The system of claim 1 , wherein the participant client computing device and spectator client computing device are each a portable gaming device and the network is a mobile ad-hoc network.
  12. The system of claim 12 , wherein the participant client computing device transmits the game data to the spectator client computing device over the mobile ad-hoc network.
  13. A method for playback of game data, comprising storing the game data in a memory device, the game data including controller manipulation data corresponding to a physical domain manipulation of a game controller by a participant during interaction with a video game and meta-data used to identify different portions within the same game data;receiving over a network from a spectator client computing device a plurality of playback commands identifying a spectator-selected portion of the game data, wherein the spectator-selected portion of the game data is a section of the stored game data that is shorter than the full length of the stored game data, and wherein the plurality of playback commands include: an indication to play back the spectator-selected portion of the game data, wherein the spectator-selected portion of the game data is selected based on user input via a menu associated with the spectator client computing device, the user input corresponding with the meta-data included in the game data stored in the memory device;and an indication to edit the spectator-selected portion of the game data, wherein editing includes introducing into the spectator-selected portion of game data at least one of advertising, captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture;accessing the spectator-selected portion of the game data stored in the memory device as identified by the playback commands;displaying the spectator-selected portion of the game data at the spectator client computing device, wherein displaying the spectator-selected portion of the game data includes displaying a graphic display of a game controller and at least one participant manipulation of the game controller that corresponds to the physical domain manipulation of the game controller by the participant during interaction with the video game and that generated the spectator-selected portion of the game data stored in the memory device, and wherein the spectator-selected portion of the game data is also displayed on one or more other spectator client computing devices coupled to the same network;facilitating by way of a textual interface communication between a spectator of the spectator client computing device and one or more other spectators viewing the spectator-selected portion of game data;and providing a plurality of options on the menu including functions for searching other stored game data via the meta-data and sharing the spectator-selected portion of game data with the one or more other spectators.
  14. The method of claim 14 , wherein the game data is generated and stored in a memory at a participant client computing device, the play back of the spectator-selected portion of the game data occurring from the memory at the participant client computing device.
  15. The method of claim 14 , wherein the game data is generated at a participant client computing device and subsequently stored in a memory at a network storage device communicatively coupled to the network, the display of the spectator-selected portion of the game data occurring from the memory at the network storage device.
  16. The method of claim 14 , wherein a second portion of the game data is recorded simultaneously with the display of the spectator-selected portion of the game data.
  17. The method of claim 14 , wherein a second portion of the game data is recorded simultaneously with the display of the spectator-selected portion of game data received over the network.
  18. The method of claim 14 , wherein the display of the game controller is scaled against a game environment of the video game.
  19. The method of claim 14 , wherein the display of the game controller is visually blended with a game environment of the video game.
  20. The method of claim 14 , wherein the controller manipulation data is generated by a control device configured to generate controller manipulation data corresponding to pitch, roll, and yaw in three-dimensional space.
  21. The method of claim 14 , wherein displaying the spectator-selected portion of the game data further includes displaying a graphic representation of hands of a user manipulating the game controller.
  22. A non-transitory computer readable storage medium having embodied thereon a program, the program having instructions for playback of game data, the instructions being executable by a processor to perform a method, the method comprising: storing the game data in a memory device, the game data including controller manipulation data corresponding to a physical domain manipulation of a game controller by a participant during interaction with a video game and meta-data used to identify different portions within the same game data;receiving over a network from a spectator client computing device a plurality of playback commands identifying a spectator-selected portion of the game data, wherein the spectator-selected portion of the game data is a section of the stored game data that is shorter than the full length of the stored game data, and wherein the plurality of playback commands include: an indication to play back the spectator-selected portion of the game data, wherein the spectator-selected portion of the game data is selected based on user input via a menu associated with the spectator client computing device, the user input corresponding with the meta-data included in the game data stored in the memory device;and an indication to edit the spectator-selected portion of the game data, wherein editing includes introducing into the spectator-selected portion of game data at least one of advertising, captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture;accessing the spectator-selected portion of the game data in the memory device as identified by the playback commands;displaying the spectator-selected portion of the game data on the spectator client computing device, wherein displaying the spectator-selected portion of the game data includes displaying a graphic display of a game controller and at least one participant manipulation of the game controller that corresponds to the physical domain manipulation of the game controller by the participant during interaction with the video game and that generated the spectator-selected portion of the game data stored in the memory device, and wherein the spectator-selected portion of the game data is also displayed on one or more other spectator client computing devices coupled to the same network;facilitating by way of a textual interface communication between a spectator of the spectator client computing device and one or more other spectators viewing the spectator-selected portion of game data;and providing a plurality of options on the menu including functions for searching other stored game data via the meta-data and sharing the spectator-selected portion of game data with the one or more other spectators.
  23. The non-transitory computer-readable storage medium of claim 23 , wherein a second portion of the game data is recorded simultaneously with the display of the spectator-selected portion of the game data.
  24. The non-transitory computer-readable storage medium of claim 23 , wherein a second portion of the game data is recorded simultaneously with the display of the spectator-selected portion of game data received over the network.
  25. The non-transitory computer-readable storage medium of claim 23 , wherein the display of the game controller is scaled against a game environment of the video game.
  26. The non-transitory computer-readable storage medium of claim 23 , wherein the display of the game controller is visually blended with a game environment of the video game.
  27. The non-transitory computer-readable storage medium of claim 23 , wherein the controller manipulation data is generated by a control device that generates controller manipulation data corresponding to pitch, roll, and yaw in three-dimensional space.
  28. The non-transitory computer-readable storage medium of claim 23 , wherein displaying the spectator-selected portion of the game data further includes displaying a graphic representation of hands of a user manipulating the game controller.
  29. A method for playback of video content in a network environment, the method comprising: storing in memory pre-recorded video content received from one or more providers of video content in the network environment at a network storage device, wherein the pre-recorded video content includes meta-data to identify different portions of the pre-recorded video content;receiving a plurality of playback commands from a spectator client computing device in the network environment, the playback commands corresponding to a spectator-selected portion of a first pre-recorded video content stored at the network storage device, wherein the spectator-selected portion of the first pre-recorded video content is a section of the first pre-recorded video content that is shorter than the full length of the first pre-recorded video content, and wherein the playback commands include: an indication to play back the spectator-selected portion of the first pre-recorded video content stored at the network storage device, wherein the spectator-selected portion of the first pre-recorded video content is selected based on user input via a menu associated with the spectator client computing device, the user input corresponding with the meta-data included in the pre-recorded video content stored in the memory, and an indication to edit the spectator-selected portion of the first pre-recorded video content, wherein editing includes introducing into the spectator-selected portion of the first pre-recorded video content at least one of advertising, captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture;retrieving the spectator-selected portion of the first pre-recorded video content from storage at the network storage device, wherein the retrieved spectator-selected portion of the first pre-recorded video content is identified by the playback commands received from the spectator client computing device;transmitting the retrieved spectator-selected portion of the first pre-recorded video content to the spectator client computing device for display on a playback device associated with the spectator client computing device;displaying the spectator-selected portion of the first pre-recorded video content on the spectator client computing device and one or more other spectator client computing devices coupled to the same network;facilitating by way of a textual interface communication between a spectator of the spectator client computing device and one or more other spectators viewing the spectator-selected portion of the first pre-recorded video content;and providing a plurality of options on the menu including functions for searching other stored pre-recorded video content via the meta-data and sharing the spectator-selected portion of the first pre-recorded video content with the one or more other spectators.
  30. The method of claim 30 , wherein the playback commands are received from the spectator client computing device via a gaming console, the gaming console coupled to the playback device.
  31. The method of claim 30 , wherein the pre-recorded video content corresponds to action in a video game.
  32. The method of claim 30 , further comprising: receiving a further playback command from the spectator client computing device, the further playback command corresponding to a spectator-selected portion of a second pre-recorded video content stored at the network storage device;retrieving the spectator-selected portion of the second pre-recorded video content from storage at the network storage device, wherein the retrieved spectator-selected portion of the second pre-recorded video content is identified by the further playback command;and transmitting the retrieved spectator-selected portion of the second pre-recorded video content to the spectator client computing device for display on the playback device associated with the spectator client computing device, wherein the spectator client computing device alternates between viewing the spectator selected portions of the first and the second pre-recorded video content via instructions provided through a user interface displayed at the playback device.
  33. The system of claim 30 , wherein the spectator-selected portion of the first pre-recorded video content played back in response to the playback commands includes an advertisement within a graphic display of a game controller.
  34. The method of claim 30 , further comprising editing the spectator-selected portion of the first pre-recorded video content to include an advertisement when the indication to edit the spectator-selected portion of the first pre-recorded video content is an indication to introduce into the spectator-selected portion of the first pre-recorded video content at least one of captions, titles, special effects, slow-motion replay, accelerated reply, and picture-in-picture.

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