KR20130095277A - 부가기능의 관리 - Google Patents
부가기능의 관리 Download PDFInfo
- Publication number
- KR20130095277A KR20130095277A KR1020137008011A KR20137008011A KR20130095277A KR 20130095277 A KR20130095277 A KR 20130095277A KR 1020137008011 A KR1020137008011 A KR 1020137008011A KR 20137008011 A KR20137008011 A KR 20137008011A KR 20130095277 A KR20130095277 A KR 20130095277A
- Authority
- KR
- South Korea
- Prior art keywords
- add
- video
- game
- client
- game logic
- Prior art date
Links
- 238000004590 computer program Methods 0.000 claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 description 37
- 238000012545 processing Methods 0.000 description 32
- 238000009434 installation Methods 0.000 description 20
- 238000009877 rendering Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000008429 bread Nutrition 0.000 description 1
- 230000002498 deadly effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/241—Operating system [OS] processes, e.g. server setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/209—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Computer Graphics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
서버에서 컴퓨터 프로그램을 실행하고 통신 네트워크를 통해 지리적으로 원격지의 클라이언트로 프로그램 출력의 비디오 스트림을 제공하도록 컴퓨팅 시스템이 구성된다. 부가기능 관리자는 컴퓨터 프로그램의 기능성을 확장하기 위한 부가기능의 사용을 용이하게 하기 위해 제공된다. 부가기능 관리자는 클라이언트로부터 수신한 커맨드에 응답하고 개별 부가기능 및 부가기능 데이터를 특정 사용자 계정에 연계시키도록 구성된다. 부가기능은 서버에, 또는 클라이언트로부터 떨어진 다른 원격지에 위치할 수 있다.
Description
본 발명은 컴퓨터 시스템 분야에 관한 것으로서, 구체적으로는, 컴퓨터 프로그램의 서버측에서의 실행에 관한 것이다.
<관련 출원의 상호 참조>
본 출원은, 미국 임시 특허출원 제61/382,470호(출원일: 2010. 9. 13., 명칭: "Add-on Management")에 대한 이익 및 우선권을 주장하는 출원이다. 본 출원은 미국 특허출원 제12/826,130호(출원일: 2010. 6. 29., 명칭: "Video Game Overlay") 및 미국 특허출원 제12/826,489호(출원일: 2010. 6. 29., 명칭: "Voice Overlay")에 관련된 것이다. 공동 소유의 상기 모든 특허출원의 개시 사항을 참고자료로서 본 명세서에 포함시킨다.
부가기능(add-on)이란, 기능성을 확장하거나 컴퓨터 프로그램을 강화시키기 위해 사용되는 한 세트의 컴퓨팅 명령(instruction)이다. 부가기능은 다양한 분야에 사용된다. 예를 들어, Adobe Reader® 부가기능은 마이크로소프트 워드(Microsoft Word)를 .pdf 파일로 인쇄하기 위해서, 또는 브라우저로 .pdf 파일을 볼 수 있도록 하는 데 사용할 수 있다. 부가기능은 온라인 비디오 게임에서 많이 사용된다. 예를 들어, 유명한 멀티플레이어 온라인 게임인 월드 오브 워크래프트(World of Warcraft)®는 게임 실연을 향상시키기 위해 사용할 수 있는 수 백 가지의 부가기능을 갖는다. 이러한 부가기능은 일반적으로, 제3자에 의해 제공된다. 컴퓨터 프로그램에 부가기능을 추가하기 위해서 사용자는 웹사이트로부터 부가기능을 다운로드하여 이를 사용자 컴퓨터의 적절한 디렉토리에 설치한다. 여기서 사용한 용어 "부가기능"은, 컴퓨터 프로그램의 기능성을 확대하기 위해 구성된, 특히 컴퓨터 프로그램을 위해서 개발된 옵션으로서의 컴퓨팅 명령(instruction)을 지칭한다. 부가기능은 제3자 또는 컴퓨터 프로그램 개발자에 의해 개발될 수 있다. 일부 컴퓨터 프로그램은 특정 디렉토리에서 부가기능을 찾도록 구성된다. 부가기능들은, 특정 프로그램을 강화시키도록 구성된다는 점에서, 프린터 드라이버 등의 소프트웨어 유틸리티와 구별된다. 부가기능(add-on)은 "플러그인(plug-in)"이라고도 부른다.
부가기능 데이터는 부가기능에 포함되거나 부가기능에 의해 생성되거나 조직화된 데이터이다. 예를 들어, 비디오 게임에서, 부가기능 데이터에는 게임 내에서의 객체의 위치, 재고 정보, 구매 및 판매 기록, 경매 하우스 데이터, 게임자가 아닌 캐릭터의 특징, 지도, 이력 정보, 오디오 데이터, 이벤트 타이밍 정보, 및/또는 그 밖의 것이 포함된다..
컴퓨터 프로그램에는 종종, 컴퓨팅 명령 또는 컴퓨터 프로그램과 부가기능 사이의 통신을 위해 구성된 응용 프로그래밍 인터페이스(API)가 포함된다. 예를 들어, 컴퓨터 프로그램은 부가기능용의 특정 디렉토리 내부를 볼 수 있도록 구성되는 것이 일반적이다. 이 디렉토리는 컴퓨터 프로그램이 저장된 디렉토리의 하위 디렉토리일 수 있다.
본 발명의 목적은, 컴퓨터 프로그램이 서버에서 실행되며 컴퓨터 프로그램의 비디오 스트림 출력이 지리적으로 원격지에 있는 클라이언트에게 제공되는 시스템에서 부가기능을 사용할 수 있게 하는 데에 있다.
본 발명의 일부 실시예는, 컴퓨터 프로그램이 서버에서 실행되는 시스템에서 부가기능(add-on)을 사용하는 시스템 및 방법을 포함하며, 프로그램의 실행 결과로 생성된 스트리밍 비디오가, 원격지 클라이언트로 제공된다. 이 부가기능은 서버 또는 클라이언트에 설치할 수 있다. 부가기능이 서버에 설치되고 컴퓨터 프로그램이 클라이언트에 설치되는 경우에는, 이 부가기능이 마치 컴퓨터 프로그램에 국지적으로 인접하여 서버에 위치하고 있는 것처럼 컴퓨터 프로그램이 동작되도록 응용 프로그래밍 인터페이스(API)가 제공된다. 서버에 있는 API는 통신 네트워크를 통해, 부가기능과 컴퓨터 프로그램 사이의 통신을 하도록 구성된다.
만약 부가기능이 서버에 설치되면, 컴퓨터 프로그램은 클라이언트 또는 클라이언트에서 지리적으로 떨어져 있는 원격지 중의 하나에 설치될 수 있다. 본 발명의 다양한 실시예에는, 예를 들어, 원격으로 부가기능을 설치하도록 구성된 유틸리티, 부가기능의 실행을 위한 가상 환경을 제공하도록 구성된 컴퓨팅 명령; 부가기능 데이터 저장소, 부가기능을 켜고 끄는(온/오프) 기능, 부가기능을 안전하게 실행하는 기능, 승인된 부가기능 목록을 유지하는 기능; 및/또는 그 밖의 것이 포함된다.
본 발명의 다양한 실시예에는, 부가기능에 의해 강화되는 게임 로직을 사용해서 비디오 프레임을 생성하고 이 비디오 프레임을, 비디오 게임의 게임 환경을 기반으로 한 비디오 스트림으로 인코딩하도록 구성된 비디오 소스; 상기 비디오 스트림을 지리적으로 원격지에 있는 클라이언트로 전송하고 이 클라이언트로부터 게임 커맨드를 수신하도록 구성된 I/O 장치; 비디오 게임을 액세스할 수 있는 장소에 부가기능을 저장하고, 이 부가기능을 액세스할 수 있는 장소에 이 부가기능의 부가기능 데이터를 저장하도록 구성된 부가기능 저장소; 비디오 게임에 의한 부가기능의 사용을 위해 구성되는 부가기능 환경을 생성하고, 부가기능을 사용자 계정에 연계하고, 부가기능 데이터를 사용자 계정에 연계하도록 구성된 부가기능 관리자; 그리고, 상기 게임 로직 또는 부가기능 관리자를 실행하도록 구성된 프로세서를 포함하는, 게임 서버 시스템이 포함된다.
본 발명의 다양한 실시예는, 부가기능에 의해 강화되는 게임 로직을 사용해서 비디오 프레임을 생성하고 이 비디오 프레임을, 지리적으로 원격지에 있는 클라이언트로부터 수신한 비디오 게임 상황과 게임 커맨드를 기반으로 한 비디오 스트림으로 인코딩하도록 구성된 비디오 소스; 상기 비디오 스트림을 지리적으로 원격지에 있는 클라이언트로 전송하고 이 클라이언트로부터 게임 커맨드를 수신하도록 구성된 I/O 장치; 상기 게임 로직의 새로운 버전의 수신에 응답하여 상기 부가기능을 자동으로 업데이트하도록 구성된 부가기능 관리자; 그리고,상기 게임 로직 또는 부가기능 관리자를 실행하도록 구성된 프로세서를 포함하는 시스템이 포함된다.
본 발명의 다양한 실시예에는, 제1 컴퓨팅 장치에 설치되며, 비디오 프레임을 생성하도록 구성되며, 이 비디오 프레임을 디스플레이에 표시하는 게임 로직; 상기 제1 컴퓨팅 장치에 설치되며, 상기 제1 컴퓨팅 장치에서 지리적으로 원격지에 있는 제2 컴퓨팅 장치에 설치되고 상기 게임 로직의 기능성을 강화하도록 구성된 부가기능과 상기 게임 로직 사이에서 커맨드를 리디렉션하도록 구성된 제1 API 필터; 제1 컴퓨팅 장치와 제2컴퓨팅 장치 사이에서 커맨드를 전송하도록 구성된 I/O 장치; 그리고, 상기 게임 로직을 실행하도록 구성된 프로세서를 포함하는 시스템이 포함된다.
본 발명의 다양한 실시예에는 부가기능을 실행하는 방법이 포함되는데, 이 방법은, 비디오 스트림을 클라이언트로 제공하도록 구성된 게임 서버 시스템에 부가기능을 설치 - 여기서 비디오 스트림은 게임 로직의 실행 결과이며, 게임 로직의 기능성을 확장하기 위해 구성된 부가 기능에 의해 게임 로직의 기능성이 확장되며, 클라이언트는 게임 서버 시스템으로부터 지리적으로 원격지에 위치함; 게임 로직을 실행; 게임 로직에서 클라이언트로부터 게임 커맨드를 수신; 수신한 게임 커맨드를 게임 로직으로부터 부가기능으로 전달; 부가기능을 사용하여 부가기능 데이터를 생성; 그리고, 클라이언트의 사용자 계정과 연계된 부가기능 데이터를, 클라이언트에서 지리적으로 떨어진 장소에 저장하는 것을 포함한다.
본 발명의 다양한 실시예에는 부가기능을 설치하는 방법이 포함되는데, 이 방법은, 설치할 부가기능을 식별; 컴퓨터 프로그램이 부가기능에 액세스하도록 구성된 부가기능 환경을 구축 - 여기서 컴퓨터 프로그램은 클라이언트를 사용하여 실행되고 클라이언트에서 지리적으로 원격지에 있는 서버에 위치함; 부가기능 환경에 부가기능을 배치; 부가기능을 클라이언트의 사용자 계정에 연계; 부가기능에 의해 생성된 부가기능 데이터를 저장할 저장소를 식별; 그리고, 저장소 또는 부가기능 데이터를 사용자 계정에 연계하는 것을 포함한다.
본 발명의 다양한 실시예에는 부가기능을 자동으로 업데이트하는 방법이 포함되는데, 이 방법은, 지리적으로 원격지에 있는 클라이언트로부터 수신한 게임 커맨드를 기초로 비디오 스트림을 생성하고 이 비디오 스트림을 원격지 클라이언트로 제공하도록 구성된 비디오 소스에서, 게임 로직의 업데이트 버전을 수신; 부가기능이 게임 로직의 기능성을 강화하기 위해 사용되었는지 판단; 부가기능의 업데이트 버전에 대한 요청을 제3자에게 전송 - 이 요청에는 부가기능의 정체성(identity) 및 업데이트를 제공해야 할 주소가 포함됨; 부가기능의 업데이트 버전을 컴퓨팅 네트워크를 통해 수신 - 이 부가기능의 업데이트 버전은 게임 로직의 업데이트 버전을 강화하도록 구성됨; 그리고, 게임 로직이 부가기능을 사용하도록 구성된 부가기능 환경에 부가기능을 자동으로 설치하는 것을 포함한다.
본 발명에 따르면, 컴퓨터 프로그램이 서버에서 실행되며 컴퓨터 프로그램의 비디오 스트림 출력이 지리적으로 원격지에 있는 클라이언트에게 제공되는 시스템에서 부가기능을 사용할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른, 하나 이상의 부가기능에 의해 강화된 컴퓨터 프로그램을 실행하도록 구성된 시스템을 도시한다.
도 2는 본 발명의 다양한 실시예에 따른, 부가기능에 의해 추가된 다수의 비디오 게임을 제공하도록 구성된 비디오 소스의 실시예의 블록 다이어그램이다.
도 3은 본 발명의 다양한 실시예에 따른, 부가기능 관리자의 상세 구성을 도시한다.
도 4는 본 발명의 다양한 실시예에 따른, 클라이언트의 상세 구성을 도시한다.
도 5는 본 발명의 다양한 실시예에 따른, 부가기능의 설치 및/또는 사용 방법을 도시한다.
도 6은 본 발명의 다양한 실시예에 따른, 부가기능을 자동으로 업데이트하는 방법을 도시한다.
도 2는 본 발명의 다양한 실시예에 따른, 부가기능에 의해 추가된 다수의 비디오 게임을 제공하도록 구성된 비디오 소스의 실시예의 블록 다이어그램이다.
도 3은 본 발명의 다양한 실시예에 따른, 부가기능 관리자의 상세 구성을 도시한다.
도 4는 본 발명의 다양한 실시예에 따른, 클라이언트의 상세 구성을 도시한다.
도 5는 본 발명의 다양한 실시예에 따른, 부가기능의 설치 및/또는 사용 방법을 도시한다.
도 6은 본 발명의 다양한 실시예에 따른, 부가기능을 자동으로 업데이트하는 방법을 도시한다.
컴퓨터 프로그램이 서버에서 실행되며 컴퓨터 프로그램의 비디오 스트림 출력이 지리적으로 원격지에 있는 클라이언트에게 제공되는 시스템이, 앞에서 인용한 공동 소유의 특허 출원에 개시되어 있다. 본 발명의 다양한 실시예는 이 시스템에서 부가기능을 사용할 수 있는 능력을 제공한다. 부가기능은, 서버, 클라이언트, 또는 그 밖의 장소에 위치할 수 있는 부가기능 관리자에 의해서 설치, 실행, 지원, 및 그 밖의 관리가 수행된다. 예를 들어, 부가기능 관리자는, 컴퓨터 프로그램의 API를 통해 부가기능에 액세스할 수 있도록, 서버의 적절한 환경 내에 부가기능을 설치하는 데에 사용될 수 있다. 부가기능에 의해 생성된 부가기능 데이터 및 부가기능 자체는 일반적으로, 특정의 클라이언트, 사용자 계정, 아바타, 및/또는 그 밖의 것과 연계된다. 본 발명의 다른 실시예에서는, 클라이언트에 컴퓨터 프로그램은 설치되지만 부가기능은 설치되지 않는다.
도 1은 본 발명의 다양한 실시예에 따른, 하나 이상의 부가기능에 의해 강화된 컴퓨터 프로그램을 실행하도록 구성된 게임 시스템(100)을 도시한다. 게임 시스템(100)은 네트워크(115)를 통해 하나 이상의 클라이언트(110)에 비디오 스트림을 제공하도록 구성된다. 게임 시스템(100)은 일반적으로, 비디오 서버 시스템(120)과, 선택사항인 게임 서버(125)를 포함한다. 비디오 서버 시스템(120)은 하나 이상의 클라이언트(110)에 최소한의 서비스 품질로 비디오 스트림을 제공하도록 구성된다. 예를 들어, 비디오 서버 시스템(120)은 비디오 게임의 상황(state) 또는 비디오 게임 내에서의 시점(point of view)을 변경하는 게임 커맨드(game command)를 수신할 수 있으며, 업데이트된 비디오 스트림을 최소한의 지연 시간으로 상기 상황 변경을 반영하도록 클라이언트(110)에 제공할 수 있다. 비디오 서버 시스템(120)은 매우 다양한 비디오 포맷(아직 정의되어 있지 않은 포맷도 포함)으로 비디오 스트림을 제공하도록 구성될 수 있다. 또한, 비디오 스트림은 매우 다양한 프레임 속도로 게임자에게 보여지도록 구성된 비디오 프레임을 포함할 수 있다. 일반적인 프레임 속도는 초당 30 프레임, 초당 60 프레임, 그리고 초당 120 프레임인데, 그러나 본 발명의 대안적 실시예에는 이보다 높거나 낮은 프레임 속도가 포함된다. 일부 실시예에서, 비디오 서버 시스템(120)은 3차원 영상 데이터(예를 들어, 사람의 눈 사이의 거리만큼 이격된 시점(point of view)에 따라 렌더링된 정합된 비디오 스트림)을 제공하도록 구성된다.
클라이언트(110)(이하 개별적으로 110A와 110B 등으로 참조함)는 단말기, 개인용 컴퓨터(PC), 게임 콘솔, 태블릿 컴퓨터, 전화기, 텔레비전, 셋톱박스, 키오스크, 무선 장치, 디지털 패드, 독립 실행형 장치, 핸드헬드 게임 실연 장치, 및/또는 그 밖의 것을 포함할 수 있다. 일반적으로, 클라이언트(110)는 인코딩된 비디오 스트림을 수신하고, 비디오 스트림을 디코딩하고, 사용자(예를 들어, 게임을 하는 사람)에게 최종 비디오를 보여주도록 구성된다. 인코딩된 비디오 스트림을 수신하고 및/또는 비디오 스트림을 디코딩하는 과정은, 선택에 따라서는, 클라이언트의 수신 버퍼에 개별 비디오 프레임을 저장하는 것을 포함한다. 비디오 스트림은, 클라이언트(110)에 통합된 디스플레이, 또는 모니터나 TV 등의 별도의 장치를 통해 사용자에게 제공될 수 있다. 클라이언트(110)는, 선택에 따라서는, 한 명 이상의 게임자를 지원하도록 구성된다. 예를 들어, 게임 콘솔을, 2명, 3명, 4명, 또는 그 이상의 동시 게임자를 지원하도록 구성할 수 있다. 각 게임자는 각각 별도의 비디오 스트림을 받을 수 있거나, 또는 하나의 비디오 스트림에 각 게임자마다 특별히 생성된(예를 들어 각 게임자의 각 시점에 기초하여 생성된) 프레임 영역들이 포함될 수 있다. 클라이언트(110)는, 선택에 따라서는, 지리적으로 분산된다. 게임 시스템(100)에 포함된 클라이언트의 수는 한 두 개 내지 수천, 수만 개 또는 그 이상까지, 변화폭이 매우 클 수 있다. 여기서 사용된 용어 "게임자(game player)"는 게임을 하는 사람을 지칭하며, "게임 실연 장치(game playing device)"는 게임을 하는 데 사용되는 장치를 지칭하는 것으로 사용되었다.
클라이언트(110)들은 네트워크(115)를 통해 비디오 스트림을 수신하도록 구성된다. 네트워크(115)는 전산 장치(컴퓨팅 장치) 간의 임의 형태의 통신망으로서, 전화망, 인터넷, 무선망, 전력선망, 근거리 네트워크(LAN), 광역 네트워크(WAN), 사설 네트워크, 및/또는 그 밖의 것을 포함할 수 있다. 네트워크(115)에는, 명시적으로, 머더보드 버스와 같이 전적으로 컴퓨팅 장치 내에 있는 통신 채널은 포함되지 않는다. 전형적인 실시예에서, 비디오 스트림은 TCP/IP 또는 UDP/IP 등의 표준 프로토콜을 통해 전송된다. 또는 이와 다르게, 비디오 스트림은 독점적 표준(proprietary standard)을 통해 전송된다.
클라이언트(110)의 전형적인 예는, 프로세서, 비휘발성 메모리, 디스플레이, 디코딩 로직, 네트워크 통신 기능, 및 입력 장치로 구성되는 개인용 컴퓨터이다. 상기 디코딩 로직은 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어를 포함할 수 있다. 비디오 스트림을 디코딩(및 인코딩)하기 위한 시스템은 본 발명이 속한 기술 분야에서 주지되어 있으며, 채택된 특정 인코딩 방식에 따라 달라진다.
클라이언트(110)는, 수신된 비디오를 수정하도록 구성된 시스템을 추가로 포함할 수 있지만, 반드시 그러한 것은 아니다. 예를 들어, 클라이언트는, 추가 렌더링(further rendering)의 실행, 한 비디오 영상을 다른 비디오 영상에 중첩, 비디오 영상 자르기(crop), 및/또는 그 밖의 기능을 하도록 구성될 수 있다. 클라이언트(110)는 I-프레임, P-프레임, B-프레임과 같은 다양한 형식의 비디오 프레임을 수신하고, 이들 프레임을 처리하여 사용자에게 표시하기 위한 영상을 만들도록 구성될 수 있다. 일부 실시예에서는, 클라이언트(110)들 중 일원이 비디오 스트림에 대해서 추가 렌더링, 음영작업(shading), 3D로의 변환 등의 기능을 수행하도록 구성된다. 클라이언트(110)의 일원은, 선택에 따라서는, 하나 이상의 오디오 또는 비디오 스트림을 수신하도록 구성된다. 클라이언트의 입력 장치(110)에는, 예를 들어, 키보드, 조이스틱, 포인팅 장치, 포스 피드백(force feedback) 장치, 동작 및/또는 위치 감지 장치, 마우스, 터치스크린, 신경 인터페이스, 카메라, 아직 개발되어 있지 않은 입력 장치, 및/또는 그 밖의 것이 포함될 수 있다.
클라이언트(110)에 의해 수신된 비디오 스트림(그리고, 선택에 따라서는, 오디오 스트림)은 비디오 서버 시스템(120)에 의해 생성 및 제공된다. 다른 곳에서 자세하게 설명하겠지만, 이 비디오 스트림에는 비디오 프레임이 포함된다(그리고 오디오 스트림에는 오디오 프레임이 포함된다). 비디오 프레임은 사용자에게 표시되는 영상에 유의미하게 기여하도록(예를 들어, 적절한 데이터 구조의 픽셀 정보를 포함하도록) 구성된다. 유의미한 기여란, 게임자가 용이하게 영상을 볼 수 있도록 하는 기여를 의미한다. 여기서 사용한 용어 "비디오 프레임"은 주로, 사용자에게 표시되는 영상에 기여하도록(예를 들어, 효과를 주도록) 구성된 정보를 포함한 프레임을 참조하기 위해 사용하였다. "비디오 프레임"에 관한 여기서의 대부분의 서설명은 또한, "오디오 프레임"에도 적용할 수 있다. 동시에 하나 이상의 비디오 스트림을 수신하도록 클라이언트(110)를 구성할 수 있다. 예를 들어, 클라이언트(110B)를, 비디오 스트림 중 하나가 한 쪽 눈에 보여지고 다른 스트림은 다른 쪽 눈에 보여짐으로써 3차원 영상을 형성하도록 구성된 비디오 스트림의 정합된 쌍을 수신하도록 구성할 수 있다.
클라이언트(110)들은 일반적으로, 사용자로부터의 입력을 수신하도록 구성된다. 이들 입력 사항은 비디오 게임의 상황을 변경하도록 또는 그렇지 않으면 게임 실연에 영향을 미칠 수 있도록 구성된 게임 커맨드들(game commands)을 포함할 수 있다. 게임 커맨드는 입력 장치를 사용하여 수신할 수도 있고, 및/또는 자동으로 클라이언트(110)에서 실행되는 컴퓨팅 명령(computing instructions)에 의해서 생성될 수도 있다. 수신된 게임 커맨드는 네트워크(115)를 통해 클라이언트(110)로부터 비디오 서버 시스템(120) 및/또는 게임 서버(125)로 전송된다. 예를 들어, 일부 실시예에서, 게임 커맨드는 비디오 서버 시스템(120)을 통해 게임 서버(125)로 전송된다. 일부 실시예에서는, 클라이언트(110)로부터 게임 서버(125)와 비디오 서버 시스템(120)으로 게임 커맨드의 별도의 사본들이 전송된다. 게임 커맨드의 전송은, 선택에 따라서는, 커맨드의 정체성(identity)에 따라 달라진다. 게임 커맨드는, 선택에 따라서는, 클라이언트(110A)에 오디오 또는 비디오 스트림을 제공하기 위해 사용되는 다른 경로 또는 통신 채널을 통해 클라이언트(110A)로부터 전송된다.
다양한 실시예에서, 클라이언트(110)는, 각 클라이언트(100)와 비디오 서버 시스템(120) 사이, 또는 클라이언트(110)들의 각 구성 클라이언트 사이에서 부가기능 데이터(add-on data)를 통신하도록 구성된다. 예를 들어, 클라이언트들 간의 직접 음성 통신을 가능하게 하는 부가 기능이, 클라이언트 간의 오디오 데이터의 통신에 포함될 수 있다. 서버측 컴퓨터 프로그램의 기능성을 강화시키는 부가기능 데이터는, 서버측 부가기능에 사용되기 위하여 또는 클라이언트측 부가기능에 사용되기 위하여 클라이언트(110) 중 하나에 저장될 수 있다. 부가기능 데이터는 또한, 비디오 서버 시스템(120)에 또는 부가기능 서버(165)에 저장될 수 있고, 클라이언트(110)들 중 하나, 비디오 서버 시스템(120), 또는 부가기능 서버(165)에서의 부가기능에 사용될 수 있다.
게임 서버(125)는, 선택에 따라서는, 비디오 서버 시스템(120)과는 다른 기관에 의해 운용된다. 예를 들어, 게임 서버(125)를 멀티플레이어 게임의 제작자가 운용할 수 있다. 이 예에서, 비디오 서버 시스템(120)은, 선택에 따라서는, 게임 서버(125)에 대한 클라이언트로 볼 수 있으며, 이는, 선택에 따라서는, 게임 서버(125)의 관점에서 볼 때에 종래의 게임 엔진을 실행하는 종래의 클라이언트로 보일 수 있도록 구성된다. 비디오 서버 시스템(120) 및 게임 서버(125) 사이의 통신은 네트워크(115)를 통해 일어날 수 있다. 따라서, 게임 서버(125)는, 게임상황 정보를 여러 클라이언트(이들 중 하나는 비디오 서버 시스템(120)임)에게 전송하는 종래의 멀티플레이어 게임 서버가 될 수 있다. 비디오 서버 시스템(120)은 게임 서버(125)의 다수의 인스턴스(instance)를 동시에 통신하도록 구성할 수 있다. 예를 들어, 비디오 서버 시스템(120)을, 서로 다른 사용자에게 서로 다른 다수의 비디오 게임을 제공하도록 구성할 수 있다. 서로 다른 각 비디오 게임은, 서로 다른 게임 서버(125)에 의해 지원될 수 있고, 및/또는 서로 다른 기관에서 제작될 수 있다. 일부 실시예에서, 비디오 서버 시스템(120)의 지리적으로 분산된 여러 개의 인스턴스들은 다수의 다른 사용자들에게 게임 비디오를 제공하도록 구성된다. 비디오 서버 시스템(120)의 이들 각 인스턴스는 게임 서버(125)의 동일한 인스턴스와 통신할 수 있다. 비디오 서버 시스템(120)과 하나 이상의 게임 서버(125) 사이의 통신은, 선택에 따라서는, 전용 통신 채널을 통해 수행된다. 예를 들어, 비디오 서버 시스템(120)은, 이 비디오 서버 시스템과 게임 서버(125) 간의 통신을 전담하는 높은 대역폭의 채널을 통해 게임 서버(125)에 연결될 수 있다.
비디오 서버 시스템(120)은 적어도, 비디오 소스(130), I/O 장치(145), 프로세서(150), 비일시적 저장소(non-transitory storage)(155)를 포함한다. 비디오 서버 시스템(120)은 하나의 컴퓨팅 장치로 구성할 수 있거나, 또는, 다수의 컴퓨팅 장치들 사이에 분산될 수 있다. 이들 컴퓨팅 장치는, 선택에 따라서는, 근거리망(LAN)과 같은 통신 시스템을 통해 연결된다.
비디오 소스(130)는 비디오 스트림(예를 들어, 스트리밍 비디오, 또는 동영상을 구성하는 일련의 비디오 프레임)을 제공하도록 구성된다. 일부 실시예에서 비디오 소스(130)는 또한, 오디오 스트림을 제공하도록 구성된다. 일부 실시예에서, 비디오 소스(130)는 비디오 게임 엔진과 렌더링 로직을 포함한다. 비디오 게임 엔진은 게임자로부터 게임 커맨드를 수신하고, 수신된 커맨드에 기초하여 비디오 게임의 상황의 사본을 유지하도록 구성된다. 이 게임상황에는 게임 환경에서의 객체의 위치, 그리고 일반적으로, 시점이 포함된다. 게임상황은 또한, 객체의 속성(property), 영상, 색상, 및/또는 질감을 포함할 수 있다. 게임상황은 일반적으로, 게임 규칙 및 게임 커맨드(이동, 회전, 공격, 포커스 설정, 반격, 사용, 및/또는 그 밖의 커맨드)에 따라 유지된다. 게임 엔진의 일부는, 선택에 따라서는, 게임 서버(125) 내에 배치된다. 게임 서버(125)는, 지리적으로 분산되어 있는 클라이언트를 사용하여 다수의 게임자들로부터 받은 게임 커맨드에 따라 게임의 상황 사본을 유지할 수 있다. 이러한 경우들에 있어서, 게임상황은 게임 서버(125)에 의해서 비디오 소스(130)로 제공되는데, 여기에 게임상황 사본이 저장되고 렌더링이 수행된다. 게임 서버(125)는 네트워크(115)를 통해 클라이언트(110)로부터 게임 커맨드를 직접 받을 수도 있고, 및/또는 비디오 서버 시스템(120)을 통해 게임 커맨드를 받을 수도 있다.
비디오 소스(130)에는 일반적으로, 렌더링 로직(예를 들어, 하드웨어, 펌웨어, 및/또는 저장소(155) 등의 컴퓨터 판독 가능한 매체에 저장된 소프트웨어)이 포함된다. 이 렌더링 로직은 게임상황에 기초하여 비디오 스트림의 비디오 프레임을 만들도록 구성된다. 렌더링 로직의 전체 또는 일부는, 선택에 따라서는, 그래픽 처리 장치(GPU) 내에 배치된다. 렌더링 로직은 일반적으로, 객체들 간의 3차원적 공간 관계를 결정하고, 및/또는 게임상황 및 시점에 따른 적절한 질감 등을 적용하도록 구성되는 처리 단계를 포함한다. 렌더링 로직은 원시 비디오를 생성하는데, 이 원시 비디오는 보통, 생성된 후에 인코딩되어서 클라이언트(110)로 전송된다. 예를 들어, 원시 비디오를 Adobe Flash® 표준, .wav, H.264, H.263, On2, VP6, VC-1, WMA, Huffyuv, Lagarith, MPG-x, Xvid, FFmpeg, x264, VP6-8, realvideo, MP3, 또는 그 밖의 형식으로 인코딩할 수 있다. 인코딩 과정은, 선택에 따라서는, 원격지 장치에 있는 디코더에 전송하기 위해 패키지되는 비디오 스트림을 생성한다. 비디오 스트림은 프레임 크기 및 프레임 속도로써 특징지어진다. 일반적인 프레임 크기는 800×600, 1280×720(예를 들어, 720p), 1024×768이지만, 이와 다른 프레임 크기도 사용될 수 있다. 프레임 속도는 1초당의 비디오 프레임의 수이다. 비디오 스트림에는 서로 다른 형식의 비디오 프레임들이 포함될 수 있다. 예를 들어, H.264 표준은 "P" 프레임과 "I" 프레임을 포함한다. I 프레임은 디스플레이 장치에서 모든 매크로 블록/픽셀을 새로고침(refresh)하기 위한 정보를 포함하고, 반면에 P 프레임은 그 부분상황을 새로고침하기 위한 정보를 포함한다. P 프레임은 일반적으로, 그 데이터 크기가 I 프레임보다 작다. 여기서 사용한 용어 "프레임 크기"는 프레임 내의 픽셀의 수를 지칭하며, "프레임 데이터 크기"는 프레임을 저장하는 데 필요한 바이트 수를 지칭한다.
대안적 실시예에서, 비디오 소스(130)는 카메라 등의 비디오 기록 장치를 포함한다. 이 카메라는 컴퓨터 게임의 비디오 스트림 내에 포함될 수 있는 지연된 비디오 또는 라이브 비디오를 생성하는 데 사용할 수 있다. 생성된 비디오 스트림에는, 선택에 따라서는, 렌더링된 영상과, 정지영상 카메라나 비디오 카메라를 사용하여 기록된 영상이 모두 포함된다. 비디오 소스(130)는 또한, 비디오 스트림에 포함되어야 할, 사전에 기록된 영상을 저장하기 위해 구성된 저장 장치를 포함할 수 있다. 비디오 소스(130)는 또한, 객체(가령, 사람)의 움직임이나 위치를 감지하도록 구성된 움직임/위치 감지 장치와, 감지된 움직임 및/또는 위치를 기초로 게임상황을 결정하거나 비디오를 생성하도록 구성된 로직을 포함할 수 있다.
비디오 소스(130)는, 선택에 따라서는, 다른 비디오 위에 놓이게 구성된 중첩 기능을 제공하도록 구성된다. 예를 들어, 이들 중첩 기능은, 커맨드(command) 인터페이스, 로그인 명령(instruction), 다른 게임자의 시점에서 렌더링된 비디오 프레임, 게임자에 대한 메시지, 다른 게임자의 영상, 다른 게임자의 비디오 입력(feed)(예를 들어, 웹캠 비디오)을 포함할 수 있다. 터치 스크린 인터페이스를 포함하는 클라이언트(110B)의 실시예에서, 중첩 기능은 가상 키보드, 조이스틱, 터치 패드, 및/또는 그 밖의 것을 포함할 수 있다. 중첩 기능의 일례로서, 게임자의 음성이 오디오 스트림에 중첩된다. 비디오 소스(130)는, 선택에 따라서는, 하나 이상의 오디오 소스를 추가로 포함한다.
비디오 서버 시스템(120)이 하나 이상의 게임자로부터의 입력에 따라 게임상황을 유지하도록 구성되어 있는 실시예에서, 각 게임자는 다른 시점(바라보는 위치와 방향으로 이루어짐)을 가질 수 있다. 비디오 소스(130)는, 선택에 따라서는, 각 게임자의 시점에 따라 각 게임자마다 별도의 비디오 스트림을 제공하도록 구성된다. 또한, 비디오 소스(130)는 각 클라이언트(110)에게로 다른 프레임 크기, 프레임 데이터 크기, 및/또는 인코딩을 제공하도록 구성될 수 있다. 비디오 소스(130)는, 선택에 따라서는, 3D 영상을 제공하도록 구성된다.
I/O 장치(145)는, 비디오 서버 시스템(120)으로 하여금 비디오, 커맨드, 부가기능, 부가기능 데이터, 정보 요청, 게임상황, 클라이언트 정체성, 게임자 정체성, 게임 커맨드, 보안 정보, 오디오 데이터, 및/또는 그 밖의 것을 전송 및/또는 수신하도록 구성된다. I/O 장치(145)는 일반적으로, 네트워크 카드 또는 모뎀 등의 통신 하드웨어를 포함한다. I/O 장치(145)는 게임 서버(125), 네트워크(115), 및/또는 클라이언트(110)와 통신하도록 구성된다. I/O 장치(145)는 클라이언트(110) 중의 하나 이상으로부터 정보를 수신하도록 구성된다. I/O 장치(145)는, 선택에 따라서는, TCP나 UDP 등의 표준을 사용하여 정보를 패킷으로서 수신하도록 구성된다.
프로세서(150)는 본 명세서에서 설명한 비디오 서버 시스템(120)의 다양한 구성요소에 포함되어 있는 로직(예컨대, 소프트웨어)을 실행하도록 구성된다. 예를 들어, 프로세서(150)는 비디오 소스(130), 게임 서버(125), 및/또는 부가기능 관리자(160)의 기능을 수행하기 위해 소프트웨어 명령어(instruction)들로 프로그래밍할 수 있다. 비디오 서버 시스템(120)은, 선택에 따라서는, 프로세서(150)의 하나 이상의 인스턴스를 포함한다. 프로세서(150)는 또한, 비디오 서버 시스템(120)에 의해 수신된 커맨드(command)를 실행하기 위해, 또는, 본 명세서에서 설명한 게임 시스템(100)의 다양한 구성요소의 기능을 조율하기 위해, 소프트웨어 명령어로 프로그래밍할 수 있다. 프로세서(150)는 하나 이상의 하드웨어 장치를 포함할 수 있다. 프로세서(150)는 전자식 처리기이다.
저장소(155)에는 비일시적 아날로그 및/또는 디지털 저장 장치가 포함된다. 예를 들어, 저장소(155)는 비디오 프레임을 저장하도록 구성된 아날로그 저장 장치를 포함할 수 있다. 저장소(155)는 컴퓨터 판독 가능한 디지털 저장장치, 예를 들어, 하드 드라이브, 광 드라이브, 또는 반도체 저장장치 등을 포함할 수 있다. 저장소(155)는 비디오 프레임, 인공 프레임(artificial frame), 비디오 프레임과 인공 프레임을 포함하는 비디오 스트림, 오디오 프레임, 오디오 스트림, 부가기능, 부가기능 데이터, 및/또는 그 밖의 것을 저장하도록 구성된다(예를 들어, 적절한 데이터 구조 또는 파일 체계로써 구성됨). 저장소(155)는, 선택에 따라서는, 다수의 장치 간에 분산 배치된다. 일부 실시예에서, 저장소(155)는, 본 명세서의 다른 곳에서 논의된 비디오 소스(130)의 소프트웨어 구성부분을 저장하도록 구성된다. 이 구성부분은 필요시에 즉시 준비될 수 있도록 하기 위한 포맷으로 저장될 수 있다.
비디오 서버 시스템(120)은, 선택에 따라서는, 부가기능 관리자(160)를 추가로 포함한다. 부가기능 관리자(160)는 비디오 서버 시스템(120) 및/또는 클라이언트(110)에 있는 컴퓨터 프로그램을 강화시키기 위해 부가기능의 사용이 용이하도록 구성된다. 예를 들어, 일부 실시예에서, 부가기능 관리자(160)는 비디오 소스(130) 내에서 게임 프로그램을 강화하도록 구성된다. 일부 실시예에서, 부가기능 관리자(160)는 클라이언트(110)의 게임 프로그램을 강화하도록 구성된다.
부가기능 관리자(160)가 수행할 수 있는 작업은, 부가기능 설치, 부가기능 업데이트, 부가기능 실행, 부가기능 데이터 저장, 부가기능 데이터의 통신을 포함하지만 이에 국한되지는 않는다. 일부 실시예에서, 부가기능 관리자(160) 에는 부가기능과 관련 컴퓨터 프로그램 사이의 리디렉션(redirection) 통신을 위해 구성된 컴퓨팅 명령(instructions)이 포함된다. 부가기능 관리자(160)는 컴퓨터 프로그램으로부터 메시지를 다른 대체 장소로(원래는 컴퓨터 프로그램에 관련된 특정 위치로 전달됨) 리디렉트할 수 있다. 예를 들어, 비디오 소스(130)에 포함된 컴퓨터 프로그램이 컴퓨터 프로그램에 관련된 특정 디렉토리에 있는 부가기능들 및/또는 부가기능 데이터에 액세스하도록 구성된 경우라면, 이 액세스를, 비디오 서버 시스템(120)의 다른 위치로, 또는 클라이언트(110)들 중 하나로, 또는 별도의 부가기능 서버(165)로 돌리도록(리디렉트) 부가기능 관리자(160)를 구성할 수 있다. 컴퓨터 프로그램이 부가기능에 액세스하도록 구성되어 있는 특정 디렉토리는 컴퓨터 프로그램이 실행되는 디렉토리의 하위 디렉토리일 수 있다. 액세스가 리디렉트되는 대상이 되는 장소는, 선택에 따라서는, 가상 환경이다. 또는 이와 달리, 컴퓨터 프로그램이 클라이언트(110B) 내에 있으며 클라이언트(110B)의 특정 디렉토리 내에 있는 부가기능에 액세스하도록 구성되어 있다면, 이 액세스를 비디오 서버 시스템(120) 및/또는 부가기능 서버(165)에 있는 장소로 리디렉트하도록 부가기능 관리자를 구성할 수 있다. 이와 같이, 클라이언트(110B)의 부가기능은 비디오 서버 시스템(120)에 있는 컴퓨터 프로그램을 강화하는 데 사용할 수 있다(또는 그 반대도 가능함). 마찬가지로, 부가기능 서버(165)의 부가기능은 클라이언트(110) 또는 비디오 서버 시스템(120) 중 하나에 있는 컴퓨터 프로그램을 강화하는 데 사용할 수 있다. 가상 환경은, 소정의 장소 또는 물리적 장치(가령, 저장 장소 또는 경로)를 소프트웨어를 사용하여 시뮬레이션하는 환경을 의미한다.
부가기능 관리자(160)에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다. 부가기능 관리자(160)의 전부 또는 일부는, 선택에 따라서는, 비디오 서버 시스템(120)의 하나 이상의 다른 구성요소와 떨어져 있는 컴퓨팅 장치에 배치된다. 예를 들어, 부가기능 관리자(160)의 전체 또는 일부는, 선택에 따라서는, 클라이언트(110), 또는 부가기능 서버(165), 또는 게임 시스템(100) 내의 다른 위치에 배치된다. 부가기능 관리자(160)에 대한 보다 더 자세한 사항은 본 명세서의 다른 곳에서 설명한다.
옵션사항인 부가기능 서버(165)는 하나 이상의 부가기능의 저장 및/또는 실행을 위해 구성된 시스템이다. 부가기능 서버(165)는 또한, 부가기능 데이터를 저장하는 데 사용될 수 있다. 부가기능 서버(165)와 비디오 서버 시스템(120) 및/또는 클라이언트(110) 사이의 통신은 직접 이루어지거나, 네트워크(115)를 통해 이루어질 수 있다. 부가기능 서버(165)는, 선택에 따라서는, 부가기능의 출시자 또는 개발자에 의해 관리된다. 일부 실시예에서, 컴퓨터 프로그램으로부터의 통신은, 컴퓨터 프로그램에 근접한 장소로부터 부가기능 서버(165)의 위치로 리디렉트된다. 예를 들어, 부가기능 데이터 또는 실행가능한 부가기능에 대한 액세스가 클라이언트(110B) 또는 비디오 서버 시스템(120)에서부터 부가기능 서버(165)로 리디렉트될 수 있다. 게임 시스템(100)은 하나 이상의 비디오 서버 시스템(120) 및/또는 하나 이상의 부가기능 서버(165)를 포함할 수 있다.
부가기능 서버(165)에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다. 예를 들어, 일부 실시예에서 부가기능 서버(165)에는 컴퓨팅 장치, 디지털 저장소, 전자 프로세서, 및 I/O 장치가 포함된다. 디지털 저장소에 부가기능 실행 코드, 부가기능 데이터, 영상, 부가기능 관리자(160)의 전체 또는 일부, 게임 시스템(100)의 다른 구성요소와의 부가기능 통신을 관리하도록 구성된 컴퓨팅 명령, 및/또는 그 밖의 것을 저장시킬 수 있다.
도 2는 본 발명의 다양한 실시예에 따른, 부가기능에 의해 강화된 다중 비디오 게임을 제공하도록 구성된 비디오 소스(130)의 실시예의 구성 블록도이다. 다중 비디오 게임은 동일한 비디오 게임의 다수의 인스턴스들 및/또는 다른 비디오 게임의 다수의 인스턴스들을 포함할 수 있다. 비디오 게임은, 선택에 따라서는, 멀티플레이어 게임이다. 예를 들어, 비디오 게임 중 하나 이상의 게임상황이 게임 서버(125)의 하나 이상의 인스턴스(각각은 다수의 클라이언트로부터 받은 입력에 기초함)에 의해 유지될 수 있다. 도 2에 도시한 비디오 소스(130)의 구성요소들은, 선택에 따라서는, 프로세서(150)를 사용해 실행된다.
비디오 게임은 게임 로직(210)의 서로 다른 인스턴스(각각 210A, 210B, 210C 등으로 표시해 놓았음)를 사용하여 실행된다. 게임 로직(210)은 게임상황을 사용하여, 게임자에게 표시해주도록 구성된 비디오 스트림으로 렌더링할 수 있는 게임 환경을 결정하도록 구성된다. 게임 환경은 게임내 객체, 아바타, 객체의 위치, 객체의 형상, 질감, 객체 간의 공간 관계, 및 그 밖의 것이 포함된 2차원 또는 3차원의 가상 환경이다. 게임 환경은 정점(vertex) 데이터, 변환(transformation) 데이터 및 질감 데이터, 및/또는 그 밖의 것을 포함할 수 있다.
게임 환경의 렌더링은 일반적으로, 특정 게임자와 관련된 하나 이상의 시점에 기반을 두고 있다. 이들 시점은 위에서 보기, 앞으로 보기 등과 같이 매우 다를 수 있다. 또는, 시점은, 사람의 눈동자 사이의 거리에 의해 대략적으로 서로 다르게 되는 위치로부터 생길 수 있으며, 3D 영상을 만들도록 구성할 수 있다. 비디오 소스(130)는 게임 로직(210)의 1, 2, 3, 5, 7, 15, 또는 31개 이상의 인스턴스를 포함할 수 있다. 게임 로직(210)은, 선택에 따라서는, 게임 서버(125)의 클라이언트이며, 네트워크(115)를 통해 게임 서버(125)와 통신하도록 구성할 수 있다.
게임 로직(210)은 클라이언트(110)의 하나 이상으로부터 게임 커맨드를 수신하고 수신된 커맨드를 한 세트의 게임 규칙에 따라 처리하도록 구성된다. 이 규칙은, 예를 들어, 아바타가 다른 아바타들 또는 게임내 객체들과 상호작용하는 방법, 아바타의 움직임, 게임 인스턴스의 관리, 및/또는 그 밖의 사항을 포괄하고 있다. 게임 로직(210)은 또한, 선택에 따라서는, 게임 내의 이벤트를 기반으로 오디오 데이터를 생성하도록 구성된다. 이 오디오 데이터는 총소리, 물 튀는 소리, 엔진 소리, 음성, 비행기 소리, 빗소리, 음악, 또는 게임에서 일어날 수 있는 그 밖의 소리를 제공할 수 있다. 예를 들어, 객체가 다른 객체를 때리는 이벤트에서는 이에 관련된 소리가 표현될 수 있을 것이다. 게임 로직(210)에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다.
게임 로직(210)의 각 인스턴스는 별도의 컴퓨팅 장치에 배치될 수 있고, 또는, 게임 로직(210)의 여러 인스턴스가 동일한 컴퓨팅 장치에 배치될 수도 있을 것이며, 또는 게임 로직(210)의 하나의 인스턴스가 다수의 컴퓨팅 장치에 걸쳐서 배치될 수도 있을 것이다. 게임 로직(210)의 인스턴스는, 사용자가 현재 경험하고 있는 게임 환경의 요구조건에 따라 사용되는 컴퓨팅 장치의 개수 및/또는 정체성을 동적으로 변경할 수 있다. 동일한 컴퓨팅 장치에 배치된 게임 로직(210)의 인스턴스는, 선택에 따라서는, 별개의 가상 머신 또는 가상 I/O 셸(shell) 내에서 실행된다. 일부 실시예에서, 게임 로직(210)의 서로 다른 인스턴스들은, 서로에게 게임 커맨드 및/또는 게임상황 정보를 직접적으로 전송하도록 구성된다(예컨대, 게임 서버(125)를 통하여 통신할 필요없이).
게임 로직(210)은 일반적으로, 운영 체제(OS)(215)의 상층에서 실행된다. 운영 체제(215)는, 윈도우즈™, 리눅스, UNIX, Mac OS™, Solaris™, 및/또는 그 밖의 것을 포함할 수 있다. 가상 머신 플랫폼은 운영 체제(215)와 게임 로직(210) 사이에서 작동할 수 있다. 가상 머신 플랫폼은, ESX, 하이퍼-V, 및/또는 그 밖의 것과 같은 상업용 시스템을 포함할 수 있다. 이 실시예에서, 하나 이상의 게임 로직(210)을 가상 머신 내에서 실행시킬 수 있다. 게임 로직(210)의 다중 인스턴스는 운영 체계(215)의 동일한 인스턴스에 대해서 실행할 수 있다. 예를 들어, 도 2는 게임 로직 210A와 게임 로직 210B 모두가 동일한 운영 체제(215)에서 실행되는 것을 도시하고 있다. 동일한 운영 체계(215)에서 실행되는 게임 로직(210)의 인스턴스들은 동일한 비디오 게임을 실연하도록 구성될 수도 있고 아닐 수도 있다. 예를 들어, 게임 로직(210A, 210B, 210C)은, 모두가 월드 오브 워크래프트®의 클라이언트가 될 수도 있고, 각각이 월드 오브 워크래프트®, 이브(Eve)®, 콜투암스(Call to Arms)®의 클라이언트일 수도 있다.
일부 실시예에서, 게임 로직(210)에 의해 정해진 게임 환경은, 선택적 구성요소인 가상 3D 비디오 드라이버(220)으로 전달(pass)된다. 이 가상 3D 비디오 드라이버(220)는, 게임 로직(210)의 관점에서 볼 때 그래픽 처리 장치를 제어하는 비가상의(현실의) 3D 비디오 드라이버로서 보이도록 구성된다. 게임 로직(210)의 각 인스턴스가 가상 3D 비디오 드라이버(220)의 자신의 인스턴스와 연계될 수도 있고, 또는 가상 3D 비디오 드라이버(220)가 게임 로직(210)의 두 개 이상의 인스턴스에 의해 공유될 수도 있다. 일부 실시예에서, 각 게임 로직(210)에 의해 결정된 게임 오디오는 선택적 구성요소인 가상 오디오 드라이버(285)로 전달된다. 게임 오디오는 게임자에게 오디오 스트림의 일부로서 제공하도록 구성된 사운드 데이터를 포함한다. 게임 오디오는 게임 규칙(예를 들어, 총을 쏘면 '빵'하는 소리가 나야 함)에 의해 만들어질 수도 있고, 또는, 게임 오디오는 음악 트랙, 클라이언트(110)들, 마이크로폰, 및/또는 그 밖의 음원으로부터 받을 수도 있다.
대안적 실시예에서, 게임 로직(210)은 여기서 설명한 것과 같은 가상 3D 비디오 드라이버(220) 및/또는 가상 오디오 드라이버(285)의 기능성을 포함하도록 구성된다. 이들 실시예에서는, 가상 3D 비디오 드라이버(220) 및/또는 가상 오디오 드라이버(285)는 필요하지 않다.
가상 3D 비디오 드라이버(220)는, 수신된 게임 환경을 (비가상의) 3D 드라이버(230)로 전달하도록 추가적으로 구성된다. 선택에 따라서는, 3D 드라이버(230)로 게임 환경을 전달(delivery)하는 것은 가상 3D 비디오 드라이버(220)의 다양한 인스턴스에 의해 조율된다. 예를 들어, 3D 드라이버(230)가 게임 환경을, 한 번에 한 개만의 또는 최소 개수의 가상 3D 비디오 드라이버(220)로부터 수신하도록 전달 작용을 조율할 수 있다. 전형적인 실시예에서, 각각의 가상 3D 비디오 드라이버(220)는 별도의 프로세스로서 보이도록 그리고 3D 드라이버(230)에 입력되는 비디오 데이터의 별도의 소스로서 보이도록 구성된다. 그 본질상, 3D 드라이버(230)는 렌더링 후에 어느 비디오 데이터로부터 어느 비디오 프레임이 나오는지 추적하도록 구성된다.
3D 드라이버(230)에 의해 수신된 비디오 데이터는 원시 비디오 프레임으로의 렌더링을 위한 그래픽 처리 장치(GPU)(235)로 전달된다. 그래픽 처리 장치(235)는, 선택에 따라서는, 하나 이상의 비디오 스트림을 병행적으로 렌더링하는 데 사용된다. 예를 들어, 그래픽 처리 장치(235)는 병행적으로, 게임 로직 210A에서 수신된 비디오 데이터를 바탕으로 제1비디오 스트림을 생성하고, 게임 로직 210B에서 수신된 비디오 데이터를 기반으로 제2비디오 스트림을 생성하고, 게임 로직 210C에서 수신된 비디오 데이터를 기반으로 제3 비디오 스트림을 생성할 수 있다. 비디오 스트림의 병행 생성에는 이들 스트림을 동시에 생성하는 것이 포함되지만, 그러나, 비디오 스트림의 병행 생성에, 그래픽 처리 장치(235) 내에서 동시에 개별 프레임이 처리되는 것이 포함될 수도 있다(반드시 그러한 것은 아님). 예를 들어, 일부 실시예에서는 이와 달리, 3D 드라이버(230)가 게임 로직(210)들에 의해 생성된 비디오 데이터를 그래픽 처리 장치(235)로 전달(pass)한다. 게임 로직 210A에 의해 생성된 데이터가 하나의 비디오 프레임을 만들기 위해 사용되고, 뒤이어서, 게임 로직 210B에 의해 생성된 데이터가 하나의 비디오 프레임을 만들기 위해 사용된다. 이 경우에, 개별 프레임이 순차적으로 생성되는 것과 달리, 비디오 스트림은 병행해서 생성된다. 또는 이와 다르게, 하나 이상의 비디오 프레임을 그래픽 처리 장치(235)에서 동시에 생성할 수 있다. 이 경우에 그래픽 처리 장치(235)의 제1부분은 제1프레임을 생성하는 데 사용하고, 그래픽 처리 장치(235)의 제2부분은 제2프레임을 생성하는 데 사용된다. 여기서, 제1, 제2프레임은 서로 다른 게임 로직(210)에 의해 생성된 비디오 데이터로부터 생긴다. 일부 실시예에서는, 1조의 그래픽 계산 코어가 제1프레임을 생성하는 데 사용되고, 제2조의 그래픽 계산 코어가 동시에 제2프레임을 생성하는 데 사용된다. 그 결과로서 생성되는 비디오 프레임은 3D 드라이버(230)의 제어부로 되돌려 전달된다.
가상 3D 비디오 드라이버(220)는, 선택에 따라서는, 3D 드라이버(230)로부터의 렌더링된 원시(raw) 비디오 프레임의 이송(transfer)을 관리하도록 구성된다. 예를 들어, 가상 3D 드라이버(220)는 3D 드라이버(230)의 제어부로부터 공유 메모리(240)로의 비디오 프레임의 이송을 조율하는 데 사용할 수 있다. (렌더링이 끝나면, 비디오 프레임은 그래픽 처리 장치(235)의 메모리 또는 3D 드라이버(230)에 의해 관리되는 메모리에 있게 된다. 어느 경우든, 이들은 3D 드라이버(230)의 제어를 받는다.) 가상 3D 비디오 드라이버(220)가 3D 드라이버(230)와의 비디오 데이터 및 프레임의 통신을 관리하기 때문에, 일부 실시예에서는, 이 가상 3D 비디오 드라이버(220)가, 특정 비디오 다이나믹 인코딩 파이프라인(DEP: Video Dynamic Encoding Pipeline)(245)에 연계된 공유 메모리(240)의 부분에 비디오 프레임을 위치시킬 수 있는 능력이 있다. 비디오 DEP(245)는 개별적으로, 비디오 DEP(245A), 비디오 DEP(245B), 비디오 DEP(245C) 등으로 표시해놓았다. 이들 실시예에서, 각 비디오 DEP(245)는 공유 메모리(240) 내의 특정 메모리 위치에 할당되며, 그리고, 이 위치에서 비디오 데이터를 검색하도록 구성된다.
다른 실시예에서, 가상 3D 드라이버(220)는 타이밍을 기반으로 하여, 공유 메모리(240)로의 비디오 데이터의 이송을 관리하도록 구성된다. 이 실시예에서, 각 가상 3D 드라이버(220)에서 관리되는 이송 동작들은 동기화되며, 가상 3D 드라이버(220)는 각 비디오 DEP(245)에게, 이들에게 해당되는 데이터가 언제 공유 메모리(240)에 있는지를 통보한다. 일단 이 데이터가 비디오 DEP(245) 중 통보받은 DEP에 의해서 검색되면, 다른 DEP에 해당되는 데이터는 가상 3D 비디오 드라이버(220)의 제어하에 3D 드라이버(230)로부터 공유 메모리(240)로 이송된다. 이 경우, 국지적으로 위치하고 있는 GPU 메모리로부터 공유 메모리(240)로 독출된 픽셀은 일정에 기반한 것(based on schedule)일 수 있다. 여기서 사용한 용어 "동기상태(in sync)" 및 "동기되다(synchronized)"란, 두 이벤트가 일정에 의해, 타이밍 신호에 의해, 시간 지연에 의해 시간적으로 관련됨을, 또는 어느 이벤트가 다른 이벤트가 조건에 충족될 때까지는(가령, 완료됨) 일어나지 않음을 의미한다. 예를 들어, 가상 3D 드라이버(220)들은 동기상태로 동작할 수 있는데, 즉, 게임 환경은, 그래픽 처리 장치(235)가 두 번째 가상 3D 드라이버(220)로부터의 게임 환경을 렌더링 완료한 후에, 첫 번째 가상 3D 드라이버(220)로부터 3D 드라이버(230)로 보내진다. 이러한 동기화의 타이밍은, 선택에 따라서는, 그래픽 처리 장치(235)를 최적으로 사용할 수 있도록 선택된다.
가상 3D 비디오 드라이버(220)의 관리의 결과로서, 다수의 비디오 스트림이, 어느 프레임이 어느 비디오 스트림에 속하는지에 대한 혼동없이, 공유 메모리(240)에 저장될 수 있다. 공유 메모리(240)는, 선택에 따라서는, 비디오 데이터 뿐만 아니라 오디오 데이터를 저장하도록 구성된다. 이 오디오 데이터는 비디오 데이터와 관련하여 논한 것과 유사한 방식으로 저장 및/또는 관리될 수 있다.
가상 오디오 드라이버(285)는, 선택에 따라서는, 게임 로직(210) 및 OS(215) 사이에 있는 가상 I/O 셸의 일부이다. 이들은 게임 로직(210)의 관점에서 볼 때에 오디오 드라이버로서 보이도록 구성되며, 이들이 게임 로직(210)으로부터 수신한 오디오 데이터를 오디오 DEP(270)들의 일원로 전달(pass)하도록 구성된다. 예를 들어, 일부 실시예에서, 게임 로직 210A에 연계된 가상 오디오 드라이버(285)는 오디오 데이터를 오디오 DEP 270A로 보내도록, 게임 로직 210B에 연계된 가상 오디오 드라이버(285)는 오디오 데이터를 오디오 DEP 270B로 보내도록 구성된다.
하나 이상의 게임 로직(210)은, 선택에 따라서는, 각각 부가기능 환경(287)과 연계된다. 부가기능 환경(287)은 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함되고, 연계된 게임 로직(210)이 부가기능 및/또는 부가기능 데이터에 액세스하도록 구성된다. 예를 들어, 일부 실시예에서, 부가기능 환경(287)은 부가기능 및/또는 부가기능 데이터를 저장하도록 구성된 디렉토리 구조를 포함한다. 특정 디렉토리 구조는 게임 로직 210A와 게임 로직 210B의 정체성에 따라 달라진다. 예를 들어, 게임 로직(210A)이 "부가기능"이라는 이름의 하위 디렉토리에서 부가기능을 검색하고, 이 부가기능 디렉토리의 하위 디렉토리에서 부가기능 데이터를 검색하도록 구성된 경우에는, 부가기능 환경(287)은 이들 하위 디렉토리 또는 이들 하위 디렉토리의 가상 표시를 포함할 수 있다. 일반적으로, 부가기능 환경(287)은, 게임 로직(210A)이, 마치 부가기능이 게임 로직(210A)에 국지적으로(로컬로) 설치(예컨대, 게임 로직(210A)과 동일한 디렉토리 구조 내에, 또는 동일한 파일 체계로)된 것처럼 동작할 수 있도록 구성된다. 이로써, 동일한 컴퓨팅 장치에서 함께 설치되도록 구성된 게임 로직(210A)의 인스턴스와 부가기능을, 게임 로직(210)과 이에 연계된 부가기능이, 인터넷과 같은 네트워크(115)에 의해 연결된 별도의 컴퓨팅 장치에 설치되는 경우라 하더라도, 사용할 수 있게 된다.
일부 실시예에서, 부가기능 환경(287)에는, 클라이언트(110)들 중 하나에 저장된 부가기능(및 부가기능 데이터)과 게임 로직(210), 부가기능 서버(165), 및/또는 비디오 서버 시스템(120) 내의 다른 장소 간의 통신을 리디렉트하도록 구성된 컴퓨팅 명령이 포함된다. 예를 들어, 부가기능 환경(287)은 게임 로직(210)의 API를 통해서 메시지를 보내고 받는 컴퓨팅 명령 그리고 이 메시지를 리디렉트하는 컴퓨팅 명령을 포함할 수 있다. 부가기능 환경(287)은, 선택에 따라서는, API로부터 어느 메시지를 리디렉트해야 하는지를 식별하고, 필요시에는 특정 메시지를 여러 다른 장소로 리디렉트하도록 구성되는 필터를 포함한다. 이와 유사한 필터는 부가기능에 대한 국지적 위치에 포함될 수도 있다. 이 필터는 또한, 부가기능 환경(287)의 일부로 간주할 수 있으며, 부가기능으로부터 메시지(예를 들어, 데이터 또는 커맨드)를 받고 이 메시지를 게임 로직(210) 중 관련된 게임 로직으로 전달하도록 구성된다. 예를 들어, 부가기능이 게임 로직 210A로부터의 요청 또는 커맨드에 응답시에, 이 요청 또는 커맨드에 대한 응답은 게임 로직 210A로 리디렉트된다. 어느 방향으로든지 리디렉션은 네트워크(115)를 통한 데이터 패킷의 통신을 포함할 수 있다. 부가기능 환경(287)은 일반적으로, 부가기능 관리자(160)에 의해서 생성되거나, 또는, 부가기능 관리자(160)의 일부를 포함한다.
공유 메모리(240)에는, 랜덤 액세스 메모리(RAM), 또는 비디오 데이터의 효율적인 읽기 및 쓰기를 위해 구성된 유사한 메모리가 포함된다. 공유 메모리(240)는 서로 다른 다수의 비디오 DEP(245) 별로 비디오 데이터를 저장하도록 구성된다. 서로 다른 비디오 DEP(245)별 비디오 데이터는, 선택에 따라서는, 공유 메모리(240)에 동시에 저장된다. 공유 메모리(240)는 단일의 하드웨어 장치로 구성될 수도 있고, 또는 여러 장치를 포함할 수도 있다.
비디오 DEP(245)들은 각각, 그래픽 처리 장치(235)를 사용하여 렌더링된 비디오 데이터를 인코딩하도록 구성된, 동적으로 할당된 인코딩 파이프라인들이다. 비디오 DEP(245)들 각각은, 비디오 DEP(245)가 준비될 때에 지정된 비디오 포맷으로 인코딩하도록 구성된다. 이 포맷 규격은 일반적으로, 클라이언트(110) 중 하나의 요구 및/또는 비디오 서버 시스템(120)과 클라이언트(110) 사이의 통신 경로의 성능에 기반한다. 비디오 DEP(245)들은, 선택에 따라서는, 클라이언트(110) 중 하나로부터의 요청에 응답하여 동적으로 준비된다. 예를 들어, 클라이언트(110B)가 비디오 서버 시스템(120)에 연결되어 비디오 스트림 요청을 보낼 때, 비디오 DEP(245)는, 클라이언트(110B)의 요구를 충족하도록 특별히 선택된 구성요소(가령, 인코더)를 포함하도록 준비될 수 있다. 본 명세서의 다른 곳에서 논한 바, 비디오 DEP(245)들의 일원은, 선택에 따라서는, 하나 이상의 인코딩 기법을 사용하도록 구성된다.
비디오 DEP(245)들은 각각, 공유 메모리(240)로부터 비디오 데이터를 잡고(grab) 비디오 DEP(245)의 메모리로 이 비디오 데이터를 이송하도록 구성되는 그래버(grabber)(247)를 포함한다. 그래버(247)는, 선택에 따라서는, 가상 3D 비디오 드라이버(220)들의 일원에 의해 제어된다. 예를 들어, 다양한 실시예에서, 그래버(247)는, 공유 메모리(240) 내의 특정 위치로부터 비디오 데이터를 잡기 위하여 및/또는 비디오 DEP(245)들 중 다른 것으로의 비디오 데이터의 이송과 동기된 특정 시간에 비디오 데이터를 잡기 위하여 가상 3D 드라이버(220)의 일원에 의해 제어된다.
비디오 DEP(245)는 각각, 선택에 따라서는, 그래픽 처리 장치(235)에 의해 생성된 비디오 데이터(예를 들어, 프레임) 상에 하나 이상의 비디오 영상을 중첩하도록 구성된 중첩 로직(290)을 포함한다. 중첩은, 제1영상을 제2영상 위에 올려놓거나, 한 소리를 다른 소리에 추가하는 것이다. 중첩은 다양한 투명도로 적용할 수 있다. 예를 들어, 제1영상을 불투명한 것으로 중첩하여 그 아래의 제2영상의 덮힌 부분이 완전히 가려지도록 할 수 있다. 또는, 제1영상을 부분적으로 투명하게 하여 그 아래의 제2영상이 어느 정도는 보일 수 있게 할 수 있다. 중첩에 의해 아래에 있는 영상의 전부 또는 일부(들)를 가릴 수 있다. 예를 들어, 넓은 면적 내에서 특정 픽셀을 가리도록 중첩 영상을 구성할 수 있다. 이 경우 중첩 영상은 클라이언트(110)들 중 하나의 디스플레이장치의 픽셀로 매핑되거나, 또는, 그래픽 처리 장치(235)에 의해 생성된 영상 내의 픽셀로 매핑된다. 매핑은 다양한 방법으로 수행할 수 있다. 예를 들어, 중첩 영상의 왼쪽 하단 픽셀을, 그래픽 처리 장치(235)에 의해 생성된 비디오 프레임의 특정 픽셀에 할당할 수 있다. 일부 실시예에서, 중첩 로직(290)은, 중첩을 적용하기 전에 중첩의 크기를 재조정하도록 구성된다. 중첩 로직(290)은, 선택에 따라서는, 비디오 DEP(245A) 내의 다른 위치에 위치한다. 예를 들어, 전치 프로세서(전치 프로세서)(250)의 뒤에 위치한다.
중첩 영상에는 다양한 유형의 픽셀/비디오 영상이 포함될 수 있다. 예를 들어, 중첩 영상에는 인터넷을 통해 받은 게임자의 실시간 영상 또는 정지 영상, 스포츠(또는 다른) 이벤트의 실시간 영상 또는 정지 영상, 입력 제어항목(예를 들어, "a", "b", "TAB", "리턴", "스페이스바", "기능 키", "화살표", 및/또는 그 밖의 키 또는 입력 수단)의 이미지, 지도, 텍스트, 및/또는 그 밖의 것이 포함될 수 있다. 중첩 영상의 크기와 모양은 광범위하게 다양할 수 있다. 어떤 경우에는 중첩은 3D 게임 환경의 렌더링 결과이다. 영상 위에 하나 이상을 중첩할 수 있다. 이 중첩 영상을 중첩시키거나 분리할 수 있다. 중첩 영상은, 선택에 따라서는, 인코딩된 포맷으로 수신되어, 중첩 적용 전에 디코딩된다.
중첩 영상의 존재와 내용은, 선택에 따라서는, 수신된 게임 커맨드, 한 명 이상의 게임자의 정체성, 계정의 유형, 실연 중인 게임의 정체, 녹화 또는 실시간 스포츠 이벤트나 현실 세계 게임에서 캡쳐된 비디오, 게임 규칙, 및/또는 게임 로직(210)에 의해 생성된 비디오의 컨텐트에 응답한다. 예를 들어, 중첩 영상에는 게임 커맨드의 수신에 의해 생성되는 메뉴가 포함될 수 있다. 중첩 영상은 게임 로직(210)에 의해 생성된 비디오에 포함된 픽셀 패턴(예를 들어, 영상)에 응답하는 컨텐트를 포함할 수 있다. 중첩 로직(290)은, 선택에 따라서는, 하나의 비디오 프레임에 다중으로 중첩을 적용하도록 구성되며, 이때 각 중첩은 서로 다른 소스에서 생성될 수 있다.
중첩 로직(290)은, 선택에 따라서는, 전치 프로세서(250)를 이용하여 비디오 프레임을 전처리한 후, 및/또는 인코더(255)들 중 하나를 이용하여 인코딩한 후에 중첩을 적용하도록 구성된다. 일부 실시예에서 중첩 영상에는, 인터넷을 통해 비디오 소스(130)의 입력(예를 들어, I/O 장치(145))에서 받은 영상이 포함되며, 중첩 로직(290)은 영상으로부터 중첩 영상을 생성하도록 구성된 비디오 처리 로직을 포함한다. 상기 받은 영상은, 선택에 따라서는, 카메라 등의 영상 소스 또는 파일 저장소로부터 받는다.
또한 비디오 DEP(245)들은 각각, 선택에 따라서는, 전치 프로세서(PRE)(250)를 포함한다. 전치 프로세서(250)는 RGB에서 YUV로의 색공간 변환 및/또는 비디오 프레임의 해상도를 증가 또는 감소시키는 스케일(scaling) 기능을 수행하도록 구성된다. 전치 프로세서(250)는, 그래픽 처리 장치(235)의 출력이 YUV 색 공간 또는 그 밖의 원하는 색 공간에 있는 실시예에서는 선택사항이다. 다양한 크기의 비디오 프레임을 갖는 다수의 비디오 스트림을 생성하도록 구성된 비디오 DEP(245)에는 다중 전치 프로세서(250)가 포함될 수 있다.
비디오 DEP(245)들 각각에는 적어도 하나의 인코더(ENC)(255)가 포함된다. 인코더(255)를 개별적으로 인코더(255A), 인코더(255B) 등으로 표시해 놓았다. 각 인코더(225)는, 특정 코덱에 따라, 아울러 선택에 따라서는, 특정 색 깊이(색심도, color depth) 및/또는 프레임 크기에 따라 비디오 데이터를 인코딩하도록 구성된다. 예를 들어, 인코더(225)는 비디오 데이터를 어도비플래시(Adobe Flash)® 표준, .flv, .wav, .avi, .mpg, H.264, H.263, On2, VP6, VC-1, WMA, 및/또는 여기서 설명한 그 밖의 코덱으로 인코딩하도록 구성될 수 있다.
비디오 DEP(245)들의 일원은 한 개, 두 개, 또는 그 이상의 인코더(255)를 포함할 수 있다. 이들 인코더는 다양한 코덱으로 및/또는 서로 다른 포맷의 동일한 코덱으로 인코딩하도록 구성될 수 있다. 예를 들어, 인코더 255가 제2의 프레임 크기와 색심도의 Flash 표준으로 인코딩하도록 구성되는 반면에, 인코더 255A는 제1의 프레임 크기와 색심도의 동일한 Flash 표준에 따라 인코딩하도록 구성될 수 있다. 각 비디오 DEP(245) 내에 있는 인코더(255)의 정체성은 일반적으로, 비디오 DEP(245)가 준비될 때에 판단된다. 예를 들어, 하나의 커맨드나 커맨드 집합을 사용하여, 비디오 DEP(245A)를 생성(준비)하고 이 생성된 비디오 DEP(245A)에 무슨 구성요소를 포함시켜야 할지 지정할 수 있다. 비디오 DEP(245A)의 생성은, 다른 곳에서 더 설명한다. 두 개 이상의 인코더(255)를 포함하는 비디오 DEP(245)들의 일원은, 전체 구성요소가 아닌 일부 구성요소를 공통으로 갖는 두 개 이상의 별도의 비디오 DEP(245)들로 달리 볼 수 있다. 예를 들어, 비디오 DEP 245A와 비디오 DEP 245B는 동일한 전치 프로세서(250)와 서로 다른 인코더(255)를 가질 수 있다.
일 실시예에서, 인코더 255A는 H.264용 코덱을 사용하도록 구성되고, 반면에 인코더 255B는 H.263용 코덱을 사용하도록 구성된다. 두 개 이상의 서로 다른 가용성있는 인코더를 가짐으로써, 비디오 DEP 245A는 비디오 스트림의 전달시에 인코딩을 변경할 수 있다. 인코딩의 변경은 어느 한 인코딩 유형에서 다른 인코딩 유형으로 이루어질 수 있거나, 또는 단순히 특정 코드 유형의 특징을 변경하는 정도일 수 있다. 예를 들어, 특징은, 색심도, 초당 프레임 수, 인코딩 옵션, 픽셀 수, 및/또는 그 밖의측면에서 변경될 수 있다. 일부 실시예에서, 비디오 DEP 245A는, 선택에 따라서는, 클라이언트(110B)의 특징의 변화 또는 클라이언트(110B)와 비디오 소스(130) 간의 통신 채널의 변화에 응답하여 인코더 255A 및 255B 사이에서 스위칭도록 구성된다.
실무적으로, 현재 사용되고 있는 코덱과 다른 코덱이 필요한 경우에는, 새로운 비디오 DEP(245)가 현재의 비디오 DEP(245)와 병행해서 짧은 시간 동안에 생성 및 실행된다. 새로운 비디오 DEP(245)는, 선택에 따라서는, 원래 비디오 DEP(245)의 한 지류(branch)이다. 예를 들어, 원래 비디오 DEP(245)의 일부 구성요소를 새로운 비디오 DEP(245)에서도 사용할 수 있다. 이들 두 비디오 DEP(245)는 트리 구조로 로직 배열된 구성요소를 가질 수 있다.
일부 실시예에서, 비디오 DEP(245)는, 동시에 두 개 이상의 서로 다른 비디오 스트림을 생성하기 위해 두 개 이상의 서로 다른 인코더를 사용하도록 구성된다. 이들 비디오 스트림은 그래픽 처리 장치(255)에 의해 렌더링된 동일한 게임 환경을 기반으로 하며, 따라서, 본질적으로 동일한 자료를 포함하며(중첩 영상의 제외 가능성 있음) 다른 장소로 전송될 수 있다. 예를 들어, 비디오 스트림 중 하나는 클라이언트 110A로 전송될 수 있고, 다른 것은 클라이언트 110B로 전송될 수 있다. 또는 이와 달리, 비디오 스트림 중 하나는 클라이언트 110B로 전송되고, 다른 것은 제3자가 비디오를 감상할 수 있는 웹사이트로 전송될 수 있다. 이 웹사이트는, 선택에 따라서는, 소셜 네트워킹 사이트 또는 게임자 사이트의 일부이다. 두 개의 서로 다른 비디오 스트림은, 프레임 속도, 인코딩 유형, 프레임 크기, 색심도 등에서 서로 다를 수 있다. 예를 들어, 소셜 네트워킹 웹사이트로 전달되는 비디오 스트림은, 클라이언트(110B)를 사용하여 게임을 하는 게임자에게 전달되는 비디오 스트림보다 훨씬 품질이 낮을 수 있다. 제2 비디오 스트림은 게임을 하고 있는 게임자 또는 단순히 게임을 보고 있는 관중들에게 전달될 수 있다. 비디오 스트림은, 선택에 따라서는, 하나 이상의 장소로 전달된다.
비디오 DEP(245A)는, 선택에 따라서는, 하나 이상의 후치 프로세서(POST)(260)를 포함한다. 후치 프로세서(260)를 개별적 예시로서 260A와 260B로 표시하였다. 후치 프로세서(260)는 인코딩된 비디오 프레임을, 공용 또는 사설 네트워크 프로토콜에 맞게 네트워크를 통해 통신하기에 적합한 포맷으로 컨테이너에 패키징하도록 구성된다. 예를 들어, 어도비 RTMP와 같은 일부 프로토콜은 후처리가 필요하지만, H.264 Annex B와 같은 다른 비디오 표준은 후처리를 필요로 하지 않는다. 각 후치 프로세서(260)는 인코더(255)의 특정 일원과 연계될 수 있으며, 또는 인코딩된 비디오 프레임을 인코더(255)의 일원으로부터 수신하도록 여러 후치 프로세서(260)를 구성할 수 있다.
후치 프로세서(260)의 출력은, 하나 이상의 클라이언트(110)로 전달하기 위해 I/O 장치(145)로 전해진다. 여기서 설명한 비디오 DEP(245)의 구성요소에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다. 예를 들어, 각 비디오 DEP(245)는 메모리에 저장되어 전자식 프로세서에 의해 실행되는 1조의 소프트웨어를 제공할 수 있다.
오디오 DEP(270)는 게임 로직(210)들에 의해 생성된 오디오 데이터를 수신하여 이 오디오 데이터를 오디오 패킷으로 인코딩하도록 구성된다. 그 다음에, 인코딩된 데이터 패킷은 I/O 장치(145) 및 네트워크(115)를 사용하여 클라이언트(110)로 전송된다. 오디오 DEP(270)는 또한, 선택에 따라서는, 게임 로직(210)으로부터 수신된 오디오 데이터에 오디오를 중첩하도록 구성된다. 다른 오디오 DEP(270)들에 대해서 개별적으로 270A, 270B, 270C 등으로 표시하였다
비디오 DEP(245)들과 마찬가지로, 오디오 DEP(270)들은 일반적으로, 필요에 따라 분배되어 게임 로직(210)의 특정 일원으로부터의 오디오 데이터를 처리 하도록 할당된다. 이 오디오 데이터는 비디오 게임 내의 이벤트에 기반할 수 있다. 예를 들어, 비디오 게임의 한 명 이상의 게임자자가 취한 행위에 의해서, 게임 규칙에 부합되는 오디오 데이터가 생성될 수 있다(예를 들어, 물이 떨어지면 물튀는 소리가 발생됨). 오디오 DEP(270A)의 분배는 일반적으로, 동일한 요소에 응답하며 비디오 DEP(245A)의 분배와 동일한 방식으로 수행된다. 예를 들어, 오디오 DEP(270A)에 포함된 구성요소들은 클라이언트(110) 중 하나의 요구에 응답할 수 있다. 오디오 DEP(270)는 오디오 데이터를 공유 메모리(240)로부터 및/또는 가상 오디오 드라이버(285) 중 하나로부터 직접 수신할 수 있다.
오디오 DEP(270A)는, 선택에 따라서는, 가상 오디오 드라이버(285) 중 하나로부터 오디오 데이터를 수신하고, 비디오 서버 시스템(120) 외부에 있는 하나 이상의 소스로부터 오디오 데이터를 수신하고, 및/또는 공유 메모리(240)로부터 오디오 데이터를 얻도록 구성된 그래버(275)를 포함한다. 예를 들어, 일부 실시예에서, 그래버(275)는 인터넷을 통해 비디오 소스(130)의 외부 소스(예컨대, 하나 이상의 클라이언트(110))로부터 받은 데이터를 검색하도록 구성된다. 이들 임의의 소스로부터 받은 오디오는 음성, 음악, 음향 효과, 사운드 트랙, 경보음, 및/또는 그 밖의 것을 포함할 수 있다. 예를 들어, 클라이언트(110A)를 사용하는 게임자의 목소리는 클라이언트(110A)에서 수신할 수 있고, 이 게임자는 클라이언트(110) 중 다른 것을 사용하는 게임자에게 음악을 보내서 듣게 할 수 있다. 오디오 데이터는, 한 명 이상의 게임자로부터 오디오 스트림으로서 병행적으로 수신할 수 있다.
선택에 따라서는, 오디오 DEP(270A)는 중첩 로직(295)을 추가로 포함한다. 중첩 로직(295)은 게임 로직(210)의 일원에 의해 생성된 오디오 데이터 위에 하나 이상의 오디오를 중첩하도록 구성된다. 오디오 중첩은 오디오, 음악, 음향 효과, 사운드 트랙, 경보음, 및/또는 그 밖의 것을 포함할 수 있다. 예를 들어, 일부 실시예에서, 오디오 중첩에는, 인터넷을 통해 한 명 이상의 게임자로부터 데이터 패킷으로서 수신한 음성 데이터가 포함된다. 이러한 데이터 패킷은, 선택에 따라서는, 오디오 중첩에 포함되기 전에 중첩 로직(295)에 의해 디코딩된다. 게임 로직(210)의 일원에 의해 생성된 오디오 데이터 위에 중첩을 하는 것은, 선택에 따라서는, 생성된 오디오 데이터에 이 데이터를 부가하는 것이 포함된다. 오디오 중첩의 전체 또는 일부는 오디오 소스(130)의 외부에 있는 소스에서부터 받을 수 있다. 예를 들어, 일부 실시예에서 중첩에는, 인터넷을 통해 I/O 장치(145)에서 수신된 오디오 데이터를 포함하고, 중첩 로직(290)은 이 오디오 데이터로부터 오디오 중첩을 생성하도록 구성된 오디오 처리 로직을 포함한다. 오디오 중첩에 대해서 참고하자면, 일부 실시예에서, 어느 데이터가 중첩 오디오인지, 그리고 중첩이 적용되고 있는 데이터가 어느 것인지의 정체성은, 오디오 데이터가 비디오 데이터에서는 가능할 수 있는 중첩 순서의 개념을 갖고 있지 않기 때문에 임의적일 것이다.
오디오 DEP(270A)는 오디오 인코더(280A)를 추가로 포함한다. 오디오 인코더(280A)는 게임 로직(210)의 일원에 의해 생성된 오디오 데이터와 오디오 코덱에 따라 오디오 패킷 내로 삽입된 오디오 중첩을 인코딩하도록 구성된다. 인코딩은 일반적으로, 오디오 중첩(들)이 오디오 데이터에 적용된 후에 수행된다.
그래버(275), 오디오 인코더(280A), 중첩 로직(295)에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다. 오디오 DEP 270B 및 오디오 DEP 270C는 오디오 DEP 270A와는 다른 실시예이다.
비디오 소스(130)의 동작은 일반적으로, 컨트롤러(265)에 의해 관리된다. 컨트롤러(265)에는 하드웨어, 펌웨어, 및/또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어가 포함된다. 예를 들어 컨트롤러(265)는 메모리에 저장되어 마이크로 프로세서에 의해 실행되는 소프트웨어를 포함할 수 있다.
일부 실시예에서, 컨트롤러(265)는 게임을 실연하라는 요청에 대한 응답으로 게임 로직(210A), 가상 오디오 드라이버(285), 및 가상 3D 비디오 드라이버(220)의 인스턴스를 준비하도록 구성된다. 예를 들어, 특정 비디오 게임에 대한 요청이 클라이언트(110B)로부터 수신되면, 컨트롤러(265)는 저장소(155)에서 게임 로직(210A), 가상 오디오 드라이버(285), 및 가상 3D 비디오 드라이버(220)를 검색하여 이들을 작동 메모리에 배치한다. 게임 로직(210A)은 클라이언트(110B) 및 게임 서버(125) 모두와 통신하도록 배치될 수 있다. 그 다음에 게임 로직(210A)은, 비디오 게임의 실연을 위해서 프로세서(150)에 의해 실행된다.
일부 실시예에서, 컨트롤러(265)는 게임 실연 요청에 대한 응답으로 비디오 DEP(245) 및/또는 가상 오디오 드라이버(285)의 인스턴스를 분배하도록 구성된다. 예를 들어, 컨트롤러(265)는 먼저 비디오 DEP(245A) 및 오디오 DEP(270A)에 대한 요구사항을 결정하거나 수신하고, 그 다음에 이들 요구사항을 충족하는 컴퓨팅 명령을 준비하도록 구성할 수 있다. 그런 후, 비디오 DEP(245A) 및 오디오 DEP(270)는 게임 로직(210) 중 하나 및 가상 3D 드라이버(220) 중 하나와 연계된다. 준비된 비디오 DEP(245A)는, 선택에 따라서는, 공유 메모리(240) 내의 특정 영역에서 원시 비디오 데이터를 검색하도록 구성된다.
일부 실시예에서 비디오 DEP(245A) 및/또는 오디오 DEP(270A)에 대한 요구사항은 클라이언트(110B)의 사용자에게 질의(query)함으로써 결정된다. 예를 들어, 컨트롤러(265)는 문자 메시지가 클라이언트(110B)에 표시되도록 구성될 수 있는데, 이 메시지는 클라이언트(110B)를 사용하는 사용자가, 사용자가 원하는 비디오 스트림의 특징들을 입력하도록 요청하는 메시지이다. 이들 특징에는 연결 형식, 프레임 크기, 인코딩 기법, 프레임 속도, 색심도, 및/또는 그 밖의 것이 포함될 수 있다. 입력된 특징들은 컨트롤러(265)로 다시 보내어지는데, 그 다음에 컨트롤러는 이들 특징을 이용하여, 이들이 준비될 때, 비디오 DEP(245A) 및/또는 오디오 DEP(270A)에 포함시킬 구성요소를 선택한다. 예를 들어, 사용자가 특정 인코딩 기법을 요청하면, 이 요청받은 인코딩 기법을 사용하도록 구성된 인코더(255)가 선택되고 비디오 DEP(245A)에 포함되게 된다.
일부 실시예에서 비디오 DEP(245A) 및/또는 오디오 DEP(270A)에 대한 요구사항은 자동으로 정해진다. 예를 들어, 클라이언트 자격부여자에 의해 수집된 정보를 사용하여 비디오 DEP(245A)에 대한 요구사항을 결정할 수 있다. 이 예에서, 만약 클라이언트(110B)가 Microsoft Silverlight® 디코더 및 Adobe Flash® 디코더만을 포함하고 있다면, 비디오 DEP(245A)에서는 해당 인코더 구성 또는 그 변종들 중의 적어도 하나가 필요하다. 비디오 DEP(245A)를 사용하여 생성되어야 할 비디오 스트림의 특징(가령, 프레임 크기, 색심도, 프레임 속도)도 또한, 이러한 방식으로 컨트롤러(265)에 의해 결정될 수 있다.
비디오 DEP(245A) 및/또는 오디오 DEP(270)에 대한 요구사항의 결정은 사용자가 제공한 특징과 자동으로 결정된 특징 모두를 사용하는 것을 포함할 수 있다. 일부 실시예에서, 가능한 특징은 사용자 계정의 유형, 지불, 및/또는 가입에 의해 제한된다. 예를 들어, 사용자는 더 높은 품질의 비디오 스트림을 받기 위해 대가를 지불할 수 있다.
컨트롤러(265)는 또한, 공유 메모리(240)의 공유를 관리할 수 있다. 예를 들어, 컨트롤러(265)는, 공유 메모리(240) 내에서 특정 메모리 위치를 사용하기 위하여 비디오 DEP(245A) 및/또는 오디오 DEP(270A)를 구성할 수 있다. 및/또는 컨트롤러(265)는 특정 타이밍 신호에 대한 응답으로서 공유 메모리(240)에 액세스하기 위하여 비디오 DEP(245A) 및/또는 오디오 DEP(270A)를 구성하도록 구성될 수 있다. 상기 타이밍 신호는 서로 다른 비디오 DEP(245)들에 의한 공유 메모리(240)로의 액세스의 동기에 시간이 맞춰진다.
도 3은 본 발명의 다양한 실시예에 따른 부가기능 관리자(160)의 상세 구성을 도시한다. 일반적으로, 부가기능 관리자(160)는, 부가기능의 원격 선택 및 설치가 가능하도록, 부가기능 환경을 사용하여 부가기능의 실행을 용이하게 하고, 부가기능을 관리하고, 부가기능과 부가기능 데이터를 특정 사용자(게임자) 계정이나 아바타와 연계시키고, 및/또는 그 밖의 작용을 하도록 구성된다. 부가기능 관리자(160)는 일반적으로, 컴퓨터 판독 가능한 매체에 저장된 소프트웨어를 포함하지만, 펌웨어 또는 하드웨어도 포함할 수 있다. 부가기능 관리자(160)는 하나의 컴퓨팅 장치에 배치될 수 있거나 하나 이상의 컴퓨팅 장치들 간에 분산 배치될 수도 있다. 예를 들어, 다양한 실시예에서, 부가기능 관리자(160)의 구성부분들은 비디오 서버 시스템(120), 부가기능 서버(165), 및/또는 클라이언트(110B)에 배치될 수 있다.
부가기능 관리자(160)는 부가기능을 컴퓨터 프로그램과 연계하여 설치하도록 구성된 부가기능 설치자(310)를 포함한다. 본 명세서에서 사용한 부가기능과 컴퓨터 프로그램의 연계는, 컴퓨터 프로그램의 기능성을 강화하거나 그렇지 않으면 확장하도록 부가기능이 구성됨을 나타내고자 의도된 것이다. 일반적으로, 부가기능은 특정 컴퓨터 프로그램과 연계되어 구성된다. 선택에 따라서는, 설치는 원격으로 이루어진다. 예를 들면, 비디오 서버 시스템(120)에서의 설치를, 네트워크(115)를 통해 클라이언트(110B)로부터 받은 커맨드에 대한 응답으로서 수행할 수 있다. 이 커맨드는 부가기능 관리자(160)가 수신하여 처리한다.
부가기능 설치자(310)에 의해 수행되는 설치에는, 부가기능의 실행과 호환되는 특징을 갖는 부가기능 환경(287)의 생성이 포함될 수 있다. 본 명세서의 다른 곳에서 설명한 바와 같이, 부가기능 환경(287)은 디렉토리 구조, 통신을 리디렉트하도록 구성된 컴퓨팅 명령 등을 포함할 수 있다. 예를 들어, 상기 설치에는, 게임 로직(210)에 관련된 디렉토리, 하위 디렉토리, 또는 디렉토리 구조의 그 밖의 요소를 생성하는 것이 포함될 수 있다. 일부 실시예에서, 상기 설치에는, 다른 장치로 메시지를 리디렉션하도록 구성된 컴퓨팅 명령을 추가하는 것이 포함된다. 이러한 컴퓨팅 명령의 설치는 게임 로직(210)의 위치에서 그리고/또는 부가기능의 위치에서 수행될 수 있다.
설치의 시작과 제어는 부가기능 인터페이스(320)를 통해서 할 수 있다. 부가기능 인터페이스(320)는 클라이언트(110)의 사용자에게 표시되도록 구성된 사용자 인터페이스, 네트워크(115)를 통해 이 사용자 인터페이스를 생성하고 전송하도록 구성된 컴퓨팅 명령, 그리고/또는 사용자 인테페이스를 통해 사용자가 입력한 커맨드를 수신하도록 구성된 컴퓨팅 명령을 포함한다. 다양한 실시예에서, 사용자 인터페이스는, 사용자로 하여금, 설치하고자 할 부가기능을 선택하고, 부가기능 및 부가기능 데이터 저장 공간에 대한 비용을 지불하고, 특정 아바타에 대해서 어느 부가기능을 활성화해야 하는지를 선택하고, 부가기능을 온/오프하고, 부가기능을 업데이트하도록, 그리고 승인된 부가기능 목록을 관리하도록, 그리고/또는 부가기능의 설치를 해제하도록 구성된다. 커맨드의 선택과 입력은 일반적으로, 부가기능 인터페이스(320)의 사용자에게 표시되는 해당 부분에서 문자 등을 클릭하거나 입력함으로써 수행된다. 이러한 행위의 결과는 부가기능 인터페이스(320)의 다른 부분으로 전송되어 처리된다. 부가기능 인터페이스(320)의 일부는, 선택에 따라서는, 클라이언트(110)에 전송되는 비디오 스트림에 중첩된다.
부가기능 인터페이스(320)를 사용함으로써, 사용자는 비디오 서버 시스템(120) 또는 부가기능 서버(165)에 하나 이상의 부가기능을 원격으로 설치할 수 있고, 그리고/또는 클라이언트(110)로부터 떨어져 있는 부가기능 및 게임 로직(210)의 위치에서의 리디렉션을 위한 적절한 컴퓨팅 명령을 설치할 수 있다. 예를 들어, 사용자는 승인된 부가기능의 목록에서 하나 이상의 부가기능을 선택할 수 있다. 이 승인된 부가기능 목록은, 선택에 따라서는, 저장소(155) 또는 부가기능 서버(165)에 저장된다. 승인된 부가기능은, 게임 출시자, 비디오 서버 시스템(120)의 관리자, 또는 그 밖의 기관에 의해서 게임 로직(210)에의 사용 자격을 인정받은 부가기능을 의미한다. 부가기능 인터페이스(320)를 사용함으로써, 사용자는 또한, 선택에 따라서는, 어느 계정, 아바타, 및/또는 게임의 부가기능이 연계되어야 하는지, 그리고 어디에 부가기능을 저장해야 하는지(예를 들어, 클라이언트 중 하나(110)에, 비디오 서버 시스템(120)에, 및/또는 부가기능 서버(165)에)를 선택할 수 있다. 예를 들어, 사용자는, 하나 이상의 어느 특정 아바타에 대해서만 부가기능을 사용해야 하고 다른 아바타에는 사용해서는 안됨을 지정할 수 있다.
본 발명의 일부 실시예에서, 사용자는, 부가기능의 수, 그리고/또는 사용자가 사용가능한 부가기능 저장소의 크기에 제한을 받는다. 이 제한은 부가기능 관리자(160)에 의해 관리되며, 추가 공간을 구입하여 증설할 수 있다. 예를 들어, 일 실시예에서, 사용자는, 부가기능이 포함될 수 있는 3개의 가상 "슬롯"을 받고, 돈을 지불하거나 소정의 행위(다른 게임자들을 데리고 옴)를 취함으로써 추가 슬롯을 구입할 수 있다.
부가기능 관리자(160)는, 선택에 따라서는, 설치된 부가기능을 사용자가 켜고 끌 수 있도록(온/오프) 구성된다. 예를 들어, 사용자는, 게임 내 특정 활동(예를 들어 게임자대 게임자의 대전)에 대해서만 부가기능을 사용하고 싶을 수 있다. 부가기능을 오프한다는 것이 반드시 설치해제를 의미하는 것은 아니다. 일부 실시예에서, 오프된 부가기능은 부가기능 슬롯을 필요로 하지 않는다. 이러한 실시예에서, 사용자는 사용가능한 슬롯보다 더 많은 부가기능을 설치할 수 있다. 또는 이와 달리, 각 설치된 각 부가기능은, 활성화 여부에 상관없이 슬롯을 필요로 할 수도 있다.
일부 실시예에서, 부가기능 관리자(160)는 부가기능을 업데이트하도록 구성된다. 이러한 업데이트는 수동 및/또는 자동으로 할 수 있다. 수동 업데이트는, 예를 들어, 사용자가 부가기능 관리자(160)에서 부가기능 출시자의 웹주소 또는 부가기능 코드를 입력하는 것을 포함한다. 부가기능 관리자(160)는 출시자 또는 클라이언트(110) 중 하나로부터 부가기능을 검색할 수 있다. 자동 부가기능 업데이트는, 부가기능 출시자 또는 그 밖의 출처로부터 부가기능을 자동으로 검색하는 것을 포함한다. 예를 들어, 부가기능이 구버전인 것으로 감지될 때에, 부가기능 관리자(160)는, 선택에 따라서는, 해당 부가기능의 출시자 또는 그 밖의 출처에 자동으로 업데이트 버전을 요청하고 가능하게 되면 해당 업데이트 버전을 자동으로 설치하도록 구성된다. 이 과정은 게임자에 투명할 수 있다. 어떤 경우에는, 부가기능 관리자(160)는 출처로부터 부가기능이 입수가능해질 때까지 기다린 다음에 업데이트를 수행할 것이다.
수동 또는 자동 부가기능 업데이트를 위해서, 부가기능 관리자(160)는, 선택에 따라서는, 부가기능이 구형 버전임을 감지하고 이를 사용자에게 알려주도록 자동으로 구성된다. 부가기능 관리자(160)는 또한, 부가기능의 새 버전이 입수가능함을 알리는 출시자의 통지를 수신하도록 구성될 수 있다.
부가기능 관리자(160)는, 선택에 따라서는, 클라이언트(110)의 사용자가 부가기능 인터페이스(320)를 통해 부가기능을 관리하도록 구성된다. 부가기능 인터페이스(320)를 통해 수행되는 상기 관리에는, 예를 들어, 부가기능의 업데이트, 부가기능의 구입, 부가기능의 구성, 부가기능의 이동, 설치된 부가기능을 보기, 부가기능의 활성화 및 불활성화, 부가기능의 설치, 부가기능의 설치 해제, 및/또는 그 밖의 기능이 포함될 수 있다. 일부 실시예에서, 부가기능 인터페이스(320)는 클라이언트측 부가기능에서 수행될 수도 있는 임의의 부가기능 관리 기능을 수행하도록 구성된다. 선택에 따라서는, 상기 설치 해제에는, 부가기능과 게임 로직(210) 사이의 메시지를 리디렉션하도록 구성된 컴퓨팅 명령어를 제거하는 것, 그리고/또는 부가기능 환경(287)을 제거하는 것이 포함된다. 다른 곳에서 논의한 것과 같이, 일부 실시예에서 부가기능 관리자(160)는 부가기능을 자동으로 업데이트하도록 구성된다. 업데이트 방식은, 선택에 따라서는, 부가기능 인터페이스(320)를 사용하여 관리된다.
부가기능 관리자(160)는, 선택에 따라서는, 부가기능 및/또는 부가기능 데이터를 클라이언트(110B) 또는 다른 클라이언트(110)의 사용자와의 연계를 관리하도록 구성된 계정 관리자(325)를 추가로 포함한다. 사용자(게임자)가 부가기능을 설치할 때, 계정 관리자는 이 부가기능을 특정 비디오 게임, 사용자, 사용자 계정, 및/또는 아바타에 연계시킨다. 일반적으로, 이 연계는 각 사용자가 설치한 부가기능 목록의 일부로서 저장된다. 사용자가 비디오 게임을 시작하면, 계정 관리자(325)는 이 목록을 읽고 사용자에 연계된 부가기능을 식별하게 된다. 그 다음에, 이들 부가기능 및 이에 해당되는 부가기능 환경이, 게임 로직(210), 비디오 DEP(245A), 및/또는 오디오 DEP(270A)의 준비와 함께 준비된다. 또한, 부가기능은, 선택에 따라서는, 사용자가 아바타를 바꾸거나 부가기능을 활성화 및 불활성화시킴에 따라 준비 또는 준비 취소된다.
계정 관리자(325)는 사용자가 비디오 게임을 실연하지 않는 때에, 사용자와 연계된 부가기능 데이터의 저장을 관리한다. 부가기능 데이터는 저장소(155), 부가기능 서버(165), 및/또는 클라이언트(110)에 저장될 수 있다. 게임 실연이 시작되면 이 데이터는 일반적으로, 해당 부가기능 환경(287)으로 복사되어 하나 이상의 준비된 부가기능에 의해 사용된다. 게임 실연이 완료되면 부가기능 환경(287) 내의 부가기능 데이터 사본을 사용하여 저장된 사본을 업데이트한다. 부가기능 데이터는 데이터베이스, 파일 구조, 또는 그 밖의 장소에 저장되고, 이 부가기능 데이터는 부가기능 데이터가 특정 사용자(즉, 게임자)에게 속해 있음을 식별하기 위한식별 정보(기록 색인 또는 파일명)를 포함한다. 일부 실시예에서 계정 관리자(325)는 어느 부가기능 데이터 파일이 특정 사용자에게 속하는지 그리고/또는 특정 계정이나 아바타에 연계되어 있는지를 나타내도록 구성된 지표(인덱스)를 유지한다.
다양한 실시예에서, 계정 관리자(325)는 부가기능 슬롯 및/또는 각 사용자가 액세스가능한 저장소의 개수를 관리하고, 추가되는 슬롯 및/또는 저장소에 대해서 사용자에게 과금하고, 그리고/또는 사용자에게 별도의 슬롯 또는 저장소를 구매할 것을 제안하도록 구성된다. 예를 들어, 사용자가 자기가 사용가능한 슬롯보다 더 많은 부가기능을 활성화하려고 시도하는 경우, 계정 관리자는 부가기능 인터페이스(320)를 사용하여 사용자에게 슬롯을 더 구입할 수 있는 기회를 제공한다.
부가기능 관리자(160)는, 선택에 따라서는, 부가기능을 업데이트하도록 구성된 부가기능 업데이터(330)를 추가로 포함한다. 업데이트는 부가기능의 새 버전이 입수가능해질 때, 또는 게임 로직(210)의 새 버전에 대한 응답으로서 수행될 수 있다. 예를 들어, 게임 로직(210)의 새 버전이 게임 제작자에 의해 출시되었을 때, 해당 게임에 대한 제3자의 부가기능은 일반적으로, 테스트 및/또는 업데이트 해야 할 필요가 있다. 부가기능 업데이터(330)는 소정 이벤트(예를 들어 부가기능 및 게임 로직(210)의 새로운 버전의 출시)를 모니터링하고, 이에 응해서 업데이트를 수행하도록 구성된다. 일부 실시예에서, 이 프로세스는, 게임 로직(210)의 새로운 버전이 입수가능하게 된 것을 알리는 정보를 수신하고, 부가기능의 업데이트 버전이 필요함을 부가기능 출시자에게 통지하고, 업데이트된 부가기능을 수신하고, 구형 부가기능을 업데이트된 부가기능으로 교체하는 것을 포함한다. 이들 단계의 일부 또는 전부는 자동으로 수행될 수도 있고, 또는 클라이언트(110B)의 사용자로부터의 입력이 관여할 수도 있다. 일부 실시예에서, 부가기능 업데이터(330)는 해당 FTP 서버 또는 웹사이트 등의 제3의 장소에서 부가기능을 자동으로 검색하도록 구성된다.
부가기능 관리자(160)는 부가기능 저장소(335)를 추가로 포함한다. 부가기능 저장소(335)는 데이터, 영상, 및/또는 실행가능 컴퓨팅 명령을 저장하도록 구성된 적어도 하나의 전자식 저장 장치를 포함한다. 예를 들어, 부가기능 저장소(335)는 휘발성 또는 비휘발성 메모리, 하드 드라이브, 및 옵션품 드라이브, 정적 또는 동적 랜덤 액세스 메모리, 및/또는 그 밖의 것을 포함할 수 있다. 부가기능 저장소(335)는, 선택에 따라서는, 비디오 서버 시스템(120), 부가기능 서버(165), 클라이언트(110)를 포함한 다수의 장치들 사이에 분산된다.
부가기능 저장소(335)에는, 선택에 따라서는 부가부(340)들이 포함된다. 부가부(340)들에는 데이터, 영상, 실행가능 코드, 스크립트, 또는 그 밖에, 게임 로직(210)의 기능을 확장하는 데 사용되도록 구성된 그 밖의 게임 컨텐트가 포함된다. 부가부(340)는 비디오 서버 시스템(120), 부가기능 서버(165), 클라이언트(110), 또는 그 밖의 곳에 부가기능으로서 설치될 수 있다. 부가부(340)는, 부가기능의 실행을 위해 제3자 출처로부터 직접 부가기능을 검색하는 실시예에서는 선택사항이다. 부가기능 저장소(355)는, 선택에 따라서는, 승인된 부가부(340)의 승인 목록(345)을 포함한다. 부가부(340)에 있는 컴퓨터 명령어들은, 선택에 따라서는, 하나 이상의 게임자에게 공유된다. 예를 들어, 하나의 부가기능이 준비되면, 이 하나의 부가기능이 게임 로직 210A 및 게임 로직 210B 둘 다와 연계되어, 서로 다른 컴퓨팅 스레드가 독립적으로 컴퓨팅 명령에 액세스할 수 있다.
부가기능 저장소(355)는, 선택에 따라서는, API 필터(350)를 포함한다. API 필터(350)는 본 명세서의 다른 곳에서 설명한 바와 같이, 부가부(340) 중 하나와 게임 로직(210) 사이의 통신을 리디렉션하도록 구성된 컴퓨팅 명령을 포함한다. 이러한 컴퓨팅 명령은, 부가기능 서버(165) 또는 클라이언트(110)들 중 하나에 있는 부가기능이, 비디오 서버 시스템(120)에 있는 게임 로직(210)의 기능성을 확장하는 데 사용할 수 있도록 구성될 수 있다. 또는 이와 달리, API 필터(350)를 사용하여, 비디오 서버 시스템(120)에 있는 또는 부가기능 서버(165)에 있는 부가기능은, 클라이언트(110)들 중 하나에 설치된 게임 로직(210)의 기능성을 확장하는 데 사용될 수 있다. API 필터(350)가 적정한 위치에 설치되어 있을 때에는, 부가기능과 컴퓨터 프로그램이 네트워크(115)을 통해 떨어져 있다 하더라도, 이 부가기능에 의해서 컴퓨터 프로그램의 기능성이 확장될 수 있다.
부가기능 저장소(355)에는, 선택에 따라서는, 부가기능과 함께 포함되거나 부가기능에 의해 생성 또는 조직되는 부가기능 데이터(355)가 포함된다. 부가기능 데이터(355)에는 하나 이상의 부가기능에 의해 생성된 데이터가 포함될 수 있다. 일반적으로, 이 데이터는, 게임이 시작되거나 부가부(340)가 활성화 될 때, 해당되는 부가기능 환경(287)으로 복사된다. 게임 실연이 완료되면 부가기능 환경(287) 내의 부가기능 데이터는, 부가기능 저장소(355)에 저장되어 있는 부가기능 데이터의 사본을 업데이트하는 데 사용된다.
도 4는 본 발명의 다양한 실시예에 따른, 클라이언트의 보다 상세한 구성을 도시한다. I/O(405)는, 클라이언트(110)로 하여금 비디오, 커맨드, 부가기능, 부가기능 데이터, 정보 요청, 게임상황, 클라이언트 정체성, 게임자 정체성, 게임 커맨드, 보안 정보, 오디오 데이터, 및/또는 그 밖의 것을 전송 및/또는 수신하도록 구성된다. 일부 실시예에서, I/O는 모뎀 또는 이더넷 포트를 포함한다.
클라이언트측 저장소(410)에는 비일시적 아날로그 및/또는 디지털 저장 장치가 포함된다. 예를 들어, 클라이언트측 저장소(410)는 비디오 프레임을 저장하도록 구성된 아날로그 저장 장치를 포함할 수 있다. 클라이언트측 저장소(410)는 컴퓨터 판독 가능한 디지털 저장장치, 예를 들어, 하드 드라이브, 광 드라이브, 또는 반도체 저장장치 등을 포함할 수 있다. 클라이언트측 저장소(410)는 비디오 프레임, 인공 프레임(artificial frame), 비디오 프레임과 인공 프레임을 포함하는 비디오 스트림, 오디오 프레임, 오디오 스트림, 부가기능, 부가기능 데이터, 및/또는 그 밖의 것을 저장하도록 구성된다(예를 들어, 적절한 데이터 구조 또는 파일 체계로써 구성됨). 이들 부가기능의 일부는 클라이언트(110B)에 있는 게임 로직(210)의 인스턴스에 연계될 수 있는데, 동일한 게임 로직(210)은 또한, 클라이언트(110B)로부터 지리적으로 원격지에 있는 장치에 설치된 부가기능과도 연계된다.
API 필터(350)는 다른 곳에서 논의한 것과 같이, 통신을 리디렉션하도록 구성된 부가기능 환경(287)의 일부분이다. 프로세서(420)에는 중앙 처리 장치(CPU) 및 적어도 하나의 그래픽 처리 장치(GPU)가 모두 포함된다. 디스플레이(430)는 클라이언트(110B)에서 국지적으로 생성된 비디오 스트림 및/또는 비디오 서버 시스템(120)에 의해 생성된 비디오 스트림을 표시하도록 구성된다.
사용자 입력부(440)는 예를 들어, 키보드, 조이스틱, 포인팅 장치, 전화, 포스 피드백 장치, 움직임 및/또는 위치 감지 장치, 마우스, 터치스크린, 신경 인터페이스, 카메라, 아직 개발되지 않은 입력장치, 및/또는 그 밖의 것을 포함한다.
도 5는 본 발명의 다양한 실시예에 따른, 부가기능의 설치 및/또는 사용 방법을 도시한다. 이 방법은, 부가기능 서버(165), 비디오 서버 시스템(120), 또는 클라이언트(110)들 중 하나에 부가기능이 설치되어있는 실시예, 그리고 게임 로직(210)이 클라이언트(110)들 중 하나 또는 비디오 서버 시스템(120)에 설치되어 있는 실시예에 적용가능하다. 이들 모든 실시예의 공통점은, 부가기능과 이에 연계된 게임 로직(210) 중 적어도 하나는 클라이언트(110)들 중의 한 클라이언트가 아닌 다른 곳에 설치되고 사용되며, 네트워크(115)를 통해 클라이언트(110)들 중 상기 클라이언트와 분리되어 있다는 것이다. 예를 들어, 게임 로직(210)이 클라이언트 110B에 설치되어 있는 경우, 적어도 하나의 관련 부가기능은, 클라이언트(110)들 중의 다른 클라이언트, 부가기능 서버(165), 비디오 서버 시스템(120), 또는 제3의 장소에 설치되고 사용된다. 게임 로직(210)이 클라이언트 110B 이외의 장소에 설치되어 있는 경우에는, 부가기능은 클라이언트 110B 또는 본 명세서에서 설명한 다른 장소에 설치할 수 있다. 선택에 따라서는, 부가기능의 설치에 관한 도 5의 상기 절차들은, 설치된 부가기능을 사용하는 것이 포함된 상기 절차들과는 별도로 수행된다. 부가기능의 설치 및 실행은 모두 클라이언트(110) 중 하나를 사용하여 게임자에 의해 시작될 수 있거나, 또는 게임 로직(210)에 대한 기본(디폴트) 설정의 일부로서 지정될 수 있다. 일부 실시예에는 하나 이상의 부을 설치하는 것이 포함된다.
게임 로직(210)이 비디오 서버 시스템(120)에 설치된 실시예를 먼저 고려하면, 이 설치 과정은 부가기능 식별 단계 510에서 시작할 수 있다. 이 단계에서, 설치하고자 할 부가기능은 일반적으로, 클라이언트(110) 중 하나를 사용하는 게임자에 의해 식별된다. 이 식별은 부가기능 인터페이스(320)를 사용하여 게임자에게 제공되는 부가기능 목록에서 이루어질 수도 있고, 저장 장소 또는 제3자 출처로부터 부가기능을 게임자가 선택할 수도 있다.
일부 실시예에서는 승인된 부가기능만을 식별할 수 있다. 이 실시예에서는, 선택에 따라서는, 식별된 부가부(340)가 부가기능의 승인 목록에 포함되어 있는지를 확인하기 위해 부가기능 확인 단계 515가 이용된다. 여기서의 확인에는, 승인된 목록에서 부가기능의 이름(또는 다른 식별자)을 찾는 과정, 또는 체크섬, URL, 또는 승인된 부가기능의 다른 싸인을, 선택된 부가기능의 해당 특징과 비교하는 과정이 포함될 수 있다.
환경 개설 단계 520에서는, 부가기능 관리자(160)를 사용하여, 식별한 부가기능의 실행을 위한 부가기능 환경(287)의 인스턴스를 개설한다. 다양한 실시예에서, 부가기능 환경(287)은 비디오 서버 시스템(120), 부가기능 서버(165), 또는 클라이언트(110) 중 하나에 개설된다. 예를 들어, 비디오 소스에(130) 부가기능 환경(287)을 개설하는 것에는, 연계된 게임 로직(210)에 의해 예상되는 장소에 부가기능이 설치될 수 있도록 적절한 디렉토리 구조를 생성하는 과정이 포함될 수 있다. 좀 더 구체적인 예로서, 게임 로직(210)이, 게임 로직(210)의 디렉토리에 관련된, "부가기능"이라는 이름의 하위 디렉토리를 검색하도록 구성된 경우에는, 환경 개설 단계 520에는, 이 하위 디렉토리를 적절한 위치에 생성하는 과정이 포함될 수 있다.
서버(165) 또는 클라이언트(110)들 중 하나에 부가기능 환경(287)을 개설하는 것에는 일반적으로, 게임 로직(210)과 부가기능 사이의 통신을 적절한 장소에 리디렉션하도록 구성돈 컴퓨팅 명령을 배치하는 것이 포함된다. 예를 들어, 제1 API 필터(350)를 게임 로직(210)의 API에 설치할 수 있고, 제2 API 필터(350)를 부가기능이 실행될 API에 설치할 수 있다. 이들 API 필터(350)는 서로에게 메시지를 리디렉션함으로서, 동일한 컴퓨팅 장치에서 함께 동작하도록 구성된 부가기능 및 이에 연계된 게임 로직(210)이 네트워크(115)를 통해서 서로 통신함에 의해 대신해서 동작하도록 구성된다. 부가기능 환경(287)의 설정은, 선택에 따라서는, 각 API 필터(350)를 구성하되, 이들이 어디에 설치되어 있는지 관계없이 상호 통신할 수 있도록 구성하는 것을 포함한다. 예를 들어, 각 API 필터(350)를, 이에 대응되는 API 필터(350)의 IP 주소 또는 URL을 갖도록 구성할 수 있다.
부가기능 수신 단계 525에서, 설치하고자 하는 부가기능을 저장소(155), 부가기능 저장소(335), 클라이언트(110)들 중 하나, 또는 제3의 장소로부터 수신한다. 부가기능은, 선택에 따라서는, 네트워크(115)를 통해 수신한다. 부가기능은, 실행되어야 할 장소, 예컨대, 환경 개설 단계 520에서 개설된 부가기능 환경(287)에서 수신된다. 부가기능 수신 단계 525의 일부 실시예에는, 부가기능을 부가기능 저장소(335), 클라이언트(110B), 또는 제3자의 장소로부터 비디오 서버 시스템(120)으로 전송하는 것이 포함된다. 부가기능 수신 단계 525의 일부 실시예에는 부가기능을 부가기능 저장소(335), 저장소(155), 또는 제3의 장소로부터 클라이언트(110B)로 전송하는 것이 포함된다.
배치 단계 530에서는, 수신된 부가기능을 환경 개설 단계 520에서 개설된 부가기능 환경(287)에 설치/배치한다. 이 설치는, 비디오 소스(130)의 디렉토리 구조 내에서, 또는 부가기능 서버(165), 비디오 소스(130), 및/또는 클라이언트(110)에 설치된 API 필터(350)의 위치에서 일어날 수 있다. 이 설치에는, 부가기능의 컴퓨팅 명령을 준비하는 것, 그리고, 선택사항으로서, 기본적인(디폴트) 부가기능을 준비하는 것이 포함될 수 있다. 환경 개설 단계 520은, 선택에 따라서는, 배치 단계 530 이후에 또는 이와 동시에 수행된다. 예를 들어, API 필터(350)는 부가기능이 설치된 다음에 설치될 수 있다. 배치 단계 520은, 선택에 따라서는, 부가기능과 함께 부가기능 데이터를 준비하는 것이 포함된다. 부가기능을 데이터 또는 부가기능 등의 위치에서 수도 있고 그렇지 않을 수도 있다. 부가기능 데이터는 부가기능과 동일한 장소로부터 올 수도 있고 그렇지 않을 수도 있다. 예를 들어, 부가기능 데이터는 클라이언트(110B)로부터 받는 반면에, 부가기능은 부가기능 서버(165)로부터 받을 수 있다. 수신된 부가기능 데이터는 기본(디폴트) 부가기능 데이터일 수도 있고, 게임자의 행위에 의해 수정된 부가기능 데이터일 수도 있다.
선택사항인 연계 단계 535에서, 배치 단계 530에서 설치된 부가기능, 그리고 선택사항으로서, 준비된 부가기능 데이터는 클라이언트(110)들 중 하나와 또는 클라이언트(110)들 중 하나의 사용자(즉, 게임자)와 연계된다. 이 연계에는, 사용자에게 할당된 부가기능의 목록에 부가기능의 식별자를 삽입하는 것, 또는 사용자에게 할당된 디렉토리 내로 부가기능을 복사해 넣는 것이 포함된다. 사용자와의 연계는, 사용자 계정, 사용자, 특정 비디오 게임, 하나 이상의 특정 아바타, 및/또는 그 밖의 것에 특정될 수 있다. 연계 단계 535는, 부가기능이 클라이언트(110)들 중 하나에 설치되거나 또는 계정이나 사용자 등과 이미 연계되어 있는 위치에 설치되는 때에는 선택사항이 될 수 있다. 이러한 경우에, 위치, 장치, 주소 등과의 연계는, 특정 사용자와의 연계 대신에 또는 이에 추가하여 수행될 수 있다.
일단 부가기능이 계정, 사용자, 또는 장소 등과 연계되면, 이는 사용자가 게임 로직(210)의 실행을 요청할 때마다 준비 및/또는 사용될 수 있다. 예를 들어, 사용자와 연계된 하나 이상의 부가기능이 게임 로직(210A) 및 비디오 DEP(245A)와 거의 동시에 준비될 수 있다. 준비 과정에는 여기서 설명한 것과 같이 단계 510 내지 530의 변형이 포함될 수 있다. 예를 들어, 부가기능이 사전에 설치된 후에 부가기능을 준비될 할 때에, 부가기능 식별 단계 510은 단순히, 사전에 사용자 또는 장소 등에 연계되어 있는 부가기능의 목록을 구문 분석(parsing)하는 것을 포함할 수 있다. 부가기능 수신 단계 525는 단순히, 하나 이상의 저장 위치(가령, 저장소(155), 부가기능 저장소(335), 또는 클라이언트측 저장소(410))에서 부가기능 및관련 부가기능 데이터를 검색하는 것을 포함한다.
일단 부가기능 및 모든 관련 부가기능 데이터가 준비되면, 부가기능은 게임 실행 단계(540)에서 사용하기 시작할 수 있다. 이 단계에서, 게임 로직(210)은 일반적으로, 클라이언트(110) 중 하나로부터 받은 요청에 응답함으로써 실행된다. 선택에 따라서는, 이 실행에는, 멀티플레이어 비디오 게임의 상황이 비디오 서버 시스템(120)에 유지되도록 하기 위한, 비디오 서버 시스템(120)과 게임 서버(125) 사이의 통신이 포함될 수 있다.
커맨드 수신 단계 545에서, 게임 커맨드는 게임 로직(210) 중 하나에 의해 클라이언트(110)들 중 하나로부터 수신된다. 이는, 일반적으로, 네트워크(115)를 통해 수행된다. 게임 커맨드는 부가기능의 제어를 위해 또는 부가기능에 의한 사용을 위해 구성된 커맨드이다. 예를 들어, 게임 커맨드를, 부가기능이 특정 정보를 표시하도록, 특정 기능을 수행하도록 구성할 수 있고, 또는 게임 커맨드에는 부가기능에 의해 처리된 데이터가 포함될 수 있다.
커맨드 전달 단계 550에서는, 커맨드 수신 단계 550에서 받은 게임 커맨드가 부가기능을 위한 커맨드인지 식별하고 부가기능으로 전달한다. 부가기능이 커맨드를 받은 게임 로직(210)과 동일한 컴퓨팅 장치에 설치되어 있는 실시예에서는, 커맨드를 이 게임 로직(210)의 API로부터 부가기능의 API로 직접 전달할 수 있다. 예를 들어, 게임 커맨드를 게임 로직(210A) API에 의해서 부가기능 API의 메모리 장소로 전달할 수 있다.
부가기능이 실행된 게임 로직(210)과 다른 컴퓨팅 장치에 설치되어 있는 실시예에서는, 수신된 커맨드를 게임 로직(210)과 부가기능 사이에서 전송하기 위하여 API 필터(350)가 사용된다. 예를 들어, 커맨드는 먼저, 게임 로직(210A)으로부터 비디오 소스(130)에 있는 제1 API 필터(350)로 전송될 수 있다. 이 제1 API 필터(350)는 게임 로직(210A) API의 관점에서 볼 때 부가기능 API로 보이도록 구성된다. 따라서 게임 로직(210A)으로부터 제1 API 필터(350)로의 전송은, 커맨드(또는 커맨드를 가리키는 포인터)를 제1 API 필터(350)의 메모리 위치로 제공함으로써 수행될 수 있다. 제1 API 필터(350)는 부가기능이 있는 위치(예를 들어, 클라이언트(110B) 또는 부가기능 서버(165) 중 하나)에서 제 2API 필터(350)로 커맨드를 전송하도록 구성된다. 이 통신은 TCP/IP, UDP/IP, 또는 그 밖의 통신 표준을 사용하여 네트워크(115)을 통해 수행할 수 있다. 제2 API 필터(350)는, 커맨드를 수신시에 부가기능으로 커맨드를 전달하도록 구성된다. 제2 API 필터(350)는 부가기능의 관점에서 볼 때, 게임 로직 API로 보이도록 구성된다. 따라서, 제2 API 필터(350)로부터 부가기능으로의 통신은 커맨드(또는 커맨드를 가리키는 포인터)를 부가기능의 메모리 위치로 제공함으로써 수행될 수 있다.
커맨드 처리 단계 555에서, 커맨드는 부가기능을 사용하여 처리된다. 이 처리에는 부가기능 데이터를 생성하는 것이 포함될 수 있다. 예를 들어, 커맨드에는 사용자에 의해 제공된 데이터 또는 게임 로직(210A)에서 제공한 데이터가 포함될 수 있다. 커맨드는 부가기능이 기록되도록 할 수 있고, 또는 게임에서 이벤트를 감지하여 이 이벤트에 따라 부가기능 데이터를 생성하도록 할 수 있다. 커맨드는 부가기능으로 하여금, 비디오 서버 시스템(120)에 의해 생성된 오디오 또는 비디오 스트림에 포함시키기 위한 오디오 또는 영상 데이터를 클라이언트(210)들 중 하나로 제공하도록 할 수 있다. 커맨드는 영상을 여러가지 포맷 간에 변환될 수 있도록 할 수 있다. 예를 들어, pdf 파일로 변환하는 경우를 들 수 있다. 이 오디오 또는 영상 데이터, 또는 커맨드 처리 단계 555에서 결과로서 출력된 임의의 데이터는, 선택에 따라서는, 예컨대 네트워크(115)를 통해, 비디오 서버 시스템(120) 또는 클라이언트(110) 중 하나로 전송된다. 커맨드는 현재 존재하는 부가기능 기술에서 공지된 그 밖의 결과를 낳을 수 있다.
선택적 단계인 저장 단계 560에서는 , 커맨드 처리 단계 550에서 생성된 데이터가 저장된다. 이 저장 동작은 부가기능에 인접해서 이루어질 수 있거나, 또는 이와 달리, 네트워크(115)를 통해 부가기능과 통신되는 위치에 인접해서 이루어질 수 있다. 예를 들어, 부가기능이 어디에 위치하는지에 관계없이, 데이터를 비디오 서버 시스템(120), 부가기능 서버(165), 및/또는 클라이언트(110)들 중 하나에 저장할 수 있다. 저장은 실시간으로 또는 소정의 지연 시간 후에 이루어질 수 있다. 예를 들어, 일부 실시예에서는, 부가기능에 국지적인(로컬) 부가기능 데이터의 작업 사본이, 게임 로직(210A)의 특정 실행 중에 사용되고, 이 실행이 종료되면 부가기능 데이터는 다른 곳에 저장된다.
선택적 단계인 생성 단계 565에서, 부가기능이 게임 커맨드를 처리한 결과로서 비디오 데이터가 생성된다. 예를 들어, 게임 커맨드는, 부가기능 데이터, 위치, 지도, 텍스트, 통지, 아이템, 및/또는 그 밖의 항목을 게임자에게 표시(또는 게임자에게 소리로서 제공)되도록 하는 요청을 대표할 수 있다. 비디오 데이터는 2차원 또는 3차원 영상을 포함할 수 있다. 예를 들어, 리소스의 위치를 나타내기 위하여, 2차원 영상/기호를 저장소에서 독출하여, 중첩으로서 적용될 비디오 데이터로 변환할 수 있다. 중첩을 사용하는 것에 대해서는 미국 특허출원 제12/826,130(출원일: 2010년 6월 29일, 명칭: Video Game Overlay)에 자세히 설명되어 있다. 이 특허 출원의 개시 내용을 참고문헌으로서 본 명세서에 포함시킨다. 또는 이와 달리, 비디오 데이터는, 부가기능이 2차원 또는 3차원 객체를 게임 환경에 부가하고 GPU(235)를 사용하여 비디오 데이터를 렌더링한 결과일 수 있다.
선택적 단계인 제공 단계 570에서는, 생성 단계 560에서 생성된 비디오 데이터가 비디오 스트림의 일부로서 클라이언트(110) 중 하나 이상으로 제공된다. 일반적으로, 이들 클라이언트(110)에는, 커맨드 수신 단계 545에서 수신된 게임 커맨드를 전송한 클라이언트(110)들이 포함되며, 이 비디오 스트림은 네트워크(115)를 통해 제공된다. 예를 들어, 게임 커맨드가 클라이언트 110B로부터 수신된 경우에는, 비디오는 클라이언트 110B 뿐만 아니라, 클라이언트 110A와 제3의 목적지로 제공될 수 있다. 이 제3의 목적지는 저장 장소, 웹사이트, 소셜 네트워킹 사이트, 텔레비전, 전화, 및/또는 그 밖의 것일 수 있다.
이제, 게임 로직(210)이 클라이언트(110B)에 설치되고 적어도 하나의 부가기능이 사용시에 클라이언트(110B)의 외부 있게 되는 실시예를 고려해보자. 이러한 실시예에서, 비디오 서버 시스템에서(120)은, 게임 환경이 게임상황에 기초하여 생성될 수 있고, 게임 환경이 비디오로 렌더링될 수 있고, 비디오가 모든 클라이언트(110B)에서 표시될 수 있기 때문에, 선택사항이다. 게임상황은, 게임 서버(125)로부터 받은 상황 정보를 기반으로 할 수 있고, 클라이언트(110)들 중의 다른 클라이언트로부터 받은 상황 정보를 기반으로 할 수 있고, 그리고/또는 전적으로 클라이언트(110B) 내의 정보를 기반으로 할 수 있다. 도 5에 도시된 단계들은 다음과 같이 변형될 수 있다.
환경 개설 단계 520에서, 게임 로직(210)과 부가기능은 필수적으로 서로 다른 컴퓨팅 장치에 있다. 그 이유는, 논의할 실시예에서, 게임 로직(210)은 클라이언트(110B)에 있으며, 게임 로직(210)과와 부가기능 중 적어도 하나는 네트워크(115)를 통해 떨어져 있는 서로 다른 컴퓨팅 장치에 있기 때문이다. 따라서 환경 개설 단계 520은 게임 로직(210)의 위치 및 부가기능의 위치 모두에서 API 필터(350)를 준비하는 것을 포함한다. 일부 실시예에서, 하나의 게임 로직(210)과 하나의 부가기능은 모두가 클라이언트(110B)에 있으며, 반면에, 적어도 하나의 다른 부가기능은 서로 다른 다른 컴퓨팅 장치, 예컨대, 부가기능 서버(165) 및/또는 비디오 서버 시스템(120)에 있다. 이 실시예에서, 환경 개설 단계 520은 서로 다른 컴퓨팅 장치에 있는 부가기능(들)에 대한 부가기능 환경(287)을 생성하는 과정으로 이동한다.
부가기능 수신 단계 525에서, 부가기능은 부가기능서버(165), 비디오 서버 시스템(120), 서로 다른 클라이언트(110), 또는 제3의 장소(예컨대, 부가기능 개발자에 의해 제어되는 웹서버, 파일 서버, 또는 그 밖의 위치)에서 수신된다. 배치 단계 530에서, 부가기능은 클라이언트(110)가 아닌 다른 위치, 즉, 부가기능에 의해서 강화될 게임 로직(210)의 인스턴스가 설치된 곳에 설치된다. 예를 들어, 게임 로직(210)이 클라이언트 210B에 배치되어 있는 경우라면, 부가기능은 클라이언트 210C, 부가기능 서버(165), 비디오 서버 시스템(120), 또는 제3의 장소에 설치될 수 있다. 배치 단계 530는, 선택에 따라서는, 부가기능을, 클라이언트(210B), 부가기능 서버(165), 또는 비디오 서버 시스템(120)으로부터 부가기능이 설치된 장소로 전송하는 것을 포함한다.
부가기능 연계 단계 535에서, 부가기능의 연계가 저장된 부가기능 목은, 선택에 따라서는, 클라이언트(210B)에 저장된다. 게임 실행 단계(540)와 커맨드 수신 단계 545는, 선택에 따라서는, 클라이언트(110B) 내로 국한된다. 예를 들어, 커맨드 수신 단계 545는, 네트워크(115)을 통해 커맨드를 전송하는 것이 아니라, 사용자 입력부(440)로부터 프로세서(420)로 커맨드를 전송하는 것을 포함할 수 있다. 커맨드 전달 단계 550는, 커맨드 수신 단계 544에서 수신한 커맨드를 클라이언트(110B)로부터 부가기능의 위치로 전달한다. 선택에 따라서는, 처리 단계 555에서 나오는 모든 데이터는 클라이언트(210B)로 되돌려 전송된다.
선택적 단계인 프로세스 저장 단계 560에서는, 커맨드 처리단계 550에서 생성된 데이터가 클라이언트(110B), 부가기능 위치, 및/또는 그 밖의 위치에 저장된다. 제공 단계 570는 생성 단계 560에서 생성된 비디오 데이터를 프로세서(420)로부터 디스플레이(430)로 단순히 출력하는 것을 포함할 수 있다. 그러나 일부 실시예에서는, 이 비디오 데이터가 클라이언트(110)를 구성하고 있는 다른 클라이언트 또는 본 명세서에서 설명한 제3의 장소로 제공될 수 있다.
이제, 게임 로직(210)이 클라이언트(110) 또는 비디오 서버 시스템(120) 중 하나에 배치될 수 있는 보다 일반적인 경우에 대해 살펴보자. 도 6은 본 발명의 다양한 실시예에 따른, 부가기능을 자동으로 업데이트하는 방법을 도시하고 있다. 부가기능은 일반적으로, 게임 로직(210)의 업데이트 버전을 수신함으로써 이에 대한 응답으로 업데이트된다. 도 6에 도시된 단계의 어떠한 조합이라도 자동으로 수행될 수 있다. 게임 로직(210)의 업데이트 버전을 실행하라는 요청을 받기 전에 업데이트된 부가기능에 대한 요청을 하는 것이 가능하다. 선택에 따라서는, 도 6에 도시된 방법은, 하나의 업데이트된 게임 로직(210)의 수신에 대한 응답으로서 하나 이상의 부가기능을 업데이트하는 데 사용된다.
게임 로직 업데이트 수신 단계 610에서, 비디오 소스(130) 또는 클라이언트(210B)에서는 게임 로직(210)의 새 버전을 수신한다. 이 새로운 버전은 일반적으로, 관련 비디오 게임의 출시자 또는 그 중개인으로부터 수신된다. 새 버전은, 선택에 따라서는, 네트워크(115)를 통해 수신된다. 게임 로직(210)의 새 버전은 이전 버전을 대체하도록 구성된다. 게임 로직 업데이트 수신 단계 610는, 선택에 따라서는, 구 버전의 부가기능을 무력화시키는 것을 포함한다.
부가기능 사용 판단 단계 615에서는, 부가기능이 게임 로직(210)의 구 버전의 기능성을 강화시키기 위해 사용되었는지 여부를 판단한다. 부가기능 사용 판단 단계 615는, 예를 들어, 특정 게임 로직(210), 비디오 게임, 사용자, 사용자 계정, 클라이언트(110) 등에 연계된 부가기능의 목록을 조사하는 것을 포함할 수 있다. 이 목록은 계정 관리자(325)에 의해 유지될 수 있다. 또는 이와 달리, 부가기능 사용 판단 단계 615가, 부가기능을 저장하도록 구성된 저장 장소를 조사하여 게임 로직(210)의 강화를 위해 구성된 부가기능을 찾을 수 있다.
요청 전송 단계 620에서는, 업데이트된 부가기능의 요청이 수행된다. 이 요청은 일반적으로, 부가기능의 출시자 또는 그 중개인과 같은 제3자에 대해 이루어진다. 요청에는, 업데이트가 제공되어야 할 주소가 포함되고, 선택에 따라서는, 부가기능의 정체성 그리고 부가기능과 호환성이 있어야 하는 게임 로직(210)의 새로운 버전의 정체성이 포함된다. 예를 들어, 이 요청은, "월드 오브 워크래프트 버전 6.542"의 게임 로직(210)을 위한 부가기능인 "Deadly Boss Mods"의 새로운 버전이 비디오 서버(120), 부가기능 서버(165), 또는 클라이언트(110B)로 전송됨을 나타낼 수 있다. 이 요청은, 선택에 따라서는, 네트워크(115)를 통해 전송된다. 요청 전송 단계 620은, 게임 로직(210)의 업데이트 버전이 게임 로직 업데이트 수신 단계 610에서 수신된 때 및 게임 로직(210)의 업데이트 버전을 실행하라는 요청이 최초 수신된 때 사이에서 수행될 수 있다. 요청 전송 단계 620은 게임 로직 업데이트 수신 단계 610에서 게임 로직(210)의 새 버전을 수신함에 대한 응답으로 자동으로 수행될 수 있다. 선택에 따라서는, 업데이트된 부가기능이 수신될 때까지 요청 전송 단계 620은 반복된다. 예를 들어, 이 요청은 처음에는 10분 간격으로 전송하고 나중에는 1시간마다 전송할 수 있다.
부가기능 업데이트 수신 단계 625에서는, 요청 전송 단계 620에서 제공된 주소로, 업데이트된 부가기능이 수신된다. 업데이트된 부가기능은 게임 로직 업데이트 수신 단계 610에서 수신한 새 버전의 게임 로직(210)을 강화시키도록구성되고, 네트워크(115)를 통해 수신할 수 있다. 부가기능 업데이트 수신 단계 625는, 선택에 따라서는, 게임 로직(210)의 업데이트 버전이 게임 로직 업데이트 수신 단계 610에서 수신된 때 및 게임 로직(210)의 업데이트 버전을 실행하라는 최초 요청이 수신된 때 사이에서 수행될 수 있다.
설치 단계 630에서는, 게임 로직 업데이트 수신 단계 610에서 수신한 업데이트된 부가기능이 설치된다. 이 설치는 부가기능 저장소(335) 또는 클라이언트측 저장소(410) 등의 저장소에 있는 부가기능에서 이루어질 수 있다. 또는 이와 달리, 이 설치는 더 이상의 준비없이 사용될 수 있는 부가기능 환경(287)에서 이루어질 수 있다. 선택적 단계로서, 설치 과정은 도 5와 관련하여 논의한 배치 단계 530과 유사하다. 설치 단계 630은, 선택에 따라서는, 자동으로, 가령, 게임자가 설치를 주문하지 않고도 실행된다.
실행 요청 수신 단계 635에서, 게임 로직 업데이트 수신 단계 610에서 수신한 새 버전의 게임 로직(210)을 실행하라는 요청이 수신된다. 이 요청은 클라이언트(110) 중 하나를 통해 게임자로부터 수신되며, 선택에 따라서는, 네트워크(115)를 통해 비디오 소스(130)가 수신한다. 실행 요청 수신 단계 635는 요청 전송 단계 620, 부가기능 업데이트 수신 단계 625, 및 설치 단계 630 중 어느 하나 이전에 또는 이후에 수행될 수 있다.
선택적 단계인 기부 요청 단계 640에서는, 부가기능의 출시자에 대한 기부 요청이 게임자에게 표시된다. 일반적으로, 이 게임자는 실행 요청 수신 단계 635에서 실행 요청을 한 게임자가 된다. 기부 요청은, 선택에 따라서는, 비디오 서버 시스템(120)을 사용하여 생성된 비디오 스트림에 중첩되어 표시된다.
선택적 단계인 사용자 통지 단계 645에서, 실행 요청 수신 단계 635에서 실행 요청을 한 게임자는 새 버전의 부가기능이 수신되었음을 통지받는다. 이 통지는, 선택에 따라서는, 비디오 서버 시스템(120)을 사용하여 생성된 비디오 스트림에 중첩되어 표시된다.
본 명세서에서 여러 실시예를 구체적으로 도시 및/또는 설명하였다. 그러나, 이에 대한 수정 및 변형은, 본 발명의 사상과 의도된 범위를 벗어나지 않고, 상술한 설명에 의해서 그리고 첨부한 청구범위의 범위 내에 포함됨을 이해할 것이다. 예를 들어, 여기서 논의한 시스템과 방법은 컴퓨터 게임에 관한 것이지만, 다른 실시예에서는 설명한 시스템 및 방법을 다른 유형의 컴퓨터 프로그램에도 적용할 수 있다. 이러한 컴퓨터 프로그램의 다른 유형으로는, 그래픽 프로그램, 스프레드시트, 워드프로세서, 데이터베이스 프로그램, 회계 프로그램, 프로젝트 관리 프로그램, 비디오 편집 프로그램, 영상 편집 프로그램, 웹사이트 개발 프로그램, 재고관리 프로그램, 전자 메일 프로그램, 파일 관리 프로그램, 문서 관리/보기 프로그램, 도면작성/CAD 프로그램, 프리젠테이션 프로그램, 및/또는 그 밖의 것을 들 수 있다. 또한, 대부분의 예시 설명에서는 하나의 부가기능을 참조하여 설명하였지만, 여기서 개시한 시스템과 방법은 부가기능의 그룹에 대해서도 적용할 수 있다. 이들 그룹은 부가기능 패키지로서 취급될 수 있다.
여기서 설명된 실시예들은 본 발명을 예시하는 것들이다. 본 발명의 이러한 실시예들을 도면을 참조하여 설명하였는바, 설명된 방법 및/또는 특정 구조의 다양한 수정 또는 적용은 발명이 속한 기술 분야에서 통상의 지식을 사람들에게 자명해질 수 있다. 본 발명의 개시 내용에 의존하는 이러한 모든 수정, 적용, 또는 변형과, 이를 통해 본 발명의 개시 내용이 기술을 진보시키는 것은, 본 발명의 사상 및 범위 내에 있는 것으로 간주된다. 따라서 본 발명이 설명된 실시예에만 한정되는 것이 전혀 아님을 이해할 수 있는 바, 본 설명 및 도면을 제한적인 의미로 간주해서는 안된다.
여기서 언급한 컴퓨팅 시스템은 집적 회로, 마이크로 프로세서, 개인용 컴퓨터, 서버, 분산 컴퓨팅 시스템, 통신 장치, 네트워크 장치, 또는 그 밖의 것, 그리고 이들의 조합을 포함할 수 있다. 컴퓨팅 시스템은 또한, 랜덤 액세스 메모리(RAM) 등의 휘발성 및/또는 비휘발성 메모리, 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 자기 매체, 광 매체, 나노 매체, 하드 드라이브, 컴팩트 디스크, 디지털 다용도 디스크(DVD), 및/또는 그 밖에, 가령 데이터베이스에 아날로그 또는 디지털 정보를 저장하도록 구성된 장치를 포함하는 하나 이상의 컴퓨터 판독 가능한 매체들을 포함할 수 있다. 앞에서 나타낸 로직의 다양한 예로서는, 하드웨어, 펌웨어, 또는 컴퓨터 판독 가능한 매체에 저장된 소프트웨어, 또는 이들의 조합을 들 수 있다. 여기서 사용한 컴퓨터 판독 가능 매체에서는 종이는 명시적으로 제외한다. 여기서 설명한 본 방법의 컴퓨터에 의한 실현 단계는 컴퓨터 판독 가능한 매체에 저장된 명령어 세트를 포함할 수 있다. 이들 명령어가 실행되면 컴퓨팅 시스템이 각 단계를 수행할 수 있다. 프로그램 소프트웨어의 명령어에 관련된 특정 기능을 수행하도록 프로그램된 컴퓨팅 시스템은, 이러한 특정 기능들을 수행하기 위한 특수 목적 컴퓨팅 시스템이다. 이들 특정 기능을 수행시에 특수 목적 컴퓨팅 시스템에 의해 취급되는 데이터는 컴퓨팅 시스템의 버퍼에 최소한 전자식으로 저장되어, 이 특수 목적 컴퓨팅 시스템을 어느 한 상태에서 다음 상태로(이때 각 상태마다 저장된 데이터는 변경된다) 물리적으로 변화시킨다.
Claims (44)
- 부가기능에 의해 강화되는 게임 로직을 사용해서 비디오 프레임을 생성하고 이 비디오 프레임을, 비디오 게임의 게임 환경을 기반으로 한 비디오 스트림으로 인코딩하도록 구성된 비디오 소스;
상기 비디오 스트림을 지리적으로 원격지에 있는 클라이언트로 전송하고 이 클라이언트로부터 게임 커맨드를 수신하도록 구성된 I/O 장치;
비디오 게임을 액세스할 수 있는 장소에 부가기능을 저장하고 이 부가기능을 액세스할 수 있는 장소에 이 부가기능의 부가기능 데이터를 저장하도록 구성된 부가기능 저장소;
비디오 게임에 의한 부가기능의 사용을 위해 구성되는 부가기능 환경을 생성하고, 부가기능을 사용자 계정에 연계하고, 부가기능 데이터를 사용자 계정에 연계하도록 구성된 부가기능 관리자; 그리고
상기 게임 로직 또는 부가기능 관리자를 실행하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 게임 서버 시스템. - 부가기능에 의해 강화되는 게임 로직을 사용해서 비디오 프레임을 생성하고 이 비디오 프레임을, 지리적으로 원격지에 있는 클라이언트로부터 수신한 비디오 게임 상황과 게임 커맨드를 기반으로 한 비디오 스트림으로 인코딩하도록 구성된 비디오 소스;
상기 비디오 스트림을 지리적으로 원격지에 있는 클라이언트로 전송하고 이 클라이언트로부터 게임 커맨드를 수신하도록 구성된 I/O 장치;
상기 게임 로직의 새로운 버전의 수신에 응답하여 상기 부가기능을 자동으로 업데이트하도록 구성된 부가기능 관리자; 그리고
상기 게임 로직 또는 부가기능 관리자를 실행하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 시스템. - 제1 컴퓨팅 장치에 설치되며, 비디오 프레임을 생성하도록 구성되며, 이 비디오 프레임을 디스플레이에 표시하는 게임 로직;
상기 제1 컴퓨팅 장치에 설치되며, 상기 제1 컴퓨팅 장치에서 지리적으로 원격지에 있는 제2 컴퓨팅 장치에 설치되고 상기 게임 로직의 기능성을 강화하도록 구성된 부가기능과 상기 게임 로직 사이에서 커맨드를 리디렉션하도록 구성된 제1 API 필터;
제1 컴퓨팅 장치와 제2컴퓨팅 장치 사이에서 커맨드를 전송하도록 구성된 I/O 장치; 그리고
상기 게임 로직을 실행하도록 구성된 프로세서를 포함하는 것을 특징으로 하는 시스템. - 제1항, 제2항 또는 제3항 중 어느 한 항에 있어서, 비디오 스트림은 부가기능으로부터 생성된 비디오 데이터를 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제3항 또는 제4항 중 어느 한 항에 있어서, 비디오 소스는 비디오 게임을 실연하라는 요청에 대한 응답으로 할당된 동적 인코딩 파이프라인을 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제4항 또는 제5항 중 어느 한 항에 있어서, 부가기능 저장소는 비디오 소스에 국지적으로 위치하고 있는 것을 특징으로 하는 시스템.
- 제1항 내지 제5항 또는 제6항 중 어느 한 항에 있어서, 부가기능 환경을 생성하는 과정은, 디렉토리를 생성하는 과정을 포함하고, 추가적으로, 이 디렉토리에 부가기능을 설치하는 과정을 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제6항 또는 제7항 중 어느 한 항에 있어서, 디렉토리는 게임 로직과 동일한 컴퓨팅 장치에 있는 것을 특징으로 하는 시스템.
- 제1항 내지 제7항 또는 제8항 중 어느 한 항에 있어서, 부가기능 환경을 생성하는 과정은, 게임 로직과 부가기능 사이의 통신을 인터넷을 통해 리디렉션하도록 구성된 컴퓨팅 명령을 설치하는 과정을 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제8항 또는 제9항 중 어느 한 항에 있어서, 부가기능 관리자는, 사용자 계정에, 다수의 부가기능을 연계하도록 구성되는 것을 특징으로 하는 시스템.
- 제1항 내지 제9항 또는 제10항 중 어느 한 항에 있어서, 부가기능 관리자는, 컴퓨팅 네트워크를 통해 클라이언트로부터 수신한 커맨드에 대한 응답으로 부가기능을 설치하도록 추가 구성되는 것을 특징으로 하는 시스템.
- 제1항 내지 제10항 또는 제11항 중 어느 한 항에 있어서, 부가기능 관리자는 컴퓨팅 네트워크를 통해 클라이언트로부터 수신한 커맨드에 대한 응답으로 부가기능을 실행, 활성화 또는 불활성화하도록 구성되는 것을 특징으로 하는 시스템.
- 제1항 내지 제11항 또는 제12항 중 어느 한 항에 있어서, 부가기능 데이터는 게임 환경 내에서의 객체의 위치를 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제12항 또는 제13항 중 어느 한 항에 있어서, 부가기능 관리자는 제3자 저장 공간에서 부가기능 코드를 검색함으로써 자동으로 부가기능을 업데이트하도록 추가 구성되는 것을 특징으로 하는 시스템.
- 제1항 내지 제13항 또는 제14항 중 어느 한 항에 있어서, 부가기능 관리자는 허용된 부가기능의 목록을 저장하도록 추가 구성되는 것을 특징으로 하는 시스템.
- 제1항 내지 제14항 또는 제15항 중 어느 한 항에 있어서, 부가기능 환경의 적어도 일부는 컴퓨팅 네트워크에 의해서 게임 로직과 분리되어 있는 것을 특징으로 하는 시스템.
- 제1항 내지 제15항 또는 제16항 중 어느 한 항에 있어서, 부가기능은 지리적으로 원격지의 클라이언트에 설치되는 것을 특징으로 하는 시스템.
- 제1항 내지 제16항 또는 제17항 중 어느 한 항에 있어서, 부가기능 관리자는
비디오 게임에 의한 부가기능의 사용을 위해 구성된 부가기능 환경을 생성하고,
부가기능을 사용자 계정에 연계하고,
부가기능의 부가기능 데이터를 사용자 계정에 연계
하도록 구성되는 것을 특징으로 하는 시스템. - 제1항 내지 제17항 또는 제18항 중 어느 한 항에 있어서, 부가기능은 게임 로직과 동일한 컴퓨팅 장치에 설치되는 것을 특징으로 하는 시스템.
- 제1항 내지 제18항 또는 제19항 중 어느 한 항에 있어서, 게임 로직과 부가기능 사이의 통신을 인터넷을 통해 리디렉션하도록 구성된 API 필터를 추가로 포함하는 것을 특징으로 하는 시스템.
- 제1항 내지 제19항 또는 제20항에 있어서, 제2컴퓨팅 장치에 설치되고, 게임 로직과 부가기능 사이의 통신을 인터넷을 통해 리디렉션하도록 구성된 제2 API 필터를 추가로 포함하는 것을 특징으로 하는 시스템.
- 비디오 스트림은 게임 로직의 실행 결과이며, 게임 로직의 기능성을 확장하기 위해 구성된 부가 기능에 의해 게임 로직의 기능성이 확장되며, 클라이언트는 게임 서버 시스템으로부터 지리적으로 원격지에 위치하고, 비디오 스트림을 클라이언트로 제공하도록 구성된 게임 서버 시스템에 부가기능을 설치하는 단계;
게임 로직을 실행하는 단계;
게임 로직에서 클라이언트로부터 게임 커맨드를 수신하는 단계;
수신한 게임 커맨드를 게임 로직으로부터 부가기능으로 전달하는 단계;
부가기능을 사용하여 부가기능 데이터를 생성하는 단계; 그리고
클라이언트의 사용자 계정과 연계된 부가기능 데이터를, 클라이언트에서 지리적으로 떨어진 장소에 저장하는 단계를 포함하는 것을 특징으로 하는 부가기능 실행 방법. - 설치할 부가기능을 식별하는 단계;
컴퓨터 프로그램은 클라이언트를 사용하여 실행되고 클라이언트에서 지리적으로 원격지에 있는 서버에 위치하고, 컴퓨터 프로그램이 부가기능에 액세스하도록 구성된 부가기능 환경을 구축하는 단계;
부가기능 환경에 부가기능을 배치하는 단계;
부가기능을 클라이언트의 사용자 계정에 연계하는 단계;
부가기능에 의해 생성된 부가기능 데이터를 저장할 저장소를 식별하는 단계; 그리고
저장소 또는 부가기능 데이터를 사용자 계정에 연계하는 단계를 포함하는 것을 특징으로 하는 부가기능 설치 방법. - 지리적으로 원격지에 있는 클라이언트로부터 수신한 게임 커맨드를 기초로 비디오 스트림을 생성하고 이 비디오 스트림을 원격지 클라이언트로 제공하도록 구성된 비디오 소스에서, 게임 로직의 업데이트 버전을 수신하는 단계;
부가기능이 게임 로직의 기능성을 강화하기 위해 사용되었는지 판단하는 단계;
부가기능의 정체성(identity) 및 업데이트를 제공해야 할 주소를 포함하는, 부가기능의 업데이트 버전에 대한 요청을 제3자에게 전송하는 단계;
부가기능의 업데이트 버전은 게임 로직의 업데이트 버전을 강화하도록 구성되고, 부가기능의 업데이트 버전을 컴퓨팅 네트워크를 통해 수신하는 단계; 그리고
게임 로직이 부가기능을 사용하도록 구성된 부가기능 환경에 부가기능을 자동으로 설치하는 단계를 포함하는 것을 특징으로 하는 부가기능 자동 업데이트 방법. - 제22항, 제23항 또는 제24항 중 어느 한 항에 있어서, 설치하고자 할 부가기능을 식별하는 단계는, 클라이언트로부터 부가기능에 대한 요청을 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제24항 또는 제25항 중 어느 한 항에 있어서, 비디오 스트림은 부가기능의 결과로서 생성된 비디오 데이터를 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제25항 또는 제26항 중 어느 한 항에 있어서,
부가기능 데이터를 기초로 비디오를 생성하는 단계; 및
생성된 비디오를 비디오 스트림의 일부로서 클라이언트에 제공하는 단계를 추가로 포함하는 것을 특징으로 하는 방법. - 제22항 내지 제26항 또는 제27항 중 어느 한 항에 있어서, 부가기능을 클라이언트의 사용자의 특정 계정에 연계하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제27항 또는 제28항 중 어느 한 항에 있어서, 게임 로직은 멀티플레이어 게임을 지원하도록 구성된 게임 서버의 클라이언트인 것을 특징으로 하는 방법.
- 제22항 내지 제28항 또는 제29항 중 어느 한 항에 있어서, 컴퓨터 프로그램은 비디오 게임 프로그램인 것을 특징으로 하는 방법.
- 제22항 내지 제29항 또는 제30항에 있어서, 컴퓨터 프로그램은 클라이언트로부터 수신한 커맨드에 기반한 스트리밍 비디오를 클라이언트로 제공하도록 구성되는 것을 특징으로 하는 방법.
- 제22항 내지 제30항 또는 제31항 중 어느 한 항에 있어서, 클라이언트로부터 원격지에 있는 저장 장소로부터 부가기능을 검색하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제31항 또는 제32항 중 어느 한 항에 있어서, 부가기능 환경은 부가기능의 컴퓨팅 명령을 다수의 사용자가 공유할 수 있도록 구성되는 것을 특징으로 하는 방법.
- 제22항 내지 제32항 또는 제33항 중 어느 한 항에 있어서, 부가기능 환경은 부가기능과 컴퓨터 프로그램 사이의 통신을 인터넷을 통해 리디렉션하도록 구성된 컴퓨팅 명령을 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제33항 또는 제34항 중 어느 한 항에 있어서, 부가기능 환경은 디렉토리 구조를 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제34항 또는 제35항 중 어느 한 항에 있어서, 부가기능이 승인된 부가기능 목록에 있는지 확인하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제35항 또는 제36항 중 어느 한 항에 있어서, 부가기능이 게임 로직의 기능성을 강화하기 위해 사용되었는지 판단하는 단계는, 사용자, 클라이언트, 또는 사용자 계정과 사전에 연계된 부가기능을 식별하는 단계를 포함하는 것을 특징으로 하는 방법
- 제22항 내지 제36항 또는 제37항 중 어느 한 항에 있어서, 부가기능의 업데이트 버전에 대한 요청을 전송하는 단계는, 게임 로직의 업데이트 버전이 수신된 때와 게임 로직의 업데이트 버전을 실행하라는 최초 요청이 수신된 때의 사이에 수행되는 것을 특징으로 하는 방법.
- 제22항 내지 제37항 또는 제38항 중 어느 한 항에 있어서, 부가기능의 업데이트 버전을 수신하는 단계는, 게임 로직의 업데이트 버전이 수신된 때와 게임 로직의 업데이트 버전을 실행하라는 최초 요청이 수신된 때 사이에 수행되는 것을 특징으로 하는 방법.
- 제22항 내지 제38항 또는 제39항 중 어느 한 항에 있어서, 게임 로직의 업데이트 버전의 수신에 응답하여 복수의 부가기능이 요처오디고 수신되는 것을 특징으로 하는 방법.
- 제22항 내지 제39항 또는 제40항 중 어느 한 항에 있어서, 게임 로직은 업데이트된 부가기능이 설치되는 곳과 다른 컴퓨팅 장치에 배치되는 것을 특징으로 하는 방법.
- 제22항 내지 제40항 또는 제41항 중 어느 한 항에 있어서, 부가기능은 클라이언트에서 지리적으로 원격지에 있는 컴퓨팅 장치에 설치되는 것을 특징으로 하는 방법.
- 제22항 내지 제41항 또는 제42항 중 어느 한 항에 있어서, 부가기능의 업데이트가 수신될 때까지 제3자에게 추가로 요청을 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
- 제22항 내지 제42항 또는 제43항 중 어느 한 항에 있어서, 부가기능의 출시자에 대한 기부 요청을 비디오 스트림에 부가하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38247010P | 2010-09-13 | 2010-09-13 | |
US61/382,470 | 2010-09-13 | ||
US13/231,751 | 2011-09-13 | ||
US13/231,751 US10039978B2 (en) | 2010-09-13 | 2011-09-13 | Add-on management systems |
PCT/US2011/051461 WO2012037165A2 (en) | 2010-09-13 | 2011-09-13 | Add-on management |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197020042A Division KR102126910B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130095277A true KR20130095277A (ko) | 2013-08-27 |
KR102000618B1 KR102000618B1 (ko) | 2019-10-21 |
Family
ID=45807247
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137008011A KR102000618B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
KR1020217007786A KR102288072B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
KR1020207017830A KR102230426B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
KR1020197020042A KR102126910B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217007786A KR102288072B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
KR1020207017830A KR102230426B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
KR1020197020042A KR102126910B1 (ko) | 2010-09-13 | 2011-09-13 | 부가기능의 관리 |
Country Status (5)
Country | Link |
---|---|
US (7) | US10039978B2 (ko) |
EP (1) | EP2609520B1 (ko) |
KR (4) | KR102000618B1 (ko) |
CN (2) | CN110336850B (ko) |
WO (1) | WO2012037165A2 (ko) |
Families Citing this family (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090118019A1 (en) * | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9314691B2 (en) * | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US9077991B2 (en) * | 2002-12-10 | 2015-07-07 | Sony Computer Entertainment America Llc | System and method for utilizing forward error correction with video compression |
US8549574B2 (en) | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US8888592B1 (en) | 2009-06-01 | 2014-11-18 | Sony Computer Entertainment America Llc | Voice overlay |
US9349201B1 (en) | 2006-08-03 | 2016-05-24 | Sony Interactive Entertainment America Llc | Command sentinel |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10058778B2 (en) * | 2007-12-05 | 2018-08-28 | Sony Interactive Entertainment America Llc | Video compression system and method for reducing the effects of packet loss over a communication channel |
US8968087B1 (en) | 2009-06-01 | 2015-03-03 | Sony Computer Entertainment America Llc | Video game overlay |
US9498714B2 (en) | 2007-12-15 | 2016-11-22 | Sony Interactive Entertainment America Llc | Program mode switching |
US8613673B2 (en) * | 2008-12-15 | 2013-12-24 | Sony Computer Entertainment America Llc | Intelligent game loading |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US9723319B1 (en) * | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
US9426502B2 (en) | 2011-11-11 | 2016-08-23 | Sony Interactive Entertainment America Llc | Real-time cloud-based video watermarking systems and methods |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8676591B1 (en) | 2010-08-02 | 2014-03-18 | Sony Computer Entertainment America Llc | Audio deceleration |
KR20170129967A (ko) * | 2010-09-13 | 2017-11-27 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 게임 서버를 포함하는 컴퓨터 게임 시스템에서 통신 네트워크를 통해 클라이언트들 간에 게임 세션을 이송하는 방법 |
KR102000618B1 (ko) | 2010-09-13 | 2019-10-21 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 부가기능의 관리 |
US20130210522A1 (en) * | 2012-01-12 | 2013-08-15 | Ciinow, Inc. | Data center architecture for remote graphics rendering |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US9873045B2 (en) * | 2012-05-25 | 2018-01-23 | Electronic Arts, Inc. | Systems and methods for a unified game experience |
US20140004944A1 (en) * | 2012-06-28 | 2014-01-02 | Zynga Inc. | Integrating online games with online feeds |
US9135030B2 (en) * | 2012-06-29 | 2015-09-15 | M-Files Oy | Method, an apparatus and a computer program product for extending an application in a client device |
US8961302B2 (en) | 2012-07-20 | 2015-02-24 | Microsoft Technology Licensing, Llc | Game browsing |
US9381432B2 (en) | 2012-08-24 | 2016-07-05 | Microsoft Technology Licensing, Llc | Game migration |
EP2904591A1 (en) * | 2012-10-02 | 2015-08-12 | DR Gaming Technology Europe NV | Controller for gaming devices |
US20140171204A1 (en) * | 2012-12-13 | 2014-06-19 | Microsoft Corporation | Asynchronous cloud rendered video delivery |
US9526980B2 (en) | 2012-12-21 | 2016-12-27 | Microsoft Technology Licensing, Llc | Client side processing of game controller input |
US9717982B2 (en) | 2012-12-21 | 2017-08-01 | Microsoft Technology Licensing, Llc | Client rendering of latency sensitive game features |
CN103916432A (zh) * | 2013-01-04 | 2014-07-09 | 云联(北京)信息技术有限公司 | 一种基于云计算的游戏实现方法及系统 |
KR20240132105A (ko) | 2013-02-07 | 2024-09-02 | 애플 인크. | 디지털 어시스턴트를 위한 음성 트리거 |
US9564102B2 (en) | 2013-03-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Client side processing of player movement in a remote gaming environment |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US9694277B2 (en) | 2013-03-14 | 2017-07-04 | Microsoft Technology Licensing, Llc | Client side processing of character interactions in a remote gaming environment |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
KR101772152B1 (ko) | 2013-06-09 | 2017-08-28 | 애플 인크. | 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스 |
US9027032B2 (en) * | 2013-07-16 | 2015-05-05 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
DE112014003653B4 (de) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen |
US9661269B2 (en) | 2013-10-03 | 2017-05-23 | Polycom, Inc. | System for enabling communications and conferencing between dissimilar computing devices including mobile computing devices |
US10391403B2 (en) * | 2013-11-14 | 2019-08-27 | Sony Interactive Entertainment LLC | Game extensions in a gaming environment |
CN110797019B (zh) | 2014-05-30 | 2023-08-29 | 苹果公司 | 多命令单一话语输入方法 |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US10315108B2 (en) * | 2015-08-19 | 2019-06-11 | Sony Interactive Entertainment America Llc | Local application quick start with cloud transitioning |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
US10595169B2 (en) | 2016-06-12 | 2020-03-17 | Apple Inc. | Message extension app store |
US10785175B2 (en) * | 2016-06-12 | 2020-09-22 | Apple Inc. | Polling extension application for interacting with a messaging application |
US10852912B2 (en) | 2016-06-12 | 2020-12-01 | Apple Inc. | Image creation app in messaging app |
US10552480B1 (en) * | 2017-02-21 | 2020-02-04 | Amazon Technologies, Inc. | Package management for asset processing |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK201770411A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | MULTI-MODAL INTERFACES |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10964423B2 (en) * | 2017-09-12 | 2021-03-30 | AebeZe Labs | System and method for labeling a therapeutic value to digital content |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10668383B2 (en) * | 2018-07-11 | 2020-06-02 | Zygna Inc. | GPU authentication |
KR101950001B1 (ko) * | 2018-08-31 | 2019-02-20 | 넷마블 주식회사 | 게임 어플리케이션 이외의 어플리케이션을 통한 제어에 기초하여 게임 서비스를 제공하는 서버 및 방법 |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11449920B1 (en) * | 2019-12-12 | 2022-09-20 | Amazon Technologies, Inc. | Providing add-ons for network applications |
US11638874B2 (en) * | 2020-01-06 | 2023-05-02 | Square Enix Ltd. | Systems and methods for changing a state of a game object in a video game |
US11771999B2 (en) * | 2020-03-20 | 2023-10-03 | Valve Corporation | Personalized game notifications |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11038934B1 (en) | 2020-05-11 | 2021-06-15 | Apple Inc. | Digital assistant hardware abstraction |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
WO2022024195A1 (ja) * | 2020-07-27 | 2022-02-03 | 株式会社Vrc | サーバ及び情報処理方法 |
US11902343B1 (en) | 2021-04-19 | 2024-02-13 | Damaka, Inc. | System and method for highly scalable browser-based audio/video conferencing |
US11770584B1 (en) | 2021-05-23 | 2023-09-26 | Damaka, Inc. | System and method for optimizing video communications based on device capabilities |
US11868788B2 (en) | 2021-11-04 | 2024-01-09 | Here Global B.V. | Method and apparatus for application plug-in management |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040176170A1 (en) * | 1999-10-07 | 2004-09-09 | Nintendo Corporation Ltd. | Game machine having wireless communication capability |
KR20050111581A (ko) * | 2003-01-24 | 2005-11-25 | 비바 추 | 온라인 게임 광고 시스템 |
US20060224761A1 (en) * | 2005-02-11 | 2006-10-05 | Vemotion Limited | Interactive video applications |
US20090275414A1 (en) * | 2007-03-06 | 2009-11-05 | Trion World Network, Inc. | Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment |
Family Cites Families (372)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4372558A (en) | 1978-11-21 | 1983-02-08 | Matsushita Electric Industrial Co., Ltd. | Remote game apparatus |
US5263723A (en) | 1989-10-27 | 1993-11-23 | Wakeman & Deforrest Corporation | Interactive contest system |
US7448063B2 (en) | 1991-11-25 | 2008-11-04 | Actv, Inc. | Digital interactive system for providing full interactivity with live programming events |
US5926208A (en) | 1992-02-19 | 1999-07-20 | Noonen; Michael | Video compression and decompression arrangement having reconfigurable camera and low-bandwidth transmission capability |
US5553864A (en) | 1992-05-22 | 1996-09-10 | Sitrick; David H. | User image integration into audiovisual presentation system and methodology |
JP3148045B2 (ja) | 1992-06-17 | 2001-03-19 | 富士通株式会社 | 三次元物体cg作成装置 |
JPH07325934A (ja) | 1992-07-10 | 1995-12-12 | Walt Disney Co:The | 仮想世界に向上したグラフィックスを提供する方法および装置 |
US5411270A (en) | 1992-11-20 | 1995-05-02 | Sega Of America, Inc. | Split-screen video game with character playfield position exchange |
US5889499A (en) | 1993-07-29 | 1999-03-30 | S3 Incorporated | System and method for the mixing of graphics and video signals |
US6611607B1 (en) | 1993-11-18 | 2003-08-26 | Digimarc Corporation | Integrating digital watermarks in multimedia content |
CA2144253C (en) | 1994-04-01 | 1999-09-21 | Bruce F. Naylor | System and method of generating compressed video graphics images |
AU2471995A (en) | 1994-05-05 | 1995-11-29 | Catapult Entertainment, Inc. | Network architecture for real-time video games |
US5636209A (en) | 1994-05-05 | 1997-06-03 | Perlman; Stephen G. | Modem to support multiple site call conferenced data communications |
US5558339A (en) | 1994-05-05 | 1996-09-24 | Perlman; Stephen G. | Network architecture to support recording and playback of real-time video games |
JPH07319747A (ja) | 1994-05-24 | 1995-12-08 | Nec Telecom Syst Ltd | データ更新システム |
US5641319A (en) | 1994-08-10 | 1997-06-24 | Lodgenet Entertainment Corporation | Entertainment system for providing interactive video game responses to the game interrogations to the video game engines without being processed by the host computer |
US5689577A (en) | 1994-10-14 | 1997-11-18 | Picker International, Inc. | Procedure for the simplification of triangular surface meshes for more efficient processing |
US5685775A (en) | 1994-10-28 | 1997-11-11 | International Business Machines Corporation | Networking video games over telephone network |
AU4158496A (en) | 1994-11-14 | 1996-06-06 | Catapult Entertainment, Inc. | Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment |
US6005561A (en) | 1994-12-14 | 1999-12-21 | The 3Do Company | Interactive information delivery system |
US20040209660A1 (en) | 1994-12-19 | 2004-10-21 | Carlson Rolf E. | Universal gaming engine |
US7260834B1 (en) | 1999-10-26 | 2007-08-21 | Legal Igaming, Inc. | Cryptography and certificate authorities in gaming machines |
US6272223B1 (en) | 1997-10-28 | 2001-08-07 | Rolf Carlson | System for supplying screened random numbers for use in recreational gaming in a casino or over the internet |
US5707286A (en) | 1994-12-19 | 1998-01-13 | Mikohn Gaming Corporation | Universal gaming engine |
US7690043B2 (en) | 1994-12-19 | 2010-03-30 | Legal Igaming, Inc. | System and method for connecting gaming devices to a network for remote play |
US5623424A (en) | 1995-05-08 | 1997-04-22 | Kabushiki Kaisha Toshiba | Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels |
US5852672A (en) | 1995-07-10 | 1998-12-22 | The Regents Of The University Of California | Image system for three dimensional, 360 DEGREE, time sequence surface mapping of moving objects |
US5935004A (en) | 1995-08-28 | 1999-08-10 | Mediaone Group, Inc. | System and method for scheduled delivery of a software program over a cable network |
GB9519921D0 (en) | 1995-09-29 | 1995-11-29 | Philips Electronics Nv | Graphics image manipulation |
JP3745802B2 (ja) | 1995-10-13 | 2006-02-15 | 株式会社日立製作所 | 画像生成/表示装置 |
US6331856B1 (en) | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US5738583A (en) | 1996-02-02 | 1998-04-14 | Motorola, Inc. | Interactive wireless gaming system |
US5828843A (en) | 1996-03-21 | 1998-10-27 | Mpath Interactive, Inc. | Object-oriented method for matching clients together with servers according to attributes included in join request |
US6015344A (en) | 1996-04-05 | 2000-01-18 | Rlt Acquisition, Inc. | Prize redemption system for games |
US5846132A (en) | 1996-04-10 | 1998-12-08 | William W. Junkin Trust | Interactive system allowing simulated or real time participation in a league |
US6050898A (en) | 1996-05-15 | 2000-04-18 | Vr-1, Inc. | Initiating and scaling massive concurrent data transaction |
US6175854B1 (en) | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
US5793985A (en) | 1996-06-17 | 1998-08-11 | Hewlett-Packard Company | Method and apparatus for block-based motion estimation |
US5828370A (en) | 1996-07-01 | 1998-10-27 | Thompson Consumer Electronics Inc. | Video delivery system and method for displaying indexing slider bar on the subscriber video screen |
US5878283A (en) | 1996-09-05 | 1999-03-02 | Eastman Kodak Company | Single-use camera with motion sensor |
US6085186A (en) | 1996-09-20 | 2000-07-04 | Netbot, Inc. | Method and system using information written in a wrapper description language to execute query on a network |
US6025801A (en) | 1996-10-01 | 2000-02-15 | Philips Electronics North America Corporation | Video game with local updates mitigates latency effects in wide area network |
JP2000502276A (ja) | 1996-10-01 | 2000-02-29 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | エージェントによって減少されるマルチプレーヤビデオゲームにおけるラテンシーの影響 |
TW469148B (en) | 1996-10-09 | 2001-12-21 | Sega Enterprises Kk | Game apparatus, method of game processing, game execution method, and game system |
US5905988A (en) | 1996-11-13 | 1999-05-18 | Imaginon | Method and apparatus for database transformation and adaptive playback |
US6480541B1 (en) | 1996-11-27 | 2002-11-12 | Realnetworks, Inc. | Method and apparatus for providing scalable pre-compressed digital video with reduced quantization based artifacts |
US5974442A (en) | 1996-12-31 | 1999-10-26 | Intel Corporation | Communication technique for interactive applications over a network with delays |
US5899810A (en) | 1997-01-24 | 1999-05-04 | Kaon Interactive Corporation | Distributed game architecture to overcome system latency |
US6039648A (en) | 1997-03-04 | 2000-03-21 | Casino Data Systems | Automated tournament gaming system: apparatus and method |
US6152824A (en) | 1997-03-06 | 2000-11-28 | Mpath Interactive, Inc. | Online gaming architecture |
US5974503A (en) | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
US6115038A (en) | 1997-07-09 | 2000-09-05 | Christofferson Enterprises, Llc | Method for creating lower cost real-time 3D graphics in a distributed environment |
US6112212A (en) * | 1997-09-15 | 2000-08-29 | The Pangea Project Llc | Systems and methods for organizing and analyzing information stored on a computer network |
GB2329810B (en) | 1997-09-29 | 2002-02-27 | Science Res Foundation | Generation and use of compressed image data |
US6606746B1 (en) | 1997-10-16 | 2003-08-12 | Opentv, Inc. | Interactive television system and method for displaying a graphical user interface using insert pictures |
US5884101A (en) | 1998-04-17 | 1999-03-16 | I-Cube, Inc. | Apparatus for detecting data buffer faults |
MXPA01000893A (es) | 1998-07-27 | 2002-06-04 | Webtv Networks Inc | Acceso remoto a computadora. |
EA199800706A1 (ru) | 1998-08-13 | 1999-02-25 | Александр Иванович Силаев | Способ игры со ставками (варианты) и устройство для его осуществления |
US6697869B1 (en) | 1998-08-24 | 2004-02-24 | Koninklijke Philips Electronics N.V. | Emulation of streaming over the internet in a broadcast application |
US6599194B1 (en) | 1998-09-08 | 2003-07-29 | Darren Smith | Home video game system with hard disk drive and internet access capability |
US6409602B1 (en) | 1998-11-06 | 2002-06-25 | New Millenium Gaming Limited | Slim terminal gaming system |
US6241612B1 (en) | 1998-11-09 | 2001-06-05 | Cirrus Logic, Inc. | Voice communication during a multi-player game |
US6587109B1 (en) | 1998-12-24 | 2003-07-01 | B3D, Inc. | System and method for real-time scalability of 3D graphics based on internet bandwidth and CPU speed |
US6665872B1 (en) | 1999-01-06 | 2003-12-16 | Sarnoff Corporation | Latency-based statistical multiplexing |
US6754241B1 (en) | 1999-01-06 | 2004-06-22 | Sarnoff Corporation | Computer system for statistical multiplexing of bitstreams |
US6583793B1 (en) | 1999-01-08 | 2003-06-24 | Ati International Srl | Method and apparatus for mapping live video on to three dimensional objects |
KR20060100478A (ko) | 1999-01-28 | 2006-09-20 | 가부시키가이샤 세가 | 네트워크 게임 시스템 |
US6426748B1 (en) | 1999-01-29 | 2002-07-30 | Hypercosm, Inc. | Method and apparatus for data compression for three-dimensional graphics |
US6036601A (en) * | 1999-02-24 | 2000-03-14 | Adaboy, Inc. | Method for advertising over a computer network utilizing virtual environments of games |
US6665453B2 (en) | 1999-03-16 | 2003-12-16 | Intel Corporation | Multi-resolution support for video images |
IL129345A (en) | 1999-04-06 | 2004-05-12 | Broadcom Corp | Video encoding and video/audio/data multiplexing device |
US7178106B2 (en) | 1999-04-21 | 2007-02-13 | Sonic Solutions, A California Corporation | Presentation of media content from multiple media sources |
US6763371B1 (en) | 1999-05-10 | 2004-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for collaborative communication in a communication network |
US6792615B1 (en) | 1999-05-19 | 2004-09-14 | New Horizons Telecasting, Inc. | Encapsulated, streaming media automation and distribution system |
US6687663B1 (en) | 1999-06-25 | 2004-02-03 | Lake Technology Limited | Audio processing method and apparatus |
US6415317B1 (en) | 1999-10-01 | 2002-07-02 | Joshua Michael Yelon | Software system for reducing the appearance of latency in a multi-user environment |
CA2388095A1 (en) | 1999-10-22 | 2001-05-03 | Activesky, Inc. | An object oriented video system |
US7028264B2 (en) | 1999-10-29 | 2006-04-11 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US6810528B1 (en) | 1999-12-03 | 2004-10-26 | Sony Computer Entertainment America Inc. | System and method for providing an on-line gaming experience through a CATV broadband network |
US6755743B1 (en) | 1999-12-08 | 2004-06-29 | Kabushiki Kaisha Sega Enterprises | Communication game system and processing method thereof |
US20020059637A1 (en) | 2000-01-14 | 2002-05-16 | Rakib Selim Shlomo | Home gateway for video and data distribution from various types of headend facilities and including digital video recording functions |
US20010029523A1 (en) | 2000-01-21 | 2001-10-11 | Mcternan Brennan J. | System and method for accounting for variations in client capabilities in the distribution of a media presentation |
US20010044339A1 (en) | 2000-02-17 | 2001-11-22 | Angel Cordero | Multi-player computer game, system and method |
US6539354B1 (en) | 2000-03-24 | 2003-03-25 | Fluent Speech Technologies, Inc. | Methods and devices for producing and using synthetic visual speech based on natural coarticulation |
EP1290571A4 (en) | 2000-04-17 | 2005-11-02 | Igt Reno Nev | SYSTEM AND METHOD FOR DETECTING THE PICTURE OF A PLAYER TO INTEGRATE IT INTO A GAME |
US6711283B1 (en) | 2000-05-03 | 2004-03-23 | Aperio Technologies, Inc. | Fully automatic rapid microscope slide scanner |
US7499453B2 (en) | 2000-05-19 | 2009-03-03 | Cisco Technology, Inc. | Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system |
DE10033110B4 (de) | 2000-07-07 | 2005-06-16 | Siemens Ag | Verfahren, und System zur Übertragung digitalisierter Bewegtbilder von einem Sender zu einem Empfänger und zugehöriger Decoder |
US7274368B1 (en) | 2000-07-31 | 2007-09-25 | Silicon Graphics, Inc. | System method and computer program product for remote graphics processing |
US6704024B2 (en) | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
US8932136B2 (en) | 2000-08-25 | 2015-01-13 | Opentv, Inc. | Method and system for initiating an interactive game |
EP1312219A2 (en) | 2000-08-25 | 2003-05-21 | Intellocity USA, Inc. | Method of enhancing streaming media content |
JP2002095018A (ja) | 2000-09-12 | 2002-03-29 | Canon Inc | 画像表示制御装置及び画像表示システム、並びに画像データの表示方法 |
JP2002207685A (ja) | 2000-10-12 | 2002-07-26 | Sony Computer Entertainment Inc | 仮想世界システム、サーバコンピュータおよび情報処理装置 |
WO2002033641A2 (en) | 2000-10-16 | 2002-04-25 | Cardionow, Inc. | Medical image capture system and method |
JP2002126354A (ja) | 2000-10-24 | 2002-05-08 | Murai Associates Corp | ネットワーク型ゲームの参加方法ならびにそのサーバシステムおよび同方法がプログラムされ記録された記録媒体 |
AUPR100600A0 (en) | 2000-10-25 | 2000-11-16 | Aristocrat Technologies Australia Pty Limited | Gaming graphics |
US6884172B1 (en) | 2000-10-25 | 2005-04-26 | Ngame Limited | Electronic game system |
AU2002243209A1 (en) | 2000-11-01 | 2002-07-24 | Station Casinos, Inc. | Method and system for remote gaming |
US7043524B2 (en) | 2000-11-06 | 2006-05-09 | Omnishift Technologies, Inc. | Network caching system for streamed applications |
US6918113B2 (en) | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
US6959320B2 (en) | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US20020083461A1 (en) | 2000-11-22 | 2002-06-27 | Hutcheson Stewart Douglas | Method and system for providing interactive services over a wireless communications network |
US20020061062A1 (en) | 2000-11-22 | 2002-05-23 | O'brien Royal | Filtering system and method for digital interactive streams |
US7708205B2 (en) * | 2003-11-13 | 2010-05-04 | Metrologic Instruments, Inc. | Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins |
US20030177187A1 (en) | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
AU2002219857A1 (en) | 2000-11-27 | 2002-06-03 | Butterfly.Net, Inc. | System and method for synthesizing environments to facilitate distributed, context-sensitive, multi-user interactive applications |
US6996742B2 (en) | 2000-11-28 | 2006-02-07 | Sedna Patent Services, Llc | Method for regenerating and streaming content from a video server using RAID 5 data striping |
US20020075382A1 (en) | 2000-12-01 | 2002-06-20 | Yoram Cohen | Method and apparatus for implementing a thin-client videophone in a cable television network |
US7451196B1 (en) | 2000-12-15 | 2008-11-11 | Stream Theory, Inc. | Method and system for executing a software application in a virtual environment |
US6761636B2 (en) | 2001-01-16 | 2004-07-13 | Fucom Company, Ltd. | Real time data exchange system |
US7587520B1 (en) | 2001-01-24 | 2009-09-08 | 3Dlabs Inc. Ltd. | Image display system with visual server |
FI109633B (fi) | 2001-01-24 | 2002-09-13 | Gamecluster Ltd Oy | Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi |
US7305697B2 (en) | 2001-02-02 | 2007-12-04 | Opentv, Inc. | Service gateway for interactive television |
US20020115487A1 (en) | 2001-02-16 | 2002-08-22 | Wells William R. | Gaming device network |
US6475090B2 (en) | 2001-03-29 | 2002-11-05 | Koninklijke Philips Electronics N.V. | Compensating for network latency in a multi-player game |
US20020154691A1 (en) | 2001-04-19 | 2002-10-24 | Kost James F. | System and process for compression, multiplexing, and real-time low-latency playback of networked audio/video bit streams |
JP4315414B2 (ja) | 2001-05-01 | 2009-08-19 | メタ4ハンド インク. | 無線ネットワークコンピューティング |
US7305691B2 (en) | 2001-05-07 | 2007-12-04 | Actv, Inc. | System and method for providing targeted programming outside of the home |
JP4293740B2 (ja) | 2001-05-29 | 2009-07-08 | 株式会社リコー | 画像圧縮装置 |
US20020184303A1 (en) | 2001-05-31 | 2002-12-05 | Virtaul Media, Inc. | Embedded web server capable of managing dynamic content delivery of data stream, audio stream, or video stream |
US20020186769A1 (en) | 2001-06-12 | 2002-12-12 | O'brien Royal | System and method for transcoding |
WO2002102050A2 (en) | 2001-06-12 | 2002-12-19 | Digital Interactive Streams, Inc. | System and method for enhancing digital video |
US20030009542A1 (en) | 2001-06-14 | 2003-01-09 | Kasal Alpay O. | Digital entertainment solution |
US6601009B2 (en) | 2001-07-12 | 2003-07-29 | Yahoo Inc | Method and system of automatic bandwidth detection |
US20030130040A1 (en) | 2001-07-17 | 2003-07-10 | Jeffrey Thomas Dripps | Distributed video game system and method |
US7367885B2 (en) | 2001-08-09 | 2008-05-06 | Igt | 3-D text in a gaming machine |
JP2003060638A (ja) | 2001-08-15 | 2003-02-28 | Sony Corp | コンテンツ提供装置及びコンテンツ提供方法 |
JP3815278B2 (ja) | 2001-08-30 | 2006-08-30 | ソニー株式会社 | ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲーム端末装置、情報処理方法、及び情報処理プログラム |
US20030048808A1 (en) | 2001-09-12 | 2003-03-13 | Stahl Thomas Anthony | Method and apparatus for changing received streaming content channels |
US7791641B2 (en) | 2001-09-12 | 2010-09-07 | Samsung Electronics Co., Ltd. | Systems and methods for utilizing activity detection information in relation to image processing |
WO2003027876A1 (en) | 2001-09-26 | 2003-04-03 | Jodie Lynn Reynolds | System and method for communicating media signals |
US20030093806A1 (en) | 2001-11-14 | 2003-05-15 | Vincent Dureau | Remote re-creation of data in a television system |
US7164238B2 (en) | 2001-11-14 | 2007-01-16 | Astral Communications, Inc. | Energy savings device and method for a resistive and/or an inductive load and/or a capacitive load |
US7297062B2 (en) | 2001-11-23 | 2007-11-20 | Cyberview Technology, Inc. | Modular entertainment and gaming systems configured to consume and provide network services |
KR100450823B1 (ko) | 2001-11-27 | 2004-10-01 | 삼성전자주식회사 | 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조 |
US7299487B1 (en) | 2001-12-04 | 2007-11-20 | Unisys Corporation | Control program, for a co-processor in a video-on-demand system, which uses transmission control lists to send video data packets with respective subgroups of internet protocol headers |
GB0219509D0 (en) | 2001-12-05 | 2002-10-02 | Delamont Dean | Improvements to interactive TV games system |
WO2003053066A1 (en) | 2001-12-17 | 2003-06-26 | Microsoft Corporation | Skip macroblock coding |
US7003035B2 (en) | 2002-01-25 | 2006-02-21 | Microsoft Corporation | Video coding methods and apparatuses |
US20030151753A1 (en) | 2002-02-08 | 2003-08-14 | Shipeng Li | Methods and apparatuses for use in switching between streaming video bitstreams |
US7133368B2 (en) | 2002-02-01 | 2006-11-07 | Microsoft Corporation | Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same |
AU2003215156A1 (en) | 2002-02-12 | 2003-09-04 | Digital Interactive Streams, Inc. | System and method for fault tolerant multimedia communication |
US7636860B2 (en) | 2002-02-13 | 2009-12-22 | Realnetworks, Inc. | Scalable and extensible secure rendering of digital content |
AU2003208477A1 (en) | 2002-03-01 | 2003-09-16 | T5 Labs Ltd | Centralised interactive graphical application server |
US6908390B2 (en) | 2002-03-29 | 2005-06-21 | Igt | Apparatus and method for a gaming tournament network |
GB0208317D0 (en) | 2002-04-11 | 2002-05-22 | Koninkl Philips Electronics Nv | Controlling a home electronics system |
US7483487B2 (en) | 2002-04-11 | 2009-01-27 | Microsoft Corporation | Streaming methods and systems |
US20030228906A1 (en) | 2002-04-19 | 2003-12-11 | Walker Jay S. | Methods and apparatus for providing communications services at a gaming machine |
US7023918B2 (en) | 2002-05-30 | 2006-04-04 | Ess Technology, Inc. | Color motion artifact detection and processing apparatus compatible with video coding standards |
US7038676B2 (en) | 2002-06-11 | 2006-05-02 | Sony Computer Entertainmant Inc. | System and method for data compression |
US7064765B2 (en) | 2002-06-24 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | System and method for grabbing frames of graphical data |
JP2004045668A (ja) | 2002-07-10 | 2004-02-12 | Ricoh Co Ltd | 静電荷像現像用現像剤、画像形成装置及び画像形成方法 |
US20040022391A1 (en) | 2002-07-30 | 2004-02-05 | O'brien Royal | Digital content security system and method |
US7072693B2 (en) | 2002-08-05 | 2006-07-04 | Calamp Corp. | Wireless communications structures and methods utilizing frequency domain spatial processing |
AU2003259828A1 (en) | 2002-08-12 | 2004-02-25 | Digital Interactive Streams, Inc | Data streaming system and method |
DE60222890T2 (de) | 2002-08-12 | 2008-02-07 | Alcatel Lucent | Verfahren und Vorrichtungen zur Implementerung von hochinteraktiven Unterhaltungsdiensten unter Verwendung der Medienströmungstechnologie, das die Bereitstellung auf Abstand von Virtuelle Realitätdiensten ermöglicht |
KR20020086835A (ko) | 2002-08-12 | 2002-11-20 | 김흥호 | 인터넷망을 이용한 비디오게임의 다중플레이 및 관전법 |
AU2003259338A1 (en) | 2002-08-21 | 2004-03-11 | Lime Studios Limited | Improvements to interactive tv games system |
EP1392004B1 (en) | 2002-08-22 | 2009-01-21 | Interuniversitair Microelektronica Centrum Vzw | Method for multi-user MIMO transmission and apparatuses suited therefore |
US6863612B2 (en) | 2002-09-03 | 2005-03-08 | Bidamic Inc. | System and method for interactive on-line gaming |
US7334043B2 (en) | 2002-09-17 | 2008-02-19 | At&T Delaware Intellectual Property, Inc. | Extending functionality of workflow applications using instant messaging (IM) |
US20040063498A1 (en) | 2002-09-30 | 2004-04-01 | Sony Corporation | System and method for flexibly implementing a wireless gaming network |
JP2004128779A (ja) | 2002-10-01 | 2004-04-22 | Sony Corp | 放送システム、記録装置、記録方法、プログラム、記録媒体 |
US7878908B2 (en) | 2002-11-14 | 2011-02-01 | Nintendo Co., Ltd. | Multiplexed secure video game play distribution |
US9032465B2 (en) | 2002-12-10 | 2015-05-12 | Ol2, Inc. | Method for multicasting views of real-time streaming interactive video |
US8832772B2 (en) | 2002-12-10 | 2014-09-09 | Ol2, Inc. | System for combining recorded application state with application streaming interactive video output |
US8468575B2 (en) | 2002-12-10 | 2013-06-18 | Ol2, Inc. | System for recursive recombination of streaming interactive video |
US9061207B2 (en) | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
US20110122063A1 (en) | 2002-12-10 | 2011-05-26 | Onlive, Inc. | System and method for remote-hosted video effects |
US9108107B2 (en) | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US10201760B2 (en) | 2002-12-10 | 2019-02-12 | Sony Interactive Entertainment America Llc | System and method for compressing video based on detected intraframe motion |
US8054880B2 (en) | 2004-12-10 | 2011-11-08 | Tut Systems, Inc. | Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window |
US8949922B2 (en) | 2002-12-10 | 2015-02-03 | Ol2, Inc. | System for collaborative conferencing using streaming interactive video |
US9756349B2 (en) | 2002-12-10 | 2017-09-05 | Sony Interactive Entertainment America Llc | User interface, system and method for controlling a video stream |
US7849491B2 (en) | 2002-12-10 | 2010-12-07 | Onlive, Inc. | Apparatus and method for wireless video gaming |
US8387099B2 (en) | 2002-12-10 | 2013-02-26 | Ol2, Inc. | System for acceleration of web page delivery |
US8893207B2 (en) | 2002-12-10 | 2014-11-18 | Ol2, Inc. | System and method for compressing streaming interactive video |
US8526490B2 (en) | 2002-12-10 | 2013-09-03 | Ol2, Inc. | System and method for video compression using feedback including data related to the successful receipt of video content |
US8549574B2 (en) | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US8840475B2 (en) | 2002-12-10 | 2014-09-23 | Ol2, Inc. | Method for user session transitioning among streaming interactive video servers |
US20100166056A1 (en) | 2002-12-10 | 2010-07-01 | Steve Perlman | System and method for encoding video using a selected tile and tile rotation pattern |
US9227139B2 (en) * | 2002-12-10 | 2016-01-05 | Sony Computer Entertainment America Llc | Virtualization system and method for hosting applications |
US9138644B2 (en) * | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US9192859B2 (en) | 2002-12-10 | 2015-11-24 | Sony Computer Entertainment America Llc | System and method for compressing video based on latency measurements and other feedback |
US9077991B2 (en) | 2002-12-10 | 2015-07-07 | Sony Computer Entertainment America Llc | System and method for utilizing forward error correction with video compression |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9003461B2 (en) | 2002-12-10 | 2015-04-07 | Ol2, Inc. | Streaming interactive video integrated with recorded video segments |
US8366552B2 (en) | 2002-12-10 | 2013-02-05 | Ol2, Inc. | System and method for multi-stream video compression |
US8495678B2 (en) | 2002-12-10 | 2013-07-23 | Ol2, Inc. | System for reporting recorded video preceding system failures |
US8661496B2 (en) | 2002-12-10 | 2014-02-25 | Ol2, Inc. | System for combining a plurality of views of real-time streaming interactive video |
US8964830B2 (en) | 2002-12-10 | 2015-02-24 | Ol2, Inc. | System and method for multi-stream video compression using multiple encoding formats |
US8711923B2 (en) | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US9314691B2 (en) | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US8090618B1 (en) * | 2002-12-12 | 2012-01-03 | Massive Incorporated | Online game commerce system |
KR100507780B1 (ko) | 2002-12-20 | 2005-08-17 | 한국전자통신연구원 | 고속 마커프리 모션 캡쳐 장치 및 방법 |
US9177387B2 (en) | 2003-02-11 | 2015-11-03 | Sony Computer Entertainment Inc. | Method and apparatus for real time motion capture |
US7256779B2 (en) | 2003-05-08 | 2007-08-14 | Nintendo Co., Ltd. | Video game play using panoramically-composited depth-mapped cube mapping |
US7798905B2 (en) | 2003-05-09 | 2010-09-21 | Microsoft Corporation | Method and apparatus for associating data with online game ratings |
US6963353B1 (en) | 2003-05-14 | 2005-11-08 | Cisco Technology, Inc. | Non-causal speaker selection for conference multicast |
US7739715B2 (en) | 2003-06-24 | 2010-06-15 | Microsoft Corporation | Variable play speed control for media streams |
US7270605B2 (en) | 2003-07-08 | 2007-09-18 | Gt | Peer-to-peer gaming system |
US7139002B2 (en) | 2003-08-01 | 2006-11-21 | Microsoft Corporation | Bandwidth-efficient processing of video images |
CN101065963B (zh) | 2003-08-29 | 2010-09-15 | Rgb网络有限公司 | 提供低延迟类vcr效果和节目改变的视频多路复用器系统 |
US8662983B2 (en) | 2003-09-09 | 2014-03-04 | Wms Gaming Inc. | Electronic game and system having overlayed video images |
IL158158A (en) | 2003-09-29 | 2012-05-31 | Bamboo Mediacasting Ltd | Distribution of multicast data to users |
US7418472B2 (en) | 2003-09-30 | 2008-08-26 | Microsoft Corporation | Systems and methods for determining remote device media capabilities |
KR100969966B1 (ko) * | 2003-10-06 | 2010-07-15 | 디즈니엔터프라이지즈,인크. | 비디오 플레이어의 재생 및 특징을 제어하는 방법 및 시스템 |
US7822281B2 (en) | 2003-10-31 | 2010-10-26 | Canon Kabushiki Kaisha | Digital video compression |
US7246183B2 (en) | 2003-11-14 | 2007-07-17 | Avocent California Corporation | Phase optimization for wireless KVM transmission |
US7613344B2 (en) | 2003-12-08 | 2009-11-03 | Electronics And Telecommunications Research Institute | System and method for encoding and decoding an image using bitstream map and recording medium thereof |
WO2005065085A2 (en) | 2003-12-21 | 2005-07-21 | Kremen Stanley H | System and apparatus for recording, transmitting, and projecting digital three-dimensional images |
US20050160465A1 (en) | 2004-01-21 | 2005-07-21 | United Video Properties, Inc. | Interactive television system with automatic switching from broadcast media to streaming media |
US7246923B2 (en) | 2004-02-11 | 2007-07-24 | 3M Innovative Properties Company | Reshaping light source modules and illumination systems using the same |
US7227894B2 (en) | 2004-02-24 | 2007-06-05 | Industrial Technology Research Institute | Method and apparatus for MPEG-4 FGS performance enhancement |
US7668712B2 (en) | 2004-03-31 | 2010-02-23 | Microsoft Corporation | Audio encoding and decoding with intra frames and adaptive forward error correction |
US7633994B2 (en) | 2004-07-30 | 2009-12-15 | Rearden, LLC. | System and method for distributed input-distributed output wireless communications |
ATE385646T1 (de) * | 2004-04-14 | 2008-02-15 | Telecom Italia Spa | Eine methode und ein system zur bedienung der zustellung eines inhalts in computernetzen |
US7818444B2 (en) | 2004-04-30 | 2010-10-19 | Move Networks, Inc. | Apparatus, system, and method for multi-bitrate content streaming |
US20050282636A1 (en) | 2004-06-04 | 2005-12-22 | O'brien Royal | Gaming on demand system and methodology |
EP1769399B1 (en) | 2004-06-07 | 2020-03-18 | Sling Media L.L.C. | Personal media broadcasting system |
US8099755B2 (en) | 2004-06-07 | 2012-01-17 | Sling Media Pvt. Ltd. | Systems and methods for controlling the encoding of a media stream |
US20050286777A1 (en) | 2004-06-27 | 2005-12-29 | Roger Kumar | Encoding and decoding images |
US7664184B2 (en) | 2004-07-21 | 2010-02-16 | Amimon Ltd. | Interpolation image compression |
KR101183000B1 (ko) | 2004-07-30 | 2012-09-18 | 익스트림 리얼리티 엘티디. | 이미지 프로세싱을 기반으로 한 3d 공간 차원용 시스템 및방법 |
US20060048136A1 (en) | 2004-08-25 | 2006-03-02 | Vries Jeff D | Interception-based resource detection system |
KR100456962B1 (ko) * | 2004-08-27 | 2004-11-10 | 엔에이치엔(주) | 게임 아이템 기능이 결합된 캐릭터 서비스 방법 및 시스템 |
US7590750B2 (en) | 2004-09-10 | 2009-09-15 | Microsoft Corporation | Systems and methods for multimedia remoting over terminal server connections |
US7458894B2 (en) * | 2004-09-15 | 2008-12-02 | Microsoft Corporation | Online gaming spectator system |
US8719075B2 (en) | 2004-09-23 | 2014-05-06 | Overstock.Com, Inc. | System, program product, and methods for online image handling |
US20060069796A1 (en) | 2004-09-29 | 2006-03-30 | Infinium Labs, Inc. | Method for automatic patching of a sparsely streamed application |
JP2007065928A (ja) | 2005-08-30 | 2007-03-15 | Toshiba Corp | 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム |
US7240162B2 (en) | 2004-10-22 | 2007-07-03 | Stream Theory, Inc. | System and method for predictive streaming |
EP1825390A2 (en) | 2004-11-13 | 2007-08-29 | Stream Theory, Inc. | Hybrid local/remote streaming |
US20060104353A1 (en) | 2004-11-16 | 2006-05-18 | Johnson Andrew W | Video signal preprocessing to minimize prediction error |
US7695369B2 (en) | 2004-11-22 | 2010-04-13 | Planetwide Games, Inc. | Systems and methods for accessing online content during online gaming |
US8425331B2 (en) | 2004-12-07 | 2013-04-23 | Microsoft Corporation | User interface for viewing aggregated game, system and personal information |
US8274518B2 (en) | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US20060149845A1 (en) | 2004-12-30 | 2006-07-06 | Xinnia Technology, Llc | Managed quality of service for users and applications over shared networks |
US20060168291A1 (en) | 2005-01-05 | 2006-07-27 | Van Zoest Alexander | Interactive multichannel data distribution system |
US20080207322A1 (en) | 2005-03-21 | 2008-08-28 | Yosef Mizrahi | Method, System and Computer-Readable Code For Providing a Computer Gaming Device |
WO2006102621A2 (en) | 2005-03-23 | 2006-09-28 | Stream Theory, Inc. | System and method for tracking changes to files in streaming applications |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
US20060218225A1 (en) * | 2005-03-28 | 2006-09-28 | Hee Voon George H | Device for sharing social network information among users over a network |
US7721117B2 (en) | 2005-04-01 | 2010-05-18 | Sherer W Paul | Stream control failover utilizing an attribute-dependent protection mechanism |
US20060230428A1 (en) | 2005-04-11 | 2006-10-12 | Rob Craig | Multi-player video game system |
US20060282855A1 (en) | 2005-05-05 | 2006-12-14 | Digital Display Innovations, Llc | Multiple remote display system |
US7878907B2 (en) | 2005-05-13 | 2011-02-01 | Microsoft Corporation | Real-time HD TV/video IP streaming to a game console |
US20060258463A1 (en) | 2005-05-13 | 2006-11-16 | Professional Interactive Entertainment, Inc. | System and method for network interactive game match-up and server selection |
US20070254742A1 (en) | 2005-06-06 | 2007-11-01 | Digital Interactive Streams, Inc. | Gaming on demand system and methodology |
US20070011712A1 (en) | 2005-07-05 | 2007-01-11 | White Technologies Group | System for multimedia on demand over internet based network |
US9061206B2 (en) | 2005-07-08 | 2015-06-23 | Activevideo Networks, Inc. | Video game system using pre-generated motion vectors |
US7936819B2 (en) | 2005-07-08 | 2011-05-03 | Tag Networks, Inc. | Video encoder with latency control |
US8875196B2 (en) * | 2005-08-13 | 2014-10-28 | Webtuner Corp. | System for network and local content access |
US20110157196A1 (en) * | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
JP2007080357A (ja) | 2005-09-13 | 2007-03-29 | Toshiba Corp | 情報記憶媒体、情報再生方法、情報再生装置 |
US8135040B2 (en) | 2005-11-30 | 2012-03-13 | Microsoft Corporation | Accelerated channel change |
US7596540B2 (en) * | 2005-12-01 | 2009-09-29 | Exent Technologies, Ltd. | System, method and computer program product for dynamically enhancing an application executing on a computing device |
WO2007067217A2 (en) | 2005-12-02 | 2007-06-14 | Cyberscan Technology, Inc. | In-room gaming |
WO2007066329A2 (en) | 2005-12-05 | 2007-06-14 | Vollee Ltd. | Method and system for enabling a user to play a large screen game by means of a mobile device |
KR100826871B1 (ko) | 2005-12-08 | 2008-05-06 | 한국전자통신연구원 | 휴대용 단말기를 위한 스트리밍 방식 게임 소프트웨어 제공방법 및 시스템 |
JP5399077B2 (ja) | 2005-12-27 | 2014-01-29 | マッシブ・インコーポレーテッド | ビデオゲームまたはモバイル機器環境などにおけるストリーミングメディアキャスト |
US8738639B1 (en) * | 2006-02-23 | 2014-05-27 | Verizon Data Services Llc | Methods and systems for an information directory providing audiovisual content |
US8764566B2 (en) | 2006-02-24 | 2014-07-01 | Igt | Internet remote game server |
US8095400B2 (en) | 2006-03-06 | 2012-01-10 | Cbs Interactive, Inc. | Online waiting room system, method and computer program product |
IL174363A0 (en) | 2006-03-16 | 2006-08-01 | Vollee Ltd | Method and system for providing video game sounds to a mobile device |
US8392821B2 (en) | 2006-03-17 | 2013-03-05 | Viddler, Inc. | Methods and systems for displaying videos with overlays and tags |
EP1837060A1 (en) | 2006-03-21 | 2007-09-26 | In Fusio (S.A.) | Method for displaying interactive video content from a video stream in a display of a user device |
US7693157B2 (en) | 2006-04-25 | 2010-04-06 | Microsoft Corporation | Quality of service support for A/V streams |
BRPI0621618B1 (pt) | 2006-04-29 | 2019-10-22 | Interdigital Ce Patent Holdings | método e dispositivo móvel para recuperar perda de um pacote de dados quando o dispositivo móvel é transferido de controle entre células |
US20070265094A1 (en) | 2006-05-10 | 2007-11-15 | Norio Tone | System and Method for Streaming Games and Services to Gaming Devices |
US20070266170A1 (en) | 2006-05-11 | 2007-11-15 | Mockett Gregory P | Interactive, rich-media delivery over an ip network using synchronized unicast and multicast |
WO2008094279A1 (en) | 2006-06-06 | 2008-08-07 | Cts Media | A method and system for dynamic management of multiple media data streams |
US7841946B2 (en) | 2006-06-29 | 2010-11-30 | Spawn Labs, Inc. | System for remote game access |
US8000318B2 (en) | 2006-06-30 | 2011-08-16 | Embarq Holdings Company, Llc | System and method for call routing based on transmission performance of a packet network |
US8628414B2 (en) | 2006-07-14 | 2014-01-14 | Valve Corporation | Enhanced commentary system for 3D computer entertainment |
US20080025390A1 (en) | 2006-07-25 | 2008-01-31 | Fang Shi | Adaptive video frame interpolation |
US8221220B2 (en) | 2006-08-11 | 2012-07-17 | Disney Enterprises, Inc. | Method and/or system for adaptive gaming experience |
GB2441365B (en) * | 2006-09-04 | 2009-10-07 | Nds Ltd | Displaying video data |
EP1901190A1 (en) * | 2006-09-15 | 2008-03-19 | Sony DADC Austria AG | Method and system for managing access to add-on data files |
US7818769B2 (en) | 2006-10-02 | 2010-10-19 | Mobitv, Inc. | Methods and apparatus for implementing dynamic program guides on mobile devices |
EP2084671A4 (en) | 2006-10-02 | 2011-02-09 | Aftercad Software Inc | METHOD AND SYSTEM FOR DELIVERING AND INTERACTIVE DISPLAYS OF THREE-DIMENSIONAL GRAPHICS |
US8325819B2 (en) | 2006-10-12 | 2012-12-04 | Qualcomm Incorporated | Variable length coding table selection based on video block type for refinement coefficient coding |
US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
US8825765B2 (en) | 2006-11-28 | 2014-09-02 | Verizon Patent And Licensing Inc. | Cross platform gaming |
US7715481B2 (en) | 2006-11-29 | 2010-05-11 | Ipera Technology, Inc. | System and method for allocation of resources for processing video |
JP2008139423A (ja) | 2006-11-30 | 2008-06-19 | Sony Corp | コンテンツ再生システム、再生装置、再生切替方法及びプログラム |
US20080147424A1 (en) * | 2006-12-15 | 2008-06-19 | Rowan Michael J | System and method for multiplayer computerized game environment with non-intrusive, co-presented computerized ratings |
US7824268B2 (en) | 2006-12-19 | 2010-11-02 | Electronic Arts, Inc. | Live hosted online multiplayer game |
WO2008092385A1 (en) | 2007-01-29 | 2008-08-07 | Chon Fong Kuok | Systems and methods for online games |
US8187104B2 (en) | 2007-01-29 | 2012-05-29 | Sony Online Entertainment Llc | System and method for creating, editing, and sharing video content relating to video game events |
US20090305790A1 (en) | 2007-01-30 | 2009-12-10 | Vitie Inc. | Methods and Apparatuses of Game Appliance Execution and Rendering Service |
US8020099B1 (en) * | 2007-02-13 | 2011-09-13 | Vitie Inc. | Methods and apparatus of setting up interactive session of graphical interactive application based on video |
US9737812B2 (en) | 2007-02-13 | 2017-08-22 | Sizmek Technologies Ltd. | Method of interacting with an interactive game program |
GB0703974D0 (en) * | 2007-03-01 | 2007-04-11 | Sony Comp Entertainment Europe | Entertainment device |
US8886545B2 (en) | 2007-03-07 | 2014-11-11 | Vlingo Corporation | Dealing with switch latency in speech recognition |
US20080220869A1 (en) | 2007-03-08 | 2008-09-11 | Timothy Michael Midgley | Method and apparatus for providing game guide data in a gaming environment |
US20080220854A1 (en) * | 2007-03-08 | 2008-09-11 | Timothy Michael Midgley | Method and apparatus for collecting user game play data and crediting users in an online gaming environment |
US20080234047A1 (en) | 2007-03-21 | 2008-09-25 | Igt | Wager game license management in a game table |
US8634943B2 (en) | 2007-05-02 | 2014-01-21 | Bleacher League Entertainment Inc. | Interactive sports-themed game |
US20080284798A1 (en) | 2007-05-07 | 2008-11-20 | Qualcomm Incorporated | Post-render graphics overlays |
WO2008143844A1 (en) | 2007-05-16 | 2008-11-27 | Wms Gaming Inc. | Streaming video for electronic gaming machines with real-time interactive control |
US20080291208A1 (en) | 2007-05-24 | 2008-11-27 | Gary Keall | Method and system for processing data via a 3d pipeline coupled to a generic video processing unit |
CA2689526A1 (en) * | 2007-06-19 | 2008-12-24 | Wms Gaming Inc. | Plug-in architecture for a wagering game network |
US8612972B2 (en) * | 2007-06-27 | 2013-12-17 | Microsoft Corporation | Running add-on components in virtual environments |
US20090006192A1 (en) * | 2007-06-29 | 2009-01-01 | Yahoo! Inc. | Point of Presence Sponsorship Mechanism for Digital Content Objects |
EP2191404A1 (en) | 2007-08-20 | 2010-06-02 | Garagegames, Inc. | System and method for communicating game parameters utilizing separate protocols |
US8174620B2 (en) | 2007-11-06 | 2012-05-08 | Microsoft Corporation | High definition media content processing |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
JP2011507348A (ja) | 2007-12-05 | 2011-03-03 | オンライブ インコーポレイテッド | 検出されたイントラフレームモーションに基づいてビデオを圧縮するシステム及び方法 |
CN101919242A (zh) | 2007-12-05 | 2010-12-15 | 生命力有限公司 | 用于对通信信道的带宽限制进行补偿的视频压缩系统及方法 |
JP2011509547A (ja) | 2007-12-05 | 2011-03-24 | オンライブ インコーポレイテッド | 通信チャンネルを経て送信されるある形式のマルチメディアデータを保護するシステム及び方法 |
US9067140B2 (en) * | 2007-12-05 | 2015-06-30 | Verizon Patent And Licensing Inc. | Method and apparatus for providing customized games |
TW200941232A (en) | 2007-12-05 | 2009-10-01 | Onlive Inc | Video compression system and method for reducing the effects of packet loss over a communication channel |
CN101918936A (zh) | 2007-12-05 | 2010-12-15 | 生命力有限公司 | 流动交互式视频客户端装置 |
WO2009073826A1 (en) | 2007-12-05 | 2009-06-11 | Onlive, Inc. | System and method for storing program code and data within an application hosting center |
NZ585903A (en) | 2007-12-05 | 2013-06-28 | Ol2 Inc | Compressing and streaming low-latency game or application video streams including mitigating the loss of a packet using other packets |
EP2708268A3 (en) | 2007-12-05 | 2014-05-14 | OL2, Inc. | Tile-based system and method for compressing video |
JP2011507346A (ja) | 2007-12-05 | 2011-03-03 | オンライブ インコーポレイテッド | 検出されたイントラフレームモーション又はシーンの複雑さに基づいてタイルサイズを調整することによりビデオを圧縮するシステム及び方法 |
CN101918933A (zh) | 2007-12-05 | 2010-12-15 | 生命力有限公司 | 用于智能地将客户端请求分配到服务器中心的系统和方法 |
TW200952494A (en) | 2007-12-05 | 2009-12-16 | Onlive Inc | Method for multicasting views of real-time streaming interactive video |
JP2009141700A (ja) | 2007-12-06 | 2009-06-25 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体 |
US8613673B2 (en) | 2008-12-15 | 2013-12-24 | Sony Computer Entertainment America Llc | Intelligent game loading |
US9211473B2 (en) | 2008-12-15 | 2015-12-15 | Sony Computer Entertainment America Llc | Program mode transition |
US9498714B2 (en) | 2007-12-15 | 2016-11-22 | Sony Interactive Entertainment America Llc | Program mode switching |
TW200948088A (en) | 2008-02-27 | 2009-11-16 | Ncomputing Inc | System and method for virtual 3D graphics acceleration and streaming multiple different video streams |
EP2098994A1 (en) | 2008-03-04 | 2009-09-09 | Agfa HealthCare NV | System for real-time volume rendering on thin clients via a render server |
US7774488B2 (en) | 2008-03-12 | 2010-08-10 | International Business Machines Corporation | Method and system for switching media streams in a client system based on environmental changes |
US7873727B2 (en) | 2008-03-13 | 2011-01-18 | Board Of Regents, The University Of Texas Systems | System and method for evaluating streaming multimedia quality |
US8758140B2 (en) | 2008-03-24 | 2014-06-24 | Microsoft Corporation | Method for viral invites as game and discovery mechanic |
US20090247295A1 (en) | 2008-03-31 | 2009-10-01 | Weldon Marcus K | Network-Based Methods and Apparatus for Rendering Images to an End User |
US8831086B2 (en) | 2008-04-10 | 2014-09-09 | Qualcomm Incorporated | Prediction techniques for interpolation in video coding |
US8856268B2 (en) | 2008-04-22 | 2014-10-07 | Microsoft Corporation | Sharing of console and web-based games and gaming profiles |
US20090268821A1 (en) | 2008-04-29 | 2009-10-29 | The Hong Kong University Of Science And Technology | Block parallel and fast motion estimation in video coding |
US20090276402A1 (en) | 2008-05-01 | 2009-11-05 | Mobitv, Inc. | Search system using media metadata tracks |
US8264493B2 (en) | 2008-05-12 | 2012-09-11 | Playcast Media Systems, Ltd. | Method and system for optimized streaming game server |
US8308569B2 (en) | 2008-05-12 | 2012-11-13 | Microsoft Corporation | Reward for resurrecting teammate in a multiplayer game |
US8154553B2 (en) | 2008-05-22 | 2012-04-10 | Playcast Media System, Ltd. | Centralized streaming game server |
US9047236B2 (en) | 2008-06-06 | 2015-06-02 | Amazon Technologies, Inc. | Client side stream switching |
US20100005503A1 (en) | 2008-07-01 | 2010-01-07 | Kaylor Floyd W | Systems and methods for generating a video image by merging video streams |
TWI373945B (en) | 2008-07-18 | 2012-10-01 | Ubitus Technology Ltd | Multimedia streaming transmission system and method thereof |
US20100014825A1 (en) | 2008-07-18 | 2010-01-21 | Porto Technology, Llc | Use of a secondary device to overlay disassociated media elements onto video content |
US8321903B2 (en) | 2008-07-28 | 2012-11-27 | Playcast Media Systems, Ltd. | External services allocation in closed on-demand systems |
US8019899B2 (en) | 2008-08-28 | 2011-09-13 | Yahoo! Inc. | Delivering partially processed results based on system metrics in network content delivery systems |
US8352542B2 (en) | 2008-09-08 | 2013-01-08 | Seachange International, Inc. | Method and system for providing an interactive application over a network |
US20100061443A1 (en) | 2008-09-10 | 2010-03-11 | Maman Eran | Method and system for video streaming of a graphical display of an application |
US20100079676A1 (en) | 2008-09-29 | 2010-04-01 | International Business Machines Corporation | Providing Multi-User Views |
US8090014B2 (en) | 2008-10-06 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Managing multiview streaming video data composed of frames |
US20100205023A1 (en) | 2008-10-08 | 2010-08-12 | Digiboo Llc | System and method for distributing digital content |
US8687702B2 (en) | 2008-10-27 | 2014-04-01 | Advanced Micro Devices, Inc. | Remote transmission and display of video data using standard H.264-based video codecs |
US8897365B2 (en) | 2008-11-19 | 2014-11-25 | Nvidia Corporation | Video rate control processor for a video encoding process |
US8380808B2 (en) | 2008-11-24 | 2013-02-19 | Royal O'Brien | Dynamic medium content streaming system |
US8926435B2 (en) | 2008-12-15 | 2015-01-06 | Sony Computer Entertainment America Llc | Dual-mode program execution |
US9060187B2 (en) | 2008-12-22 | 2015-06-16 | Netflix, Inc. | Bit rate stream switching |
US8499090B2 (en) | 2008-12-30 | 2013-07-30 | Intel Corporation | Hybrid method for delivering streaming media within the home |
US8401075B2 (en) | 2008-12-31 | 2013-03-19 | General Instrument Corporation | Hybrid video encoder including real-time and off-line video encoders |
US8221241B2 (en) | 2009-01-13 | 2012-07-17 | Igt | Gaming involving devices in multiple locations |
US7953883B2 (en) | 2009-01-27 | 2011-05-31 | Cisco Technology, Inc. | Failover mechanism for real-time packet streaming sessions |
US8364024B2 (en) | 2009-02-03 | 2013-01-29 | Broadcom Corporation | Constructing video frames and synchronizing audio data in a media player from data received via a plurality of diverse protocol stack paths |
KR20110126518A (ko) * | 2009-02-19 | 2011-11-23 | 파나소닉 주식회사 | 기록매체, 재생장치 및 집적회로 |
US8711159B2 (en) | 2009-02-23 | 2014-04-29 | Microsoft Corporation | VGPU: a real time GPU emulator |
US8147340B2 (en) * | 2009-03-05 | 2012-04-03 | Igt | Methods and regulated gaming machines configured for service oriented smart display buttons |
US9723319B1 (en) * | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
US20100317443A1 (en) | 2009-06-11 | 2010-12-16 | Comcast Cable Communications, Llc | Distributed Network Game System |
CN101604371B (zh) * | 2009-07-22 | 2012-02-08 | 阿里巴巴集团控股有限公司 | 插件权限的控制方法及系统 |
US20110028194A1 (en) * | 2009-07-31 | 2011-02-03 | Razer (Asia-Pacific) Pte Ltd | System and method for unified-context mapping of physical input device controls to application program actions |
US8401973B1 (en) * | 2009-11-19 | 2013-03-19 | Adobe Systems Incorporated | Method and system for managing a license for an add-on software component |
US8803892B2 (en) * | 2010-06-10 | 2014-08-12 | Otoy, Inc. | Allocation of GPU resources across multiple clients |
KR102000618B1 (ko) | 2010-09-13 | 2019-10-21 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 부가기능의 관리 |
-
2011
- 2011-09-13 KR KR1020137008011A patent/KR102000618B1/ko active IP Right Grant
- 2011-09-13 US US13/231,751 patent/US10039978B2/en active Active
- 2011-09-13 KR KR1020217007786A patent/KR102288072B1/ko active IP Right Grant
- 2011-09-13 WO PCT/US2011/051461 patent/WO2012037165A2/en active Application Filing
- 2011-09-13 US US13/231,883 patent/US9878240B2/en active Active
- 2011-09-13 EP EP11825819.3A patent/EP2609520B1/en active Active
- 2011-09-13 CN CN201910345262.4A patent/CN110336850B/zh active Active
- 2011-09-13 KR KR1020207017830A patent/KR102230426B1/ko active IP Right Grant
- 2011-09-13 KR KR1020197020042A patent/KR102126910B1/ko active IP Right Grant
- 2011-09-13 CN CN201180047650.6A patent/CN103403694B/zh active Active
-
2018
- 2018-01-30 US US15/883,694 patent/US10835819B2/en active Active
- 2018-07-13 US US16/034,749 patent/US10617947B2/en active Active
-
2020
- 2020-03-04 US US16/809,489 patent/US11596861B2/en active Active
- 2020-03-05 US US16/810,789 patent/US11583766B2/en active Active
-
2023
- 2023-03-07 US US18/180,093 patent/US12011660B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040176170A1 (en) * | 1999-10-07 | 2004-09-09 | Nintendo Corporation Ltd. | Game machine having wireless communication capability |
KR20050111581A (ko) * | 2003-01-24 | 2005-11-25 | 비바 추 | 온라인 게임 광고 시스템 |
US20060224761A1 (en) * | 2005-02-11 | 2006-10-05 | Vemotion Limited | Interactive video applications |
US20090275414A1 (en) * | 2007-03-06 | 2009-11-05 | Trion World Network, Inc. | Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment |
Also Published As
Publication number | Publication date |
---|---|
WO2012037165A3 (en) | 2012-08-02 |
KR102230426B1 (ko) | 2021-03-22 |
CN103403694A (zh) | 2013-11-20 |
US10039978B2 (en) | 2018-08-07 |
CN110336850B (zh) | 2022-08-09 |
US20180154256A1 (en) | 2018-06-07 |
EP2609520A4 (en) | 2014-02-12 |
US9878240B2 (en) | 2018-01-30 |
US20200197800A1 (en) | 2020-06-25 |
EP2609520A2 (en) | 2013-07-03 |
US10835819B2 (en) | 2020-11-17 |
US11596861B2 (en) | 2023-03-07 |
US11583766B2 (en) | 2023-02-21 |
EP2609520B1 (en) | 2018-05-30 |
CN110336850A (zh) | 2019-10-15 |
KR102126910B1 (ko) | 2020-06-25 |
CN103403694B (zh) | 2019-05-21 |
US20120064975A1 (en) | 2012-03-15 |
US20120064976A1 (en) | 2012-03-15 |
KR20200075908A (ko) | 2020-06-26 |
US20180326300A1 (en) | 2018-11-15 |
US12011660B2 (en) | 2024-06-18 |
KR20210032023A (ko) | 2021-03-23 |
US10617947B2 (en) | 2020-04-14 |
US20200197798A1 (en) | 2020-06-25 |
KR20190086039A (ko) | 2019-07-19 |
KR102000618B1 (ko) | 2019-10-21 |
WO2012037165A2 (en) | 2012-03-22 |
KR102288072B1 (ko) | 2021-08-10 |
US20230218991A1 (en) | 2023-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102000618B1 (ko) | 부가기능의 관리 | |
US11077363B2 (en) | Video game overlay | |
US9940647B2 (en) | Qualified video delivery advertisement | |
US9937423B2 (en) | Voice overlay | |
KR101956639B1 (ko) | 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템 | |
US20160080457A1 (en) | Qualified Video Delivery Methods | |
CN103902489B (zh) | 生成并执行计算机应用的Miniapp的方法和系统 | |
US9349201B1 (en) | Command sentinel | |
JP7429930B2 (ja) | コンピュータプログラム、方法、及び、サーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
J301 | Trial decision |
Free format text: TRIAL NUMBER: 2017101003167; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20170629 Effective date: 20190325 |
|
S901 | Examination by remand of revocation | ||
GRNO | Decision to grant (after opposition) | ||
GRNT | Written decision to grant |