A gaming device for playing a video game, the gaming device being locally operable by a player of the video game to control a virtual character in a virtual world of the video game, the gaming device comprising: game software configured to output first rendering commands representing the virtual world; a local rendering module for processing the first rendering commands to generate an image data stream of the virtual world; a remote rendering controller for generating second rendering commands for processing by a remote rendering module to generate a rendered graphics output depicting the virtual world, for viewing by one or more spectators over a data communication network; and an output for: releasing the image data stream and providing it to a local display of the gaming device; and transmitting the second rendering commands to the data communication network for transmission to the remote rendering module; wherein the remote rendering controller is configured to inject data into a flow of data including the first rendering commands, wherein the data injected into the flow of data generates a graphical user interface, the graphical user interface being included in the image data stream released to the local display and including a plurality of selectable identifiers, wherein player interactions with the graphical user interface are intercepted and directed to the remote rendering controller, the player interactions including a selection of at least one of the selectable identifiers, wherein the remote rendering controller is configured to output the second rendering commands for processing by the remote rendering module to generate the rendered graphics output for at least one spectator corresponding to the selection of at least one of the selectable identifiers, and wherein the remote rendering controller is configured to generate the second rendering commands and to inject the data that generates the graphical user interface in parallel with the local rendering module processing the first rendering commands. game software configured to output first rendering commands representing the virtual world; a local rendering module for processing the first rendering commands to generate an image data stream of the virtual world; a remote rendering controller for generating second rendering commands for processing by a remote rendering module to generate a rendered graphics output depicting the virtual world, for viewing by one or more spectators over a data communication network; and an output for: releasing the image data stream and providing it to a local display of the gaming device; and transmitting the second rendering commands to the data communication network for transmission to the remote rendering module; wherein the remote rendering controller is configured to inject data into a flow of data including the first rendering commands, wherein the data injected into the flow of data generates a graphical user interface, the graphical user interface being included in the image data stream released to the local display and including a plurality of selectable identifiers, wherein player interactions with the graphical user interface are intercepted and directed to the remote rendering controller, the player interactions including a selection of at least one of the selectable identifiers, wherein the remote rendering controller is configured to output the second rendering commands for processing by the remote rendering module to generate the rendered graphics output for at least one spectator corresponding to the selection of at least one of the selectable identifiers, and wherein the remote rendering controller is configured to generate the second rendering commands and to inject the data that generates the graphical user interface in parallel with the local rendering module processing the first rendering commands. releasing the image data stream and providing it to a local display of the gaming device; and transmitting the second rendering commands to the data communication network for transmission to the remote rendering module; wherein the remote rendering controller is configured to inject data into a flow of data including the first rendering commands, wherein the data injected into the flow of data generates a graphical user interface, the graphical user interface being included in the image data stream released to the local display and including a plurality of selectable identifiers, wherein player interactions with the graphical user interface are intercepted and directed to the remote rendering controller, the player interactions including a selection of at least one of the selectable identifiers, wherein the remote rendering controller is configured to output the second rendering commands for processing by the remote rendering module to generate the rendered graphics output for at least one spectator corresponding to the selection of at least one of the selectable identifiers, and wherein the remote rendering controller is configured to generate the second rendering commands and to inject the data that generates the graphical user interface in parallel with the local rendering module processing the first rendering commands.