KR101593344B1 - 이력 플레이어 데이터를 이용한 추론적인 렌더링 - Google Patents

이력 플레이어 데이터를 이용한 추론적인 렌더링 Download PDF

Info

Publication number
KR101593344B1
KR101593344B1 KR1020147007910A KR20147007910A KR101593344B1 KR 101593344 B1 KR101593344 B1 KR 101593344B1 KR 1020147007910 A KR1020147007910 A KR 1020147007910A KR 20147007910 A KR20147007910 A KR 20147007910A KR 101593344 B1 KR101593344 B1 KR 101593344B1
Authority
KR
South Korea
Prior art keywords
game
game state
predicted
state
states
Prior art date
Application number
KR1020147007910A
Other languages
English (en)
Other versions
KR20140052068A (ko
Inventor
에제키엘 크루그릭
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140052068A publication Critical patent/KR20140052068A/ko
Application granted granted Critical
Publication of KR101593344B1 publication Critical patent/KR101593344B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating 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
    • A63F13/67Generating 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 adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/53Features 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/534Features 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 network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/53Features 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/538Features 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Pinball Game Machines (AREA)

Abstract

클라우드 기반의 게이밍에서 추론적인 그래픽 렌더링을 통해서 래그 시간을 감소시키는 기술들이 제시된다. 일부 예들에서, 플레이어들의 통계적으로 관련된 큰 팝퓰레이션들에 관한 이력 데이터가 제공된다. 이력 데이터는 여러 게임 로케이션들 또는 상황들을 통한 상태 전환들을 포함할 수도 있다. 게임 로케이션들 중 일부에서, 특정의 출현할 장면의 확률과 플레이어 상태 사이의 상관일 수도 있다. 예시적인 게임 로케이션들 또는 상황들은 플레이어들이 하나 이상의 직선들로 횡단하려는 경향이 있는 영역들, 플레이어들이 특정의 방식으로 회전할 수도 있는 모서리들, 예컨대, 탐색하는데 일반적으로 참여할 수도 있는 스팟들 등을 포함할 수도 있다. 이력 데이터는 어떤 예측 강도에 대해 테스트될 수도 있으며, 렌더링된 예측된 게임 상태들은 플레이어 요구에 앞서 준비될 수도 있다.

Description

이력 플레이어 데이터를 이용한 추론적인 렌더링{SPECULATIVE RENDERING USING HISTORICAL PLAYER DATA}
본원에서 달리 언급하지 않는 한, 이 섹션에서 설명하는 자료들은 본 출원의 청구범위에 대한 종래기술이 아니며 이 섹션에의 포함에 의해 종래기술인 것으로 시인되지 않는다.
지연 시간 또는 "래그 (lag)" 는 클라우드 기반의 게이밍에서 도전일 수도 있다. 인간들은 대략 150-200 밀리초 정도의 래그를 인지할 수도 있으며, 네트워크 왕복 여행들은 상당히 우수한 접속을 가진 그들 자신에 의하면, 대략 그만한 시간일 수도 있다. 네트워크가 계속해서 향상되는 것처럼 보이더라도, 데이터 센터들에서 컴퓨터 그래픽스의 렌더링 시간을 감소시키는 것이 바람직할 수도 있다.
마이크로프로세서 또는 브라우저에서 추론적인 동작은 "추론적인" 입력 값들을 이용하는 계산으로 진행하는데 다른 슬랙 시간을 이용하는 것을 포함할 수도 있다. 프로세서는 예를 들어, 입력들이 이용가능할 수도 있기 전에 출력을 계산하고, 그리고 그 입력들이 그들이 도달할 때에 예상되는 것이 아니면, 그 결과들을 간단히 폐기할 수도 있다. 그러나, 추론적인 그래픽 렌더링은, 플레이어들의 많은 가능한 거동들 및 관점들이 막대한 수의 잠재적인 예측된 뷰들을 제시하기 때문에, 현재의 클라우드-기반의 게이밍 시스템들에서는 실현할 수 없을 수도 있다. 종래의 접근법들은 뷰의 라인들에 기초한 추론적인 데이터 페칭 (fetching) 을 채용하지만, 일부 상황들에서 이것은 래그를 감소시키기에는 충분하지 않을 수도 있다.
본 개시물은 클라우드 기반의 게이밍 시스템들에서 인지된 래그 시간을 감소시키는 것이 도전적인 시도일 수도 있다고 인식한다.
본 개시물은 일반적으로 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 기술들을 설명한다.
일부 예들에 따르면, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법이 제공된다. 본 방법은 게임 클라이언트의 제 1 게임 상태를 검출하는 것; 제 1 게임 상태에 기초하여 상태 전환을 식별하는 것; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서, 예측된 게임 상태를 결정하는 것; 그 예측된 게임 상태를 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 것; 및 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하는 것을 포함할 수도 있다.
여러 예들에 따르면, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버가 제공된다. 클라우드-기반의 게임 서버는 메모리; 및 메모리에 커플링된 프로세서를 포함할 수도 있다. 프로세서는 게임 클라이언트의 제 1 게임 상태를 검출하고; 제 1 게임 상태에 기초하여 상태 전환을 식별하고; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서, 예측된 게임 상태를 결정하고; 그 예측된 게임 상태를 렌더링하고; 게임 클라이언트의 제 2 게임 상태를 검출하고; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하고; 그리고 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하도록 구성될 수도 있다.
추가적인 예들에 따르면, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 명령들을 안에 저장하고 있는 컴퓨터-판독가능 저장 매체가 제공된다. 이 명령들은 게임 클라이언트의 제 1 게임 상태를 검출하는 것; 제 1 게임 상태에 기초하여 상태 전환을 식별하는 것; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서 예측된 게임 상태를 결정하는 것; 그 예측된 게임 상태를 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 것; 및 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하는 것을 포함할 수도 있다.
일부 예들에 따르면, 게임 상태들을 추론적으로 렌더링하는 클라우드-기반의 게임 서버가 제공된다. 클라우드-기반의 게임 서버는 메모리; 및 메모리에 커플링된 프로세서를 포함할 수도 있다. 프로세서는 게임 클라이언트의 제 1 게임 상태를 검출하고; 제 1 게임 상태에 기초하여 상태 전환을 식별하고; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 정의된 확률 임계치를 초과하는지 여부에 따라서 다수의 예측된 게임 상태들을 결정하고; 그 예측된 게임 상태들의 각각을 렌더링하는데 있어서의 계산 부하를 결정하고; 각각의 예측된 게임 상태를 렌더링하는 것과 연관된 계산 부하 및 확률에 기초하여 그 예측된 게임 상태들 중 하나 이상을 렌더링하고; 게임 클라이언트의 제 2 게임 상태를 검출하고; 제 2 게임 상태가 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하고; 제 2 게임 상태가 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 하나 이상의 대응하는 렌더링된 예측된 게임 상태들을 게임 클라이언트로 송신하고; 그리고 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하도록 구성될 수도 있다.
전술한 요약은 단지 예시적이며, 어떤 방법으로든 한정하려고 의도되지 않는다. 위에서 설명한 예시적인 양태들, 실시형태들, 및 특징들에 부가하여, 추가적인 양태들, 실시형태들, 및 특징들은 도면들 및 다음의 상세한 설명을 참조하면 명백해 질 것이다.
본 개시물의 전술한 및 다른 특성들은 첨부 도면들과 함께 고려할 때, 다음 설명 및 첨부된 청구항들로부터 좀더 충분히 알 수 있을 것이다. 이 도면들이 본 개시물에 따른 오직 몇몇 실시형태들만을 도시하고, 따라서 그 범위를 한정하는 것으로 고려되지 않아야 한다고 조건 하에서, 본 개시물은 첨부 도면들의 사용을 통해 추가적인 특이점과 세부사항과 함께 설명될 것이다.
도 1 은 추론적인 그래픽 렌더링을 위한 예시적인 클라우드-기반의 시스템을 예시한다;
도 2 는 추론적인 그래픽 렌더링 모듈의 기능 블록 다이어그램을 예시한다;
도 3 은 계산 비용에 기초하여, 추론적인 그래픽 렌더링을 위해 확률 임계치를 동적으로 업데이트하는 기능 블록 다이어그램을 예시한다;
도 4 는 추론적인 그래픽 렌더링을 위해 게임 상태 전환 데이터베이스를 동적으로 업데이트하고 성장시키는 기능 블록 다이어그램을 예시한다;
도 5 는 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 구현하는데 사용될 수도 있는 범용 컴퓨팅 디바이스를 예시한다;
도 6 은 도 5 의 디바이스와 같은 컴퓨팅 디바이스에 의해 수행될 수도 있는, 예시적인 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법을 예시하는 예시하는 흐름도이다;
도 7 은 예시적인 컴퓨터 프로그램 제품의 블록도를 예시한다;
모두는 본원에서 설명하는 적어도 일부 실시형태들에 따라서 배열되었다.
다음의 상세한 설명에서, 본원의 일부를 형성하는 첨부 도면들을 참조한다. 도면에서, 유사한 심볼들은 일반적으로 문맥이 달리 지시하지 않는 한, 유사한 구성요소들을 식별한다. 상세한 설명, 도면들, 및 청구범위에 설명되는 예시적인 실시형태들은 한정하려고 의도된 것이 아니다. 본원에서 제시되는 기술요지의 정신 또는 범위로부터 일탈함이 없이, 다른 실시형태들이 채용될 수도 있으며, 다른 변화들이 이루어질 수도 있다. 본 개시물의 양태들은, 본원에서 일반적으로 설명되고 도면들에 예시된 바와 같이, 매우 다양한 상이한 구성들로 배열되고, 대체되고, 결합되고, 분리되고, 설계될 수 있으며, 본원에서는 이들 모두가 명시적으로 의도되는 것을 쉽게 알 수 있을 것이다.
본 개시물은 일반적으로, 그 중에서도, 클라우드-기반의 게이밍을 위한 추론적인 그래픽 렌더링에 관련된 방법들, 장치, 시스템들, 디바이스들, 및/또는 컴퓨터 프로그램 제품들에 관련된다.
간단히 말하면, 클라우드 기반의 게이밍에서 추론적인 그래픽 렌더링을 통해서 래그 시간을 감소시키는 기술들이 제시된다. 플레이어들의 통계적으로 관련된 큰 팝퓰레이션들에 관한 이력 데이터가 제공될 수도 있다. 이력 데이터는 여러 게임 로케이션들 또는 상황들을 통한 상태 전환들을 포함할 수도 있다. 게임 로케이션들 또는 상황들 중 일부에서, 특정의 출현할 장면의 확률과 플레이어 상태 사이에 상관 관계가 존재할 수도 있다. 예시적인 게임 로케이션들 또는 상황들은 플레이어들이 하나 이상의 직선들로 횡단하는 경향이 있는 영역들, 플레이어들이 특정의 방식으로 회전할 수도 있는 모서리들 (corners), 어떤 플레이어 모션들이 상대적으로 정적인 장면들에, 예컨대, 탐색하는데 일반적으로 참여할 수도 있는 스팟들 (spots) 등을 포함할 수도 있다. 이력 데이터는 어떤 예측 강도에 대해 테스트될 수도 있으며, 예측 상태들이 플레이어 요구에 앞서 준비될 수도 있다.
도 1 은 본원에서 설명하는 적어도 일부 실시형태들에 따른, 추론적인 그래픽 렌더링을 위한 예시적인 클라우드-기반의 시스템 (100) 을 예시한다. 시스템 (100) 은 하나 이상의 물리적인 컴퓨팅 디바이스들 상에서 구현될 수도 있는 클라우드-기반의 게임 서비스 (102) 를 포함할 수도 있다. 클라우드-기반의 게임 서비스 (102) 는 클라우드 네트워크 (110) 를 통해서 상태 전환 데이터베이스 서버 (104) 에 네트워크 경로 1 을 경유해서 커플링될 수도 있다. 클라우드-기반의 게임 서비스 (102) 는 클라우드 네트워크 (110) 를 통해서 하나 이상의 게임 클라이언트들 (106) 에 네트워크 경로들 2 를 경유해서 커플링될 수도 있다. 일부 예들에서, 클라우드-기반의 게임 서비스 (102) 는 렌더링된 예측된 게임 상태들을 준비해서 게임 클라이언트들 (106) 로 전달할 수도 있다. 다른 예들에서, 로컬 서버 노드 (108) 는 렌더링된 예측된 게임 상태들을 준비해서, 게임 클라이언트들 (106) 중 하나 이상으로 네트워크 경로들 4 를 경유해서 배포하기 위해 채용될 수도 있다. 로컬 서버 노드 (108) 는 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 래그 시간을 추가로 감소시킬 수도 있다. 예를 들어, 로컬 서버 노드 (108) 는 게임 서비스 (102) 보다 게임 클라이언트들 (106) 중 일부에 물리적으로 더 가깝게 위치됨으로써, 렌더링된 예측된 게임 상태들에 대한 래그 시간을 감소시킬 수도 있다. 로컬 서버 노드 (108) 는 또한 게임 서비스 (102) 상의 계산 부하를 덜어줌으로써 렌더링된 예측된 게임 상태들을 렌더링하는데 있어서의 래그 시간을 감소시킬 수도 있다. 로컬 서버 노드 (108) 는 또한 클라우드 네트워크 (110) 상의 네트워크 부하를 덜어줌으로써 렌더링된 예측된 게임 상태들을 렌더링하는데 있어서의 래그 시간을 감소시킬 수도 있다.
도 2 는 본원에서 설명하는 적어도 일부 실시형태들에 따른, 예시적인 추론적인 그래픽 렌더링 모듈 (200) 의 기능 블록 다이어그램을 예시한다. 추론적인 그래픽 렌더링 모듈 (200) 은 제 1 게임 상태 (202) 를 검출하고, 블록 (206) 에서 제 1 게임 상태 (202) 에 기초하여 상태 전환 데이터베이스 (204) 에서의 매칭 상태 전환을 탐색할 수도 있다.
본원에서 사용될 때, 상태 전환 데이터베이스 (204) 에서의 각각의 "상태 전환" 은 초기 게임 상태, 하나 이상의 후속 게임 상태들, 및 초기 게임 상태에 기초한 하나 이상의 후속 상태들의 각각에 대한 확률을 포함한다. "매칭 상태 전환" 의 다른 예들에서, 초기 게임 상태는 제 1 게임 상태 (202) 와 실질적으로 동일할 수도 있다. 본원에서 사용될 때, 특정의 상태 전환의 후속 상태들은 대응하는 초기 상태에 뒤따라서 이력적으로 관찰되는 게임 상태들일 수도 있다. 하나 이상의 후속 상태들의 각각에 대한 확률은 대응하는 초기 상태 후에 발생하는 후속 상태의 각각의 이력적으로 관찰된 빈도일 수도 있다.
상태 전환 데이터베이스 (204) 가 매칭 상태 전환을 포함하지 않으면, 추론적인 그래픽 렌더링 모듈 (200) 은 정상적으로 블록 (208) 에서, 예컨대, 제 2 게임 상태 (218) 에 기초하여, 장면을 렌더링하는 것으로 진행할 수도 있다. 상태 전환 데이터베이스 (204) 가 매칭 상태 전환을 포함하면, 추론적인 그래픽 렌더링 모듈 (200) 은 블록 (214) 에서 상태 전환 데이터베이스 (204) 로부터의 하나 이상의 잠재적인 후속 게임 상태들 (210) 의 대응하는 확률을, 제공된 확률 임계치 (212) 와 비교할 수도 있다.
하나 이상의 후속 게임 상태들 (210) 중 적어도 하나의 확률이 확률 임계치 (212) 를 초과하지 않으면, 추론적인 그래픽 렌더링 모듈 (200) 은 정상적으로 블록 (208) 에서, 예컨대, 제 2 게임 상태 (218) 에 기초하여 장면을 렌더링하는 것으로 진행할 수도 있다. 하나 이상의 후속 게임 상태들 (210) 중 적어도 하나의 확률이 확률 임계치 (212) 를 초과하면, 하나 이상의 후속 게임 상태들 (210) 로부터 하나 이상의 예측된 게임 상태들 (211) 이 유도될 수도 있다. 블록 (216) 에서 하나 이상의 예측된 게임 상태들 (211) 이 렌더링될 수도 있다.
추론적인 그래픽 렌더링 모듈 (200) 은 제 2 게임 상태 (218) 를 검출하고, 블록 (220) 에서 하나 이상의 예측된 게임 상태들 (211) 과 매칭이 있을 수도 있는지 여부를 결정할 수도 있다. 제 2 게임 상태 (218) 와 하나 이상의 예측된 게임 상태들 (211) 사이에 어떤 매칭도 없으면, 블록 (222) 에서, 렌더링된 예측된 게임 상태들이 폐기될 수도 있다. 장면이 그후 정상적으로 블록 (208) 에서, 예컨대, 제 2 게임 상태 (218) 에 기초하여 렌더링될 수도 있다. 제 2 게임 상태 (218) 와 하나 이상의 예측된 게임 상태들 (211) 중 하나 사이에 매칭이 있으면, 블록 (224) 에서, 대응하는 렌더링된 예측된 게임 상태가 게임 클라이언트로 송신될 수도 있다. 제 2 게임 상태 (218) 에 대응하지 않는 렌더링된 예측된 게임 상태들은 폐기될 수도 있다.
본원에서 사용될 때, "추론적인 그래픽 렌더링" 은 그 예측된 게임 상태에 기초하여 게임 장면 또는 게임 장면의 구성요소들을 수치적으로 생성하는 것을 지칭한다. 일부 예들에서, 게임 장면의 추론적인 그래픽 렌더링은 제 2 게임 상태가 게임 플레이어에 의해 입력되기 전에 시작할 수도 있다. 일부 예들에서, 게임 장면의 추론적인 그래픽 렌더링은 제 2 게임 상태가 게임 플레이어에 의해 입력되기 전에 완료될 수도 있다. 본원에서 사용될 때, "렌더링된 예측된 게임 상태" 는 예측된 게임 상태를 렌더링함으로써 생성되는 게임 장면 또는 게임 장면의 구성요소들을 지칭한다.
본원에서 사용될 때, "래그 시간" 은 게임 클라이언트들 (106) 중 하나가 제 2 게임 상태 (218) 와 같은 특정의 게임 상태에 진입할 때로부터, 게임 클라이언트 (106) 가 제 2 게임 상태 (218) 에 대응하는 렌더링된 예측된 게임 상태를 인간 게임 플레이어에게 디스플레이할 때까지 취한 시간을 지칭한다. 게임플레이의 양태들이 클라우드-기반의 게임 서비스 (102) 에 의해 계산될 수도 있는, 클라우드-기반의 게임들에서, 매우 많은 인자들이 래그 시간에 포함될 수도 있다. 예를 들어, 래그 시간은 게임 클라이언트들 (106) 중 하나가 제 1 게임 상태 (202) 를 클라우드 (110) 에서 경로들 2 를 가로질러 게임 서비스 (102) 로 송신하는 시간; 게임 서비스 (102) 가 장면을 렌더링하는 시간; 렌더링된 장면들 중 하나를 게임 서비스 (102) 로부터 클라우드 (110) 에서 경로들 2 를 가로질러 게임 클라이언트들 (106) 중 하나로 송신하는 시간; 및 기타 등등을 포함할 수도 있다. 따라서, 래그 시간은 게임 상태들 및 그 게임 상태들에 대응하는 렌더링 장면들을 검출하는 것과 관련된 계산 시간을 포함할 수도 있다. 이와 유사하게, 래그 시간은 또한 게임 상태들을 송신하고 렌더링된 장면들을 전달하는 네트워크 시간을 포함할 수도 있다. 인간들은 대략 150-200 밀리초 정도 래그 시간을 인지할 수도 있다. 일부 예들에서, 렌더링된 예측된 게임 상태들은 게임 클라이언트에서 렌더링된 예측된 게임 상태를 제시하는 래그 시간이 미리 정의된 임계치 미만이 될 수 있도록, 게임 클라이언트로 송신될 수도 있다. 미리 정의된 임계치는 여러 예들에서, 200 밀리초, 175 밀리초, 150 밀리초, 125 밀리초, 100 밀리초, 75 밀리초, 50 밀리초, 25 밀리초, 또는 10 밀리초 미만일 수도 있다.
본원에서 설명되는 예들은 다음 중 하나 이상에 의해 래그 시간을 감소시킬 수도 있다. 래그 시간은 블록 (206) 에서 예측된 게임 상태들 (211) 을 식별하여 예측된 게임 상태들을 렌더링하는 것이, 대응하는 게임 상태 (218) 에 도달하기 전에, 시작되거나 또는 종료될 수도 있기 때문에, 도 2 에서의 추론적인 그래픽 렌더링 모듈 (200) 의 동작에 의해 감소될 수도 있다. 그 예측된 게임 상태들 (211) 중 적어도 하나가 제 2 게임 상태 (218) 와 매칭하면, 추론적인 그래픽 렌더링 모듈 (200) 의 동작은 정상적으로 블록 (208) 에서 장면을 렌더링하는데 소요될 수 있는 시간 보다 더 적은 시간으로, 대응하는 렌더링된 예측된 게임 상태의 전달을 제공할 수도 있다. 또한, 래그 시간은 로컬 서버 노드 (108) 를 제공함으로써, 도 1 에 도시된 바와 같이 감소될 수도 있으며, 이 로컬 서버 노드는 로컬 서버 노드 (108) 가 게임 서비스 (102) 에 비해, 게임 클라이언트들 (106) 중 하나 이상에 더 가까이 위치될 수도 있어, 래그 시간의 네트워크 시간 구성요소를 감소시킬 수도 있다. 또, 래그 시간은 로컬 서버 노드 (108) 를 제공함으로써 도 1 에 도시된 바와 같이 감소될 수도 있으며, 이것은 게임 서비스 (102) 에서의 계산 부담을 감소시킬 수도 있다. 일부 예들에 따르면, 본 방법은 대응하는 렌더링된 예측된 게임 상태를 클라우드-기반의 게임 서버 (102) 로부터 게임 클라이언트 (106) 로 송신하는 것을 포함할 수도 있으며, 여기서, 래그 시간은 제 2 게임 상태 (218) 의 시작 시간으로부터 150 밀리초 미만일 수도 있다.
일부 예들에서, 도 2 에 나타낸 확률 임계치 (212) 는 추론적인 성공의 우도를 증가시키기 위해 조정될 수도 있다, 예를 들어, 감소될 수도 있다. 이것은 감소된 래그 시간을 초래할 수도 있으며, 게임 시스템은 증가된 추론적인 성공 및 계산 / 네트워크 부담의 최적화된 조합을 목표로 할 수도 있다.
본원에서 사용될 때, 확률 임계치, 예컨대, 확률 임계치 (212) 는, 본원에서 실시형태들에 따라서 설명되는 바와 같이, 상태 전환 데이터베이스에서 관심있는 상태 전환에서의 후속 게임 상태들 가운데서, 예측된 게임 상태들을 식별하기 위해 채용될 수도 있다. 예를 들어, 확률 임계치는 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상이 제공되거나 또는 이에 기초될 수도 있다. 게임 클라이언트는 게이밍 디바이스, 게이밍 애플리케이션을 가진 일반 / 특수 목적 컴퓨팅 디바이스, 또는 플레이어로 하여금 상이한 디바이스들 상에서 플레이가능하게 할 수도 있는 플레이어 계정일 수도 있다.
여러 예들에서, 확률 임계치는 정적 또는 동적 값일 수도 있다. 도 3 은 본원에서 설명하는 적어도 일부 실시형태들에 따른, 계산 비용 및/또는 네트워크 비용에 기초하여, 확률 임계치 (212) 를 동적으로 업데이트하는 모듈 (300) 의 기능 블록 다이어그램을 예시한다. 도 2 를 다시 참조하면, 추론적인 그래픽 렌더링 모듈 (200) 은 블록 (216) 에서 그 예측된 게임 상태들 (211) 에 기초하여 확률 임계치 (212) 에 따라서, 그 예측된 게임 상태들 중 하나 이상을 렌더링하도록 스케쥴링될 수도 있다. 도 3 을 참조하면, 블록 (302) 에서, 하나 이상의 렌더링된 예측된 게임 상태들을 준비하는데 있어서의 계산 비용 및/또는 하나 이상의 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 비용이 가용 리소스들과 비교될 수도 있다. 블록 (302) 에서 그 예측된 게임 상태들을 렌더링하는데 있어서의 계산 비용 및/또는 하나 이상의 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 비용이 가용 리소스들을 초과하면, 블록 (304) 에서 임계치 확률 (212) 은 증가될 수도 있다. 도 2 를 다시 참조하면, 임계치 확률 (212) 이 증가될 때, 추론적인 그래픽 렌더링 모듈 (200) 은 블록 (216) 에서 대응하여 더 적은 예측된 게임 상태들을 렌더링할 수도 있거나 및/또는 블록 (224) 에서 대응하여 더 적은 예측된 게임 상태들을 송신할 수도 있다. 도 3 을 참조하면, 블록 (302) 에서 하나 이상의 예측된 게임 상태들을 렌더링하거나 및/또는 송신하는데 있어서의 계산 비용이 가용 리소스들과 같거나 더 작으면, 블록 (306) 에서 임계치 확률 (212) 은 동일하게 유지될 수도 있다. 일부 예들에서, 블록 (302) 에서 하나 이상의 예측된 게임 상태들을 렌더링하는데 있어서의 계산 비용 및/또는 하나 이상의 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 비용이 가용 리소스들 미만이면, 블록 (306) 에서 임계치 확률 (212) 은 감소될 수도 있다. 일부 예들에서, 확률 임계치는 그 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서 업데이트될 수도 있다.
일부 예들에서, 클라우드-기반의 게임 서버 (102) 에서 각각의 예측된 게임 상태를 렌더링하는데 있어서의 계산 부하가 계산될 수도 있으며; 확률 임계치 (212) 는 모듈 (300) 을 이용하여 계산 부하 및/또는 네트워크 부하에 기초하여 동적으로 조정하였다. 다른 예들에서, 래그 시간은 각각의 렌더링된 예측된 게임 상태를 클라우드-기반의 게임 서버 (102) 로부터 게임 클라이언트 (106) 로 송신하는데 있어서의 네트워크 부하를 계산하고; 그리고, 그 결정된 네트워크 부하에 기초하여, 게임 클라이언트에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장함으로써, 감소될 수도 있다. 추가적인 예들에서, 래그 시간은 각각의 렌더링된 예측된 게임 상태를 클라우드-기반의 게임 서버 (102) 로부터 게임 클라이언트 (106) 에 로컬인 서버 노드 (108) 로 송신하는데 있어서의 네트워크 부하를 계산하고; 그리고, 그 결정된 네트워크 부하에 기초하여, 서버 노드 (108) 에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장함으로써 감소될 수도 있다.
예측된 상태들 (211) 에 대응하는 확률이 또한 계산 비용 및/또는 네트워크 부하를 관리하기 위해 채용될 수도 있다. 예를 들어, 도 2 를 다시 참조하면, 그 예측된 게임 상태들 중 하나 이상이 대응하는 예측된 상태 (211) 에 대한 완전 렌더링된 장면 (fully rendered scene) 에 비해, 더 적은 장면 구성요소들 및/또는 더 낮은 장면 해상도로 렌더링될 수도 있다. 이의 대안으로, 게임 상태는 부분적으로 렌더링될 수도, 예를 들어, 간단히 합성될 수도 있으며, 데이터는 렌더링 전에 데이터센터 내에서 배포될 수도 있다. 또 다른 예에서, 제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 제 1 예측된 게임 상태를 렌더링하는데 더 많은 계산 노력이 소비될 수도 있다. 예를 들어, 더 높은 확률의 예측된 게임 상태들은 비교적 낮은 확률의 예측된 상태들에 비해, 더 많은 장면 구성요소들, 더 많은 세부사항 (detail), 또는 기타 등등으로 렌더링될 수도 있다.
본원에서 사용될 때, "장면 구성요소들" 은 게임 장면을 정의하는 값들의 세트를 규정하며, 이의 비한정적인 예들은 관찰 지점, 위치, 및 방위 정보, 그래픽 엔터티 위치 및 방위, 그래픽 엔터티들 간의 공간 관계들, 렌더링된 이미지에서의 엔터티들의 표현 (예컨대, 하나의 측정에서, 손은 손으로 표현될 수도 있으며, 반면, 또 다른 측정에서는, 무기와 같은 또 다른 오브젝트로서 표현될 수도 있다), 및 장면 및 엔터티 칼라 및 조명 특성들을 포함한다. 일부 예들에서, 사운드 효과들, 음악, 햅틱 신호들, 또는 기타 등등과 같은 다른 큐들이 포함될 수도 있다.
도 4 는 본원에서 설명하는 적어도 일부 실시형태들에 따른, 상태 전환 데이터베이스 (204) 를 동적으로 업데이트하고 성장시키는 데이터베이스 업데이트 모듈 (400) 의 기능 블록 다이어그램을 예시한다. 다시 도 2 를 참조하면, 추론적인 그래픽 렌더링 모듈 (200) 은 제 1 게임 상태 (202) 및 제 2 게임 상태 (218) 를 검출한다. 상태 전환 데이터베이스 (204) 는 업데이트를 위한 상태 전환들 중 적어도 하나를 식별하기 위해 추론적인 그래픽 렌더링 모듈 (200) 에 의해 액세스될 수도 있다. 업데이트를 위한 그 식별된 상태 전환은 제 1 게임 상태 (202) 를 그 식별된 상태 전환의 초기 게임 상태와 매칭함으로써 식별될 수도 있다. 도 4 를 참조하면, 제 1 게임 상태 (204) 및 제 2 게임 상태 (218) 가 블록 (402) 에서 상태 전환 데이터베이스 (204) 에 추가될 수도 있으며, 블록 (404) 에서, 업데이트된 상태 전환 데이터베이스 (204') 를 초래하기 위해 상태 전환 확률들이 업데이트될 수도 있다. 여러 예들에서, 상태 전환들의 데이터베이스는 그 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 렌더링된 예측된 게임 상태 및 제 2 게임 상태 중 하나로 업데이트될 수도 있다. 데이터베이스 업데이트 모듈 (400) 은 시스템 (100) 과 함께 동작하여, 상태 전환 데이터베이스 (204) 를 동적으로 업데이트하고 성장시킬 수도 있다. 예를 들어, 도 1, 도 2 및 도 4 를 참조하면, 게임 서버 (102) 는 게임 클라이언트들 (106) 을 게임플레이에 끌어 들이도록 동작될 수도 있으며, 상태 전환 데이터베이스 (204) 는 게임 상태 전환들 (202 및 208) 을 게임 클라이언트들 (106) 에 의해 참가된 게임플레이에 의해 발생되는 것으로 리코딩함으로써 성장될 수도 있다.
도 5 는 본원에서 설명하는 적어도 일부 실시형태들에 따른, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 구현하는데 사용될 수도 있는, 범용 컴퓨팅 디바이스 (500) 를 예시한다. 예시적인 기본 구성 (502) 에서, 컴퓨팅 디바이스 (500) 는 하나 이상의 프로세서들 (504) 및 시스템 메모리 (506) 를 포함할 수도 있다. 메모리 버스 (508) 는 프로세서 (504) 와 시스템 메모리 (506) 사이에 통신하는데 사용될 수도 있다. 기본 구성 (502) 은 도 5 에 내측 파선 내 그들 구성요소들로 예시된다.
원하는 구성에 따라서, 프로세서 (504) 는 마이크로프로세서 (μΡ), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하지만 이에 한정되지 않는 임의의 유형의 프로세서일 수도 있다. 프로세서 (504) 는 하나 더 많은 (one more) 레벨들의 캐싱, 예컨대 레벨 캐시 메모리 (512), 프로세서 코어 (514), 및 레지스터들 (516) 을 포함할 수도 있다. 예시적인 프로세서 코어 (514) 는 산술 로직 유닛 (ALU), 부동 소수점 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP 코어), 또는 이들의 임의의 조합을 포함할 수도 있다. 예시적인 메모리 제어기 (518) 는 또한 프로세서 (504) 와 함께 사용될 수도 있거나, 또는 일부 구현예들에서, 메모리 제어기 (518) 는 프로세서 (504) 의 내부 부분일 수도 있다.
원하는 구성에 따라서, 시스템 메모리 (506) 는 (RAM 과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비-휘발성 메모리 또는 이들의 임의의 조합을 포함하지만 이에 한정되지 않는 임의의 유형일 수도 있다. 시스템 메모리 (506) 는 운영 시스템 (520), 하나 이상의 게임 서비스 애플리케이션들 (522), 및 프로그램 데이터 (524) 를 포함할 수도 있다. 게임 서비스 애플리케이션들 (522) 은 본원에서 설명하는 바와 같이, 예측된 게임 상태들에 따라서 게임 장면들의 추론적인 그래픽 렌더링을 제공할 수도 있는 추론적인 그래픽 렌더링 모듈 (525) 을 포함할 수도 있다. 또한, 게임 서비스 애플리케이션들 (522) 에 포함된 것은 도 3 에 도시된 바와 같이, 확률 임계치들을 동적으로 업데이트하는 모듈 (300) 일 수도 있다. 다시 도 5 를 참조하면, 프로그램 데이터 (524) 는 본원에서 설명하는 바와 같이, 다른 데이터 중에서, 실제 또는 예측된 게임 상태들, 임계치 확률들, 또는 기타 등등과 연관된 하나 이상의 제어 파라미터들 (528) 을 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는 기본 구성 (502) 과 임의의 원하는 디바이스들 및 인터페이스들과의 사이에 통신을 용이하게 하는, 추가적인 특성들 또는 기능, 및 추가적인 인터페이스들을 가질 수도 있다. 예를 들어, 버스/인터페이스 제어기 (530) 는 스토리지 인터페이스 버스 (534) 를 통해서 기본 구성 (502) 과 하나 이상의 데이터 스토리지 디바이스들 (532) 사이에 통신을 용이하게 하는데 사용될 수도 있다. 데이터 스토리지 디바이스들 (532) 은 하나 이상의 착탈식 스토리지 디바이스들 (536), 하나 이상의 비-착탈식 스토리지 디바이스들 (538), 또는 이들의 조합일 수도 있다. 착탈식 스토리지 및 비-착탈식 스토리지 디바이스들의 예들은 몇 개 예를 들면, 가요성 디스크 드라이브들 및 하드-디스크 드라이브들 (HDD) 과 같은 자기 디스크 디바이스들, 컴팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들과 같은 광 디스크 드라이브들, 고체 상태 드라이브들 (SSD), 및 테이프 드라이브들을 포함한다. 예시적인 컴퓨터 저장 매체들은 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비-착탈식 매체들을 포함할 수도 있다.
시스템 메모리 (506), 착탈식 스토리지 디바이스들 (536) 및 비착탈식 스토리지 디바이스들 (538) 은 컴퓨터 저장 매체들의 예들이다. 컴퓨터 저장 매체들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD) 또는 다른 광학 스토리지, 자기 카세트들, 자기 테이프, 자기디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 원하는 정보를 저장하는데 사용될 수도 있고 컴퓨팅 디바이스 (500) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만, 이에 한정되지 않는다. 임의의 이런 컴퓨터 저장 매체들은 컴퓨팅 디바이스 (500) 의 부분일 수도 있다.
컴퓨팅 디바이스 (500) 는 또한 버스/인터페이스 제어기 (530) 를 통해서 여러 인터페이스 디바이스들 (예컨대, 하나 이상의 출력 디바이스들 (542), 하나 이상의 주변장치 인터페이스들 (544), 및 하나 이상의 통신 디바이스들 (546)) 로부터 기본 구성 (502) 으로 통신을 용이하게 하는 인터페이스 버스 (540) 를 포함할 수도 있다. 예시적인 출력 디바이스들 (542) 중 일부는 그래픽 프로세싱 유닛 (548) 및 오디오 프로세싱 유닛 (550) 을 포함하며, 하나 이상의 A/V 포트들 (552) 을 통해서 디스플레이 또는 스피커들과 같은 여러 외부 디바이스들로 통신하도록 구성될 수도 있다. 하나 이상의 예시적인 주변장치 인터페이스들 (544) 은 직렬 인터페이스 제어기 (554) 또는 병렬 인터페이스 제어기 (556) 를 포함할 수도 있으며, 입력 디바이스들 (예컨대, 키보드, 마우스, 펜, 보이스 입력 디바이스, 터치 입력 디바이스, 등) 또는 다른 주변장치 디바이스들 (예컨대, 프린터, 스캐너 등) 과 같은 외부 디바이스들과 하나 이상의 I/O 포트들 (558) 을 통해서 통신하도록 구성될 수도 있다. 예시적인 통신 디바이스 (546) 는 네트워크 제어기 (560) 를 포함하며, 네트워크 통신 링크를 거쳐서 하나 이상의 통신 포트들 (564) 을 경유하여 하나 이상의 다른 컴퓨팅 디바이스들 (562) 과의 통신을 용이하게 하도록 배열될 수도 있다. 하나 이상의 다른 컴퓨팅 디바이스들 (562) 은 도 1 에 도시된 바와 같이 게임 클라이언트들 (106), 로컬 서버 노드 (108), 및/또는 상태 전환 데이터베이스 서버 (104) 를 포함할 수도 있다.
네트워크 통신 링크는 통신 매체들의 일 예일 수도 있다. 통신 매체들은 일반적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 캐리어 파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내 다른 데이터에 의해 구현될 수도 있으며, 임의의 정보 전달 매체들을 포함할 수도 있다. "변조된 데이터 신호" 는 그의 특성들 세트 중 하나 이상을 갖는 신호이거나 또는 그 신호 내 정보를 인코딩하는 방법으로 변경될 수도 있다. 일 예로서, 이에 한정하지 않고, 통신 매체들은 유선 네트워크 또는 직접-유선 접속과 같은 유선 매체들, 및 음향, 무선 주파수 (RF), 마이크로파, 적외선 (IR) 및 다른 무선 매체들과 같은 무선 매체들을 포함할 수도 있다. 용어 컴퓨터 판독가능 매체들은 본원에서 사용될 때 저장 매체들 및 통신 매체들 양자를 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는 상기 기능들 중 임의의 기능을 포함하는, 범용 또는 특수화된 서버, 메인프레임, 또는 유사한 컴퓨터의 일부로서 구현될 수도 있다. 컴퓨팅 디바이스 (500) 는 또한 랩탑 컴퓨터 및 비-랩탑 컴퓨터 구성들 양자를 포함한 개인용 컴퓨터로서 구현될 수도 있다.
예시적인 실시형태들은 또한 방법들을 포함할 수도 있다. 이들 방법들은 본원에서 설명하는 구조들을 포함한, 임의 개수의 방법들로 구현될 수 있다. 하나의 이런 방법은 본 개시물에서 설명되는 유형의 디바이스들의 기계 동작들에 의할 수도 있다. 또 다른 옵션적인 방법은 다른 동작들이 기계들에 의해 수행될 수도 있는 동안 그 동작들 중 일부를 수행하는 하나 이상의 인간 조작자들과 함께 수행되는 방법들의 개개의 동작들 중 하나 이상에 대한 것일 수도 있다. 이들 인간 조작자들은 서로 함께 배치될 필요는 없지만, 각각은 프로그램의 일부를 수행하는 기계와 단지 함께 배치될 수도 있다. 다른 예들에서, 인간 상호작용은 예컨대, 기계 자동화될 수도 있는 사전-선택된 기준들에 의해 자동화될 수 있다.
도 6 은 본원에서 설명하는 적어도 일부 실시형태들에 따른, 도 5 의 디바이스 (500) 와 같은 컴퓨팅 디바이스에 의해 수행될 수도 있는 예시적인 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법을 예시하는 흐름도이다. 예시적인 방법들은 블록들 (622, 624, 626, 628, 630, 632, 및/또는 634) 중 하나 이상으로 예시된 바와 같이 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다. 블록들 (622 내지 634) 에서 설명되는 동작들은 또한 컴퓨팅 디바이스 (610) 의 컴퓨터-판독가능 매체 (620) 와 같은 컴퓨터-판독가능 매체에 컴퓨터-실행가능한 명령들로서 저장될 수도 있다.
클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링의 예시적인 프로세스는 블록 (622), "상태 전환들의 데이터베이스를 제공한다" 에서 시작할 수도 있으며, 여기서, 다수의 상태 전환들은 도 2 및 도 4 에 도시된 바와 같이 상태 전환 데이터베이스 (204) 에 저장될 수도 있다.
다시 도 6 을 참조하면, 블록 (622) 에 이어서, 블록 (624), "제 1 게임 상태를 검출한다" 가 뒤따를 수도 있으며, 여기서, 도 2 에 도시된 바와 같은 제 1 게임 상태 (202) 가 검출된다. 블록 (624) 에 이어서, 블록 (626), "제 1 게임 상태에 대응하는 데이터베이스로부터 상태 전환을 식별한다" 가 뒤따를 수도 있다. 블록 (626) 에서, 상태 전환이 그 검출된 제 1 게임 상태에 기초하여 상태 전환들 데이터베이스로부터 식별될 수도 있다. 게임 상태가 그 데이터베이스에 있지 않은 것으로 결정되면, 시스템에 의해 계산되어 렌더링될 수도 있다. 블록 (626) 에 이어서, 블록 (628), "확률 임계치에 기초하여, 예측된 게임 상태들을 결정한다" 가 뒤따를 수도 있으며, 여기서, 게임 서비스 (102) 는 도 2 에 도시된 바와 같이, 그 식별된 상태 전환들의 확률들을 미리 정의된 확률 임계치와 비교하는 것에 기초하여, 하나 이상의 예측된 게임 상태들을 식별할 수도 있다.
다시 도 6 을 참조하면, 블록 (628) 에 이어서, 블록 (630), "예측된 게임 상태들을 렌더링한다" 가 뒤따를 수도 있으며, 여기서, 그 예측된 게임 상태들 중 하나 이상은 서버에서 렌더링되거나 또는 클라이언트에서 렌더링되게 초래될 수도 있다. 어느 (및 얼마나 많은) 게임 상태들이 렌더링되는 지는 렌더링될 상태들의 프로세싱 용량, 대역폭 이용가능성, 복잡성 등과 같은 하나 이상의 인자들에 기초하여 결정될 수도 있다. 블록 (630) 에 이어서, 블록 (632), "제 2 게임 상태를 검출한다" 가 뒤따를 수도 있으며, 여기서, 게임 서비스 (102) 는 게임에서의 플레이어의 액션에 기초하여, 플레이어의 실제 제 2 게임 상태를 검출할 수도 있다. 블록 (632) 에 이어서, 블록 (634), "게임 클라이언트로 대응하는 렌더링된 예측된 게임 상태를 송신한다" 가 뒤따를 수도 있으며, 여기서, 대응하는 렌더링된 예측된 게임 상태가 게임 클라이언트에 제공되거나 송신된다. 서버가 게임 상태들을 렌더링하는 경우들에서, 렌더링된 예측된 게임 상태는 렌더링 프로세스에 의해 잠재적으로 초래되는 어떤 지연 없이, 클라이언트로 송신될 수도 있다.
위에서 설명한 프로세스에 포함된 블록들은 예시 목적들을 위한 것이다. 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링은 예를 들어, 도 2 및 도 4 에 도시된 블록을 채용하여, 더 적은 또는 추가적인 블록들을 가진 유사한 프로세스들로 구현될 수도 있다. 일부 예들에서, 블록들은 상이한 순서로 수행될 수도 있다. 일부 다른 예들에서, 여러 블록들이 제거될 수도 있다. 또한 다른 예들에서, 여러 블록들이 추가적인 블록들로 분할되거나, 또는 더 적은 블록들로 함께 결합될 수도 있다.
도 7 은 본원에서 설명하는 적어도 일부 실시형태들에 따라서 배열된, 예시적인 컴퓨터 프로그램 제품 (700) 의 블록도를 예시한다. 일부 예들에서, 도 7 에 나타낸 바와 같이, 컴퓨터 프로그램 제품 (700) 은 예를 들어, 프로세서에 의해 실행될 때, 본원에서 설명하는 기능을 제공할 수도 있는 하나 이상의 머신 판독가능 명령들 (704) 을 또한 포함할 수도 있는 신호 전달 매체 (signal bearing medium; 702) 를 포함할 수도 있다. 따라서, 예를 들어, 도 5 에서의 프로세서 (504) 를 참조하면, 데이터 모니터링 모듈 (526) 은 본원에서 설명하는 바와 같이 클라우드-기반의 게이밍에서의 추론적인 그래픽 렌더링과 연관된 액션들을 수행하기 위해, 매체 (702) 에 의해 프로세서 (504) 에 전달된 명령들 (704) 에 응답하여, 도 7 에 나타낸 작업들 중 하나 이상을 맡을 수도 있다. 그들 명령들 중 일부는, 예를 들어, 본원에서 설명되는 실시형태들에 따른, 상태 전환들 (204) 의 데이터베이스를 클라우드-기반의 게임 서버 (102) 에 제공하기 위한 명령들; 하나 이상의 게임 클라이언트들 (106) 의 게임 상태 (202) 을 검출하기 위한 명령들; 예컨대, 상태 전환 데이터베이스 (204) 로부터의 대응하는 상태 전환을 식별하기 위한 명령들; 확률 임계치 (212) 에 따라서 그 예측된 게임 상태들 (211) 을 결정하기 위한 명령들; 그 예측된 게임 상태들을 렌더링하기 위한 명령들; 그 렌더링된 예측된 게임 상태들을 클라우드 기반의 게임 서버 (102) 로부터 게임 클라이언트 (106) 로 송신하기 위한 명령들; 및 기타 등등을 포함할 수도 있다.
일부 구현예들에서, 도 7 에 도시된 신호 전달 매체 (702) 는 하드 디스크 드라이브, SSD (solid state drive), 컴팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 메모리 등과 같은, 그러나 이에 한정하지 않는, 컴퓨터-판독가능 매체 (706) 를 포괄할 수도 있다. 일부 구현예들에서, 신호 전달 매체 (702) 는 메모리, 판독/기록 (R/W) CDs, R/W DVDs 등과 같은, 그러나 이에 한정되지 않는, 기록가능한 매체 (708) 를 포괄할 수도 있다. 일부 구현예들에서, 신호 전달 매체 (702) 는 디지털 및/또는 아날로그 통신 매체 (예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크, 등) 와 같은, 그러나 이에 한정되지 않는, 통신 매체 (710) 를 포괄할 수도 있다. 따라서, 예를 들어, 프로그램 제품 (700) 은 RF 신호 전달 매체에 의해 프로세서 (704) 의 하나 이상의 모듈들로 전달될 수도 있으며, 여기서, 신호 전달 매체 (702) 는 무선 통신 매체 (710) (예컨대, IEEE 802.11 표준과 부합하는 무선 통신 매체) 에 의해 전달된다.
일부 예들에 따르면, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법이 제공된다. 본 방법은, 게임 클라이언트의 제 1 게임 상태를 검출하는 것; 제 1 게임 상태에 기초하여 상태 전환을 식별하는 것; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서 예측된 게임 상태를 결정하는 것; 그 예측된 게임 상태를 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 것; 및 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하는 것을 포함할 수도 있다.
여러 예들에서, 본 방법은 또한 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여, 확률 임계치를 결정하는 것을 포함할 수도 있다.
일부 예들에서, 본 방법은 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서 다수의 예측된 게임 상태들을 결정하는 것; 그 예측된 게임 상태들을 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 그 대응하는 렌더링된 예측된 게임 상태들 중 하나를 게임 클라이언트로 송신하는 것; 및 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하는 것을 더 포함할 수도 있다.
여러 예들에서, 본 방법은 또한 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 부하를 결정하는 것; 및 그 결정된 네트워크 부하에 기초하여, 게임 클라이언트에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하는 것을 포함할 수도 있다.
일부 예들에서, 본 방법은 제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 제 1 예측된 게임 상태를 렌더링하는데, 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하는 것을 더 포함할 수도 있다.
여러 예들에서, 본 방법은 또한 상태 전환들의 데이터베이스로부터 상태 전환을 식별하는 것, 및 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상태 전환들의 데이터베이스를 렌더링된 예측된 게임 상태 및 제 2 게임 상태 중 하나로 업데이트하는 것을 포함할 수도 있다.
일부 예들에서, 본 방법은 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서 확률 임계치를 업데이트하는 것을 더 포함할 수도 있다.
여러 예들에서, 본 방법은 또한 그 예측된 게임 상태를 렌더링하는데 있어서의 계산 부하 및/또는 그 렌더링된 예측된 게임 상태를 송신하는데 있어서의 네트워크 부하 중 하나 이상에 기초하여, 확률 임계치를 동적으로 조정하는 것을 포함할 수도 있다.
일부 예들에서, 본 방법은 그 예측된 게임 상태를, 완전 렌더링된 예측된 게임 상태에 비해 더 적은 장면 구성요소들 및/또는 더 낮은 장면 해상도 중 하나로 부분적으로 렌더링하는 것을 더 포함할 수도 있다.
여러 예들에서, 본 방법은, 또한 게임 클라이언트에서 렌더링된 예측된 게임 상태를 제시하는 래그 시간이 미리 정의된 임계치 미만이 되도록, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하는 것을 포함할 수도 있다.
본 방법은 하나 이상의 게임 클라이언트 특정의 속성들에 기초하여, 예측된 게임 상태를 결정하는 것을 더 포함할 수도 있으며, 여기서, 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 위치, 뷰 지점, 장비, 및 캐릭터 상태의 세트 중 적어도 하나를 포함할 수도 있다. 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 공격성, 속도, 및 예측가능성의 세트 중 적어도 하나를 더 포함할 수도 있다.
여러 예들에 따르면, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버가 제공된다. 클라우드-기반의 게임 서버는 메모리; 및 메모리에 커플링된 프로세서를 포함할 수도 있다. 프로세서는 게임 클라이언트의 제 1 게임 상태를 검출하고; 제 1 게임 상태에 기초하여 상태 전환을 식별하고; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서, 예측된 게임 상태를 결정하고; 그 예측된 게임 상태를 렌더링하고; 게임 클라이언트의 제 2 게임 상태를 검출하고; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하고; 그리고 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 여러 예들에서, 프로세서는 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여, 확률 임계치를 결정하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 일부 예들에서, 프로세서는 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서, 다수의 예측된 게임 상태들을 결정하고; 예측된 게임 상태들을 렌더링하고; 게임 클라이언트의 제 2 게임 상태를 검출하고; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하고; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 그 렌더링된 예측된 게임 상태들 중 대응하는 하나를 게임 클라이언트로 송신하고; 그리고 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 추가적인 예들에서, 프로세서는 그 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 부하를 결정하고; 및 그 결정된 네트워크 부하에 기초하여, 게임 클라이언트에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 여러 예들에서, 프로세서는 제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 제 1 예측된 게임 상태를 렌더링하는데, 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 일부 예들에서, 프로세서는 상태 전환들의 데이터베이스로부터 상태 전환을 식별하고, 그리고 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상태 전환들의 데이터베이스를 렌더링된 예측된 게임 상태 및 제 2 게임 상태 중 하나로 업데이트하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 추가적인 예들에서, 프로세서는 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서 확률 임계치를 업데이트하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 여러 예들에서, 프로세서는 그 예측된 게임 상태를 렌더링하는데 있어서의 계산 부하 및/또는 그 렌더링된 예측된 게임 상태를 송신하는데 있어서의 네트워크 부하 중 하나 이상에 기초하여, 확률 임계치를 동적으로 조정하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 일부 예들에서, 프로세서는 그 예측된 게임 상태를, 완전 렌더링된 예측된 게임 상태에 비해 더 적은 장면 구성요소들 및/또는 더 낮은 장면 해상도 중 하나로 부분적으로 렌더링하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 추가적인 예들에서, 프로세서는 게임 클라이언트에서 렌더링된 예측된 게임 상태를 제시하는 래그 시간이 미리 정의된 임계치 미만이 되게, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하도록 구성될 수도 있다.
프로세서는 하나 이상의 게임 클라이언트 특정의 속성들에 기초하여, 그 예측된 게임 상태를 추가로 결정할 수도 있으며, 여기서, 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 위치, 뷰 지점, 장비, 및 캐릭터 상태의 세트 중 적어도 하나를 포함할 수도 있다. 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 공격성, 속도, 및 예측가능성의 세트 중 적어도 하나를 더 포함할 수도 있다.
추가적인 예들에 따르면, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 명령들을 안에 저장하고 있는 컴퓨터-판독가능 저장 매체가 제공된다.
컴퓨터-판독가능 저장 매체의 여러 예들에서, 명령들은 게임 클라이언트의 제 1 게임 상태를 검출하는 것; 제 1 게임 상태에 기초하여 상태 전환을 식별하는 것; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서 예측된 게임 상태를 결정하는 것; 그 예측된 게임 상태를 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 것; 및 제 2 게임 상태가 렌더링된 예측된 게임 상태에 대응하면, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하고; 그렇지 않으면, 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 일부 예들에서, 명령들은 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여, 확률 임계치를 결정하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 추가적인 예들에서, 명령들은 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서 다수의 예측된 게임 상태들을 결정하는 것; 그 예측된 게임 상태들을 렌더링하는 것; 게임 클라이언트의 제 2 게임 상태를 검출하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하는 것; 제 2 게임 상태가 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 그 렌더링된 예측된 게임 상태들 중 대응하는 하나를 게임 클라이언트로 송신하는 것; 및 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 여러 예들에서, 명령들은 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 부하를 결정하는 것; 및 그 결정된 네트워크 부하에 기초하여, 게임 클라이언트에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 일부 예들에서, 명령들은 제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 제 1 예측된 게임 상태를 렌더링하는데, 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 추가적인 예들에서, 명령들은 상태 전환들의 데이터베이스로부터 상태 전환을 식별하는 것, 및 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상태 전환들의 데이터베이스를 렌더링된 예측된 게임 상태 및 제 2 게임 상태 중 하나로 업데이트하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 여러 예들에서, 명령들은 렌더링된 예측된 게임 상태가 검출된 제 2 게임 상태에 대응하는지 여부에 따라서 확률 임계치를 업데이트하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 일부 예들에서, 명령들은 그 예측된 게임 상태를 렌더링하는데 있어서의 계산 부하 및/또는 그 렌더링된 예측된 게임 상태를 송신하는데 있어서의 네트워크 부하 중 하나 이상에 기초하여, 확률 임계치를 동적으로 조정하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 여러 예들에서, 명령들은 그 예측된 게임 상태를, 완전 렌더링된 예측된 게임 상태에 비해 더 적은 장면 구성요소들 및/또는 더 낮은 장면 해상도 중 하나로 부분적으로 렌더링하는 것을 포함할 수도 있다.
컴퓨터-판독가능 저장 매체의 일부 예들에서, 명령들은, 게임 클라이언트에서 렌더링된 예측된 게임 상태를 제시하는 래그 시간이 미리 정의된 임계치 미만이 되도록, 그 렌더링된 예측된 게임 상태를 게임 클라이언트로 송신하는 것을 포함할 수도 있다.
명령들은 하나 이상의 게임 클라이언트 특정의 속성들에 기초하여, 예측된 게임 상태를 결정하는 것을 더 포함할 수도 있으며, 여기서, 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 위치, 뷰 지점, 장비, 및 캐릭터 상태의 세트 중 적어도 하나를 포함할 수도 있다. 하나 이상의 게임 클라이언트 특정의 속성들은 제 1 게임 상태에서 게임 클라이언트의 공격성, 속도, 및 예측가능성의 세트 중 적어도 하나를 더 포함할 수도 있다.
일부 예들에 따르면, 게임 상태들을 추론적으로 렌더링하는 클라우드-기반의 게임 서버가 제공된다. 클라우드-기반의 게임 서버는 메모리; 및 메모리에 커플링된 프로세서를 포함할 수도 있다. 프로세서는 게임 클라이언트의 제 1 게임 상태를 검출하고; 제 1 게임 상태에 기초하여 상태 전환을 식별하고; 그 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 게임 규칙, 게임 시나리오, 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 정의된 확률 임계치를 초과하는지 여부에 따라서 다수의 예측된 게임 상태들을 결정하고; 그 예측된 게임 상태들의 각각을 렌더링하는데 있어서의 계산 부하를 결정하고; 각각의 예측된 게임 상태를 렌더링하는 것과 연관된 계산 부하 및 확률에 기초하여, 그 예측된 게임 상태들 중 하나 이상을 렌더링하고; 게임 클라이언트의 제 2 게임 상태를 검출하고; 제 2 게임 상태가 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하고; 제 2 게임 상태가 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 하나 이상의 대응하는 렌더링된 예측된 게임 상태들을 게임 클라이언트로 송신하고; 그리고 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 여러 예들에서, 프로세서는 그 결정된 네트워크 부하에 기초하여, 게임 클라이언트에서 적어도 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하도록 구성될 수도 있다.
클라우드-기반의 게임 서버의 일부 예들에서, 프로세서는 제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 제 1 예측된 게임 상태를 렌더링하는데, 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하도록 구성될 수도 있다.
시스템들의 양태들의 하드웨어 구현예와 소프트웨어 구현예 사이에는 작은 차이가 있다; 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나, 어떤 상황에서, 하드웨어와 소프트웨어 사이의 선택이 중요해질 수도 있다는 점에서, 항상 그렇지는 않다) 비용 대 효율 상충관계들을 나타내는 설계 선택이다. 본원에서 설명하는 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 시행될 수도 있는 여러 전달수단들 (예컨대, 하드웨어, 소프트웨어, 및/또는 펌웨어) 이 있으며, 게다가 바람직한 전달수단은 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 전개되는 환경에 따라서 변할 것이다. 예를 들어, 속도 및 정확도가 가장 중요하다고 구현자가 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 전달수단을 선택할 수도 있으며; 유연성이 가장 중요하면, 구현자는 주로 소프트웨어 구현예를 선택할 수도 있으며; 또는, 다시 또 한번, 대안적으로, 구현자는 하드웨어, 소프트웨어, 및/또는 펌웨어의 일부 조합을 선택할 수도 있다.
전술한 상세한 설명은 블록도들, 플로우차트들, 및/또는 예들의 사용을 통해서 디바이스들 및/또는 프로세스들의 여러 실시형태들을 개시하였다. 이런 블록도들, 플로우차트들, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 당업자들은 이런 블록도들, 플로우차트들, 또는 예들 내 각각의 기능 및/또는 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 이들의 임의의 조합에 의해 별개로 및/또는 집합적으로, 구현될 수도 있음을 알 수 있을 것이다. 일 실시형태에서, 본원에서 설명하는 기술요지의 여러 부분들은 주문형 집적회로들 (ASICs), 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 디지털 신호 프로세서들 (DSPs), 또는 다른 통합된 포맷들을 통해서 구현될 수도 있다. 그러나, 당업자는, 본원에서 개시된 실시형태들의 일부 양태들이, 전체적으로 또는 부분적으로, 집적 회로들에서, 하나 이상의 컴퓨터들 상에서 실행하는 하나 이상의 컴퓨터 프로그램들로서 (예컨대, 하나 이상의 컴퓨터 시스템들 상에서 실행하는 하나 이상의 프로그램들로서), 하나 이상의 프로세서들 상에서 실행하는 하나 이상의 프로그램들로서 (예컨대, 하나 이상의 마이크로프로세서들 상에서 실행하는 하나 이상의 프로그램들로서), 펌웨어로서, 또는 사실상 이들의 임의의 조합으로서, 동등하게 구현될 수도 있으며, 회로를 설계하는 것 및/또는 소프트웨어 및 또는 펌웨어용 코드를 기록하는 것이 본 개시물을 감안할 때 당업자의 기술 내에 있을 것임을 알 수 있을 것이다.
본 개시물은 본 출원에서 설명하는 특정의 실시형태들에 관하여 제한시키려는 것이 아니라, 여러 양태들의 예시들로서 의도된다. 당업자들이 명백히 알고 있는 바와 같이, 본 개시물의 정신 및 범위로부터 일탈함이 없이, 많은 변경들 및 변형들이 이루어질 수 있다. 본원에서 열거한 것들에 더해서, 본 개시물의 범위 내에서 기능적으로 동등한 방법들 및 장치들은 전술한 설명들로부터 당업자들에게 자명할 것이다. 이런 변경예들 및 변형예들은 첨부된 청구항들의 범위 내에 들어가는 것으로 의도된다. 본 개시물은 이런 청구항들에 부여되는 등가물들의 전체 범위와 함께, 오직 첨부된 청구항들의 용어들에 의해서만 한정되어야 한다. 본 개시물은 특정의 방법들, 시약들, 화합물들 조성들 또는 생물학적 시스템들에 한정되지 않으며, 물론, 이들이 변할 수 있는 것으로 이해되어야 한다. 또한, 본원에서 사용되는 전문용어가 특정의 실시형태들을 오직 설명하려는 목적을 위한 것이며 한정하려고 의도되지 않는 것으로 이해되어야 한다.
게다가, 당업자들은, 본원에서 설명하는 기술요지의 메카니즘들이 프로그램 제품으로서 다양한 유형들로 배포되는 것이 가능하고, 그리고, 본원에서 설명하는 기술요지의 예시적인 실시형태가 그 배포를 실제로 실행하는데 사용되는 특정 유형의 신호 전달 매체에 상관없이 적용될 수 있다는 점을 명백히 알 수 있을 것이다. 신호 전달 매체의 예들은, 플로피 디스크, 하드 디스크 드라이브, 컴팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능한 유형의 매체; 및 디지털 및/또는 아날로그 통신 매체와 같은 송신 유형의 매체 (예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 를 포함하지만 이에 한정되지 않는다.
당업자들은 본원에서 개시된 방식으로 디바이스들 및/또는 프로세스들을 기술하고 이후 엔지니어링 관례들 (practices) 을 이용하여 이런 설명되는 디바이스들 및/또는 프로세스들을 데이터 프로세싱 시스템들에 통합하는 것이 당업계에서 일반적임을 알 수 있을 것이다. 즉, 본원에서 설명하는 디바이스들 및/또는 프로세스들의 적어도 일 부분은 타당한 양의 실험 과정을 통해서 데이터 프로세싱 시스템에 통합될 수도 있다. 당업자들은, 전형적인 데이터 프로세싱 시스템이 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 디바이스, 휘발성 및 비-휘발성 메모리와 같은 메모리, 마이크로프로세서들 및 디지털 신호 프로세서들과 같은 프로세서들, 운영 시스템들과 같은 계산 엔터티들 (computational entities), 드라이버들, 그래픽 사용자 인터페이스들, 및 애플리케이션들 프로그램들, 터치 패드 또는 스크린과 같은 하나 이상의 상호작용 디바이스들, 및/또는 피드백 루프들 및 제어 모터들 (예컨대, 갠트리 시스템들의 위치 및/또는 속도를 감지하기 위한 피드백; 구성요소들 및/또는 양들을 이동시키거나 및/또는 조정하기 위한 제어 모터들) 을 포함한 제어 시스템들 중 하나 이상을 포함함을 알 수 있을 것이다.
대표적인 데이터 프로세싱 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템들에서 일반적으로 발견되는 구성요소들과 같은, 임의의 적합한 시중에서 입수가능한 구성요소들을 이용하여 구현될 수도 있다. 본원에서 설명하는 기술요지는 종종 상이한 다른 구성요소들 내에 포함되거나, 또는 그와 접속된 상이한 구성요소들을 예시한다. 이런 도시된 아키텍쳐들은 단지 예시적이며, 실제로, 동일한 기능을 달성하는 많은 다른 아키텍쳐들이 구현될 수도 있는 것으로 이해되어야 한다. 개념적인 의미에서, 동일한 기능을 달성하기 위해 구성요소들의 임의의 배열이 원하는 기능이 달성되도록, 효과적으로 "결합된다". 그러므로, 특정의 기능을 달성하도록 본원에서 결합되는 임의의 2개의 구성요소들은, 원하는 기능이 아키텍쳐들 또는 중간 구성요소들에 상관없이, 달성되도록, 서로 "연관되는" 것으로 간주될 수도 있다. 이와 유사하게, 그렇게 연관된 임의의 2개의 구성요소들은 또한 원하는 기능을 달성하기 위해 서로에 대해 "동작가능하게 접속된", 또는 "동작가능하게 커플링된" 인 것으로 간주될 수도 있으며, 그리고, 그렇게 연관되는 것이 가능한 임의의 2개의 구성요소들은 또한 원하는 기능을 달성하기 위해 서로에 대해 "동작가능하게 커플링가능한" 것으로 간주될 수도 있다. "동작가능하게 커플링가능한" 의 구체적인 예들은 물리적으로 접속가능한 및/또는 물리적으로 상호작용하는 구성요소들 및/또는 무선으로 상호작용가능한 및/또는 무선으로 상호작용하는 구성요소들 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용가능한 구성요소들을 포함하지만 이에 한정되지 않는다.
본원에서 실질적으로 임의의 복수 및/또는 단수 용어들의 사용과 관련하여, 당업자들은 상황 및/또는 애플리케이션에 적합하게 복수형으로부터 단수형으로 및/또는 단수형으로부터 복수형으로 전환될 수 있다. 본원에서는 명확성을 위해 여러 단수/복수 전환들이 명확하게 개시될 수도 있다.
당업자들에 의해, 일반적으로, 본 명세서에서 그리고 특히 첨부된 청구항들 (예를 들어, 첨부된 청구항들의 본문) 에서 사용되는 용어는 일반적으로 "개방적인 (개방되는) " 용어들로서 의도되는 것으로 이해되어야 할 것이다 ( (예를 들어, "포함하는 (including) " 이라는 용어는 "포함하지만 한정되지 않는" 으로 해석되어야 하며, "가지는 (having) " 이라는 용어는 "적어도 가지는" 으로 해석되어야 하며, "포함한다" 라는 용어는 "포함하지만 한정되지 않는다" 로 해석되어야 한다). 당업자들은 또한, 도입된 청구항 인용의 구체적인 개수가 의도되는 경우, 이런 의도는 청구항에 명시적으로 기재될 것이며, 이런 기재의 부재 시 이런 의도가 없음을 알 수 있을 것이다. 예를 들어, 이해에 대한 도움으로서, 다음 첨부된 청구항들은 청구항 인용들을 도입하기 위해 도입 어구들 "적어도 하나의" 및 "하나 이상의" 의 사용을 포함할 수도 있다. 그러나, 이러한 어구의 사용은, 것을 암시한다고 해석되지 않아야 하며 that 부정 관사들 "한 (a)" 또는 "일 (an)" 에 의한 청구항 인용의 도입이 이런 도입된 청구항 인용을 포함하는 임의의 특정의 청구항을 오직 하나의 이런 인용을 포함하는 실시형태들에 한정한다, 심지어 동일한 청구항이 도입 어구들 "하나 이상" 또는 "적어도 하나" 및 부정 관사들, 예컨대 "한 (a)" 또는 "일 (an)" (예컨대, "한 (a)" 및/또는 "일 (an)" 은 "적어도 하나" 또는 "하나 이상" 을 의미하는 것으로 해석되어야 한다) 을 포함하더라도, 청구항 인용을 도입하는 데 사용되는 정관사의 사용에 대해서도 동일하게 유효하다. 게다가, 비록 도입된 청구항 인용의 특정의 개수가 명시적으로 인용되더라도, 당업자는 적어도 그 인용된 개수를 의미하는 것으로 해석되어야 함을 알 수 있을 것이다 (예컨대, 다른 한정어구들 없는, "2개의 인용들" 의 가장 기본적인 인용은 적어도 2개의 인용들, 또는 2개 이상의 인용들을 의미한다).
더욱이, "A, B, 및 C 중 적어도 하나 등" 과 유사한 관례가 사용되는 그들의 경우에, 일반적으로 이러한 구성은 당업자가 그 관례를 이해할 것이라는 의미로 의도된다 (예컨대, "A, B, 및 C 중 적어도 하나를 갖는 시스템" 은 A 를 단독으로, B 를 단독으로, C 를 단독으로, A 와 B 를 함께, A 와 C 를 함께, B 와 C 를 함께, 및/또는 A, B, 및 C 를 함께, 등을 갖는 시스템들을 포함하지만 이에 한정되지 않을 것이다). 당업자들은, 또한, 상세한 설명, 청구항들 또는 도면들에서, 2 개 이상의 택일적 용어를 제시하는 사실상 임의의 이접 단어 및/또는 어구는 용어들 중 하나, 용어들 중 어느 하나 또는 양자의 용어 모두를 포함할 가능성들을 고려하도록 이해되어야 하는 것임을 알 수 있을 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성을 포함하는 것으로 이해되어야 할 것이다.
게다가, 특성들 또는 본 개시물의 양태들이 마쿠쉬 (Markush) 그룹들의 관점에서 설명되는 경우, 당업자는 본 개시물이 또한 마쿠쉬 그룹의 임의의 개개의 멤버 또는 멤버들의 하위 그룹의 관점에서 그에 대해 설명된다는 것을 알 수 있을 것이다.
당업자가 주지하고 있는 바와 같이, 임의의 및 모든 목적들을 위해, 예컨대 기재된 설명을 제공하는 관점에서, 본원에서 개시한 모든 범위들은 또한 임의의 및 모든 가능한 하위 범위들 및 이 하위 범위들의 조합을 포괄한다. 임의의 리스트된 범위는 동일한 범위가 적어도 등분 1/2, 1/3, 1/4, 1/5, 1/10 등으로 분할되는 것으로 충분히 기술하고 그리고 가능하게 하는 것으로 용이하게 인식될 수 있다. 비한정적인 예로서, 본원에서 설명한 각각의 범위는 하부 1/3, 중간 1/3 및 상부 1/3 등으로 용이하게 분할될 수 있다. 또한, 당업자가 주지되는 바와 같이, "까지(up to)", "적어도 (at least)", "보다 큰 (greater than)", "미만 (less than)", 및 기타 등등과 같은 모든 언어는 인용된 개수를 포함하며, 위에서 설명한 바와 같은, 후속하여 하위 범위들로 분할될 수 있는 범위들을 지칭한다. 마지막으로, 당업자가 주지하고 있는 바와 같이, 범위는 각각의 개개의 멤버를 포함한다. 따라서, 예를 들어, 1 내지 3개의 셀들을 갖는 그룹은 1, 2, 또는 3개의 셀들을 갖는 그룹들을 지칭한다. 이와 유사하게, 1 내지 5개의 셀들을 갖는 그룹은 1, 2, 3, 4, 또는 5개의 셀들 등을 갖는 그룹들을 지칭한다.
본원에서 여러 양태들 및 실시형태들이 개시되었지만, 다른 양태들 및 실시형태들은 당업자들에게 명백할 것이다. 본원에서 개시한 여러 양태들 및 실시형태들은 예시의 목적을 위한 것으로 한정하려는 의도되지 않으며, 진정한 범위 및 정신은 다음의 청구항들에 의해 표현된다.

Claims (42)

  1. 클라우드-기반의 게이밍에서 컴퓨팅 디바이스에 의해 수행되는 추론적인 그래픽 렌더링을 위한 방법으로서,
    게임 클라이언트의 제 1 게임 상태를 검출하는 단계;
    상기 제 1 게임 상태에 기초하여 상태 전환을 식별하는 단계로서, 상기 상태 전환은 초기 게임 상태, 하나 이상의 잠재적인 후속 게임 상태들, 및 상기 초기 게임 상태에 기초한 상기 하나 이상의 잠재적인 후속 상태들 각각에 대한 확률을 포함하는, 상기 상태 전환을 식별하는 단계;
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 상기 확률이 확률 임계치를 초과하는지 여부에 따라서, 예측된 게임 상태를 결정하는 단계로서, 상기 확률 임계치는 게임 규칙, 게임 시나리오, 상기 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 결정되는, 상기 예측된 게임 상태를 결정하는 단계;
    상기 예측된 게임 상태를 렌더링하는 단계;
    게임에서 플레이어의 검출된 액션에 기초하여 상기 게임 클라이언트의 제 2 게임 상태를 검출하는 단계;
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 단계; 및
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태에 대응하면, 상기 렌더링된 예측된 게임 상태를 상기 게임 클라이언트로 송신하고; 그렇지 않으면,
    상기 게임 클라이언트의 검출된 제 2 게임 상태를 렌더링하는 단계를 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 상기 확률 임계치를 초과하는지 여부에 따라서, 복수의 예측된 게임 상태들을 결정하는 단계;
    상기 예측된 게임 상태들을 렌더링하는 단계;
    상기 게임 클라이언트의 제 2 게임 상태를 검출하는 단계;
    상기 제 2 게임 상태가 그 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하는 단계;
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 대응하는 상기 렌더링된 예측된 게임 상태들 중 하나를 상기 게임 클라이언트로 송신하는 단계; 및
    상기 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하는 단계를 더 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  4. 제 3 항에 있어서,
    상기 렌더링된 예측된 게임 상태들을 송신하는데 있어서의 네트워크 부하를 결정하는 단계; 및
    그 결정된 네트워크 부하에 기초하여, 상기 게임 클라이언트에서 적어도 상기 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하는 단계를 더 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  5. 제 3 항에 있어서,
    제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다는 결정에 응답하여, 상기 제 1 예측된 게임 상태를 렌더링하는데, 상기 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하는 단계를 더 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  6. 제 1 항에 있어서,
    상태 전환들의 데이터베이스로부터 상기 상태 전환을 식별하는 단계; 및
    상기 렌더링된 예측된 게임 상태가 상기 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상태 전환들의 상기 데이터베이스를 상기 렌더링된 예측된 게임 상태 및 상기 제 2 게임 상태 중 하나로 업데이트하는 단계를 더 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  7. 제 1 항에 있어서,
    상기 렌더링된 예측된 게임 상태가 상기 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상기 확률 임계치를 업데이트하는 단계를 더 포함하는, 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버로서,
    메모리; 및
    상기 메모리에 커플링된 프로세서를 포함하며,
    상기 프로세서는,
    게임 클라이언트의 제 1 게임 상태를 검출하고;
    상기 제 1 게임 상태에 기초하여, 상태 전환을 식별하고;
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 확률 임계치를 초과하는지 여부에 따라서, 하나 이상의 예측된 게임 상태들을 결정하되, 상기 확률 임계치는 게임 규칙, 게임 시나리오, 상기 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 결정하고;
    프로세싱 용량, 대역폭 이용가능성, 및 렌더링된 예측된 게임 상태의 복잡성을 포함하는 하나 이상의 인자들에 기초하여 렌더링하도록 상기 하나 이상의 예측된 게임 상태들의 수 및 유형을 결정하고;
    상기 게임 클라이언트에서 후속 게임 상태를 검출하기 전에, 상기 예측된 게임 상태들의 수 및 유형의 결정에 기초하여 상기 예측된 게임 상태들의 적어도 하나를 렌더링하고;
    상기 게임 클라이언트의 제 2 게임 상태를 검출하고;
    상기 제 2 게임 상태가 상기 적어도 하나의 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하고; 그리고
    상기 제 2 게임 상태가 상기 적어도 하나의 렌더링된 예측된 게임 상태에 대응하면, 상기 적어도 하나의 렌더링된 예측된 게임 상태를 상기 게임 클라이언트로 송신하고; 그렇지 않으면,
    상기 게임 클라이언트의 검출된 상기 제 2 게임 상태를 렌더링하도록 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 제 14 항에 있어서,
    상기 프로세서는, 상기 적어도 하나의 렌더링된 예측된 게임 상태가 상기 검출된 제 2 게임 상태에 대응하는지 여부에 따라서, 상기 확률 임계치를 업데이트하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  21. 제 14 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 예측된 게임 상태들을 렌더링하는데 있어서의 계산 부하 및/또는 상기 적어도 하나의 렌더링된 예측된 게임 상태를 송신하는데 있어서의 네트워크 부하 중 하나 이상에 기초하여, 상기 확률 임계치를 동적으로 조정하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  22. 제 14 항에 있어서,
    상기 프로세서는, 상기 적어도 하나의 예측된 게임 상태를 완전 렌더링된 예측된 게임 상태에 비해 더 적은 장면 구성요소들 및/또는 더 낮은 장면 해상도 중 하나로 부분적으로 렌더링하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  23. 제 14 항에 있어서,
    상기 프로세서는, 상기 게임 클라이언트에서 상기 적어도 하나의 렌더링된 예측된 게임 상태를 제시하는 래그 시간이 미리 정의된 임계치 미만이 되도록, 상기 적어도 하나의 렌더링된 예측된 게임 상태를 상기 게임 클라이언트로 송신하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  24. 제 14 항에 있어서,
    상기 프로세서는, 상기 제 1 게임 상태에서의 상기 게임 클라이언트의 위치, 뷰 지점, 장비, 캐릭터 상태, 상기 제 1 게임 상태에서의 상기 게임 클라이언트의 공격성, 속도, 및 예측가능성 중 하나 이상을 포함하는 하나 이상의 게임 클라이언트 특정의 속성들에 기초하여, 상기 하나 이상의 예측된 게임 상태들을 결정하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하도록 적응된 클라우드-기반의 게임 서버.
  25. 삭제
  26. 삭제
  27. 클라우드-기반의 게이밍에서 추론적인 그래픽 렌더링을 위한 명령들을 안에 저장하고 있는 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은,
    게임 클라이언트의 제 1 게임 상태를 검출하는 단계;
    상기 제 1 게임 상태에 기초하여 상태 전환을 식별하는 단계로서, 상기 상태 전환은 초기 게임 상태, 하나 이상의 잠재적인 후속 게임 상태들, 및 상기 초기 게임 상태에 기초한 상기 하나 이상의 잠재적인 후속 상태들 각각에 대한 확률을 포함하는, 상기 상태 전환을 식별하는 단계;
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 상기 확률이 확률 임계치를 초과하는지 여부에 따라서, 예측된 게임 상태를 결정하는 단계로서, 상기 확률 임계치는 게임 규칙, 게임 시나리오, 상기 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 결정되는, 상기 예측된 게임 상태를 결정하는 단계;
    상기 게임 클라이언트에서 후속 액션이 플레이어에 의해 입력되기 전에 상기 게임 클라이언트에서 상기 예측된 게임 상태를 렌더링하는 단계;
    게임에서 플레이어의 관찰된 액션에 기초하여 상기 게임 클라이언트의 제 2 게임 상태를 검출하는 단계;
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태에 대응하는지 여부를 결정하는 단계; 및
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태에 대응하면, 상기 렌더링된 예측된 게임 상태를 상기 게임 클라이언트로 송신하고; 그렇지 않으면,
    상기 게임 클라이언트의 검출된 상기 제 2 게임 상태를 렌더링하는 단계를 포함하는, 컴퓨터-판독가능 저장 매체.
  28. 삭제
  29. 제 27 항에 있어서,
    상기 명령들은,
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 상기 확률 임계치를 초과하는지 여부에 따라서, 복수의 예측된 게임 상태들을 결정하는 단계;
    상기 예측된 게임 상태들을 렌더링하는 단계;
    상기 게임 클라이언트의 제 2 게임 상태를 검출하는 단계;
    상기 제 2 게임 상태가 그 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하는 단계;
    상기 제 2 게임 상태가 상기 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 그 대응하는 렌더링된 예측된 게임 상태들 중 하나를 상기 게임 클라이언트로 송신하는 단계; 및
    상기 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하는 단계를 더 포함하는, 컴퓨터-판독가능 저장 매체.
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 제 27 항에 있어서,
    상기 명령들은, 하나 이상의 게임 클라이언트 특정의 속성들에 기초하여, 상기 예측된 게임 상태를 결정하는 단계를 더 포함하는, 컴퓨터-판독가능 저장 매체.
  38. 제 37 항에 있어서,
    상기 하나 이상의 게임 클라이언트 특정의 속성들은 상기 제 1 게임 상태에서 상기 게임 클라이언트의 위치, 뷰 지점, 장비, 및 캐릭터 상태의 세트 중 적어도 하나를 포함하는, 컴퓨터-판독가능 저장 매체.
  39. 제 38 항에 있어서,
    상기 하나 이상의 게임 클라이언트 특정의 속성들은 상기 제 1 게임 상태에서 상기 게임 클라이언트의 공격성, 속도, 및 예측가능성의 세트 중 적어도 하나를 더 포함하는, 컴퓨터-판독가능 저장 매체.
  40. 게임 상태들을 추론적으로 렌더링하기 위한 클라우드-기반의 게임 서버로서,
    상기 서버는,
    메모리; 및
    상기 메모리에 커플링된 프로세서를 포함하며,
    상기 프로세서는,
    게임 클라이언트의 제 1 게임 상태를 검출하고;
    상기 제 1 게임 상태에 기초하여, 상태 전환을 식별하되, 상기 상태 전환은 초기 게임 상태, 하나 이상의 잠재적인 후속 게임 상태들, 및 상기 초기 게임 상태에 기초한 상기 하나 이상의 잠재적인 후속 상태들 각각에 대한 확률을 포함하고;
    상기 식별된 상태 전환과 연관된 하나 이상의 잠재적인 후속 상태들에 대한 확률이 게임 규칙, 게임 시나리오, 상기 게임 클라이언트의 사용 이력, 게임 클라이언트들의 그룹의 사용 이력, 계산 비용, 및/또는 네트워크 비용 중 하나 이상에 기초하여 정의된 상기 확률이 확률 임계치를 초과하는지 여부에 따라서, 복수의 예측된 게임 상태들을 결정하고;
    상기 예측된 게임 상태들의 각각을 렌더링하는데 있어서의 계산 부하를 결정하고;
    상기 게임 서버의 로컬 서버 노드에서 각각의 예측된 게임 상태를 렌더링하는 것과 연관된 상기 계산 부하 및 상기 확률에 기초하여, 상기 예측된 게임 상태들 중 하나 이상을 렌더링하고;
    상기 게임 클라이언트에서 후속 액션이 플레이어에 의해 입력되기 전에 상기 로컬 서버 노드로부터 상기 게임 클라이언트로 상기 렌더링된 하나 이상의 상기 예측된 게임 상태들을 분배하고;
    상기 게임 클라이언트의 제 2 게임 상태를 검출하고;
    상기 제 2 게임 상태가 상기 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하는지 여부를 결정하고;
    상기 제 2 게임 상태가 상기 하나 이상의 렌더링된 예측된 게임 상태들 중 하나에 대응하면, 상기 게임 서버의 상기 로컬 서버 노드로부터 상기 게임 클라이언트로 상기 하나 이상의 대응하는 렌더링된 예측된 게임 상태들을 상기 게임 클라이언트로 송신하고; 그리고
    상기 제 2 게임 상태에 대응하지 않는 나머지 렌더링된 예측된 게임 상태들을 폐기하도록 구성된, 게임 상태들을 추론적으로 렌더링하는 클라우드-기반의 게임 서버.
  41. 제 40 항에 있어서,
    상기 프로세서는,
    결정된 네트워크 부하에 기초하여, 상기 게임 클라이언트에서 적어도 상기 렌더링된 예측된 게임 상태들의 서브세트를 송신하고 저장하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하는 클라우드-기반의 게임 서버.
  42. 제 41 항에 있어서,
    상기 프로세서는,
    제 1 예측된 게임 상태가 제 2 예측된 게임 상태보다 더 큰 확률을 갖는다고 결정하는 것에 응답하여, 상기 제 1 예측된 게임 상태를 렌더링하는데, 상기 제 2 예측된 게임 상태를 렌더링하는 것에 비해, 추가적인 계산 노력을 소비하도록 추가로 구성된, 게임 상태들을 추론적으로 렌더링하는 클라우드-기반의 게임 서버.
KR1020147007910A 2011-11-10 2011-11-10 이력 플레이어 데이터를 이용한 추론적인 렌더링 KR101593344B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/060164 WO2013070228A2 (en) 2011-11-10 2011-11-10 Speculative rendering using historical player data

Publications (2)

Publication Number Publication Date
KR20140052068A KR20140052068A (ko) 2014-05-02
KR101593344B1 true KR101593344B1 (ko) 2016-02-18

Family

ID=48281146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147007910A KR101593344B1 (ko) 2011-11-10 2011-11-10 이력 플레이어 데이터를 이용한 추론적인 렌더링

Country Status (3)

Country Link
US (2) US8858324B2 (ko)
KR (1) KR101593344B1 (ko)
WO (1) WO2013070228A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9516003B2 (en) 2011-09-12 2016-12-06 Cache Cloud Llc Unified cloud computing network interface
JP6129865B2 (ja) * 2011-12-09 2017-05-17 エンパイア テクノロジー ディベロップメント エルエルシー ゲームコンテンツデータの予測的なキャッシング
US9744440B1 (en) 2012-01-12 2017-08-29 Zynga Inc. Generating game configurations
US9751011B2 (en) * 2012-05-25 2017-09-05 Electronics Arts, Inc. Systems and methods for a unified game experience in a multiplayer game
US9292457B2 (en) * 2012-12-07 2016-03-22 Nimbuz, Inc. Networking cloud and method of using the same
CN104823179B (zh) * 2012-12-12 2018-08-07 Sk 普兰尼特有限公司 用于提供用户输入的即时结果的方法及其***和设备
US9415301B2 (en) * 2013-02-26 2016-08-16 Steelseries Aps Method and apparatus for processing control signals of an accessory
KR101543862B1 (ko) 2013-11-11 2015-08-12 (주)스마일게이트엔터테인먼트 게임 서버, 및 이의 3차원 공간 시각화 방법
US10154072B2 (en) * 2014-09-17 2018-12-11 Microsoft Technology Licensing, Llc Intelligent streaming of media content
US9756375B2 (en) * 2015-01-22 2017-09-05 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US9686520B2 (en) * 2015-01-22 2017-06-20 Microsoft Technology Licensing, Llc Reconstructing viewport upon user viewpoint misprediction
CN104866380B (zh) * 2015-06-18 2018-07-06 北京搜狐新媒体信息技术有限公司 一种集群管理***的状态转换的处理方法和装置
US10554713B2 (en) 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
CN105468823B (zh) * 2015-11-16 2019-01-25 广州广电运通金融电子股份有限公司 一种自助设备节能控制方法和装置
CN106267822A (zh) * 2016-08-18 2017-01-04 网易(杭州)网络有限公司 游戏性能的测试方法和装置
KR101892739B1 (ko) * 2016-09-30 2018-08-28 한국전자통신연구원 게임 운영 시나리오 생성 장치 및 그 방법
KR102008825B1 (ko) * 2016-11-18 2019-08-07 주식회사 아몬드 소프트 그래프 데이터베이스 방식을 이용한 전자 카드 게임의 자가 학습 시스템 및 방법
US11014010B2 (en) 2017-10-20 2021-05-25 Microsoft Technology Licensing, Llc State management of dynamic properties
CN108171783A (zh) * 2018-03-20 2018-06-15 联想(北京)有限公司 图像渲染方法、***以及电子设备
US10924525B2 (en) 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
US10926177B2 (en) * 2019-03-15 2021-02-23 Sony Interactive Entertainment Inc. Systems and methods for predicting states by using a distributed game engine
US11263029B2 (en) * 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements having scrollable content in virtual machine sessions at reduced latency and related methods
US11281478B2 (en) 2019-03-27 2022-03-22 Citrix Systems, Inc. Providing user interface (UI) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
US11263028B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements in virtual machine sessions at reduced latency
US11321900B2 (en) * 2019-11-22 2022-05-03 Sony Interactive Entertainment Inc. Systems and methods for adjusting one or more parameters of a GPU
KR20210106797A (ko) 2020-02-21 2021-08-31 삼성전자주식회사 엣지 컴퓨팅 서비스를 이용한 오브젝트 렌더링 방법 및 장치
CN113289330B (zh) * 2020-02-21 2023-12-08 华为技术有限公司 渲染方法和装置
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications
CN114288647B (zh) * 2021-12-31 2022-07-08 深圳方舟互动科技有限公司 基于AI Designer的人工智能游戏引擎、游戏渲染方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110162005A1 (en) 2009-12-30 2011-06-30 Cevat Yerli Computer-controlled video entertainment system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4894774A (en) * 1986-10-15 1990-01-16 Mccarthy Patrick J Lookahead pipeline for processing object records in a video system
JPH10289219A (ja) 1997-02-14 1998-10-27 N T T Data:Kk クライアント・サーバシステム、キャッシュ管理方法及び記録媒体
JP4270623B2 (ja) 1999-01-13 2009-06-03 三菱電機株式会社 時系列データ蓄積配信システム
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7515156B2 (en) * 2003-01-08 2009-04-07 Hrl Laboratories, Llc Method and apparatus for parallel speculative rendering of synthetic images
US20060052168A1 (en) 2003-01-16 2006-03-09 Sabian Group Inc. System method and platform for online gaming
US7240162B2 (en) * 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
EP1669947A1 (en) * 2004-12-10 2006-06-14 Aruze Corporation Game machine and game system
US7789758B2 (en) 2006-03-10 2010-09-07 Electronic Arts, Inc. Video game with simulated evolution
AU2007203533B2 (en) 2006-07-31 2009-11-19 Videobet Interactive Sweden AB Information updating management in a gaming system
US7934058B2 (en) 2006-12-14 2011-04-26 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
US8632407B2 (en) 2007-08-01 2014-01-21 Cfph, Llc General gaming engine
JP6047842B2 (ja) * 2008-07-22 2016-12-21 デイブレイク ゲーム カンパニー リミテッド ライアビリティ カンパニー シミュレーションにおける物理的相互作用のためのシステム及び方法
JP5035194B2 (ja) 2008-09-25 2012-09-26 カシオ計算機株式会社 サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
US20100161384A1 (en) 2008-12-18 2010-06-24 Wells Matthew D System and Method for Presenting Content
US20100161348A1 (en) 2008-12-19 2010-06-24 Empathic Software Systems Clinical Management System
TWI454140B (zh) * 2010-06-08 2014-09-21 Univ Nat Taiwan 與影片互動之方法與比賽模擬系統
US20130137518A1 (en) 2011-11-29 2013-05-30 Keith V. Lucas System for Pre-Caching Game Content Based on Game Selection Probability

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110162005A1 (en) 2009-12-30 2011-06-30 Cevat Yerli Computer-controlled video entertainment system

Also Published As

Publication number Publication date
US8858324B2 (en) 2014-10-14
WO2013070228A3 (en) 2014-04-10
US9498715B2 (en) 2016-11-22
KR20140052068A (ko) 2014-05-02
US20130123004A1 (en) 2013-05-16
WO2013070228A2 (en) 2013-05-16
US20140370986A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
KR101593344B1 (ko) 이력 플레이어 데이터를 이용한 추론적인 렌더링
JP6129865B2 (ja) ゲームコンテンツデータの予測的なキャッシング
US9760967B2 (en) System and method of dynamically throttling CPU frequency for gaming workloads
CN107735803A (zh) 用于深度学习应用的存储器带宽管理
US20120172098A1 (en) Suggesting game roles for different players based on a player's gaming statistics from other games
KR20220081997A (ko) 디스럽션 중에 애플리케이션에 자동화된 사용자 입력을 제공하는 기법
US9430240B1 (en) Pre-computation slice merging for prefetching in a computer processor
JP7313467B2 (ja) サーバーの負荷予測及び高度なパフォーマンス測定
KR101915802B1 (ko) 매크로 프로그램 탐지 방법 및 장치
CN110461430A (zh) 与流式玩家进行在线游戏的匹配
US20170252653A1 (en) Matching method and matching system for users in game
CN111651684A (zh) 一种推荐社交用户的方法与设备
CN111865720B (zh) 用于处理请求的方法、装置、设备以及存储介质
US20150005073A1 (en) Providing situational priority to player communications in a multi-player environment
EP4300947A1 (en) Systems, apparatus, articles of manufacture, and methods for eye gaze correction in camera image streams
KR20210076622A (ko) 온라인 서비스 접속 제어 장치 및 방법
US20220113781A1 (en) Methods and apparatus for bi-directional control of computing unit frequency
JP7121802B2 (ja) 応答文作成装置
JP6216048B2 (ja) ストレージネットワークにおけるデータ移行
KR20200070977A (ko) 게임 재화 가치 추정 장치 및 이의 동작 방법
Kodama et al. Distributed deep reinforcement learning method using profit sharing for learning acceleration
KR101985852B1 (ko) 게임 재화 가치 추정 장치 및 이의 동작 방법
US20240129149A1 (en) Quality status loopback for online collaboration sessions
CN112169311B (zh) 训练游戏ai的方法、***、存储介质及计算机设备
US10449449B2 (en) Reducing the bandwidth requirements of multiplayer gaming sessions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4