KR102575204B1 - 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법 - Google Patents

서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102575204B1
KR102575204B1 KR1020217017153A KR20217017153A KR102575204B1 KR 102575204 B1 KR102575204 B1 KR 102575204B1 KR 1020217017153 A KR1020217017153 A KR 1020217017153A KR 20217017153 A KR20217017153 A KR 20217017153A KR 102575204 B1 KR102575204 B1 KR 102575204B1
Authority
KR
South Korea
Prior art keywords
controller
session
server system
video game
game controller
Prior art date
Application number
KR1020217017153A
Other languages
English (en)
Other versions
KR20210090656A (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 KR20210090656A publication Critical patent/KR20210090656A/ko
Application granted granted Critical
Publication of KR102575204B1 publication Critical patent/KR102575204B1/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/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • 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/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • 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/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

서버 시스템과 비디오 게임 컨트롤러 간 직접 통신을 설정하기 위한 시스템들 및 방법들이 설명된다. 시스템들 및 방법들은 비디오 게임 컨트롤러 및 컴퓨팅 장치를 포함한다. 애플리케이션은 컴퓨팅 장치와 서버 시스템에 의해 세션이 설정될 때 서버 시스템에 의해 실행된다. 애플리케이션이 실행되면, 비디오 게임 컨트롤러는 식별자를 서버 시스템으로 전송하는 데 사용된다. 서버 시스템은 식별자를 검증하여 세션과 비디오 게임 컨트롤러를 페어링한다. 비디오 게임 컨트롤러가 세션과 페어링되면, 비디오 게임 컨트롤러는 사용자에 의해 컴퓨팅 장치 또는 디스플레이 장치에 디스플레이되는 가상 장면의 상태를 변경하는 데 사용될 수 있다.

Description

서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법
본 개시는 서버 시스템과 비디오 게임 컨트롤러 사이의 직접 통신을 설정하기 위한 시스템 및 방법에 관한 것이다.
일반적으로, 게임은 비디오 콘솔을 통해 플레이하기 위해 액세스된다. 게임 콘솔은 게임 컨트롤러에 결합된다. 게이머는 게임 콘솔을 텔레비전에 연결한다. 게임 또는 게임에 대한 업데이트는 서버로부터 게임 콘솔로 다운로드되며 게이머는 게임 컨트롤러를 사용하여 게임을 플레이한다.
이러한 맥락에서 본 개시에 설명된 실시예들이 발생한다.
본 개시에 설명된 실시예들은 서버 시스템과 비디오 게임 컨트롤러 사이의 직접 통신을 설정하기 위한 시스템 및 방법을 제공한다.
일부 실시예들에서, 본원에 설명된 시스템들 및 방법들은 비디오 게임 컨트롤러가 컴퓨터 네트워크에 결합된 임의의 디스플레이 장치와 함께 사용될 수 있는 방식을 제공한다. 서버 시스템에서 실행되는 애플리케이션에 액세스하기 위해 게임 콘솔을 사용할 필요가 없다. 예를 들어, 비디오 게임 컨트롤러는 휴대폰, 태블릿 또는 텔레비전과 같은 컴퓨팅 장치와 함께 사용될 수 있다. 게임 콘솔을 사용할 필요가 없다. 애플리케이션의 실행 세션은 컴퓨팅 장치를 사용하여 액세스된다. 일단 세션에 액세스되면, 비디오 게임 컨트롤러와 관련된 식별자가 서버 시스템으로 전송된다. 서버 시스템은 식별자를 확인한다. 식별자 확인 시, 서버 시스템은 비디오 게임 컨트롤러를 세션과 페어링하기로 결정한다. 일단 비디오 게임 컨트롤러가 세션과 페어링되면, 비디오 게임 컨트롤러는 사용자에 의해 컴퓨팅 장치에 디스플레이되는 가상 장면의 상태를 변경하는 데 사용될 수 있다.
서버 시스템과 비디오 게임 컨트롤러 사이에 직접 통신을 설정하기 위한 본원에 설명된 시스템들 및 방법들의 일부 이점들은 비디오 게임 컨트롤러와 서버 시스템 사이에 게임 콘솔을 사용할 필요가 없다는 점을 포함한다. 사용자는 로그인 정보를 제공하여 세션에 액세스한다. 컴퓨팅 장치와 서버 시스템 간의 세션이 설정되면, 비디오 게임 컨트롤러와 관련된 식별자가 비디오 게임 컨트롤러에서 서버 시스템으로 전송된다. 식별자가 서버 시스템에 의해 확인되면, 서버 시스템은 비디오 게임 컨트롤러를 세션과 페어링하고 사용자가 컴퓨팅 장치 또는 다른 디스플레이 장치에 디스플레이되는 가상 장면의 상태를 변경하도록 허용된다. 따라서, 비디오 게임 컨트롤러를 사용하기 위해 게임 콘솔을 사용할 필요가 없다. 비디오 게임 컨트롤러는 서버에 저장된 애플리케이션을 실행하여 생성된 가상 장면에 액세스하는 데 게임 콘솔이 사용되는지 여부에 관계없이 사용될 수 있다. 게임 콘솔을 사용하지 않으면 비디오 게임 컨트롤러와 서버 시스템 사이의 홉 수가 줄어든다. 각 홉은 데이터를 수신하고, 데이터를 분석하여 그 대상 주소를 결정하고, 데이터를 대상 주소로 전송하는 데 사용된다. 게임 콘솔을 제거함으로써, 게임 콘솔과 관련된 홉이 감소된다. 비디오 게임 컨트롤러와 서버 시스템 간의 홉 수의 감소는 비디오 게임 컨트롤러와 서버 시스템 간의 레이턴시 시간이 감소되고 보다 빠른 게임 플레이를 제공한다.
설명된 기타 양태들이 본 개시에 설명된 실시예들의 원리들을 예로서 예시하는 첨부 도면들과 함께 연계된 다음의 상세한 설명으로부터 명백해질 것이다.
본 개시에 설명된 다양한 실시예들은 첨부 도면들과 관련하여 연계된 다음의 설명을 참조하여 가장 잘 이해될 수 있다:
도 1a는 컨트롤러와 세션의 페어링을 예시하기 위한 시스템의 일 실시예의 다이어그램이다.
도 1b는 라우터와 컨트롤러의 무선 통신을 예시하기 위한 컨트롤러의 일 실시예의 다이어그램이다.
도 1c는 컨트롤러에 의한 셀룰러 연결 채널의 사용을 예시하기 위한 시스템의 일 실시예의 다이어그램이다.
도 1 d는 도 1c의 컨트롤러로부터 서버 시스템으로 식별 정보를 전달하기 위해 광대역 통신 집적 회로(IC) 칩의 사용을 예시하기 위한 도 1c의 시스템의 컨트롤러의 일 실시예의 다이어그램이다.
도 1e는 컨트롤러와 세션의 페어링을 예시하기 위한 서버 시스템의 일 실시예의 다이어그램이다.
도 1fa는 컴퓨팅 장치의 디스플레이 화면에 디스플레이되는 페어링 요청 통지의 일 실시예의 다이어그램이다.
도 1fb는 컨트롤러의 디스플레이 화면 상의 페어링 요청 통지의 디스플레이를 예시하기 위한 컨트롤러의 일 실시예의 다이어그램이다.
도 1g는 컨트롤러의 햅틱 피드백 장치, 오디오 장치 및 디스플레이 장치를 예시하기 위한 컨트롤러의 일 실시예의 다이어그램이다.
도 2는 컴퓨팅 장치의 미러링 효과를 예시하기 위한 시스템의 일 실시예의 다이어그램이다.
도 3은 도 1e의 컨트롤러의 장치 ID를 발견하기 위한 디스커버리 프로그램의 실행을 예시하기 위한 시스템의 일 실시에의 다이어그램이다.
도 4a는 컨트롤러 내의 교정 프로세서의 사용을 예시하기 위한 컨트롤러의 일 실시예의 다이어그램이다.
도 4b는 컨트롤러 내의 교정 프로세서의 사용을 예시하기 위한 컨트롤러의 일 실시예의 다이어그램이다.
도 5는 서버 시스템의 교정 프로세서에 의해 센서 값들의 교정을 예시하기 위한 서버 시스템의 일 실시예의 다이어그램이다.
도 6은 상호작용 프로그램과 인터페이스하기 위한 비디오 게임 컨트롤러의 일 실시예의 사시도를 예시한다.
서버 시스템과 비디오 게임 컨트롤러 사이의 직접 통신을 설정하기 위한 시스템들 및 방법들이 본원에서 설명된다.
본 개시에 설명된 다양한 실시예들은 이러한 특정 세부 사항의 일부 또는 전부 없이 실시될 수 있다는 점에 유의해야 한다. 다른 경우들에서, 본 개시에 설명된 다양한 실시예들을 불필요하게 모호하게 하지 않기 위해 주지의 프로세스 동작들은 상세히 설명되지 않았다.
도 1a는 컨트롤러(102)와 세션(106)의 페어링을 예시하기 위한 시스템(100)의 일 실시예의 다이어그램이다. 컨트롤러(102)의 예들로는 SonyTM DualShockTM 컨트롤러, 총 모양의 컨트롤러, PlayStationTM MoveTM 컨트롤러, 스틱형 컨트롤러, 휴대폰, 모바일 장치, 태블릿, 비디오 게임 컨트롤러, 조이스틱, 장갑 모양의 컨트롤러 또는 스티어링 휠 모양의 컨트롤러 등을 포함한다. 세션(106)의 예들로는 게임 세션, 비디오 세션, 가상 이미지 세션, 증강 현실 이미지 세션, 가상 현실 이미지 세션 등을 포함한다. 일 예로서, 세션(106)은 애플리케이션 1의 실행 인스턴스이며, 이는 게임 애플리케이션의 플레이를 허용하는 게임 실행 애플리케이션 또는 실제 환경의 이미지들이 두 클라이언트들 사이의 컴퓨터 네트워크(122)를 통해 전송될 수 있도록 하는 비디오 컨퍼런스 애플리케이션일 수 있다. 실제 환경의 예들로는 룸이나 제한된 위치, 폐쇄된 환경 또는 벽이나 칸막이로 둘러싸인 환경을 포함한다. 세션(106)은 사용자 A가 사용자 계정 1에 로그인할 때 시작되고 사용자 A가 사용자 계정 1에서 로그 아웃할 때 종료된다. 예를 들어, 세션(106)의 실행의 인스턴스는 사용자 A가 자신의 그/그녀의 사용자 계정 1에 로그인할 때 시작되고 사용자 A가 사용자 계정 1에서 로그 아웃할 때 사용자 계정 1에 대해 종료된다. 사용자 A에 의한 로그 아웃은 사용자 A에 의한 게임 플레이를 디스에이블시키고 사용자 A에 의한 사용자 계정 1 로의 로그인은 게임 플레이를 인에이블시키도록 수행된다. 사용자 A는 본원에 설명된, 컨트롤러(102) 또는 다른 컨트롤러 상의 버튼을 선택함으로써 사용자 계정 1에서 로그 아웃한다.
시스템(100)은 컨트롤러(102), 컴퓨팅 장치(114), 컴퓨터 네트워크(122), 서버 시스템(104), 라우터(118) 및 모뎀(120)을 포함한다. 일 예로서, 라우터(118) 및 모뎀(120)은 컨트롤러(102)에 대해 국부적으로 위치된다. 예를 들어, 라우터(118) 및 모뎀(120)은 컨트롤러(102)가 위치되는 동일한 실제 환경에 위치된다.
컴퓨팅 장치(114)는 계산들을 수행하기 위한 기계이다. 컴퓨팅 장치(114)의 예들로는 스마트 텔레비전, 태블릿, 스마트 폰, 헤드 장착형 디스플레이(HMD), 전자 컴퓨터, 정보 처리 시스템, 데스크탑 컴퓨터 및 랩톱 컴퓨터를 포함한다. 컴퓨팅 장치(114)의 다른 예로는 디스플레이 장치 및 게임 콘솔의 조합을 포함한다. 디스플레이 장치는 게임 콘솔에 결합된다. 컴퓨터 네트워크(122)는 사용자 간들의 통신 및 리소스 공유를 용이하게 하기 위해 통신 채널들을 통해 함께 연결되는 컴퓨팅 하드웨어 장치들의 그룹이다. 컴퓨터 네트워크(122)는 광역 통신망 또는 근거리 통신망 또는 광역 통신망과 근거리 통신망의 조합일 수 있다. 인터넷은 광역 통신망의 일 예이고 인트라넷은 근거리 통신망의 일 예이다.
서버 시스템(104)은 애플리케이션(1) 및 기타 애플리케이션들을 실행하는 단일 또는 다수의 서버들을 포함한다. 예를 들어, 각 서버는 서버에서 실행되도록 설계되는 서버 운영체제(OS)를 포함한다. 각 서버는 본원에 설명된, 컴퓨팅 장치 또는 컨트롤러 또는 디스플레이 장치와 같은 클라이언트로부터의 요청들을 처리하는 특수 컴퓨터이다. 특수 컴퓨터는 프로세서 및 메모리 장치를 포함한다. 프로세서는 메모리 장치에 결합된다. 본원에 사용된 바와 같이, 프로세서, 애플리케이션별 집적 회로(ASIC), 프로그램 가능 로직 장치(PLD) 및 중앙 처리 장치(CPU), 서버, 마이크로프로세서와 같은 용어들은 본원에서 호환 가능하게 사용된다. 메모리 장치의 예들로는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함한다. 예시를 위해, 메모리 장치는 플래시 메모리, 하드 디스크 드라이브 또는 복수 배열 독립 디스크(RAID)이다.
모뎀(120)은 클라이언트가 컴퓨터 네트워크(122)에 접속할 수 있도록 데이터의 변조 및 복조를 수행하는 장치이다. 일 예로서, 모뎀(120)은 전송 패킷들로부터 데이터를 추출하기 위해 전송 제어 프로토콜(TCP/IP)과 같은 네트워크 통신 프로토콜을 적용한다. 모뎀(120)은 데이터를 전송 패킷에 임베딩하도록 네트워크 통신 프로토콜을 적용한다. 모뎀(120)의 예는 클라이언트가 케이블 또는 디지털 가입자 회선(DSL)을 통해 인터넷에 액세스할 수 있도록 하는 광대역 모뎀이다. 모뎀(120)은 라우터(118)로부터 수신된 데이터 신호를 컴퓨터 네트워크(122)를 통해 서버 시스템(104)으로 라우팅한다. 추가로, 모뎀(120)은 컴퓨터 네트워크(122)를 통해 서버 시스템(104)으로부터 수신된 데이터 신호를 라우터(118)로 라우팅한다. 모뎀(120)은 일단에서 컴퓨터 네트워크(122)에 결합되는 케이블 또는 DSL에 결합된다. 일 실시예에서, 데이터 및 정보라는 용어들은 본원에서 호환 가능하게 사용된다.
라우터(118)는 데이터 신호로 라우터(118)에 의해 수신된 대상 주소에 기초하여 컴퓨터 네트워크(112)를 통해 서버 시스템(104)으로부터 수신된 데이터 신호를 컴퓨팅 장치(114) 또는 컨트롤러(102)로 보낸다. 예를 들어, 라우터(118)는 데이터 신호가 컴퓨팅 장치(114)의 대상 주소를 갖는 것으로 결정하고 데이터 신호를 대상 주소가 할당된 컴퓨팅 장치(114)로 보낸다. 대상 주소의 예로는 인터넷 프로토콜(IP) 주소 또는 매체 액세스 계층(MAC) 주소 또는 이들의 조합이 있다. 컴퓨팅 장치(114)의 대상 주소는 컨트롤러(102)의 대상 주소와 다르다. 예를 들어, 컨트롤러(102)의 대상 주소의 적어도 하나의 영숫자 문자는 컴퓨팅 장치(114)의 대상 주소의 적어도 하나의 영숫자 문자와 다르다. 라우터(118)는 다른 데이터 신호가 컨트롤러(102)의 대상 주소를 갖는 것으로 결정하고 다른 데이터 신호를 컨트롤러(102)로 보낸다. 라우터(118)의 일 예로는 광대역 라우터가 있다. 컴퓨팅 장치(114)는 모니터나 디스플레이 장치의 디스플레이 부분인, 액정 디스플레이(LCD) 화면, 발광 다이오드(LED) 디스플레이 화면, 또는 플라즈마 디스플레이 화면과 같은 디스플레이 화면(116)을 갖는다.
서버 시스템(104)은 다수의 사용자 계정들 1 내지 N을 저장한다. 각 사용자 계정은 사용자에게 할당된다. 예를 들어, 사용자 계정 1은 사용자 A에게 할당되고 다른 사용자 계정 2는 다른 사용자 B에게 할당된다.
컨트롤러(102)는 연결 채널(CC1)을 통해 라우터(118)에 결합된다. 연결 채널(CC1)의 일 예로는 무선 근거리 통신망(LAN)과 같은 무선 연결 또는 Wi-Fi 연결 또는 BluetoothTM 연결이 있다. Wi-Fi는 컴퓨터 네트워크(122)에 무선 고속 연결을 제공하기 위해 전파 또는 전자기파를 사용하는 무선 네트워킹 기술이다. 마찬가지로, 컴퓨팅 디바이스(114)는 또한 무선 연결인 연결 채널(CC2)를 통해 라우터(118)에 연결된다. 연결 채널(CC1 또는 CC2)은 무선 주파수일 수 있으며 초당 비트 수로 측정되는 특정 데이터 속도와 헤르츠로 측정되는 대역폭을 갖는다. 연결 채널(CC1 및 CC2) 각각의 예로는 Wi-FiTM 또는 BluetoothTM과 같은 무선 통신 프로토콜을 적용하는 무선 연결 채널이 있다. 컴퓨팅 장치(114)와 라우터(118)의 연결 채널(CC2)은 컨트롤러(102)와 라우터(118)의 연결 채널(CC1)과 다르다. 예를 들어, 컴퓨팅 장치(114)와 라우터(118)의 무선 연결은 컨트롤러(102)와 라우터(118) 사이의 데이터 전송 속도와 비교하여 컴퓨팅 장치(114)와 라우터(118) 사이의 다른 데이터 전송 속도를 갖는다.
라우터(118)는 이더넷 케이블(EC)을 통해 모뎀(120)에 결합된다. 모뎀(120)은 연결(C1)을 통해 컴퓨터 네트워크(122)에 결합되고 서버 시스템(104)은 다른 연결(C2)을 통해 컴퓨터 네트워크(122)에 결합된다. 연결(C1)은 케이블들 또는 디지털 가입자 회선들의 그룹을 포함하고, 연결(C2)는 게이트웨이 장치 및 케이블들 또는 디지털 가입자 회선들의 그룹을 포함한다. 연결 채널(CC1), 라우터(118), 케이블(EC), 모뎀(120) 및 연결(C1)의 조합은 본원에서 때때로 연결 채널(111)로 지칭된다.
사용자 A는 컴퓨팅 장치(114)의 전원을 켜고 사용자 계정 1에 액세스한다. 예를 들어, 사용자 A는 컴퓨터 네트워크(122)를 통해 서버 시스템(104)으로부터 로그인 웹 사이트에 액세스한다. 사용자 A는 컴퓨팅 장치(114)의 키보드, 패드 또는 마우스와 같은 입력 장치를 사용하여 사용자 A에게 할당된 사용자 이름 및 암호를 포함할 수 있는 그/그녀의 로그인 정보를 제공한다. 로그인 정보는 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로부터 라우터(118)로 전송된다. 라우터(118)는 케이블(EC)을 통해 모뎀(120)에 로그인 정보를 전송한다. 모뎀(120)은 로그인 정보를 임베딩하는 하나 이상의 전송 패킷들을 생성하고, 전송 패킷을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다.
서버 시스템(104)의 서버는 로그인 정보가 인증된 것으로 결정하고 사용자 계정 1에 대한 액세스를 제공하고 세션(106)을 설정한다. 세션(106)을 설정하기 위해, 서버 시스템(104)은 애플리케이션 1의 인스턴스를 실행하고 세션(106)과 관련된 정보를 포함하는 하나 이상의 전송 패킷들을 연결(C2), 컴퓨터 네트워크(122), 연결(C1), 모뎀(120), 케이블(EC), 라우터(118) 및 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로 전송한다. 세션(106)과 관련된 정보의 예는 사용자 계정 1에 대한 액세스를 제공할 때 액세스가 허용되는 애플리케이션 1의 이름, 애플리케이션 1의 제목, 애플리케이션 1을 식별하는 가상 이미지 데이터, 또는 애플리케이션 1을 식별하는 오디오 데이터, 또는 이들의 둘 이상의 조합과 같은, 애플리케이션 1을 식별하는 정보를 포함한다. 예시를 위해, 세션(106)과 연관된 정보는 컴퓨팅 장치(114)에서 비디오 게임의 소개 이미지를 디스플레이하기 위한 이미지 데이터 및 소개 이미지의 디스플레이에 동기화되는 오디오 데이터를 갖는다. 다른 예시로서, 세션(106)과 관련된 정보는 비디오 게임의 특징들을 보고 플레이하기 위해 액세스되는 게임 웹 사이트의 URL(uniform resource locator)을 포함한다. 세션(105)과 관련된 정보의 다른 예로는 사용자 A가 컨트롤러(102)의 생체 인식 정보 스캐너(BIS)를 사용하여 컨트롤러(102)를 통해 그/그녀의 생체 인식 정보를 제공한다는 통지를 포함한다. 예시를 위해, 세션(106)과 관련된 정보는 사용자 A가 컨트롤러(102)의 지문 판독기에 그/그녀의 손가락을 대거나 사용자 A가 컨트롤러(102)의 마이크에 대고 말하거나 사용자 A가 그/그녀의 눈을 컨트롤러(102)의 생체 인식 안구 스캐너에 스캔한다는 통지를 포함한다. 생체 인식 정보 스캐너의 예들로는 지문 판독기, 마이크 및 생체 인식 안구 스캐너를 포함한다. 세션(105)과 연관된 정보의 다른 예는 애플리케이션 1을 식별하는 정보 및 사용자 A가 컨트롤러(102)를 통해 그/그녀의 생체 인식 정보를 제공한다는 통지를 포함한다. 생체 인식 정보는 사용자 A에게 고유하며 사용자 A와 다른 사용자들을 구별한다. 세션(106)과 연관된 정보의 또 다른 예는 애플리케이션 1을 식별하는 정보 및 그의 장치 식별(ID)을 제공하기 위해 컨트롤러(102)로 전송될 인스트럭션을 포함한다. 장치 ID의 예들로는 컨트롤러(102)의 일련 번호, 컨트롤러(102)의 MAC 주소 및 이들의 조합을 포함한다. 컨트롤러(102)의 장치 ID는 컨트롤러(102)에 고유하고 컨트롤러(102)와 다른 컨트롤러들을 구별하며, 이는 컨트롤러(102)와 구조 및 기능이 동일할 수 있다. 세션(106)과 연관된 정보의 또 다른 예는 애플리케이션 1을 식별하는 정보 및 네트워크 식별(ID)을 제공하기 위해 컨트롤러(102)로 전송될 인스트럭션을 포함한다. 네트워크 ID의 예들은 라우터(118)의 네트워크 주소를 포함한다. 컨트롤러(102) 내에 저장된 네트워크 ID는 라우터(118)에 고유하고 라우터(118)를 다른 라우터와 구별한다.
세션(106)과 연관되고 서버 시스템(104)으로부터 전송된 정보를 갖는 하나 이상의 전송 패킷들은 또한 라우터(118)의 대상 주소 및 컴퓨팅 장치(114)의 대상 주소와 컨트롤러(102)의 대상 주소와 같은 하나 이상의 추가 대상 주소들을 포함한다. 세션(106)과 관련된 정보를 포함하는 전송 패킷들을 수신 시, 모뎀(120)은 전송 패킷들을 디패킷화하여 라우터(118)의 대상 주소, 컴퓨팅 장치(114)의 대상 주소, 컨트롤러(102)의 대상 주소 및 세션(106)과 연관된 정보를 식별하도록 네트워크 통신 프로토콜을 적용한다. 컨트롤러(102)의 대상 주소는 서버 시스템(104)의 메모리 장치에 미리 저장되어 있음에 유의해야 한다. 예를 들어, 사용자 A가 컨트롤러(102)를 직접 구매할 때, 사용자 A는 컨트롤러(102)를 사용자 A에게 판매하는 엔티티에 그/그녀의 사용자 계정 정보를 제공한다. 엔티티는 클라이언트 장치의 입력 장치를 통해 컨트롤러(102)를 사용자 계정 1에 등록하도록 선택하게 한다. 클라이언트 장치로부터 선택에 기초하여 생성된 신호를 수신 시, 본원에 설명된 서버 시스템(104)의 하나 이상의 프로세서들은 컨트롤러(102)를 사용자 계정 1에 등록하기 위해 컨트롤러(102)의 장치 ID를 사용자 계정 1에 등록한다. 예시를 위해, 서버 시스템(104)의 하나 이상의 프로세서들은 사용자 계정 1과 컨트롤러(102)의 장치 ID 사이의 링크를 하기에 설명되는 매핑 데이터베이스 내에 저장한다. 다른 예로서, 사용자 A가 컨트롤러(102)의 온라인 구매 시, 사용자 A는 구매를 위해 사용자 A에 의해 액세스된 소매업체 웹사이트 또는 제조업체 웹사이트와 같은 웹사이트에 그/그녀의 사용자 계정 정보를 제공한다. 사용자 계정 정보는 하나 이상의 프로세서들이 사용자 계정 1에 컨트롤러(102)를 등록하기 위해 웹 사이트에서 서버 시스템(104)으로 전송된다. 사용자 계정 정보의 예들로는 사용자 A의 사용자 계정 1에 액세스하여 사용되는 이메일 주소, 사용자 계정 1에 할당된 사용자 이름, 사용자 계정 1과 연결된 거주지 주소 또는 사용자 계 1과 연관된 전화 번호 또는 이들의 조합을 포함한다. 모뎀(120)은 컴퓨팅 장치(114)의 대상 주소, 컨트롤러(102)의 대상 주소 및 세션(106)과 관련된 정보를 케이블(EC)을 통해 라우터(118)로 전송한다.
컴퓨팅 장치(114)의 대상 주소 및 세션(106)과 관련된 정보 수신 시, 라우터(118)는 세션(106)과 관련된 정보가 컴퓨팅 장치(114)로 전송될 것으로 결정하고 세션(106)과 관련된 정보를 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로 전송한다. 연결 채널(CC2), 라우터(118), 케이블(EC), 모뎀(120), 연결(C1), 컴퓨터 네트워크(122), 연결(C2)의 조합은 본원에서 길고 짧은 점선들 "- - - -"을 사용하여 예시되는 통신 채널(108)로 지칭된다.
마찬가지로, 컨트롤러(102)의 대상 주소 및 세션(106)과 연관된 정보를 수신 시, 라우터(118)는 세션(106)과 연관된 정보가 컨트롤러(102)로 전송될 것으로 결정하고 세션(106)과 연관된 정보를 연결 채널(CC1)을 통해 컨트롤러(102)로 전송한다. 연결 채널(CC1), 라우터(118), 케이블(EC), 모뎀(120), 연결(C1), 컴퓨터 네트워크(122), 연결(C2)의 조합은 본원에서 "o"들을 사용하여 예시되는 통신 채널(110)로 지칭된다.
세션(106)과 관련된 정보를 수신 시, 컴퓨팅 장치(114)는 디스플레이 화면(116)에 정보를 디스플레이하거나 컴퓨팅 장치(114)의 하나 이상의 스피커들을 통해 세션(106)과 관련된 정보 내의 오디오 데이터를 출력하거나 둘 다 정보를 표시하고 오디오 데이터를 출력한다. 디스플레이 화면(116)에 디스플레이된 세션(106)과 관련된 정보를 판독하거나 오디오 데이터를 들을 때, 사용자 A는 음성 또는 지문 또는 망막 정보와 같은 그/그녀의 생체 인식 ID를 생체 인식 정보 스캐너(BIS)에 제공한다. 예를 들어, 사용자 A는 생체 인식 정보 스캐너(BIS)에 그/그녀의 음성을 제공하기 위해 "헤이 컨트롤러"라고 말한다.
세션(106)과 연관된 정보가 컨트롤러(102)가 그의 장치 ID를 제공하라는 인스트럭션을 포함하는 경우, 컨트롤러(102)는 컨트롤러(102)의 메모리 장치로부터 장치 ID에 액세스한다. 또한, 세션(106)과 관련된 정보가 컨트롤러(102)가 네트워크 ID를 제공하라는 인스트럭션을 포함하는 경우, 컨트롤러(102)는 컨트롤러(102)의 메모리 장치로부터 네트워크 ID에 액세스한다. 생체 인식 ID 또는 장치 ID 또는 네트워크 ID 또는 이들의 둘 이상의 조합을 본원에서는 식별 정보라고 한다.
식별 정보 및 식별 정보를 서버 시스템(104)의 대상 주소에 제공하기 위한 인스트럭션은 통신 채널(CC1)을 통해 컨트롤러(102)로부터 라우터(118)로 전송된다. 일 예로서, 게임 웹 사이트의 URL은 읽기 전용 메모리의 펌웨어 또는 컨트롤러(102)의 다른 메모리 장치에 저장된다. URL은 서버 시스템(104)의 대상 주소를 포함한다. 다른 예로서, 컴퓨팅 장치(114)는 무선 연결(115)을 통해 서버 시스템(104)의 URL을 컨트롤러(102)에 제공한다. 컴퓨팅 장치(114) 또는 게임 콘솔과 같은 다른 장치는 우회되거나 식별 정보를 전송하는데 사용되지 않는다. 예를 들어, 식별 정보는 컨트롤러(102)로부터 컴퓨팅 장치(114) 또는 게임 콘솔로 전송되지 않는다. 다른 예로서, 식별 정보는 컴퓨팅 장치(114)로 또는 게임 콘솔로 전송되도록 컨트롤러(102)에 의해 처리되지 않는다. 식별 정보는 서버 시스템(104)으로 전송되도록 컨트롤러(102)에 의해 처리된다. 컴퓨팅 장치(114)는 BluetoothTM 연결 또는 다른 단거리 연결과 같은 무선 연결(115)을 통해 컨트롤러(102)에 결합된다.
라우터(118)는 통신 채널(CC1)을 통해 식별 정보 및 인스트럭션을 수신하고, 인스트럭션 내의 서버 시스템(104)의 대상 주소를 식별하고, 식별 정보를 케이블(EC)을 통해 모뎀(120)으로 라우팅한다. 모뎀(120)은 식별 정보 및 인스트럭션을 수신하고, 인스트럭션 내의 서버 시스템(104)의 대상 주소를 식별하고, 네트워크 통신 프로토콜을 식별 정보에 적용하여 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)를 통해 서버 시스템(104)로 전송한다. 서버 시스템(104)은 식별 정보를 수신하고 해당 식별 정보 확인 시 컨트롤러(102)를 세션(106)과 페어링한다.
서버 시스템(104)은 컨트롤러(102)를 세션(106)과 페어링하는 것에 응답하여 페어링 통지를 생성하고 전송한다. 예를 들어, 페어링 통지는 컴퓨팅 장치(114) 상에 디스플레이될 이미지 프레임들, 또는 컴퓨팅 장치(114)에 의해 사운드로서 출력될 오디오 프레임들, 또는 이들의 조합을 포함한다. 이미지 프레임들은 페어링 통지의 색상 및 강도 및 질감과 같은 페어링 통지를 디스플레이 하기 위한 정보를 포함한다. 다른 예로서, 페어링 통지는 컴퓨팅 장치(114)의 그래픽 처리 장치(GPU)에 의해 실행되는 렌더링 프로그램에 대한 인스트럭션, 또는 오디오 데이터를 처리하기 위한 컴퓨팅 장치(114)의 오디오 프로세서에 대한 인스트럭션, 또는 두 인스트력션들 모두를 포함한다. 서버 시스템(104)은 연결(C2), 컴퓨터 네트워크(122), 연결(C1), 모뎀 (120), 케이블(EC), 라우터(108) 및 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로 페어링 통지를 전송한다. 모뎀(120)은 연결(C2), 컴퓨터 네트워크(122) 및 연결(C1)을 통해 서버 시스템(104)으로부터 컴퓨팅 장치(114)의 페어링 정보 및 대상 주소를 포함하는 하나 이상의 전송 패킷들을 수신한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷에 적용하여 컴퓨팅 장치(114)의 대상 주소 및 페어링 통지를 추출하고, 페어링 통지 및 대상 주소를 케이블(EC)을 통해 라우터(118)로 전송한다. 라우터(118)는 컴퓨팅 장치(114)의 대상 주소로부터 페어링 통지가 컴퓨팅 장치(114)로 전송되어야 한다고 결정하고, 페어링 통지를 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로 전송한다. 예를 들어, 라우터(118)는 컴퓨팅 장치(114)의 IP 주소로부터 페어링 통지가 컴퓨팅 장치(114)로 전송되어야 한다는 것을 식별한다. 이미지 프레임들 또는 오디오 프레임들 또는 이들의 조합을 포함하는 페어링 통지를 수신 시, 페어링 정보는 컴퓨팅 장치(114)의 디스플레이 화면(116)에 하나 이상의 이미지들로 출력되거나 또는 컴퓨팅 장치(114)의 하나 이상의 스피커들을 통해 사운드로 출력되거나 또는 이들의 조합으로 출력된다. 렌더링 프로그램에 대한 인스트럭션을 포함하는 페어링 정보 수신 시, 컴퓨팅 장치(114)의 GPU는 디스플레이 화면(116)에 페어링 통지를 디스플레이하기 위해 렌더링 프로그램을 실행한다. 또한, 페어링 통지가 오디오 프로세서에 대한 인스트럭션을 포함하는 경우, 오디오 프로세서 및 컴퓨팅 장치(114)의 하나 이상의 스피커들은 오디오 데이터를 처리하기 위한 인스트럭션을 실행하여 오디오 데이터를 사운드로 출력한다. 마찬가지로, 페어링 통지가 두 인스트럭션들 모두를 포함하는 경우, GPU와 오디오 프로세서 둘 다 서로 동기화?? 페어링 통지를 이미지와 사운드로 출력한다.
세션(106)이 컨트롤러 (102)와 연결되거나 연관되는 것과 같이 페어링되면, 컨트롤러(102)는 사용자 A에 의해 세션(106)과 상호 작용하여 서버 시스템(104)과 컨트롤러(102) 사이의 직접적인 통신을 설정하는 데 사용될 수 있다. 예를 들어, 컨트롤러(102)는 사용자 A에 의해 애플리케이션 1을 실행함으로써 생성된 게임을 플레이하는데 사용될 수 있다. 설명을 위해, 컨트롤러(102)는 사용자 A에 의해 컨트롤러 이동 데이터, 컨트롤러 버튼 누름 등과 같은 입력 데이터를 통신 채널(110)을 통해 서버 시스템(104)에 제공하여 컴퓨팅 장치(114)에 디스플레이되고 있는 가상 장면의 상태를 변경하는 데 사용될 수 있다.
세션(106)이 컨트롤러(102)와 페어링되기 전에, 컨트롤러(102)는 사용자 A에 의해 애플리케이션 1의 실행의 세션(106)과 상호 작용하여 컴퓨팅 장치(114)에 디스플레이된 가상 장면의 상태를 변경하는 데 사용될 수 있다. 예를 들어, 사용자 A는 컨트롤러(102)의 입력 장치를 선택 또는 이동한다. 입력 장치의 선택 또는 이동은 입력 정보를 생성하며, 이는 서버 시스템(102)에 의해 처리되지 않거나 이가 가상 장면의 상태를 변경하도록 허용하지 않는다. 애플리케이션 1의 실행에 의해 생성된 가상 장면의 상태를 변경하기 위해 통신 채널(110)을 통해 컨트롤러(102)로부터 서버 시스템(102)으로 전송된 입력 정보는 컨트롤러(102)는 세션(106)과 페어링될 때까지 가상 장면의 상태를 변경하기 위해 서버 시스템(104)에 의해 처리되지 않는다.
일 실시예에서, 멀티 플레이어 레이스 자동차 게임 또는 축구 게임과 같은 멀티 플레이어 게임에서, 사용자 계정 1로부터 사용자 A에 의한 로그 아웃은 또한 게임을 플레이하는 다른 사용자들에 대한 세션(106)의 실행의 다른 인스턴스들에 영향을 주지 않는다. 다른 사용자들에 대한 세션(106)의 인스턴스들은 그들이 해당 사용자 계정들에서 로그 아웃할 때까지 계속된다.
일 실시예에서, 사용자 A는 본원에 설명된 컨트롤러(102) 또는 다른 컨트롤러를 다른 사용자에게 물리적으로 전송한다. 다른 사용자가 사용자 A에게 할당된 사용자 계정 1을 사용하면, 사용자 계정 1과 연관된 세션(106)의 인스턴스가 계속된다. 그러나, 다른 사용자가 사용자 계정 1에서 로그 아웃한 후 그/그녀의 사용자 계정 2를 사용하는 경우, 세션(106)의 다른 인스턴스는 사용자 계정 2을 개시한다.
일 실시예에서, 세션(106)은 가상 장면이 디스플레이되는 컴퓨팅 장치(114)가 서버 시스템(104)으로부터 연결 해제될 때 또는 컴퓨팅 장치(114)의 전원이 꺼지거나 컴퓨팅 장치(114)와 서버 시스템(104) 간의 통신 신호가 약할 때, 예를 들어, 임계치 미만의 전력량을 가질 때, 또는 컴퓨터 네트워크(122)의 통신 장치가 작동하지 않거나 오작동하고 있을 때, 또는 컴퓨팅 장치(114)의 통신 장치가 작동하지 않거나 오작동하고 있을 때 종료된다.
일 실시예에서, 라우터(118) 및 모뎀(120) 둘 다 단일 하드웨어 장치로 통합된다.
일 실시예에서, 연결 채널(CC2)은 동축 케이블과 같은 유선 연결 채널이다. 마찬가지로, 연결 채널(CC1)은 유선 연결이다.
일 실시예에서, 서버 시스템(104)에 의해 수행되는 것으로 본원에 설명된 기능들은 서버 시스템(104)의 하나 이상의 프로세서들에 의해 수행된다. 마찬가지로, 일 실시예에서, 모뎀(120)에 의해 수행되는 것으로 본원에 설명된 기능들은 모뎀(120)의 하나 이상의 프로세서들에 의해 수행된다. 또한, 일 실시예에서, 라우터(118)에 의해 수행되는 것으로 본원에 설명된 기능들은 라우터(118)의 하나 이상의 프로세서들에 의해 수행된다. 일 실시예에서, 컨트롤러(102)에 의해 수행되는 것으로 본원에 설명된 기능들은 컨트롤러(102)의 하나 이상의 프로세서들에 의해 수행된다.
일 실시예에서, 본원에 설명된 페어링 통지는 서버 시스템(104)으로부터 컴퓨팅 장치(114)로 전송되지 않는다.
일 실시예에서, 컴퓨팅 장치(114)는 무선 연결(115)을 통해 컨트롤러(102)에 결합되지 않는다.
일 실시예에서, 컨트롤러(102)는 식별 정보를 서버 시스템(104)으로 전송하기 전에 서버 시스템(104)의 대상 주소를 얻기 위해 컴퓨팅 장치(114)로 요청을 전송한다. 예를 들어, 컴퓨팅 장치(114)는 컴퓨팅 장치(114)와 컨트롤러(102) 사이에 무선 연결(115)이 발생하도록 요청한다. 무선 연결(115)이 설정되면, 컨트롤러(102)는 대상 주소를 얻기 위해 무선 연결(115)을 통해 서버 시스템(104)으로 요청을 전송한다. 요청 수신 시, 컴퓨팅 장치(114)는 무선 연결(115)을 통해 서버 시스템(104)의 대상 주소를 컨트롤러(102)에 제공한다.
일 실시예에서, 세션(106)은 다른 사용자가 컨트롤러(102)를 사용할 때 종료되지 않는다. 다른 사용자는 세션(106)이 시작된 후 활성화되는 동안 사용자 A로부터 컨트롤러(102)를 수신한다. 다른 사용자는 다른 사용자의 사용자 계정에 대한 세션(106)의 다른 인스턴스를 시작하기 위해 그/그녀의 사용자 계정에 로그인하도록 컴퓨팅 장치(114)를 통해 서버 시스템(104)에 그/그녀의 로그인 정보를 제공한다. 세션(106)은 활성 상태를 유지하고 다른 사용자가 사용자 계정 1에서 그/그녀의 계정으로 전환할 때 종료되지 않는다.
도 1b는 라우터(118)와 컨트롤러(102)의 무선 통신을 예시하기 위한 컨트롤러(102)의 일 실시예의 다이어그램이다. 컨트롤러(102)는 모션 센서 시스템(152), 무선 통신 집적 회로(IC)(156), 입력 장치(150), 컴퓨터 네트워크 ID 칩(151), 무선 통신 IC(157), 생체 인식 식별 센서(BIS), 프로세서(194) 및 장치 ID 칩(158)을 포함한다. 프로세서(194)는 모션 센서 시스템(152), 무선 통신 집적 회로(IC)(156), 입력 장치(150), 컴퓨터 네트워크 ID 칩(151), 무선 통신 IC(157), 생체 인식 식별 센서(BIS) 및 장치 ID 칩(158)에 결합된다. 입력 장치(150)는 모션 센서 시스템(152)에 결합된다. 모션 센서 시스템(152)의 예들로는 컨트롤러(102)의 위치 및 방향의 결정을 용이하게 하고 위치 및 방향에 대한 변경들의 결정을 용이하게 하기 위해 하나 이상의 자이로스코프들, 하나 이상의 가속도계들 및 하나 이상의 자기계들을 포함한다. 입력 장치(150)의 예들로는 버튼, 스위치, 터치 스크린, 스타일러스, 조이스틱, 마이크, 건 트리거 등을 포함한다. 무선 통신 IC(157)의 예들로는 무선 연결(115)(도 1a)을 통해 컨트롤러(102)와 컴퓨팅 장치(114)(도 1a) 사이의 통신을 가능하게 하는 BluetoothTM 장치 또는 Wi-FiTM 장치를 포함한다. 설명을 위해, BluetoothTM 장치는 컨트롤러와 개인 영역 네트워크(PAN)를 구축하는 컴퓨팅 장치와 같은 다른 장치 간에 2.4 내지 2.485 GHz의 산업, 과학 및 의료(ISM) 대역에서 단파장 초고주파(UHF) 전파를 사용하여 단거리에 걸쳐 데이터의 전송을 용이하게 하는 프로세서를 포함한다.
장치 ID 칩(158)은 컨트롤러(102)의 MAC 주소 또는 고유 식별 번호와 같은 장치 ID를 저장하는 메모리 칩이다. 예를 들어, 장치 ID 칩(158)은 컨트롤러(102)에 고유하고 컨트롤러(102)를 다른 컨트롤러들과 구별하는 일련의 영숫자 문자를 저장한다. 무선 통신 IC(156)의 예는 연결 채널(CC1)(도 1a)을 통해 컨트롤러(102)와 라우터(118) 사이의 Wi-FiTM 통신을 허용하는 Wi-FiTM 장치를 포함한다. 설명을 위해, 무선 통신 IC(156)는 연결 채널(CC1) 및 라우터(118)를 통해 컴퓨터 네트워크(122)에 본원에 설명된 바와 같은 컨트롤러를 결합하는 네트워크 인터페이스 카드(NIC)이다.
컴퓨터 네트워크 ID 칩(151)은도 1a의 라우터(118)의 인터넷 프로토콜(IP) 주소와 같은 네트워크 ID를 저장하는 또 다른 메모리 칩이다. 라우터(118)는 컴퓨터 네트워크 ID 칩(151)에 저장된 네트워크 ID를 사용하여 컴퓨터 네트워크(122) 내에서 식별된다. 예를 들어, 컴퓨터 네트워크 ID 칩(151)은 라우터(118)에 고유하고 라우터(118)를 컴퓨터 네트워크(122) 내의 다른 라우터들과 구별하는 일련의 영숫자 문자를 저장한다.
컨트롤러(102)의 장치 ID 및 다른 컨트롤러들의 다른 대응하는 장치 ID들은 세션(106)(도 1a)이 시작되기 전에 서버 시스템(104)에 사전 등록된다. 예를 들어, 컨트롤러(102)에 고유한 장치 ID는 컨트롤러(102)로 하드 와이어링되며 서버 시스템(104)은 장치 ID를 저장한다. 컨트롤러(102)의 장치 ID 및 다른 컨트롤러들의 추가 장치 ID들는 서버 시스템(104)의 장치 ID 데이터베이스에 저장된다. 장치 ID 데이터베이스는 서버 시스템(104)의 하나 이상의 메모리 장치들에 저장된다.
또한, 라우터(118)를 식별하는 네트워크 ID는 컨트롤러(102)가 컨트롤러(102)를 세션(106)과 페어링하기 위해 식별 정보를 서버 시스템(104)으로 전송하기 전에 서버 시스템(104)에 사전 등록된다. 예를 들어, 세션(106)의 설정 동안, 서버 시스템(104)은 통신 채널(108)을 통해 컴퓨팅 장치(114)에 인스트럭션을 전송하여 네트워크 ID를 제공한다. 인스트럭션 수신 시, 컴퓨팅 장치(114)는 컴퓨팅 장치(114)의 메모리 장치에 저장된 네트워크 ID에 액세스하고, 통신 채널(108)(도 1a)을 통해 네트워크 ID를 서버 시스템(104)으로 전송한다. 서버 시스템(104)은 네트워크 ID를 수신하고 서버 시스템(104)의 네트워크 ID 데이터베이스에 네트워크 ID를 저장한다. 네트워크 ID 데이터베이스는 서버 시스템(104)의 하나 이상의 메모리 장치들에 저장된다. 또한, 서버 시스템(104)은, 세션(106)이 설정된 후에 네트워크 ID와 사용자 계정 1 사이에 일대일 대응 또는 링크를 설정하는 것과 같이, 연관시킨다.
게다가, 사용자 A를 식별하는 생체 인식 ID는 컨트롤러(102)가 컨트롤러(102)를 세션(106)과 페어링하기 위해 식별 정보를 서버 시스템(104)으로 전송하기 전에 서버 시스템(104)에 사전 등록된다. 예를 들어, 컴퓨팅 장치(114)는 생체 인식 정보 스캐너를 갖는다. 세션(106)이 설정된 후 또는 세션(106)이 설정되는 동안, 서버 시스템(104)은 통신 채널(108)을 통해 컴퓨팅 장치(114)에 인스트럭션을 전송하여 사용자 A에게 생체 인식 ID를 요청한다. 컴퓨팅 장치(114)가 인스트럭션을 수신하면, 컴퓨팅 장치(114)는 메시지를 표시하거나 사용자 A에게 생체 인식 ID를 요청하는 사운드를 출력한다. 사용자 A로부터 컴퓨팅 장치(114)의 생체 인식 정보 스캐너를 통해 생체 인식 ID를 수신하면, 컴퓨팅 장치(114)는 통신 채널(108)을 통해 생체 인식 ID를 서버 시스템(104)으로 전송한다. 서버 시스템(104)은 생체 인식 ID를 수신하고 서버 시스템(104)의 생체 인식 ID 데이터베이스에 생체 인식 ID를 저장한다. 생체 인식 ID 데이터베이스는 서버 시스템(104)의 하나 이상의 메모리 장치들에 저장된다. 또한, 서버 시스템(104)은, 생체 인식 ID와 사용자 계정 1 사이에 일대일 대응 또는 링크를 설정하는 것과 같이, 연관시킨다.
컴퓨팅 장치(114)와 서버 시스템(104) 사이에 세션(106)이 설정된 후, 사용자 A는 컨트롤러(102)를 세션(106)과 페어링하기 위해 컨트롤러(102)의 생체 인식 식별 스캐너(BIS)에 그/그녀의 생체 인식 ID를 제공한다. 예를 들어, 세션(106)이 시작된 후, 사용자 A가 컨트롤러(102)의 지문 판독기에 그/그녀의 손가락을 대고 누르거나 사용자 A가 컨트롤러(102)의 마이크로폰에 대고 말하거나 사용자 A가 그/그녀의 안구를 컨트롤러(102)의 생체 인식 안구 스캐너로 스캔한다는 통지를 볼 때, 사용자 A는 컨트롤러(102)의 생체 인식 정보 스캐너(BIS)에 그/그녀의 생체 인식 정보를 제공한다. 생체 인식 ID를 수신 시, 컨트롤러(102)의 생체 인식 식별 스캐너(BIS)는 생체 인식 식별 신호를 생성하고 생체 인식 식별 신호를 프로세서(194)로 전송한다. 프로세서(194)는 생체 인식 식별 신호를 수신하고 생체 인식 식별 신호를 서버 시스템(104)으로 전송하기 위한 인스트럭션을 생성한다. 예를 들어, 인스트럭션은 서버 시스템(104)의 대상 주소를 포함한다. 프로세서(194)는 인스트럭션 및 생체 인식 식별 신호를 무선 통신 IC(156)로 전송한다. 무선 통신 IC(156)는 무선 통신 프로토콜을 생체 인식 식별 신호 및 인스트럭션에 적용하고, 생체 인식 식별 신호 및 인스트럭션을 연결 채널(CC1)(도 1a)을 통해 라우터(118)로 전송한다. 라우터(118)는 인스트럭션 내의 대상 주소로부터 생체 인식 식별 신호가 서버 시스템(104)으로 전송되어야 한다고 결정하고 인스트럭션 및 생체 인식 식별 신호를 모뎀(120)으로 전송한다. 모뎀(120)은 네트워크 통신 프로토콜을 생체 인식 식별 신호에 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다. 생체 인식 식별 신호를 갖는 전송 패킷들은 연결 요청의 일 예이다.
컴퓨팅 장치(114)와 서버 시스템(104) 사이에 세션(106)이 설정된 후 생체 인식 식별 신호를 전송하는 것의 대안으로서 또는 그 외에, 프로세서(194)는 장치 ID 칩(158)으로부터 장치 ID에 액세스하고 컨트롤러(102)를 세션(102)과 페어링하기 위해 서버 시스템(104)에 대한 장치 ID를 전송하기 위한 인스트럭션을 생성한다. 프로세서(194)는 인스트럭션 및 장치 ID를 무선 통신 IC(156)로 전송한다. 무선 통신 IC(156)는 무선 통신 프로토콜을 장치 ID 및 인스트럭션에 적용하고, 장치 ID 및 인스트럭션을 연결 채널(CC1)(도 1a)을 통해 라우터(118)로 전송한다. 라우터(118)는 인스트럭션으로부터 장치 ID가 서버 시스템(104)으로 전송되어야 한다고 결정하고 인스트럭션 및 장치 ID를 모뎀(120)으로 전송한다. 모뎀(120)은 장치 ID를 갖는 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다. 장치 ID를 갖는 전송 패킷들은 연결 요청의 또 다른 예이다.
또한, 세션(106)이 시작된 후 생체 인식 식별 신호를 전송하는 것의 대안으로서 또는 그 외에, 또는 세션(106)이 시작된 후 장치 ID를 전송하는 것의 대안으로서 또는 그 외에, 프로세서(194)는 컴퓨터 네트워크 ID 칩(151)으로부터 네트워크 ID에 액세스하고 컨트롤러(102)를 세션(106)과 페어링하기 위해 네트워크 ID를 서버 시스템(104)으로 전송하기 위한 인스트럭션을 생성한다. 프로세서(194)는 인스트럭션 및 네트워크 ID를 무선 통신 IC(156)로 전송한다. 무선 통신 IC(156)는 무선 통신 프로토콜을 네트워크 ID 및 인스트럭션에 적용하고, 네트워크 ID 및 인스트럭션을 연결 채널(CC1)을 통해 라우터(118)로 전송한다. 라우터(118)는 인스트럭션으로부터 네트워크 ID가 서버 시스템(104)으로 전송되어야 한다고 결정하고 인스트럭션 및 네트워크 ID를 모뎀(120)으로 전송한다. 모뎀(120)은 네트워크 ID로부터 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다. 네트워크 ID를 갖는 전송 패킷들은 연결 요청의 또 다른 예이다.
연결 요청은 게임 콘솔 또는 컴퓨팅 장치(114)를 통해 전송되지 않는다는 점에 유의해야 한다. 컨트롤러(102)로부터 서버 시스템(104)으로 연결 요청을 전송하는 데 게임 콘솔 또는 컴퓨팅 장치(114)를 사용하지 않는다.
장치 ID 또는 생체 인식 ID 또는 네트워크 ID 또는 이들의 둘 이상의 조합이 컨트롤러(102)를 세션(106)과 페어링하기 위해 서버 시스템(104)에 의해 사용되면, 컨트롤러(102)는 사용자 A에 의해 애플리케이션 1의 실행 시 디스플레이되는 가상 장면의 상태를 변경하기 위한 입력들을 생성하고 제공하는 데 사용될 수 있다. 예를 들어, 컨트롤러(102)가 서버 시스템(104)과 페어링되면, 사용자 A는 컨트롤러(102)를 사용하여 가상 장면의 상태를 변경할 수 있다. 사용자 A는 입력 장치(150)를 선택 또는 이동하거나 선택을 제공하기 위해 컨트롤러(102)를 이동함으로써 컨트롤러(102)를 사용한다. 입력 장치(150)는 입력 장치(150)의 선택 또는 이동 수신 시 입력 신호를 생성하고/하거나 모션 센서 시스템(152)은 컨트롤러(102)가 이동할 때 입력 신호를 생성한다. 모션 센서(152)에 의해 생성된 입력 신호는 컨트롤러(102)의 위치 또는 방향을 결정하기 위한 데이터 및/또는 입력 장치(150)의 위치 및 방향을 결정하기 위한 데이터를 포함한다. 컨트롤러(102)의 위치 또는 방향을 계산하기 위한 데이터의 예들은 컨트롤러(102)의 가속도, 컨트롤로(102)의 각속도 및 컨트롤로(102)의 방향을 포함한다. 컨트롤러(102)의 위치 및 방향 및 입력 장치(150)의 위치 및 방향은 컨트롤러(102) 내의 기준 좌표계를 참조하여 측정된다. 입력 장치(150)의 위치 및 방향을 계산하기 위한 데이터의 예들은 입력 장치(150)의 가속도, 입력 장치(150)의 각속도 및 입력 장치(150)의 방향을 포함한다. 프로세서(194)는 입력 신호들 중 하나 이상을 수신한다.
프로세서(194)는 입력 정보를 출력하기 위해 하나 이상의 입력 신호들을 수신한다. 일 예로서, 입력 정보는 컨트롤러(102)의 위치 또는 방향 또는 이들의 조합을 계산하기 위한 데이터를 포함하거나 입력 장치(150)의 위치 또는 방향 또는 이들의 조합을 계산하기 위한 데이터 또는 입력 장치(150)를 통해 사용자 A에 의해 이루어진 선택을 포함한다. 설명을 위해, 입력 정보는 입력 장치(150)의 복수의 버튼들 중 어느 것이 사용자 A의 의해 선택되는지 또는 입력 장치(150)의 복수의 조이스틱들 중 어느 것이 어느 방향으로 이동했는지를 포함한다. 입력 정보 외에, 프로세서(194)는 또한 입력 정보를 서버 시스템(104)의 대상 주소로 전송하기 위한 인스트럭션을 생성한다.
프로세서(194)는 통신 채널(110)을 통해 입력 정보를 서버 시스템(104)으로 전송한다. 예를 들어, 프로세서(194)는 입력 정보 및 인스트럭션을 무선 통신 IC(156)로 전송한다. 무선 통신 IC(156)는 무선 통신 프로토콜을 입력 정보 및 인스트럭션에 적용하고, 입력 정보 및 인스트럭션을 연결 채널(CC1)(도 1a)을 통해 라우터(118)로 전송한다. 라우터(118)는 인스트럭션으로부터 입력 정보가 서버 시스템(104)으로 전송되어야 한다고 결정하고 인스트럭션 및 입력 정보를 모뎀(120)으로 전송한다. 모뎀(120)은 입력 정보로부터 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다.
일 실시예에서, 무선 통신 IC(156) 및 무선 통신 IC(157)는 단일 집적 회로 칩으로 통합된다. 일 실시예에서, 무선 통신 IC(156)는 하나의 집적 회로 칩에 통합되고 무선 통신 IC(157)는 다른 집적 회로 칩에 통합된다.
도 1c는 셀룰러 연결 채널(151) 및 셀룰러 연결 채널(153)을 포함하는 통신 채널(155)의 사용을 예시하기 위한 시스템(159)의 일 실시예의 다이어그램이다. 통신 채널(155)은 도 1c의 작은 점선들 "- - -"로 예시된다. 셀룰러 연결 채널들(151, 152) 각각은 무선 주파수 연결 채널과 같은 무선 연결 채널이다. 통신 채널(155)은 타워(TW)와 같은 다중 셀 타워들을 포함하는 셀룰러 네트워크(154) 또는 모바일 네트워크를 포함한다. 셀룰러 네트워크(154)의 예들로는 모바일 광대역 네트워크, 제4세대(4G) 모바일 네트워크, 4G 롱 텀 에볼루션(4G LTE) 및 제5세대(5G) 모바일 네트워크를 포함한다. 셀룰러 네트워크(154)는 모바일 광대역 프로토콜, 4G 프로토콜, 4G LTE 프로토콜 또는 5G 프로토콜과 같은 셀룰러 통신 프로토콜을 사용하여 데이터를 전송한다. 시스템(159)은, 컨트롤러(160)가 라우터(118)를 통하는 대신에 셀룰러 네트워크(154)를 통해 컴퓨터 네트워크(122)에 결합되는 것을 제외하고는, 컨트롤러(102)(도 1b)와 구조 및 기능이 동일한 컨트롤러(160)를 포함한다. 예를 들어, 서버 시스템(104)의 대상 주소는 컨트롤러(160)가 식별 정보를 서버 시스템(104)으로 전송할 수 있도록 컨트롤러(160)의 펌웨어에 저장된다. 다른 예로서, 컨트롤러(160)는 서버 시스템(114)의 대상 주소에 대한 요청을 전송하기 위해 무선 연결(115)(도 1a)을 통해 컴퓨팅 장치(114)에 결합된다. 요청 수신 시, 컴퓨팅 장치(114)는 유선 연결(115)을 통해 컨트롤러(160)에 대상 주소를 전송한다.
셀 타워들 각각은 컨트롤러(160)로부터 컴퓨터 네트워크(122)로 수신되고 컴퓨터 네트워크(122)로부터 컨트롤러(160)로 수신된 데이터를 전송하기 위한 트랜시버를 포함한다. 셀룰러 연결 채널(151), 다중 타워들, 셀룰러 연결 채널(153), 컴퓨터 네트워크(122) 및 연결(C2)의 조합이 통신 채널(155)이다.
시스템(159)은 시스템(159)에서 컨트롤러(160)가 사용된다는 점을 제외하고는 도 1a의 시스템(100)과 구조 및 기능면에서 유사하다. 컨트롤러(160)는 컨트롤러(160)가 컴퓨터 네트워크(122) 및 하나 이상의 셀 타워들을 통해 서버 시스템(104)과 통신하는 것을 제외하고는 컨트롤러(102)와 구조 및 기능면에서 유사하다. 연결 채널(CC1), 라우터(118), 케이블(EC), 모뎀(120) 및 연결(C1)을 통해 컴퓨터 네트워크(122)와 통신하는 대신, 컨트롤러(160)는 셀룰러 연결 채널(151), 타워(TW) 및 셀룰러 연결 채널(152)을 통해 컴퓨터 네트워크(122)와 통신한다.
애플리케이션 1의 세션(106)(도 1a)이 설정되거나 시작될 때, 컨트롤러(160)의 가입자 식별 모듈(SIM) 카드와 같은 컨트롤러(160)는 셀룰러 통신 프로토콜을 식별 정보 및 식별 정보를 전송하기 위한 인스트럭션 명령에 적용하여 서버 시스템(104)로 전송하기 위한 하나 이상의 전송 유닛들을 생성한다. 컨트롤러(160)는 셀룰러 연결 채널(151)을 통해 식별 정보 및 인스트럭션을 포함하는 전송 유닛들을 타워(TW)로 전송한다. 컴퓨팅 장치(114) 또는 게임 콘솔과 같은 다른 장치는 식별 정보를 전송 시 우회된다. 예를 들어, 식별 정보는 컨트롤러(160)로부터 컴퓨팅 장치(114) 또는 게임 콘솔로 전송되지 않는다. 다른 예로서, 식별 정보는 컴퓨팅 장치(114)로 또는 게임 콘솔로 전송되도록 컨트롤러(160)에 의해 처리되지 않는다. 식별 정보는 서버 시스템(104)으로 전송되도록 컨트롤러(160)에 의해 처리된다.
타워(TW)의 트랜시버는 식별 정보와 인스트럭션을 갖는 전송 유닛들을 수신하고 트랜시버는 전송 유닛들을 컴퓨터 네트워크(122)로 전송한다. 컴퓨터 네트워크(122)의 모뎀과 같은 게이트웨이는 셀룰러 통신 프로토콜을 적용하여 전송 유닛들을 복조하여 전송 유닛들로부터 인스트럭션 및 식별 정보를 추출하고, 네트워크 통신 프로토콜을 식별 정보에 적용하여 전송 패킷을 생성하며, 식별 정보를 갖는 전송 유닛들을 연결(C2)를 통해 서버 시스템(104)으로 전송한다. 애플리케이션 1의 실행에 의해 생성된 가상 장면의 상태를 변경하기 위한 통신 채널(155)을 통해 컨트롤러(160)로부터 서버 시스템(102)으로의 입력 정보의 전송은 컨트롤러(160)가 세션(106)과 페어링될 때까지 컨트롤러(160)에 의해 디스에이블되거나 또는 인에이블되지 않는다.
도 1d는 컨트롤러(160)로부터 서버 시스템(104)(도 1c)으로 식별 정보를 전송하기 위한 광대역 통신 IC(162)의 사용을 예시하기 위한 컨트롤러(160)의 일 실시예의 다이어그램이다. 컨트롤러(160)는 입력 장치(150), 모션 센서 시스템(152), 무선 통신 IC(157), 생체 인식 식별 스캐너(BIS), 프로세서(194), 광대역 통신 IC(162) 및 장치 ID 칩(158)을 포함한다. 광대역 통신 IC(162)의 예는 SIM 카드이다. 프로세서(194)는 입력 장치(150), 모션 센서 시스템(152), 무선 통신 IC(157), 생체 인식 식별 스캐너(BIS), 광대역 통신 IC(162) 및 장치 ID 칩(158)에 결합된다.
도 1a의 컨트롤러(102)와 컨트롤러(160) 사이에 공통인 컴포넌트들은, 컴포넌트들이 컨트롤러(102) 대신 컨트롤러(160)에 대해 상기에 설명된 방식으로 동작한다는 점을 제외하고는, 컨트롤러(102)에 대해 상기에 설명된 것과 동일한 방식으로 동작한다는 점에 유의해야 한다. 예를 들어, 모션 센서 시스템(152)은 컨트롤러(102) 대신에 컨트롤러(160)의 위치 및 방향을 계산하기 위한 데이터를 측정한다.
컨트롤러(160)의 장치 ID는 세션(106)(도 1c)이 시작되기 전에 서버 시스템(104)에 사전 등록된다. 예를 들어, 컨트롤러(160)에 고유한 장치 ID는 컨트롤러(160)로 하드 와이어링되며 서버 시스템(104)은 장치 ID를 저장한다. 컨트롤러(160)의 장치 ID는 서버 시스템(104)의 장치 ID 데이터베이스에 저장된다.
컴퓨팅 장치(114)(도 1c)와 서버 시스템(104)(도 1c) 사이에 세션(106)이 설정된 후, 사용자 A는 컨트롤러(160)를 세션(106)과 페어링하기 위해 컨트롤러(160)의 생체 인식 식별 스캐너(BIS)에 그/그녀의 생체 인식 ID를 제공한다. 예를 들어, 세션(106)이 시작된 후, 사용자 A가 컨트롤러(160)의 지문 판독기에 그/그녀의 손가락을 대고 누르거나 사용자 A가 컨트롤러(160)의 마이크로폰에 대고 말하거나 사용자 A가 그/그녀의 안구를 컨트롤러(160)의 생체 인식 안구 스캐너로 스캔한다는 통지를 볼 때, 사용자 A는 컨트롤러(160)의 생체 인식 정보 스캐너(BIS)에 그/그녀의 생체 인식 정보를 제공한다. 생체 인식 ID를 수신 시, 컨트롤러(160)의 생체 인식 식별 스캐너(BIS)는 생체 인식 식별 신호를 생성하고 생체 인식 식별 신호를 프로세서(194)로 전송한다. 프로세서(194)는 생체 인식 식별 신호를 수신하고 생체 인식 식별 신호를 서버 시스템(104)으로 전송하기 위한 인스트럭션을 생성한다. 예를 들어, 인스트럭션은 서버 시스템(104)의 대상 주소를 포함한다. 프로세서(194)는 인스트럭션 및 생체 인식 식별 신호를 광대역 통신 IC(162)로 전송한다. 광대역 통신 IC(162)는 셀룰러 통신 프로토콜을 생체 인식 식별 신호 및 인스트럭션에 적용하여 하나 이상의 전송 유닛들을 생성하고, 전송 유닛들을 셀룰러 연결 채널(151)(도 1c)을 통해 타워(TW)로 전송하며, 이는 전송 유닛들을 컴퓨터 네트워크(122)로 포워딩한다. 컴퓨터 네트워크(122)는 셀룰러 통신 프로토콜을 전송 유닛들에 적용하여 전송 유닛들로부터 생체 인식 ID 및 인스트럭션을 추출하고, 네트워크 통신 프로토콜을 생체 인식 ID 및 인스트럭션에 추가로 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C2)을 통해 서버 시스템(104)로 전송한다.
세션(106)이 시작된 후 생체 인식 식별 신호를 전송하는 것의 대안으로서 또는 그 외에, 컨트롤러(160)의 프로세서(194)는 장치 ID 칩(158)으로부터 컨트롤러(160)의 장치 ID에 액세스하고 컨트롤러(160)를 세션(106)과 페어링하기 위해 서버 시스템(104)에 대한 장치 ID를 전송하기 위한 인스트럭션을 생성한다. 프로세서(194)는 인스트럭션 및 장치 ID를 광대역 통신 IC(162)로 전송한다. 광대역 통신 IC(162)는 셀룰러 통신 프로토콜을 장치 ID 및 인스트럭션에 적용하나 하나 이상의 전송 유닛들을 생성하고, 전송 유닛들을 셀룰러 연결 채널(151)(도 1c)을 통해 타워(TW)로 전송하며, 이는 전송 유닛들을 컴퓨터 네트워크(122)로 포워딩한다. 컴퓨터 네트워크(122)는 셀룰러 통신 프로토콜을 전송 유닛들에 적용하여 전송 유닛들로부터 장치 ID 및 인스트럭션을 추출하고, 네트워크 통신 프로토콜을 장치 ID 및 인스트럭션에 추가로 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C2)을 통해 서버 시스템(104)로 전송한다.
마찬가지로, 컨트롤러(160)가 세션(106)과 페어링되어 컨트롤러(160)와 서버 시스템(104) 사이에 직접 통신을 설정하는 경우, 프로세서(194)는 통신 채널(155)을 통해 입력 정보를 서버 시스템(104)으로 전송한다. 예를 들어, 프로세서(194)는 입력 정보를 무선 통신 IC(156)로 전송하기 위해 입력 정보 및 인스트럭션을 전송한다. 무선 통신 IC(156)는 무선 통신 프로토콜을 입력 정보 및 인스트럭션에 적용하여 하나 이상의 전송 유닛들을 생성하고, 입력 정보 및 인스트럭션을 갖는 전송 유닛들을 셀룰러 연결 채널(151)을 통해 타워(TW)로 전송한다. 타워(TW)는 인스트럭션으로부터 인스트럭션 및 입력 정보를 갖는 전송 유닛들이 서버 시스템(104)으로 전송되어야 한다고 결정하고 전송 유닛들을 다른 셀룰러 타워들을 통해 컴퓨터 네트워크(122)로 전송한다. 컴퓨터 네트워크(122)는 셀룰러 통신 프로토콜을 전송 유닛들에 적용하여 전송 유닛들로부터 입력 정보 및 인스트럭션을 추출하고, 네트워크 통신 프로토콜을 입력 정보 및 인스트럭션에 추가로 적용하여 다수의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C2)을 통해 서버 시스템(104)로 전송한다.
일 실시예에서, 광대역 통신 IC(162) 및 무선 통신 IC(157)는 단일 집적 회로 칩으로 통합된다. 일 실시예에서, 광대역 통신 IC(162)는 하나의 집적 회로 칩에 통합되고 무선 통신 IC(157)는 다른 집적 회로 칩에 통합된다.
일 실시예에서, 하나의 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 이 실시예에서, 컨트롤러의 프로세서(194)는 연결 채널(111)(도 1a)을 사용하는 것에서 셀룰러 네트워크(154)(도 1c)를 사용하는 것으로 또는 그 반대로 핸드 오버가 수행되어야 하는지 여부를 결정한다. 예를 들어, 프로세서(194)는 셀룰러 네트워크(154)가 연결 채널(111)보다 더 나은 서비스 품질(QoS)을 가지고 있거나 연결 채널(111)에 비해 셀룰러 네트워크(154)를 통해 데이터를 전송 시 더 낮은 레이턴시가 있다고 결정한다. 설명을 위해, 프로세서(194)는 셀룰러 네트워크(154)가 연결 채널(111)을 통해 전송된 데이터 손실량에 비해 더 적은 양의 데이터 손실 또는 더 짧은 핑 시간을 갖는다고 결정한다. 셀룰러 네트워크(154)가 더 나은 QoS를 갖는다고 결정 시, 프로세서(194)는 식별 정보와 같은, 본원에 설명된, 데이터를 컨트롤러에서 서버 시스템(104)으로 전송하기 위한 무선 통신 IC(156) 대신 광대역 통신 IC(162)를 사용하기로 결정한다. 설명을 위해, 사용자 A가 그/그녀의 차에 있는 컨트롤러를 사용할 때, 셀룰러 네트워크(154)는 사용자 A가 그/그녀의 집에 있는 컨트롤러를 사용할 때에 비해 더 나은 QoS 및 낮은 레이턴시를 허용한다. 사용자 A가 그/그녀의 집에 있는 컨트롤러를 사용할 때, 연결 채널(111)은 셀룰러 네트워크(154)에 비해 더 나은 QoS 및 더 낮은 레이턴시를 허용한다.
본 실시예에서, 프로세서(194)는 통신 채널(155)(도 1c)을 통해 서버 시스템(104)에 제공할 미리 결정된 수의 전송 유닛들을 전송하고 서버 시스템(104)에 의해 수신된 전송 유닛들의 카운트에 대해 서버 시스템(104)의, 본원에 설명된, 하나 이상의 프로세서들에 요청함으로써 데이터 손실량을 결정한다는 점에 유의해야 한다. 마찬가지로, 프로세서(194)는 통신 채널(110)(도 1a)을 통해 서버 시스템(104)에 제공할 미리 결정된 수의 전송 유닛들을 전송하고 통신 채널(110)을 통해 서버 시스템(104)에 의해 수신된 전송 패킷들의 카운트에 대해 서버 시스템(104)의, 본원에 설명된, 하나 이상의 프로세서들에 요청함으로써 손실된 전송 패킷들의 양을 결정한다. 프로세서(194)는 손실된 전송 유닛들의 양과 손실된 전송 패킷들의 양을 비교하여 더 낮은 데이터 손실량을 결정한다. 또한, 프로세서(194)는 통신 채널(155)을 통해 서버 시스템(104)에 제공할 미리 결정된 수의 전송 유닛들을 전송하고, 통신 채널(155)을 통해 프로세서(194)로 다시 전송 유닛들을 전송하도록 서버 시스템(104)의, 본원에 설명된, 하나 이상의 프로세서들에 요청함으로써 레이턴시를 결정한다. 통신 채널(155)을 통해 전송 유닛들을 송수신하기 위한 시간의 양을 결정함으로써, 레이턴시가 결정된다. 마찬가지로, 프로세서(194)는 통신 채널(110)을 통해 서버 시스템(104)에 제공할 미리 결정된 수의 전송 유닛들을 전송하고, 통신 채널(110)을 통해 프로세서(194)로 다시 전송 유닛들을 전송하도록 서버 시스템(104)의, 본원에 설명된, 하나 이상의 프로세서들에 요청함으로써 레이턴시를 결정한다. 통신 채널(110)을 통해 전송 패킷들을 송수신하기 위한 시간의 양을 결정함으로써, 레이턴시가 결정된다. 레이턴시들 둘 다 프로세서(194)에 의해 비교되어 더 낮은 레이턴시를 결정한다.
일 실시예에서, 하나의 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 컨트롤러의 프로세서(194)는 연결 채널(111)을 사용하는 것과 비교하여 셀룰러 네트워크(154)를 사용하는 것과 관련된 전력 비용을 결정한다. 예를 들어, 프로세서(194)는 무선 통신 IC(156)(도 1b)가 사용되고 광대역 통신 IC(162)(도 1d)가 사용되지 않는 미리 결정된 시간 기간 후에 컨트롤러의 배터리를 쿼리한다. 배터리는 프로세서(194)에 결합되고 본원에 설명된 컨트롤러의 모든 컴포넌트들에 전력을 제공한다. 또한, 프로세서(194)는 광대역 통신 IC(162)가 사용되고 무선 통신 IC(156)(도 1b)가 사용되지 않는 동일한 양의 미리 결정된 기간 후에 배터리를 쿼리한다. 프로세서(194)는 배터리의 전력이 무선 통신 IC(156)가 사용되고 광대역 통신 IC(162)가 사용되지 않는 미리 설정된 시간 기간에서 더 많이 사용되는지 또는 광대역 통신 IC(162)가 사용되고 무선 통신 IC(156)이 사용되지 않는 미리 설정된 시간 기간에서 더 많이 사용되는지 여부를 결정한다. 배터리가 무선 통신 IC(156)가 사용되고 광대역 통신 IC(162)가 사용되지 않는 미리 설정된 시간 기간에서 더 많이 사용된다고 결정 시, 프로세서(194)는 연결 채널(111)을 사용하는 것과 관련된 전력 비용이 셀룰러 네트워크(154)를 사용하는 것과 관련된 것보다 더 크다고 결정한다. 한편, 배터리가 광대역 통신 IC(162)가 사용되고 무선 통신 IC(156)이 사용되지 않는 미리 설정된 시간 기간에서 더 많이 사용된다고 결정 시, 프로세서(194)는 셀룰러 네트워크(154)를 사용하는 것과 관련된 전력 비용이 연결 채널(111)을 사용하는 것과 관련된 것보다 더 크다고 결정한다. 프로세서(194)는 전력 비용이 더 낮은 무선 통신 IC(156) 또는 광대역 통신 IC(162)를 사용한다.
일 실시예에서, 하나의 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 프로세서(194)는 컨트롤러의 디스플레이 화면을 통해 사용자 A에게 메시지를 디스플레이하거나, 컨트롤러의 하나 이상의 스피커들로부터 사운드로 출력될 오디오 데이터 형태로 메시지를 제공하여 사용자 A로부터 셀룰러 네트워크(154)가 사용될지 또는 연결 채널(111)이 사용될지 여부에 대한 선택을 수신한다. 사용자 A는 그/그녀의 플레이 시간에 긍정적인 영향을 미치는 더 나은 QoS를 얻기 위해 셀룰러 네트워크(154) 또는 연결 채널(111)을 사용하기로 결정할 수 있다. 입력 장치(150)를 통해 사용자 A로부터 셀룰러 네트워크(154)가 사용된다는 것을 나타내는 선택을 수신하면, 프로세서(194)는 본원에 설명된 데이터를 서버 시스템(104)으로 전송하기 위해 광대역 통신 IC(162)를 사용하기로 결정한다. 한편, 입력 장치(150)를 통해 사용자 A로부터 연결 채널(111)이 사용된다는 것을 나타내는 선택을 수신하면, 프로세서(194)는 본원에 설명된 데이터를 서버 시스템(104)으로 전송하기 위해 무선 통신 IC(156)를 사용하기로 결정한다.
일 실시예에서, 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 이 실시예에서, 상기에 설명된 핸드오버가 없다. 오히려, 프로세서(194)는 서버 시스템(104)에 연결하기 위해 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다 사용하기로 결정한다. 프로세서(194)는 무선 통신 IC(156) 및 광대역 통신 IC(162)를 통해 식별 정보와 같은 본원에 설명된 동일한 데이터를 서버 시스템(104)으로 전송한다. 서버 시스템(104)은 무선 통신 IC(156) 또는 광대역 통신 IC(162)로부터 먼저 수신된 동일한 데이터를 처리한다. 예를 들어, 서버 시스템(104)의 통신 인터페이스는 무선 통신 IC(156)로부터 패킷 ID 또는 타임스탬프를 갖는 하나 이상의 전송 패킷들을 수신하고 광대역 통신 IC(162)로부터 동일한 패킷 ID 또는 동일한 타임스탬프를 갖는 하나 이상의 전송 패킷들을 수신하며 먼저 수신된 하나 이상의 전송 패킷들을 처리한다.
도 1e는 컨트롤러(164)와 세션(106)(도 1a)의 페어링을 예시하기 위한 서버 시스템(104)의 일 실시예의 다이어그램이다. 도 1a의 컨트롤러(102) 및 도 1c의 컨트롤러(160)는 컨트롤러(164)의 예들이다. 서버 시스템(104)은 인증 프로세서(176), 세션 연결 프로세서(178), 장치 ID 데이터베이스, 네트워크 ID 데이터베이스, 사용자 계정 데이터베이스, 매핑 데이터베이스, 세션 ID 데이터베이스, 생체 인식 ID 데이터베이스, 페어링 통지 프로세서(180), 통신 인터페이스(170), 세션 ID 프로세서(183) 및 실행 서버(ES1)를 포함한다.
통신 인터페이스(170)는 세션 ID 프로세서(183), 페어링 통지 프로세서(180), 인증 프로세서(176) 및 실행 서버(ES1)에 결합된다. 페어링 통지 프로세서(180)는 인증 프로세서(176) 및 세션 연결 프로세서(178)에 결합된다. 인증 프로세서(176)는 세션 연결 프로세서(178) 및 매핑 데이터베이스에 결합되며, 이는 서버 시스템(104)의 하나 이상의 메모리 장치에 저장된다. 매핑 데이터베이스는 장치 ID 데이터베이스, 사용자 계정 데이터베이스, 생체 인식 ID 데이터베이스 및 네트워크 ID 데이터베이스에 결합된다. 세션 연결 프로세서(178)은 세션 ID 데이터베이스에 결합된다. 세션 ID 프로세서(183)는 실행 서버(ES1), 세션 ID 데이터베이스 및 세션 연결 프로세서(178)에 결합된다.
서버 시스템(104)은 통신 네트워크(177)를 통해 컨트롤러(164)에 결합된다. 통신 네트워크(177)의 예들은 도 1a의 통신 채널(110) 및 도 1c의 통신 채널(155)을 포함한다. 통신 네트워크(177)의 추가 예들은 도 1a 및 1c의 통신 채널(108)을 포함한다. 설명을 위해, 통신 네트워크(177)는 통신 채널들(110 및 108) 또는 통신 채널들(155 및 108)을 포함한다.
서버 시스템(104)은 LED 디스플레이 장치, LCD 디스플레이 장치 또는 플라즈마 디스플레이 장치와 같은 디스플레이 장치(166)에 결합된다. 디스플레이 장치(166)는 관리 사용자로부터 선택을 수신하는 터치스크린 디스플레이와 같은 입력 장치일 수 있다. 디스플레이 장치(166)의 예는 도 1a 및 1c의 컴퓨팅 장치(114)이다.
실행 서버(ES1)는 통신 인터페이스(170)로부터 데이터를 수신하기 위해 세션 ID 프로세서(183)를 통해 통신 인터페이스(170)에 결합되는 컴퓨터 포트와 같은 입력 채널(184)을 갖는다. 실행 서버(ES1)는 또한 화상 회의 애플리케이션 또는 게임과 같은 애플리케이션 1을 실행하는 실행 엔진(186)을 가지며, 이 게임의 예들은 비디오 게임, 가상 현실 게임 및 증강 현실 게임을 포함한다. 본원에 설명된 바와 같은, 엔진의 예들은 프로세서 및 컴퓨터 소프트웨어 모듈을 포함한다. 예를 들어, 본원에 설명된, 컴퓨팅 장치(114) 또는 다른 디스플레이 화면에 표시된 가상 장면의 상태를 변경하기 위해, 애플리케이션이 실행된다. 가상 장면의 상태의 예들로는 클라이언트에 표시될 가상 장면에서 가상 객체의 위치, 가상 객체의 방향, 객체의 색상, 가상 객체의 음영, 가상 객체의 질감, 가상 장면에서 배경의 위치, 배경의 방향, 배경의 색상, 배경의 음영, 배경의 질감, 또는 이들의 둘 이상의 조합을 포함한다. 하나 이상의 비디오 프레임들, 또는 하나 이상의 오디오 프레임들, 또는 이들의 조합이 실행 엔진(ES1)에 의해 생성되고 하나 이상의 프레임들은 상태 또는 상태에 대한 변경을 포함한다. 생성되는 하나 이상의 프레임들은 때때로 본원에서 비디오 출력으로 지칭된다. 비디오 프레임들의 예들로는 I-프레임들, P-프레임들 및 B-프레임들을 포함한다.
통신 인터페이스(170)는 컨트롤러(164)로부터 통신 네트워크(177)를 통해 수신되는 전송 패킷들에 네트워크 통신 프로토콜을 적용하여 네트워크 패킷들로부터 데이터를 추출하고, 네트워크 통신 프로토콜을 데이터에 적용하여 통신 네트워크(177)을 통해 컨트롤러(164)로 전송될 하나 이상의 전송 패킷들을 생성하는, 네트워크 인터페이스 컨트롤러 또는 네트워크 인터페이스 카드와 같은, 네트워크 인터페이스일 수 있다. 통신 인터페이스(170)의 예는 네트워크 인터페이스에 결합되는 프로세서를 포함한다.
인코더(188)의 예들로는 프레임들의 압축을 수행하는 프로세서 또는 컴퓨터 소프트웨어 모듈을 포함한다. 예를 들어, 인코더(188)는 실행 엔진(186)으로부터 프레임들을 수신하고 H.264 또는 다른 프레임 압축 표준과 같은 압축 프로토콜을 적용함으로써 프레임 내 또는 프레임 간 압축을 수행한다.
동작 1에서, 디스플레이 장치(166)는 로그인 정보를 갖는 하나 이상의 전송 패킷들 통신 네트워크(177)를 통해 통신 인터페이스(170)로 전송한다. 통신 인터페이스(170)는 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 전송 패킷들로부터 로그인 정보를 추출한다. 통신 인터페이스(170)의 프로세서는 전송 패킷들로부터 추출된 정보를 로그인 정보로 식별하고, 이를 식별하면 로그인 정보를 세션 ID 프로세서(183)에 제공한다. 예를 들어, 통신 인터페이스(170)의 프로세서는 전송 패킷들로부터 수신된 정보의 일련의 영숫자 문자 또는 사용자 이름의 구조 또는 패스워드의 구조와 같은 구조가 로그인 정보의 구조와 일치한다고 결정하고 정보가 로그인 정보라고 결정한다.
세션 ID 프로세서(183)는 로그인 정보가 인증되었는지 여부를 결정하고 로그인 정보가 인증된 것으로 결정되면 애플리케이션 1의 실행의 세션(106)을 설정한다. 또한, 세션 ID 프로세서(183)는 로그인 정보가 인증된 것으로 결정되면 사용자 계정 1에 대한 액세스를 허용한다. 세션 1의 예는 디스플레이 장치(166)와 서버 시스템(102) 사이의 데이터 또는 정보의 일시적인 상호작용 교환 또는 통신이다. 세션(106)은 사용자 A가 사용자 계정 1에서 로그 아웃하거나 서버 시스템(102)과 디스플레이 장치(166) 사이의 연결이 끊어질 때 종료된다. 서버 시스템(102)과 디스플레이 장치(166) 사이의 연결 끊김은 도 1a의 통신 채널(110) 또는 도 1c의 통신 채널(155)의 오작동으로 인한 것일 수 있다. 한편, 세션 ID 프로세서(183)는 로그인 정보가 인증되지 않았다고 결정할 때 세션(106)을 설정하지 않는다.
세션 ID 프로세서(183)는 영숫자 번호와 같은 세션 ID1을 세션 (106)에 할당하고, 세션 ID를 사용자 A에게 할당된 사용자 계정 1과 연결하고, 세션 ID1을 세션 ID 데이터베이스에 저장한다. 세션 ID1은 세션 ID1과 세션에 대한 사용자 계정 1 사이에 일대일 관계를 설정함으로써 사용자 계정 1에 연결되고, 링크는 세션 ID 프로세서(183)에 의해 매핑 데이터베이스에 저장된다.
입력 채널(184)은 로그인 정보가 인증되었다는 결정을 세션 ID 프로세서(183)로부터 수신하고 상기 결정을 게임 실행 엔진(186)에 제공한다. 로그인 정보가 인증되었다는 결정을 수신하면, 게임 실행 엔진(186)은 세션(106)과 관련된 정보의 오디오 프레임들 또는 비디오 프레임들 또는 이들의 조합과 같은 하나 이상의 프레임들을 생성한다. 설명을 위해, 게임 실행 엔진(186)은 애플리케이션 1의 이름 또는 애플리케이션 1의 제목 또는 애플리케이션 1의 가상 이미지를 포함하는 프레임들을 생성한다. 프레임들은 인코더(188)에 의해 인코딩되고 인코딩된 프레임들을 출력하기 위해 동작 2에서 통신 인터페이스(170)로 전송된다. 통신 인터페이스(170)는 네트워크 통신 프로토콜을 인코딩된 프레임들에 적용하여 하나 이상의 전송 패킷들을 갖는 스트림을 생성하고 스트림을 통신 네트워크(177)를 통해 디스플레이 장치(166)로 전송한다. 통신 인터페이스(170)로부터 전송되는 스트림의 예들로는 비디오 스트림 또는 오디오 스트림 또는 이들의 조합을 포함한다.
세션과 관련된 정보를 수신한 후, 동작 3에서, 컨트롤러(164)는 컨트롤러(164)를 세션(106)과 페어링하기 위해 생체 인식 ID1 또는 장치 ID1 또는 네트워크 ID1 또는 이들 중 둘 이상의 조합과 같은 식별 정보를 통신 네트워크(177)를 통해 통신 인터페이스(170)로 전송한다. 통신 인터페이스(170)는 네트워크 통신 프로토콜을 식별 정보를 포함하는 하나 이상의 전송 패킷에 적용하여 전송 패킷들로부터 식별 정보를 추출하고, 식별 정보를 인증 프로세서(176)로 전송한다.
통신 인터페이스(170)의 프로세서는 전송 패킷들로부터 추출된 정보를 식별 정보로 식별하고, 이를 식별하면 식별 정보를 인증 프로세서(176)에 제공한다. 예를 들어, 통신 인터페이스(170)의 프로세서는 전송 패킷들로부터 수신된 정보의 일련의 음소 또는 지문 또는 IP 주소 또는 장치 ID와 같은 구조가 식별 정보의 구조와 일치한다고 결정하고 정보가 식별 정보라고 결정한다.
통신 인터페이스(170)로부터 생체 인식 ID1을 수신하면, 인증 프로세서(176)는 생체 인식 ID 데이터베이스로부터 사전 등록된 생체 인식 ID1을 검색하고 수신된 생체 인식 ID1을 처리하여 수신된 생체 인식 ID1이 인증되었는지 여부를 결정한다. 예를 들어, 인증 프로세서(176)는 수신된 생체 인식 ID1과 사전 등록된 생체 인식 ID1이 일치하는지 여부를 결정한다. 사전 등록된 생체 인식 ID1은 생체 인식 ID 데이터베이스에 저장되어 사용자 A에게 할당된 사용자 계정 1에 사전 등록되며 사용자 계정 1과 연결된다. 일치가 발생한다고 결정 시, 인증 프로세서(176)는 수신된 생체 인식 ID1을 검증하기 위해 수신된 생체 인식 ID1이 인증된 것으로 결정한다. 한편, 일치가 발생하지 않는다고 결정 시, 인증 프로세서(176)는 수신된 생체 인식 ID1이 인증되지 않았다고 결정한다. 동일한 방식으로, 통신 인터페이스(170)로부터 장치 ID1을 수신하면, 인증 프로세서(176)는 장치 ID 데이터베이스로부터 사전 등록된 장치 ID1을 검색하고 수신된 장치 ID1을 처리하여 수신된 장치 ID1이 인증되었는지 여부를 결정한다. 게다가, 동일한 방식으로, 통신 인터페이스(170)로부터 네트워크 ID1을 수신하면, 인증 프로세서(176)는 네트워크 ID 데이터베이스로부터 사전 등록된 네트워크 ID1을 검색하고 수신된 네트워크 ID1을 처리하여 수신된 네트워크 ID1이 인증되었는지 여부를 결정한다.
매핑 데이터베이스는 사전 등록된 생체 인식 ID1과 사용자 계정 1 사이에 일대일 대응 또는 링크 또는 매핑과 같은 연관성을 미리 저장한다는 점에 유의해야 한다. 예를 들어, 컨트롤러(164)를 세션(106)과 페어링하기 위해 컨트롤러(164)로부터 생체 인식 ID1이 수신되기 전에, 세션 ID 프로세서(183)는 도 1a 또는 1c의 통신 채널 (108)을 통해 컴퓨팅 장치(114)로부터 사전 등록된 생체 ID1을 수신하고 사전 등록된 생체 ID1를 생체 ID 데이터베이스에 저장한다. 추가로, 세션 ID 프로세서(183)는 사전 등록된 생체 ID1과 사용자 계정 1 사이의 연관성을 설정하고, 연관성을 매핑 데이터베이스 내에 저장하고, 사전 등록된 생체 ID1을 생체 ID 데이터베이스 내에 저장한다. 유사한 방식으로, 컨트롤러(164)와 세션(106)을 페어링하기 위해 네트워크 ID1 및 장치 ID1이 컨트롤러(164)로부터 수신되기 전에, 세션 ID 프로세서(183)는 사전 등록된 장치 ID1 및/또는 사용자 계정 1 간의 연관성을 매핑 데이터베이스 내에 저장하고, 사전 등록된 네트워크 ID1과 사용자 계정 1 사이의 연관성을 매핑 데이터베이스 내에 저장하고, 사전 등록된 네트워크 ID1을 네트워크 ID 데이터베이스 내에 저장하고, 사전 등록된 장치 ID1을 장치 ID 데이터베이스 내에 저장한다. 사용자 계정 1과 다른 사용자 계정들 2 내지 N은 사용자 계정 데이터베이스 내에 저장된다.
인증 프로세서(176)는 수신된 생체 인식 ID1이 세션 연결 프로세서(178)에 대해 인증되었다는 결정을 제공한다. 세션 연결 프로세서(178)는 세션 ID1과 수신된 생체 인식 ID1 사이의 연관성을 설정하고 연관성을 매핑 데이터베이스 내에 저장하여 세션(116)을 컨트롤러(164)와 페어링한다. 예를 들어, 세션 연결 프로세서(178)는 세션(106)의 세션 ID1과 수신된 생체 인식 ID1 사이의 일대일 연결 또는 매핑 또는 대응을 생성한다. 동일한 방식으로, 세션 연결 프로세서(178)는 세션 ID1과 수신된 장치 ID1 사이의 연관성을 설정하고 연관성을 맵핑 데이터베이스 내에 저장한다. 일 예로서, 세션 연결 프로세서(178)는 세션(106)의 세션 ID1과 수신된 장치 ID1 사이의 일대일 연결 또는 매핑 또는 대응을 생성한다. 또한, 동일한 방식으로, 세션 연결 프로세서(178)는 세션 ID1과 수신된 네트워크 ID1 사이의 연관성을 설정하고 연관성을 매핑 데이터베이스 내에 저장한다. 예를 들어, 세션 연결 프로세서(178)는 세션(106)의 세션 ID1과 수신된 네트워크 ID1 사이의 일대일 연결 또는 매핑 또는 대응을 생성한다.
컨트롤러(164)로부터 수신된 식별 정보와 세션(106) 사이의 연관성을 설정 시, 동작 4에서, 세션 연결 프로세서(178)는 연관성의 결정을 페어링 통지 프로세서(180)에 제공한다. 연관성의 결정의 수신에 응답하여, 페어링 통지 프로세서(180)는 페어링 통지를 생성하고 페어링 통지를 통신 인터페이스(170)로 전송한다. 페어링 통지 프로세서(180)는 또한 페어링 통지를 디스플레이 장치(166)로 전송하기 위한 인스트럭션 또는 페어링 통지를 컨트롤러(164) 또는 디스플레이 장치(166) 및 컨트롤러(164) 둘 다에 전송하기 위한 인스트럭션을 생성한다. 통신 인터페이스(170)는 페어링 통지 프로세서(180)로부터 인스트럭션을 수신하고, 네트워크 통신 프로토콜을 페어링 통지에 및 디스플레이 장치(166)의 대상 주소에 또는 컨트롤러(164)의 대상 주소에 또는 대상 주소들 둘 다에 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 통신 네트워크(177)를 통해 디스플레이 장치(166)롤 또는 컨트롤러(164)로 또는 컨트롤러(164) 및 디스플레이 장치(166) 둘 다로 전송한다.
인증 프로세서(176)가 수신된 생체 인식 ID1 또는 수신된 장치 ID1 또는 수신된 네트워크 ID1 또는 이들 중 둘 이상의 조합이 인증되지 않은 것으로 결정되면, 인증 프로세서(176)는 페어링 통지 프로세서(180)에 이 결정을 알린다. 결정을 수신 시, 페어링 통지 프로세서(180)는 페어링되지 않은 통지 및 페어링되지 않은 통지를 디스플레이 장치(166) 또는 컨트롤러(164)로 또는 컨트롤러(164)와 디스플레이 장치(166) 둘 모두에게로 전송하기 위한 인스트럭션을 생성한다. 인스트럭션 및 페어링되지 않은 통지를 수신 시, 통신 인터페이스(170)는 네트워크 통신 프로토콜을 디스플레이 장치(166)의 대상 주소 또는 컨트롤러(164)의 주소 또는 두 대상 주소들 모두에 및 페어링되지 않은 통지에 적용하여 하나 이상의 전송 패킷들을 생성하고 전송 패킷들을 통신 네트워크(177)를 통해 디스플레이 장치(166)로 또는 컨트롤러(164)로 또는 컨트롤러(164) 및 디스플레이 장치(166) 둘 모두에게로 전송한다.
통신 인터페이스(170)는 페어링되지 않는 통지 또는 페어링 통지와 같은 페어링 관련 통지를 포함하는 전송 패킷들을 연결(C2)(도 1a), 컴퓨터 네트워크(122)(도 1a), 연결(C1)(도 1a), 모뎀(120)(도 1a), 케이블(EC)(도 1a), 라우터(108)(도 1a) 및 연결 채널(CC2)(도 1a)을 통해 디스플레이 장치(166)로 전송한다. 도 1a 및 1c의 모뎀(120)은 페어링 관련 통지 및 디스플레이 장치(166)의 대상 주소를 포함하는 전송 패킷들을 수신한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 디스플레이 장치(166)의 대상 주소 및 페어링 관련 통지를 추출하고, 페어링 관련 통지 및 대상 주소를 도 1a 및 1c의 라우터(118)로 전송한다. 라우터(118)는 디스플레이 장치(166)의 대상 주소로부터 페어링 관련 통지가 디스플레이 장치(166)로 전송되어야 한다고 결정하고, 페어링 관련 통지를 디스플레이 장치(166)로 전송한다. 예를 들어, 라우터(118)는 디스플레이 장치(166)의 IP 주소로부터 페어링 관련 통지가 디스플레이 장치(166)로 전송되어야 한다는 것을 식별한다. 페어링 관련 통지 수신 시, 디스플레이 장치(166)의 GPU는 디스플레이 장치(166)의 디스플레이 화면에 페어링 관련 통지를 디스플레이한다. 페어링 관련 통지가 오디오 데이터인 경우, 디스플레이 장치(166)의 오디오 프로세서는 페어링 관련 통지를 사운드로 출력한다. 마찬가지로, 페어링 관련 통지가 이미지 및 오디오 데이터를 둘 다 포함하는 경우, 디스플레이 장치(166)의 GPU와 오디오 프로세서 둘 다 서로 동기화하여 페어링 관련 통지를 이미지 및 사운드로 출력한다.
일 실시예에서, 통신 인터페이스(170)는 페어링 관련 통지를 포함하는 전송 패킷들을 연결(C2), 컴퓨터 네트워크(122), 연결(C1), 모뎀(120), 케이블(EC), 라우터(108) 및 연결 채널(CC1)을 통해 도 1a의 컨트롤러(102)로 전송한다. 도 1a 및 1c의 모뎀(120)은 페어링 관련 통지 및 디스플레이 장치(166)의 대상 주소를 포함하는 전송 패킷들을 수신한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 컨트롤러(102)의 대상 주소 및 페어링 관련 통지를 추출하고, 페어링 관련 통지 및 대상 주소를 도 1a 및 1c의 라우터(118)로 전송한다. 라우터(118)는 컨트롤러(102)의 대상 주소로부터 페어링 관련 통지가 컨트롤러(102)로 전송되어야 한다고 결정하고, 페어링 관련 통지를 연결 채널(CC1)을 통해 컨트롤러(102)로 전송한다. 예를 들어, 라우터(118)는 컨트롤러(102)의 IP 주소로부터 페어링 관련 통지가 컨트롤러(102)로 전송되어야 한다는 것을 식별한다. 페어링 관련 통지 수신 시, 컨트롤러(102)의 GPU는 컨트롤러(102)의 디스플레이 장치의 디스플레이 화면에 페어링 관련 통지를 디스플레이한다. 페어링 관련 통지가 오디오 데이터인 경우, 컨트롤러(102)의 디스플레이 장치의 오디오 프로세서는 페어링 관련 통지를 사운드로 출력한다. 마찬가지로, 페어링 관련 통지가 이미지 및 오디오 데이터를 둘 다 포함하는 경우, 컨트롤러(102)의 GPU와 오디오 프로세서 둘 다 서로 동기화하여 페어링 관련 통지를 이미지 및 사운드로 출력한다.
일 실시예에서, 통신 인터페이스(170)는 페어링 관련 통지를 포함하는 전송 패킷들을 연결(C2), 컴퓨터 네트워크(122), 연결(C1) 및 셀룰러 네트워크(154)(도 1c)를 통해 도 1c의 컨트롤러(160)로 전송한다. 도 1c의 컴퓨터 네트워크(122)는 페어링 관련 통지 및 컨트롤러(160)의 대상 주소를 포함하는 전송 패킷들을 수신한다. 컴퓨터 네트워크(122)는 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 컨트롤러(160)의 대상 주소 및 페어링 관련 통지를 추출하고, 셀룰러 통신 프로토콜을 대상 주소 및 페어링 관련 통지에 추가로 적용하여 하나 이상의 전송 유닛들을 생성하고, 전송 유닛들을 셀룰러 연결 채널(153)을 통해 셀룰러 네트워크(154)의 타워(TW)로 전송한다. 타워(TW)는 컨트롤러(160)의 대상 주소에 따라 컨트롤러160)로 셀룰러 연결 채널(151)을 통해 도 1c의 컨트롤러(160)로 전송 유닛들을 포워딩한다. 컨트롤러(160)는 셀룰러 통신 프로토콜을 적용하여 페어링 관련 통지를 획득한다. 페어링 관련 통지 수신 시, 컨트롤러(160)의 GPU는 컨트롤러(160)의 디스플레이 장치의 디스플레이 화면에 페어링 관련 통지를 디스플레이한다. 페어링 관련 통지가 오디오 데이터인 경우, 컨트롤러(160)의 디스플레이 장치의 오디오 프로세서는 페어링 관련 통지를 사운드로 출력한다. 마찬가지로, 페어링 관련 통지가 이미지 및 오디오 데이터를 둘 다 포함하는 경우, 컨트롤러(160)의 GPU와 오디오 프로세서 둘 다 서로 동기화하여 페어링 관련 통지를 이미지 및 사운드로 출력한다.
동작 5에서, 컨트롤러(164)가 세션(106)과 연결되는 것과 같이 페어링되면, 컨트롤러(164)는 사용자 A에 의해 가상 장면의 상태를 변경하기 위한 입력 정보 및 세션 ID1을 갖는 하나 이상의 전송 패킷들을 생성하는데 사용될 수 있다. 예를 들어, 사용자 A에 의한 컨트롤러(164) 상의 버튼의 선택은 가상 무기가 발사되도록 하거나 가상 사용자가 비디오 게임에서 점프하게 할 수 있다. 다른 예로서, 사용자 A에 의한 컨트롤러(164) 상의 조이스틱의 선택은 상이한 사용자들의 이미지들을 보여주는 라이브 스트림들이 디스플레이되는 디스플레이 장치(166) 상의 디스플레이 화면 상에서 다수의 영역을 변경할 수 있게 한다. 설명을 위해, 디스플레이 장치(166)의 디스플레이 화면 상의 두 개의 상이한 위치들로부터 두 명의 사용자들을 보여주는 두 개의 라이브 스트림들 대신, 두 명의 사용자들 중 한 명의 라이브 스트림이 디스플레이 화면 상에 디스플레이를 위해 디스플레이 장치(166)에 의해 수신된다.
통신 인터페이스(170)는 통신 네트워크(177)를 통해 컨트롤러(164)로부터 입력 정보 및 세션 ID1을 포함하는 전송 패킷들을 수신하고, 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 입력 정보 및 세션 ID1을 추출한다. 통신 인터페이스(170)의 프로세서는 전송 패킷들 내의 정보가 입력 정보의 구조와 일치하는 일련의 버튼 누름 또는 일련의 조이스틱 이동과 같은 구조를 가지고 있다고 결정하고, 그렇게 결정 시, 입력 정보를 세션 ID 프로세서(183)로 전송한다. 세션 ID 프로세서(183)는 입력 채널(184)을 통해 입력 정보를 실행 엔진(186)에 제공한다. 세션 ID 프로세서(183)는 입력 정보를 실행 엔진(186)으로 전송하기 전에 세션 ID1을 인증할 수 있다.
실행 엔진(186)은 컨트롤러(164)에 의해 상호 작용되어 입력 정보에 따라 가상 장면의 상태를 변경하도록 결정하고, 가상 장면의 상태를 갖는 오디오 프레임들 또는 비디오 프레임들 또는 이들의 조합과 같은 다수의 프레임들을 생성한다. 예를 들어, 실행 엔진(186)은 프레임을 생성하기 위해 입력 정보에 기초하여 가상 객체의 위치, 방향, 강도, 색상, 모양 또는 그에 따른 조합을 변경하기로 결정한다. 프레임들의 예들로는 I 프레임들, P 프레임들 및 B 프레임들을 포함한다. 실행 엔진(186)은 인코딩된 프레임들을 출력하기 위해 프레임들을 압축하는 인코더(188)에 프레임들을 제공한다. 예를 들어, 프레임들은 H.264 표준을 사용하여 압축된다. 추가로, 실행 엔진(186)은 프레임들을 디스플레이 장치(166)로 전송하기 위한 인스트럭션을 생성한다.
인코더(180)는 인코딩된 프레임들을 통신 인터페이스(170)에 제공한다. 통신 인터페이스(170)는 네트워크 통신 프로토콜을 인코딩된 프레임들 및 인스트럭션에 적용하여 하나 이상의 전송 패킷들을 생성하고 전송 패킷을 도 1a 및 1c의 연결(C2), 컴퓨터 네트워크(122) 및 도 1a 및 1c의 연결(C1)을 통해 도 1a 및 1c의 모뎀(120)으로 전송한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 전송 패킷들으로부터 인스트럭션 및 인코딩된 프레임들을 추출하고 인스트럭션 및 인코딩된 프레임들을 이더넷 연결(EC)을 통해 도 1a 및 1c의 라우터(118)에 전송한다. 라우터(118)는 인스트럭션 내의 대상 주소로부터 인코딩된 프레임들이 디스플레이 장치(166)로 전송되어야 한다고 결정하고, 인코딩된 프레임들을 도 1a 및 1c의 연결 채널(CC2)을 통해 디스플레이 장치(166)로 전송한다. 디스플레이 장치(166)는 인코딩된 프레임을 디코딩하여 프레임들을 출력하여 가상 객체 및 가상 배경을 갖는 가상 장면의 이미지들을 디스플레이 장치(166)의 디스플레이 화면에 추가로 표시하거나 디스플레이 장치(166)의 스피커들을 통해 오디오 데이터를 출력하거나 이들의 조합을 출력한다. 예를 들어, 디스플레이 장치(166)는 위치 또는 방향 또는 색상 또는 강도 또는 질감을 변경 한 가상 객체를 디스플레이한다. 다른 예로서, 디스플레이 장치(166)는 가상 객체에 의해 이루어진 사운드를 출력한다. 디스플레이 장치(166)가 컨트롤러(164)로부터 수신된 입력 정보에 응답하여 서버 시스템(104)으로부터 수신된 인코딩된 프레임들에 따라 이미지들을 표시하거나 이미지들과 관련된 사운드를 출력하는 경우, 서버 시스템(104) 또는 애플리케이션 1 및 컨트롤러(164)는 서로 상호 작용한다.
일 실시예에서, 서버 시스템(104)의 각 프로세서 대신에, 컴퓨터 소프트웨어 프로그램의 일부와 같은 소프트웨어 모듈이 사용되고, 소프트웨어 모듈들은 서버 시스템(104)의 하나 이상의 프로세서들에 의해 실행된다는 점에 유의해야 한다. 각 소프트웨어 모듈은 하나 또는 몇몇의 루틴들을 포함할 수 있다. 일 실시예에서, 서버 시스템(104)의 일부 프로세서들의 기능들은 모듈로서 실행되고 서버 시스템(104)의 나머지 프로세서들은 집적 회로와 같은 하드웨어 컴포넌트들이다.
일 실시예에서, 인증 프로세서(176), 세션 ID 프로세서(183), 통신 인터페이스(170)의 프로세서, 페어링 통지 프로세서(180), 인코더(188) 및 실행 엔진(186)에 의해 수행되는 것으로 본원에 설명된 기능들은 대신 또 다른 수의 서버 시스템(104)의 프로세서들 또는 서버들에 의해 수행된다.
일 실시예에서, 사용자 A는 컨트롤러(164)를 세션(164)과 페어링할지 여부를 결정한다. 인증 프로세서(176)는, 생체 인식 ID1 또는 수신된 장치 ID1 또는 수신된 네트워크 ID1 또는 이들의 둘 이상의 조합이 인증되었다는 결정을 세션 연결 프로세서(178)로 보내는 대신, 인증에 관한 결정을 페어링 통지 서버(180)로 전송한다. 인증 프로세서(176)로부터 결정을 수신 시, 페어링 통지 프로세서(180)는 페어링 요청 통지 및 페어링 요청 통지를 디스플레이 장치(166)로 전송하기 위한 인스트럭션을 생성한다. 페어링 요청 통지는 컨트롤러(164)를 세션 (106)과 페어링하기 위한 요청을 포함한다. 페어링 통지 프로세서(180)는 페어링 요청 통지 및 인스트럭션을 통신 인터페이스(170)로 전송한다.
이 실시예에서, 인스트럭션 및 페어링 요청 통지를 수신 시, 통신 인터페이스(170)는 네트워크 통신 프로토콜을 디스플레이 장치(166)의 대상 주소 및 페어링 요청 통지에 적용하여 하나 이상의 전송 패킷들을 생성하고 전송 패킷들을 도 1a 및 1c의 통신 채널(108)을 통해 디스플레이 장치(166)로 전송한다.
본 실시예에 계속하여, 통신 인터페이스(170)는 전송 패킷들을 연결(C2), 컴퓨터 네트워크(122), 연결(C1), 모뎀 (120), 케이블(EC), 라우터(108) 및 연결 채널(CC2)을 통해 디스플레이 장치(166)로 전송한다. 도 1a 및 1c의 모뎀(120)은 페어링 요청 통지 및 디스플레이 장치(166)의 대상 주소를 포함하는 전송 패킷들을 수신한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 디스플레이 장치(166)의 대상 주소 및 페어링 요청 통지를 추출하고, 페어링 요청 통지 및 대상 주소를 도 1a 및 1c의 라우터(118)로 전송한다. 라우터(118)는 디스플레이 장치(166)의 대상 주소로부터 페어링 요청 통지가 디스플레이 장치(166)로 전송되어야 한다고 결정하고, 페어링 요청 통지를 디스플레이 장치(166)로 전송한다. 예를 들어, 라우터(118)는 디스플레이 장치(166)의 IP 주소로부터 페어링 요청 통지가 디스플레이 장치(166)로 전송되어야 한다는 것을 식별한다. 페어링 요청 통지 수신 시, 디스플레이 장치(166)의 GPU는 디스플레이 장치(166)의 디스플레이 화면에 페어링 요청 통지를 디스플레이한다. 페어링 요청 통지가 오디오 데이터인 경우, 디스플레이 장치(166)의 오디오 프로세서는 페어링 요청 통지를 사운드로 출력한다. 마찬가지로, 페어링 요청 통지가 이미지 및 오디오 데이터를 둘 다 포함하는 경우, 디스플레이 장치(166)의 GPU와 오디오 프로세서 둘 다 서로 동기화하여 페어링 요청 통지를 이미지 및 사운드로 출력한다.
게다가, 일 실시예에서, 페어링 요청 통지를 듣거나 볼 때 또는 보고 들고 둘 다 할 때, 사용자 A는 컨트롤러(164)를 세션(106)과 페어링할지 여부를 표시하기 위해 컨트롤러(164)에서 선택하게 한다. 예를 들어, 사용자 A는 사용자 A가 세션(106)과 페어링하기를 원한다는 것을 나타내는 긍정적인 응답을 제공하도록 컨트롤러(164) 상의 제1 버튼을 선택한다. 사용자 A는 사용자 A가 세션(106)과 페어링하기를 원하지 않는다는 것을 나타내기 위해 부정적인 응답을 제공하도록 컨트롤러(164) 상의 제2 버튼을 선택한다.
본 실시예에서, 컨트롤러(164)는 페어링에 대해 사용자 A에 의해 이루어진 선택을 나타내는 입력 데이터를 생성한다. 컨트롤러(164)의 무선 통신 IC(157)(도 1b 또는 1d)는 컨트롤러(164)와 디스플레이 장치(166) 사이의 무선 연결(115)을 통해 입력 데이터를 디스플레이 장치(166)로 전송한다. 디스플레이 장치(166)의 GPU는 입력 데이터를 수신하고 디스플레이 장치(166)에 긍정적인 또는 부정적인 응답을 디스플레이한다.
본 실시예에서, 컨트롤러(164)는 또한 도 1a의 통신 채널(110) 또는 도 1c의 통신 채널(155)을 통해 입력 데이터를 서버 시스템(104)으로 전송한다. 예를 들어, 입력 데이터는 도 1a의 연결 채널(CC1)을 통해 컨트롤러(164)로부터 도 1a의 라우터(108)로 전송되고, 이는 입력 데이터를 케이블(EC)을 통해 도 1a의 모뎀(120)으로 라우팅한다. 모뎀(120)은 네트워크 통신 프로토콜을 입력 데이터에 적용함으로써 하나 이상의 전송 패킷들을 생성하고, 전송 패킷을 도 1a의 연결(C1), 도 1a의 컴퓨터 네트워크(122) 및 도 1a의 연결(C2)을 통해 서버 시스템(104)으로 전송한다.
게다가, 본 실시예에서, 통신 인터페이스(170)는 입력 데이터가 있는 전송 패킷들을 수신하고 네트워크 통신 프로토콜을 적용하여 전송 패킷들로부터 입력 데이터를 추출한다. 통신 인터페이스(170)의 프로세서는 입력 데이터의 구조를 갖는 것으로 전송 패킷 내의 정보를 식별하고, 그렇게 식별 시, 입력 데이터를 세션 연결 프로세서(178)로 전송한다. 세션 연결 프로세서(178)는 입력 신호 내의 응답이 긍정인지 부정인지를 결정한다. 긍정적인 응답을 갖는 입력 데이터를 수신하는 것에 응답하여, 세션 연결 프로세서(178)는 컨트롤러(164)를 세션(106)과 페어링한다. 한편, 부정적인 응답을 갖는 입력 데이터를 수신하는 것에 응답하여, 세션 연결 프로세서(178)은 컨트롤러(164)를 세션(106)과 페어링하지 않는다. 이러한 방식으로, 사용자 A는 컨트롤러(164)를 세션(106)과 페어링할지 여부를 결정한다.
일 실시예에서, 컨트롤러(164)는 컨트롤러들(102 및 160) 둘 다의 컴포넌트들을 포함한다. 예를 들어, 프로세서(194)는 도 1d의 광대역 통신 IC(162) 및 도 1b의 무선 통신 IC(156) 둘 다에 결합된다. 이 예에서, 컨트롤러(164)의 프로세서(194)는 입력 데이터를 도 1a의 무선 통신 IC(156) 및 통신 채널(110)을 통해 그리고 도 1c의 광대역 통신 IC(162) 및 통신 채널(155)을 통해 서버 시스템(104)으로 전송한다. 일 실시예에서, 페어링 요청 통지는 컨트롤러(164)의 디스플레이 화면 상에 디스플레이하기 위해 또는 컨트롤러(164)의 하나 이상의 스피커들을 통한 출력을 위해 통신 네트워크(177)를 통해 서버 시스템(104)으로부터 컨트롤러(164)로 전송된다.
일 실시예에서, 식별 정보는 로그인 정보와 다르다는 점에 유의해야 한다. 예를 들어, 로그인 정보는 사용자 A에 의해 컨트롤러의 입력 장치를 통해 서버 시스템(104)에 제공되거나 입력되는 사용자 이름 또는 패스워드와 같은 일련의 영숫자 문자이다. 식별 정보는 사용자 A에 의해 컨트롤러의 입력 장치를 통해 서버 시스템(104)에 제공되거나 입력된 일련의 영숫자 문자가 아니다.
일 실시예에서, 컨트롤러(102)가 서버 시스템(104)과 페어링될 때까지, 사용자 A는 컨트롤러(102)를 사용하여 가상 장면의 상태를 변경할 수 없다. 예를 들어, 사용자 A는 입력 장치(150)를 선택하거나 이동함으로써 컨트롤러(102)를 사용하여 가상 장면의 상태를 변경하도록 입력 정보를 추가로 생성하기 위한 선택을 제공하고 입력 정보를 갖는 하나 이상의 전송 패킷들이 생성되어 통신 네트워크(177)를 통해 통신 인터페이스(170)로 전송된다. 통신 인터페이스(170)는 네트워크 통신 프로토콜을 적용하여 가상 장면의 상태를 변경하기 위한 입력 정보를 추출하고, 입력 정보를 세션 ID 프로세서(183)에 제공한다. 통신 인터페이스(170)의 프로세서는 전송 패킷들 내의 정보가 가상 장면의 상태를 변경하기 위한 입력 정보의 구조와 일치하는 일련의 버튼 누름 또는 일련의 조이스틱 이동과 같은 구조를 가지고 있다고 결정하고, 그렇게 결정 시, 입력 정보를 세션 ID 프로세서(183)로 전송한다.
이 실시예에서, 입력 정보를 수신 시, 세션 ID 프로세서(183)는 입력 정보가 수신된 컨트롤러(164)가 세션(106)과 페어링되는지 여부를 결정하기 위해 요청을 세션 연결 프로세서(178)로 전송한다. 세션 연결 프로세서(178)로부터 컨트롤러(164)가 세션(106)과 페어링되지 않았다는 결정을 수신 시, 세션 ID 프로세서(183)는 입력 정보를 입력 채널(184)을 통해 실행 엔진(186)에 제공하지 않으며, 실행 엔진(186)은 가상 장면의 상태를 변경하기 위해 입력 정보를 처리할 수 없다.
일 실시예에서, 하나의 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 이 실시예에서, 통신 인터페이스(170)는 연결 채널(111)(도 1b)을 사용하는 것에서 셀룰러 네트워크(154)(도 1c)를 사용하는 것으로 또는 그 반대로 핸드 오버가 수행되어야 하는지 여부를 결정한다. 예를 들어, 통신 인터페이스(170)의 프로세서는 셀룰러 네트워크(154)가 연결 채널(111)보다 더 나은 서비스 품질(QoS)을 가지고 있거나 연결 채널(111)에 비해 셀룰러 네트워크(154)를 통해 데이터를 전송 시 더 낮은 레이턴시가 있다고 결정한다. 설명을 위해, 통신 인터페이스(170)의 프로세서는 셀룰러 네트워크(154)가 연결 채널(111)에 비해 더 적은 양의 패킷 손실 또는 더 짧은 핑 시간을 갖는다고 결정한다. 셀룰러 네트워크(154)가 더 나은 QoS를 갖는다고 결정 시, 통신 인터페이스(170)의 프로세서는 페어링 정보 또는 페어링 요청 통지와 같은, 본원에 설명된, 데이터를 서버 시스템(104)에서 컨트롤러로 전송하기 위한 무선 통신 IC(156) 대신 광대역 통신 IC(162)를 사용하기로 결정한다.
일 실시예에서, 컨트롤러는 도 1b 또는 1d에 예시된 나머지 컴포넌트들에 외에도 도 1b의 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다를 포함한다. 이 실시예에서, 상기에 설명된 핸드오버가 없다. 오히려, 통신 인터페이스(170)의 프로세서는 컨트롤러에 연결하기 위해 무선 통신 IC(156) 및 광대역 통신 IC(162) 둘 다 사용하기로 결정한다. 통신 인터페이스(170)의 프로세서는 무선 통신 IC(156) 및 광대역 통신 IC(162)를 통해 컨트롤러로 페어링 정보 또는 페어링 요청 통지와 같은, 본원에 설명된, 동일한 데이터를 전송한다. 프로세서(194)은 무선 통신 IC(156) 또는 광대역 통신 IC(162)에 의해, 서버 시스템(104)으로부터 먼저 수신된 데이터를 처리한다. 예를 들어, 무선 통신 IC(156)는 서버 시스템(104)으로부터 패킷 ID 또는 타임스탬프를 갖는 하나 이상의 전송 패킷들을 수신하고 광대역 통신 IC(162)는 서버 시스템(104)으로부터 동일한 패킷 ID 또는 동일한 타임스탬프를 갖는 하나 이상의 전송 유닛들을 수신한다. 무선 통신 IC(156)가 광대역 통신 IC(162)에 의한 전송 유닛들의 수신과 비교하여 먼저 하나 이상의 전송 패킷들을 수신할 때, 무선 통신 IC(156)는 하나 이상의 전송 패킷들으로부터 정보를 추출하고 정보를 처리를 위해 프로세서(194)로 전송한다.
일 실시예에서, 컴퓨팅 장치(114)(도 1a)는 입력 장치들(150)(도 1b) 중 하나 이상의 선택이 컨트롤러(164)상에서 사용자 A에 의해 이루어질 때 슬립 모드로부터 활성화될 수 있다. 서버 시스템(104)은 사용자 A가 돌 때 컨트롤러(164)의 PS ™ 버튼을 선택하거나 컨트롤러(164) 상의 지문 패드를 선택할 때 컴퓨팅 장치(114)를 웨이크업시킨다. 슬립 모드에서, 컴퓨팅 장치(114)는 여전히 서버 시스템(104)으로부터 메시지를 수신할 수 있는 저전력 상태에서 동작한다.
도 1fa는 컴퓨팅 장치(114)의 디스플레이 화면(116)에 디스플레이되는 페어링 요청 통지(190)의 일 실시예의 다이어그램이다. 페어링 요청 통지(190)는 도 1e의 페어링 통지 프로세서(180)에 의해 생성되는 페어링 요청 통지의 일 예이다. 페어링 요청 통지(190)는 사용자 A의 생체 인식 정보가 인증되었음을 포함한다. 게다가, 페어링 요청 통지(190)는 사용자 A가 도 1e의 컨트롤러(164)와 페어링하기를 원하는지에 관한 질문을 포함한다. 사용자 A는 컨트롤러(164)에서 하나 이상의 버튼들과 하나 이상의 조이스틱들을 선택하여 사용자 A가 세션(106)과 컨트롤러(164)를 페어링하기를 원하는지 여부를 표시한다. 컨트롤러(164)는 사용자 A에 의해 이루어진 선택을 나타내는 입력 데이터를 생성한다.
도 1fb는 컨트롤러(192)의 디스플레이 화면(195) 상의 페어링 요청 통지(190)의 디스플레이를 예시하기 위한 컨트롤러(192)의 일 실시예의 다이어그램이다. 본원에 설명된 바와 같은, 디스플레이 화면의 예들은 액정 디스플레이 화면 또는 발광 다이오드 화면 또는 플라즈마 디스플레이 화면을 포함한다. 컨트롤러(192)는 도 1a의 컨트롤러(102), 도 1c의 컨트롤러(160) 및 도 1e의 컨트롤러(164)의 예이다. 컨트롤러(192)는 페어링 요청 통지(190)이 디스플레이되는 디스플레이 화면(195)을 갖는다. 컨트롤러(192)는 도 1b 및 1d의 프로세서(194)에 결합된 GPU를 포함하고 GPU는 디스플레이 화면(195)에 결합된다.
도 1e의 페어링 통지 프로세서(180)는 페어링 요청 통지(190) 및 페어링 요청 통지(190)을 컨트롤러(192)로 전송하기 위한 인스트럭션을 생성한다. 페어링 통지 프로세서(180)는 페어링 요청 통지 및 인스트럭션을 도 1e의 통신 인터페이스(170)로 전송한다.
인스트럭션 및 페어링 요청 통지(190)를 수신 시, 통신 인터페이스(170)는 네트워크 통신 프로토콜을 컨트롤러(192)의 대상 주소 및 페어링 요청 통지(190)에 적용하여 하나 이상의 전송 패킷들을 생성하고 전송 패킷들을 도 1a의 통신 채널(110)을 통해 컨트롤러(192)로 전송한다. 도 1a를 참조하면, 통신 인터페이스(170)는 전송 패킷들을 연결(C2), 컴퓨터 네트워크(122), 연결(C1), 모뎀 (120), 케이블(EC), 라우터(108) 및 연결 채널(CC1)을 통해 컨트롤러(192)로 전송한다. 모뎀(120)은 페어링 요청 통지(190) 및 컨트롤러(192)의 대상 주소를 포함하는 전송 패킷들을 수신한다. 모뎀(120)은 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 컨트롤러(192)의 대상 주소 및 페어링 요청 통지(190)를 추출하고, 페어링 요청 통지(190) 및 대상 주소를 라우터(118)로 전송한다. 라우터(118)는 컨트롤러(192)의 대상 주소로부터 페어링 요청 통지(190)가 컨트롤러(192)로 전송되어야 한다고 결정하고, 페어링 요청 통지를 연결 채널(CC1)을 통해 컨트롤러(192)로 전송한다. 예를 들어, 라우터(118)는 컨트롤러(192)의 IP 주소로부터 페어링 요청 통지(190)가 컨트롤러(192)로 전송되어야 한다는 것을 식별한다. 페어링 요청 통지(190)를 수신 시, 컨트롤러(192)의 GPU는 디스플레이 화면(195) 상에 페어링 요청 통지(190)를 디스플레이한다. 페어링 요청 통지가 오디오 데이터인 경우, 컨트롤러(192)의 오디오 프로세서 및 하나 이상의 스피커들은 페어링 요청 통지를 사운드로 출력한다. 마찬가지로, 페어링 요청 통지가 이미지 및 오디오 데이터를 둘 다 포함하는 경우, 컨트롤러(192)의 GPU와 오디오 프로세서 둘 다 서로 동기화하여 페어링 요청 통지를 이미지 및 사운드로 출력한다.
도 1c의 셀룰러 통신 프로토콜이 사용되는 일 실시예에서, 페어링 요청 통지(190) 및 페어링 요청 통지(190)를 서버 시스템(104)의 페어링 통지 프로세서(180)로부터 컨트롤러(160)로 전송하기 위한 인스트럭션을 수신 시, 통신 인터페이스(170)는 네트워크 통신 프로토콜을 컨트롤러(160)의 대상 주소 및 페어링 요청 통지(190)에 적용하여 하나 이상의 전송 패킷들을 생성하고 전송 패킷들을 도 1c의 통신 채널(155)을 통해 컨트롤러(160)로 전송한다. 도 1c를 참조하면, 통신 인터페이스(170)는 전송 패킷을 연결(C2), 컴퓨터 네트워크(122), 셀룰러 연결 채널(153), 타워(TW) 및 셀룰러 연결 채널(151)을 통해 컨트롤러(160)로 전송한다. 컴퓨터 네트워크(122)의 게이트웨이는 네트워크 통신 프로토콜을 적용하여 전송 패킷들로부터 대상 주소 및 페어링 요청 통지(190)을 추출하고, 셀룰러 통신 프로토콜을 대상 주소 및 페어링 요청 통지(190)에 적용하여 하나 이상의 전송 유닛들을 생성하고, 전송 유닛들을 셀룰러 통신 채널(155)을 통해 타워(TW)로 전송한다. 셀 타워(TW)의 트랜시버는 컨트롤러(160)의 대상 주소에 따라 셀룰러 통신 채널(151)을 통해 컨트롤러(160)로 전송 유닛들을 포워딩한다. 컨트롤러(160)의 광대역 통신 IC(162)(도 1d)는 전송 유닛들에 셀룰러 통신 프로토콜을 적용하여 페어링 요청 통지(190)을 추출하고 컨트롤러(160)의 디스플레이 화면 상에 페어링 요청 통지(190)를 디스플레이하기 위해 페어링 요청 통지(190)를 컨트롤러(160)의 GPU에 제공한다. 페어링 요청 통지(190)가 사운드로 출력되어야 하는 경우, 광대역 통신 IC(162)는 페어링 요청 통지(190)를 컨트롤러(160)의 오디오 프로세서에 제공하여 페어링 요청 통지(190)를 사운드로 출력한다. 페어링 요청 통지(190)가 이미지 및 오디오 데이터 둘 다 포함하는 경우, 광대역 통신 IC(162)는 페어링 요청 통지(190)의 이미지 데이터를 컨트롤러(160)의 GPU에 제공하고 페어링 요청 통지(190)의 오디오 데이터를 컨트롤러(160)의 오디오 프로세서에 제공한다. 오디오 데이터의 출력을 비디오 데이터의 디스플레이와 함께 사운드로 동기화한다.
도 1g는 컨트롤러(192)의 햅틱 피드백 장치(196), 오디오 장치(101) 및 디스플레이 장치(107)를 예시하기 위한 컨트롤러(192)의 일 실시예의 다이어그램이다. 컨트롤러(192)는 도 1b의 컨트롤러(102)의 컴포넌트들을 가지며 햅틱 피드백 장치(196), 오디오 장치(101) 및 디스플레이 장치(107)와 같은 추가 컴포넌트들을 갖는다.
디스플레이 장치(107), 햅틱 피드백 장치(196) 및 오디오 장치(101)은 프로세서(194)에 결합된다. 디스플레이 장치(107)는 GPU와 같은 프로세서(109), 및 디스플레이 화면(195)을 포함한다. 디스플레이 화면(195)은 프로세서(109)에 결합된다.
오디오 장치(101)는 오디오 프로세서(105) 및 스피커(103)를 포함한다. 스피커(103)는 오디오 프로세서(105)에 결합된다. 햅틱 피드백 장치(196)는 프로세서(198C), 드라이버(198B) 및 기계 컴포넌트(198A)를 포함한다. 프로세서(198C)는 기계 컴포넌트(198A)에 결합된 드라이버(198B)에 결합된다. 드라이버의 예는 서로 결합되는 하나 이상의 트랜지스터들을 포함한다. 기계 컴포넌트(198A)의 예는 모터 또는 트랜스듀서와 같은 촉각 센서를 포함한다.
프로세서(194)는 무선 통신 IC(156)로부터 페어링 관련 통지 또는 페어링 요청 통지(190)과 같은 통지를 수신하고 통지를 프로세서(109)에 제공한다. 프로세서(109)는 디스플레이 화면(195)에 비디오 데이터를 디스플레이하기 위해 통지에 렌더링 동작을 적용한다.
게다가, 프로세서(194)는 무선 통신 IC(156)로부터 페어링 관련 통지 또는 페어링 요청 통지(190)와 같은 통지의 오디오 데이터를 수신하고 오디오 데이터를 오디오 프로세서(105)에 제공한다. 통지의 오디오 데이터는 통지의 하나 이상의 이미지들에 포함된 것과 동일한 정보를 가지고 있거나 통지의 이미지들과 함께 사운드로 출력될 추가 정보를 가지고 있다. 오디오 프로세서(105)는 오디오 데이터를 필터링하거나 증폭하거나 디지털에서 아날로그 형태로 변환하는 것과 같이 처리하고, 처리된 오디오 데이터를 스피커(103)에 제공한다. 스피커(103)는 처리된 오디오 데이터를 사운드로 출력한다.
또한, 프로세서(198C)는 페어링 관련 통지 또는 페어링 요청 통지(190)와 같은 통지와 함께 출력될 햅틱 피드백 데이터를 수신하거나, 무선 통신 IC(156)로부터 애플리케이션 1(도 1a)의 실행 시 생성되며 햅틱 피드백 데이터를 프로세서(198C)에 제공한다. 햅틱 피드백 데이터를 수신 시, 프로세서(198C)는 드라이버(198B)로 신호를 전송하고 드라이버(198B)는 신호 수신 시 전류를 출력한다. 기계 컴포넌트(198A)는 전류에 따라 진동하여 컨트롤러(192)를 잡고 있는 사용자 A에게 햅틱 피드백 또는 촉각 피드백을 제공한다.
도 2는 컴퓨팅 장치(114)의 미러링 효과를 예시하기 위한 시스템(200)의 일 실시예의 다이어그램이다. 시스템 (200)은 시스템 (200)이 디스플레이 장치(202)를 포함하는 것을 제외하고는 도 1a의 시스템(100) 또는 도 1d의 시스템(159)의 컴포넌트들을 포함한다. 디스플레이 장치(202)의 예는 텔레비전 또는 스마트 텔레비전 또는 모니터이다. 디스플레이 장치(202)는 발광 다이오드 화면 또는 액정 디스플레이 화면 또는 플라즈마 디스플레이 화면과 같은 디스플레이 화면(204)을 갖는다.
컴퓨팅 장치(114)는 무선 또는 유선 연결(206)을 통해 디스플레이 장치(202)와 통신한다. 예를 들어, 동글(252)은 컴퓨팅 장치(114)가 비디오 및 오디오 프레임들과 같은 미디어들을 컴퓨팅 장치(114)로부터 디스플레이 장치(202)로 무선으로 스트리밍 할 수 있도록 디스플레이 장치(202)의 고화질 멀티미디어 인터페이스(HDMI) 포트에 연결된다. 미디어의 비디오 프레임들은 디스플레이 화면(204)에 디스플레이되고 미디어 상의 오디오 프레임들은 디스플레이 장치(202)의 하나 이상의 스피커들을 통해 출력된다. 유선 연결(206)의 예는 HDMI 케이블을 포함한다.
일 실시예에서, 디스플레이 장치(202)에 미디어를 출력하는 것 외에, 미디어는 컴퓨팅 장치(114)에 의해 출력된다. 예를 들어, 미디어의 비디오 프레임들은 디스플레이 화면들(116 및 204)에 디스플레이되고 오디오 프레임들은 컴퓨팅 장치(114)의 하나 이상의 스피커들 및 디스플레이 장치(202)의 하나 이상의 스피커들을 통해 출력된다.
컴퓨팅 장치(114)와 서버 시스템(104) 사이에 세션(106)이 설정되고 컨트롤러(164)와 세션(106)을 페어링하기 전에, 게임 타이틀의 이미지와 같은 세션(106)과 관련된 정보가 먼저 컴퓨팅 장치(114)의 디스플레이 화면(116) 상에 디스플레이된다. 컴퓨팅 장치(114)의 프로세서는 세션(106)과 관련된 정보를 갖는 미디어를 유선 또는 무선 연결(206)을 통해 디스플레이 장치(202)로 스트리밍하거나 전송한다. 디스플레이 장치(202)의 GPU는 디스플레이 화면(204)에 세션(106)과 관련된 정보의 이미지들을 디스플레이하고 디스플레이 장치(202)의 하나 이상의 스피커들은 세션(106)과 관련된 정보를 갖는 사운드들을 출력하거나 세션(106)과 관련된 정보와 동기화된 다른 정보를 갖는 사운드들을 출력한다
게다가, 페어링 관련 통지 또는 페어링 요청 통지와 같은 통지가 컴퓨팅 장치(114)에 디스플레이될 때, 통지는 유선 또는 무선 연결(206)을 통해 컴퓨팅 장치(114)의 프로세서로부터 디스플레이 장치(202)로 스트리밍되거나 전송된다. 디스플레이 장치(202)의 GPU는 디스플레이 화면(204)에 통지를 디스플레이한다. 게다가, 디스플레이 장치(202)의 오디오 프로세서는 디스플레이 장치(202)의 하나 이상의 스피커들을 통해 통지의 사운드들을 출력한다.
도 3은 컨트롤러(164)의 장치 ID를 발견하기 위한 디스커버리 프로그램(306)의 실행을 예시하기 위한 시스템(300)의 일 실시에의 다이어그램이다. 컴퓨팅 장치(114)는 프로세서(302), 메모리 장치(304), 무선 통신 IC(308) 및 무선 통신 IC(310)를 포함한다. 무선 통신 IC(310)는 무선 통신 프로토콜을 연결 채널(CC2)을 통해 컴퓨팅 장치(114)로부터 수신된 하나 이상의 통신 패킷들에 적용하여 통신 패킷들으로부터 데이터를 추출하고, 연결 채널(CC2)을 통해 프로세서(302)로부터 전송될 데이터에 무선 통신 프로토콜을 적용하여 하나 이상의 통신 패킷들을 생성한다. 무선 통신 IC(308)의 예들은 컨트롤러(164)와 컴퓨팅 장치(114)(도 1a) 사이의 통신을 가능하게 하는 BluetoothTM장치를 포함한다. 프로세서(302)는 메모리 장치(304)에 그리고 무선 통신 IC(308)에 결합된다. 디스커버리 프로그램(306)은 메모리 장치(304) 내에 저장된다. 프로세서(302)는 메모리 장치(304), 무선 통신 IC(310) 및 무선 통신 IC(308)에 결합된다.
애플리케이션 1의 실행의 세션(106)이 컴퓨팅 장치(114)와 서버 시스템(104) 사이에 설정되고 세션(106)이 컨트롤러(164)와 페어링되기 전에, 프로세서(302)는 디스커버리 프로그램(306)을 실행하여 컨트롤러(164)의 장치 ID를 컨트롤러(164)에 요청한다. 컨트롤러(164)의 프로세서(194)(도 1b 또는 1d)는 장치 ID 칩(158)으로부터 장치 ID를 검색하고 장치 ID를 무선 통신 IC(157)(도 1b 또는 1d)에 제공한다. 무선 통신 IC(157)는 BluetoothTM 프로토콜과 같은 무선 통신 프로토콜을 장치 ID에 적용하여 하나 이상의 전송 데이터그램들을 생성하고 전송 데이터 그램을 무선 연결(115)을 통해 컴퓨팅 장치(114)의 무선 통신 IC(308)로 전송한다.
무선 통신 IC(308)는 컨트롤러(164)로부터 수신된 하나 이상의 전송 데이터그램들에 무선 통신 프로토콜을 적용하여 전송 데이터그램들으로부터 장치 ID를 추출하고 장치 ID를 프로세서(302)에 제공한다. 프로세서(302)는 장치 ID를 서버 시스템(104)에 전송하기 위한 인스트럭션을 생성한다. 프로세서(302)는 무선 통신 IC(310)에 인스트럭션 및 장치 ID를 전송하며, 이 무선 통신 IC는 무선 통신 프로토콜을 장치 ID 및 인스트럭션에 적용하여 하나 이상의 통신 패킷들을 생성사고 통신 패킷들을 연결 채널(CC2)를 통해 라우터(118)로 전송한다.
라우터(118)는 무선 통신 프로토콜을 통신 패킷들에 적용하여 장치 ID 및 인스트럭션을 얻고, 장치 ID 및 인스트럭션을 모뎀(120)으로 보낸다. 모뎀(120)은 네트워크 통신 프로토콜을 장치 ID 및 인스트럭션 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 연결(C1), 컴퓨터 네트워크(122) 및 연결(C2)을 통해 서버 시스템(104)으로 전송한다.
도 4a는 컨트롤러(408) 내의 교정 프로세서(404)의 사용을 예시하기 위한 컨트롤러(408)의 일 실시예의 다이어그램이다. 컨트롤러(408)는 도 1a의 컨트롤러(102), 또는 도 1e의 컨트롤러(164) 또는 도 1fb의 컨트롤러(192)의 예이다. 설명을 위해, 컨트롤러(408)는 컨트롤러(102)의 컴포넌트들을 포함한다. 컨트롤러(408)는 모션 센서 시스템(152), 교정 프로세서(404), 프로세서(194) 및 무선 통신 IC(156)를 포함한다. 교정 프로세서(404)는 모션 센서 시스템(152) 및 프로세서(194)에 결합된다.
모션 센서 시스템(152)은 컨트롤러(408)의 위치 및 방향을 계산하기 위한 데이터, 또는 컨트롤러(408)의 입력 장치(150)의 위치 및 방향을 계산하기 위한 데이터, 또는 이들의 조합과 같은 센서 값들을 측정하고 센서 값들을 교정 프로세서(404)에 제공한다. 예를 들어, 모션 센서 시스템(152)은 컨트롤러(408)의 기준 좌표계에 대한 컨트롤러(408)의 가속도 및 컨트롤러(408)의 방향을 측정한다. 다른 예로서, 모션 센서 시스템(152)은 컨트롤러(408)의 기준 좌표계에 대한 입력 장치(150)의 가속도 및 입력 장치(150)의 방향을 측정한다.
교정 프로세서(404)는 모션 센서 시스템(152)으로부터 센서 값들을 수신하고 센서 값들 중 하나 이상을 교정한다. 예를 들어, 교정 프로세서(404)는 도 1b를 참조하여 상기에 설명된 입력 정보의 예인, 교정된 센서 값들을 출력하기 위해 센서 값들에 인자를 곱하거나, 더하거나, 빼는 것과 같이 스케일링한다. 인자의 예로는 실수를 포함한다. 설명을 위해, 컨트롤러(408)가 위치 P1에서 2 인치 떨어진 위치 P2로 이동할 때, 교정 프로세서(404)는 위치 P1과 P2 사이의 거리를 2 인치 미만 또는 2 인치 이상 떨어져 있도록 스케일링한다. 다른 예시로서, 입력 장치(150)가 PO1 위치에서 1 센티미터 떨어진 위치 PO2로 이동할 때, 교정 프로세서(404)는 위치 PO1과 PO2 사이의 거리를 1 센티미터 미만 또는 1 센티미터 이상 떨어져 있도록 스케일링한다.
교정된 센서 값들은 교정 프로세서(404)에 의해 프로세서(194)에 제공되고, 이는 교정된 센서 값들을 서버 시스템(104)으로 전송하기 위한 인스트럭션을 생성한다. 프로세서(194)는 인스트럭션 및 교정된 센서 값들을 무선 통신 IC(156)로 전송한다. 무선 통신 IC(156)는 네트워크 통신 프로토콜을 적용함으로써 인스트럭션 및 교정된 센서 값들을 통합하는 하나 이상의 전송 유닛들을 생성하고 전송 유닛들을 라우터(118)로 전송한다. 라우터(118)는 무선 통신 프로토콜을 적용하여 인스트럭션 및 교정된 센서 값들을 획득하고, 인스트럭션 및 교정된 센서 값들을 모뎀(120)(도 1a)으로 전송한다. 모뎀(120)은 네트워크 통신 프로토콜을 보정된 센서 값들에 적용하여 하나 이상의 전송 패킷들을 생성하고, 전송 패킷들을 통신 채널(108)(도 1a)을 통해 서버 시스템(104)(도 1a)으로 전송한다. 컨트롤러(408)에서 센서 값들의 교정은 도 1a의 서버 시스템(104)의 워크로드를 감소시킨다.
도 4b는 컨트롤러(450) 내의 교정 프로세서(404)의 사용을 예시하기 위한 컨트롤러(450)의 일 실시예의 다이어그램이다. 컨트롤러(450)는 도 1c의 컨트롤러(160), 또는 도 1e의 컨트롤러(164) 또는 도 1fb의 컨트롤러(192)의 예이다. 컨트롤러(450)는 모션 센서 시스템(152), 교정 프로세서(404), 프로세서(194) 및 광대역 통신 IC(162)를 포함한다.
교정된 센서 값들은 교정 프로세서(404)에 의해 프로세서(194)에 제공되고, 이는 교정된 센서 값들을 서버 시스템(104)으로 전송하기 위한 인스트럭션을 생성한다. 프로세서(194)는 인스트럭션 및 교정된 센서 값들을 광대역 통신 IC(162)로 전송한다. 광대역 통신 IC(162)는 셀룰러 통신 프로토콜을 적용함으로써 교정된 센서 값들 및 인스트럭션을 통합하는 하나 이상의 전송 유닛들을 생성하고, 하나 이상의 전송 유닛들을 셀룰러 네트워크(154)(도 1c)를 통해 서버 시스템(104)(도 1c)로 전송한다. 컨트롤러(450)에서 센서 값들의 교정은 도 1c의 서버 시스템(104)의 워크로드를 감소시킨다.
도 5는 서버 시스템(500)의 교정 프로세서(404)에 의해 센서 값들의 교정을 예시하기 위한 서버 시스템(500)의 일 실시예의 다이어그램이다. 컨트롤러에 의해 수행되는 교정 대신에, 교정은 서버 시스템(500)에 의해 수행된다. 서버 시스템(500)은 도 1a 또는 1c의 서버 시스템(104)의 예이다. 서버 시스템(500)은 서버 시스템(104)의 컴포넌트들을 포함한다. 서버 시스템(500)은 입력 채널(184) 및 통신 인터페이스(170)에 결합된, 교정 프로세서(404)를 더 포함한다.
서버 시스템(500)의 통신 인터페이스(170)는 센서 값들을 더 포함하는 입력 정보를 갖는 하나 이상의 전송 패킷들을 수신하고, 네트워크 통신 프로토콜을 전송 패킷들에 적용하여 센서 값들을 추출한다. 통신 인터페이스(170)의 프로세서는 전송 패킷들 내의 정보가 센서 값들의 구조와 일치한다고 결정하고 센서 값들을 교정 프로세서(404)로 전송한다. 교정 프로세서(404)는 센서 값들을 수신하고 센서 값들을 교정하여 교정된 센서 값들을 출력한다. 교정 프로세서(404)는 입력 채널(184)을 통해 교정된 센서 값들을 실행 엔진(186)에 제공한다. 실행 엔진(186)은 애플리케이션 1의 실행 동안 교정된 센서 값들을 적용하여 인코딩을 위한 하나 이상의 프레임들을 생성하도록 가상 장면의 상태를 변경한다.
도 6은 본 개시에 설명된 실시예에 따른, 애플리케이션 1과 같은 상호작용 프로그램과 인터페이스하기 위한 비디오 게임 컨트롤러(600)의 사시도를 도시한다. 비디오 게임 컨트롤러(600)는 도 1a의 컨트롤러(102), 도 1c의 컨트롤러(160) 및 도 1e의 컨트롤러(164)의 예이다. 비디오 게임 컨트롤러(600)는 본체(602) 및 본체(602)로부터 연장되는 연장부들(604A 및 604B)을 포함한다. 연장부(604A 및 604B)는 각각 사용자 A의 왼손과 오른손에 의해 잡히도록 구성되며, 따라서 사용자 A가 비디오 게임 컨트롤러(600)를 안전하게 잡을 수 있도록 핸들로서 기능한다. 본체(602)의 상면에는, 버튼들(606A, 606B, 606C, 606D), 조이스틱들(608A, 608B), 다수의 방향 패드들(610A, 610B, 610C, 610D)과 같은 다양한 입력 장치들이 포함되어 있다. 또한 비디오 게임 컨트롤러(600)의 본체(602)를 통해 위에서 아래로 연장되는 3 차원(3D) 제어 바(612)의 상부 부분이 도시되어 있다. 사용자 A에게 피드백을 제공하는 사운드를 재생하기 위해 스피커(614)가 제공된다.
추가로, 비디오 게임 컨트롤러(600)는 사용자 A가 왼손 및 오른손에 각각 연장부들(604A, 604B)을 잡았을 때 사용자 A의 머리를 향하는 본체(602)의 상면에 정의된 터치 패널(616)을 포함한다. 터치 패널(616)은 실질적으로 수평 방식으로 배향되고 그룹 A와 B 사이에 위치되어 연장부들(604A 및 604B)을 잡고 있는 사용자 A가 사용자 A의 양손 엄지로 터치 패널(616)을 쉽게 사용할 수 있도록 한다. 그룹 A는 버튼들(606A, 606B, 606C, 606D)을 포함하고 그룹 B는 방향 패드들(610A, 610B, 610C, 610D)을 포함한다. 터치 패널(616)은 사용자 A에 의해 만들어진 터치 제스처들을 검출하기 위해 터치 감지 기술(예를 들어, 저항성, 용량성 등)을 사용한다. 예시된 실시예에서, 터치 패널(616)은 사용자(A)가 혼자의 느낌에 기초하여 터치 패널(616) 상의 엄지 손가락의 대략적인 수직 위치를 쉽게 결정할 수 있게 하는 그 형상에 의한 촉각 감각을 제공한다.
비디오 게임 컨트롤러(600)는 상기에 설명된 생체 인식 ID를 출력하기 위해 사용자 A의 하나 이상의 손가락들의 터치를 수신하는 지문 패드(618)를 포함한다. 지문 패드(618)는 상기에 설명된 지문 판독기의 일 예이다. 지문 패드(618)는 조이스틱들(608A 및 608B) 사이 및 터치 패널(616) 아래에 위치된다.
일 실시예에서, 지문 패드(618)는 컨트롤러(600) 상의 임의의 다른 위치에 위치된다. 예를 들어, 지문 패드(618)는 터치 패널(616) 내에 통합된다. 다른 예로서, 지문 패드는 연장부(604A)의 표면 또는 연장부(604B)의 표면 내에 또는 양쪽 표면 내에 통합된다. 또 다른 예로서, 터치 패널(616)은 액정 디스플레이 또는 발광 다이오드 디스플레이 또는 플라즈마 디스플레이와 같은 디스플레이 화면의 일부이고, 지문 패드(618)는 디스플레이 화면 내에 통합된다. 또 다른 예로서, 조이스틱(608A) 또는 조이스틱(608B)의 상부 표면 내에 지문 패드가 통합되거나 조이스틱(608A 및 608B)의 표면에 다수의 지문 패드들이 통합된다. 또 다른 예로서, 지문 패드(618)는 컨트롤러(600)의 후면에 위치된다.
일 실시예에서, 비디오 게임 컨트롤러(600)는 실제 환경으로부터 사운드를 캡처하기 위한 하나 이상의 마이크들을 포함한다. 일 예로서, 마이크들은 마이들의 어레이로 배열된다. 배열은 마이크의 선형 배열이다. 마이크 어레이에 3개 이상의 마이크들이 포함된 경우, 마이크 어레이에서 캡처된 오디오 데이터의 분석을 기반으로 마이크 어레이와 관련된 음원의 위치를 결정할 수 있다. 보다 구체적으로, 사운드 소스는 마이크 어레이의 각 마이크에 의해 캡처된 사운드의 상대적 타이밍을 기반으로 마이크 어레이에 대해 국부화 될 수 있다. 비디오 게임 컨트롤러(600)의 위치 및 방향(예를 들어, 도 1b 및 1d의 모션 센서 시스템(152) 및 본원의 다른 곳에서 정의된 추적 방법에 기초하여 결정됨)과 조합하여, 그리고 마이크 어레이의 위치 및 방향의 확장에 의해, 상호작용 환경 내의 음원의 위치가 결정될 수 있다. 게다가, 캡처된 사운드는 실제 환경의 특정 영역에서 발생하지 않는 사운드를 제외하도록 처리될 수 있다. 사용자 A의 소리는 상기에 설명된 생체 정보를 출력하기 위해 마이크들에 의해 캡처된다.
본 개시의 설명된 실시예들은 핸드 헬드 장치, 마이크로프로세서 시스템, 마이크로 프로세서 기반 또는 프로그램 가능 소비자 전자 제품, 미니 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성들로 실시될 수 있다. 본 개시에 설명된 몇몇 실시예들은 또한 태스크들이 유선 기반 또는 무선 네트워크를 통해 링크된 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다.
상기 실시예들을 염두에 두고, 본 개시에 설명된 다수의 실시예들은 컴퓨터 시스템들에 저장된 데이터를 포함하는 다양한 컴퓨터 구현 동작들을 사용할 수 있다는 것을 이해해야 한다. 이러한 동작들은 이러한 물리적 수량의 물리적 조작을 필요로 한다. 본 개시에 설명된 다양한 실시예들의 일부를 형성하는 본원에 설명된 임의의 동작들은 유용한 기계 동작들이다. 본 개시에 설명된 몇몇 실시예들은 또한 이러한 동작들을 수행하는 기기 또는 장치에 관한 것이다. 장치는 요구된 목적들을 위해 특별히 구성될 수 있거나, 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성된 컴퓨터일 수 있다. 특히, 다양한 기계들은 본원의 교시에 따른 작성된 컴퓨터 프로그램들과 함께 사용될 수 있거나, 요구된 동작들을 수행하기 위해 보다 특화된 장치를 구성하는 것이 보다 편리할 수 있다.
본 개시에 설명된 다양한 실시예들은 또한 비일시적 컴퓨터 판독 가능 매체 상의 컴퓨터 판독 가능 코드로서 구현될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 데이터를 저장할 수 있는 임의의 데이터 저장 장치, 예를 들어, RAM, ROM, 플래시 메모리, 디스크 등이며, 이는 이후에 컴퓨터 시스템에 의해 판독될 수 있다. 컴퓨터 판독 가능 매체의 예들로는 하드 드라이브, 네트워크 접속 기반 파일 서버(NAS), ROM, RAM, CD-ROM(CD-recordables), CD-R(CD-recordables), RW(CD-Rewritable), 자기 테이프 및 기타 광학 및 비광학 데이터 저장 장치들을 포함한다. 비일시적 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 코드가 분산된 방식으로 저장되고 실행되도록 네트워크 결합 컴퓨터 시스템에 분산된 컴퓨터 판독 가능 유형 매체를 포함할 수 있다.
방법 동작들이 특정 순서로 설명되었지만, 다른 하우스키핑 동작들이 동작들 사이에 수행될 수 있거나, 또는 동작들은 약간 다른 시간들에서 발생하도록 조정될 수 있거나, 처리와 관련된 다양한 간격들로 처리 동작들의 발생을 허용하는 시스템에 분산될 수 있거나, 또는 동작들은 오버레이 동작들의 처리가 원하는 방식으로 수행되는 한, 다른 순서로 수행될 수 있음이 이해되어야 한다.
일 실시예에서, 상기에 설명된 임의의 실시예로부터의 하나 이상의 특징들은 본 개시에 설명된 다양한 실시 예들에서 설명된 범위를 벗어나지 않고 임의의 다른 실시예의 하나 이상의 특징들과 조합된다는 점에 또한 유의해야 한다.
전술한 실시예들은 이해의 명확성을 위해 일부 상세하게 설명되었지만, 특정 변경들 및 수정들이 첨부된 청구항들의 범위 내에서 실시될 수 있음이 명백할 것이다. 따라서, 본 실시예들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 본 개시에 설명된 다양한 실시예들은 본원에 제공된 세부 사항들로 제한되지 않지만, 첨부된 청구항들의 범위 및 등가물 내에서 수정될 수 있다.

Claims (20)

  1. 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 방법에 있어서, 상기 방법은:
    상기 서버 시스템과 컴퓨팅 장치 사이에, 제1 통신 채널을 통해 사용자 계정에 대한 애플리케이션을 실행하기 위한 게임 세션을 설정하는 단계-여기서 상기 컴퓨팅 장치는 디스플레이 장치를 포함하며, 상기 서버 시스템에서 상기 애플리케이션의 실행은 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 전달되는 비디오 스트림을 생성하도록 인코딩되는 비디오 출력을 생산하고, 상기 컴퓨팅 장치는 상기 게임 세션과 연관된 상기 서버 시스템의 주소를 상기 비디오 게임 컨트롤러에 제공하도록 구성됨-;
    상기 서버 시스템에 의해, 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 고유 식별자-여기서 상기 고유 식별자는 상기 서버 시스템의 상기 주소에서 수신됨-를 수신하는 단계;
    상기 서버 시스템에 의해, 상기 고유 식별자를 인증하기 위해 상기 고유 식별자를 처리하는 단계-여기서 인증되는 상기 고유 식별자는 상기 비디오 게임 컨트롤러를 상기 게임 세션에 연결하는 것을 가능하게 함-; 및
    상기 게임 세션 동안, 상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터의 입력을 사용하여 상기 비디오 스트림을 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 제공하는 상기 애플리케이션의 상호작용을 제어하는 단계를 포함하는, 방법.
  2. 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 방법에 있어서, 상기 방법은:
    제1 통신 채널을 통해 디스플레이 장치로부터 사용자 로그인 정보를 수신하는 단계;
    상기 사용자 로그인 정보를 인증하는 단계;
    상기 제1 통신 채널을 통해 사용자 계정에 대해 애플리케이션을 실행하기 위한 세션을 설정하는 단계-상기 세션을 설정하는 단계는 상기 사용자 로그인 정보를 상기 인증하는 것에 응답하여 수행되며, 상기 세션을 설정하는 단계는 상기 사용자 계정에 대한 액세스를 제공하는 단계를 포함하며, 상기 서버 시스템에서 상기 애플리케이션의 실행은 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 전달되는 비디오 스트림을 생성하도록 인코딩되는 비디오 출력을 생산함-;
    상기 서버 시스템에 의해, 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 고유 식별자를 수신하는 단계;
    상기 서버 시스템에 의해, 상기 고유 식별자를 인증하기 위해 상기 고유 식별자를 처리하는 단계-여기서 인증되는 상기 고유 식별자는 상기 비디오 게임 컨트롤러를 상기 세션에 연결하는 것을 가능하게 함-; 및
    상기 세션 동안, 상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터의 입력을 사용하여 상기 비디오 스트림을 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 제공하는 상기 애플리케이션의 상호작용을 제어하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 애플리케이션은 게임 애플리케이션이며, 상기 게임 세션을 설정하는 단계는 상기 게임 애플리케이션을 식별하기 위해 상기 디스플레이 장치 상에 가상 게임 장면을 디스플레이하기 위한 데이터를 전송하는 단계를 포함하는, 방법.
  4. 제1항에 있어서, 상기 입력은 입력 정보를 포함하며, 상기 방법은 상기 비디오 게임 컨트롤러가 상기 게임 세션과 연결될 때까지 상기 입력 정보가 가상 장면의 상태를 변경할 수 없도록 하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서, 상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 상기 고유 식별자를 수신하는 단계는 라우터, 모뎀 및 컴퓨터 네트워크를 통해 상기 비디오 게임 컨트롤러의 상기 고유 식별자를 수신하는 단계를 포함하며, 상기 라우터 및 상기 모뎀은 상기 비디오 게임 컨트롤러에 대해 국부적으로 위치되고, 상기 고유 식별자를 수신하는 단계는 상기 디스플레이 장치 및 게임 콘솔을 사용하지 않고 수행되는, 방법.
  6. 제1항에 있어서, 상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 상기 고유 식별자를 수신하는 단계는 셀룰러 네트워크 및 컴퓨터 네트워크를 통해 상기 비디오 게임 컨트롤러의 상기 고유 식별자를 수신하는 단계를 포함하며, 상기 고유 식별자를 수신하는 단계는 상기 디스플레이 장치 및 게임 콘솔을 사용하지 않고 수행되는, 방법.
  7. 제1항에 있어서,
    상기 고유 식별자가 인증되었다고 결정 시 페어링 요청을 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 전송하는 단계-여기서 상기 페어링 요청은 상기 비디오 게임 컨트롤러가 상기 게임 세션과 페어링되어야 한다는 통지를 포함함-;
    상기 제2 통신 채널을 통해 상기 페어링 요청에 대한 응답을 수신하는 단계;
    상기 페어링 요청에 대한 상기 응답이 긍정적인지 부정적인지 여부를 결정하는 단계를 더 포함하며,
    상기 비디오 게임 컨트롤러를 상기 게임 세션에 연결하는 단계는 상기 요청에 대한 상기 응답이 긍정적이라고 결정하는 것에 응답하여 상기 비디오 게임 컨트롤러를 상기 게임 세션과 페어링하는 단계를 포함하며, 상기 연결은 상기 입력이 상기 서버에 의해 처리되도록 하여 상기 애플리케이션의 상기 상호작용을 제어하도록 발생하는, 방법.
  8. 제1항에 있어서, 상기 제2 통신 채널은 컴퓨터 네트워크에 결합된 라우터를 포함하며, 상기 고유 식별자는 상기 비디오 게임 컨트롤러의 식별자 또는 상기 사용자의 생체 인식 식별 또는 상기 라우터의 식별자 또는 이들 중 둘 이상의 조합을 포함하는, 방법.
  9. 제1항에 있어서, 상기 고유 식별자를 처리하는 단계는 상기 고유 식별자가 상기 게임 세션이 설정된 상기 사용자 계정에 등록된 사전 등록된 식별자와 일치하는지 여부를 결정하는 단계를 포함하며, 상기 고유 식별자는 상기 사용자 계정에 대한 상기 게임 세션에 액세스하는 데 사용된 사용자 로그인 정보와 다르고,
    상기 비디오 게임 컨트롤러를 상기 게임 세션에 연결하는 단계는 상기 고유 식별자가 상기 사전 등록된 식별자와 일치한다고 결정하는 것에 응답하여 상기 비디오 게임 컨트롤러를 상기 게임 세션과 페어링하는 단계를 포함하며, 상기 페어링은 상기 입력이 상기 서버에 의해 처리되도록 하여 상기 애플리케이션의 상기 상호작용을 제어하도록 발생하는, 방법.
  10. 제1항에 있어서, 상기 연결은 상기 입력이 상기 서버에 의해 처리되도록 하여 상기 애플리케이션의 상기 상호작용을 제어하도록 발생하며, 상기 게임 세션은 상기 게임 세션의 인스턴스를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 상기 입력을 수신하는 단계;
    상기 입력에 따라 가상 장면의 상태를 결정하는 단계;
    상기 가상 장면의 상태에 기초하여 복수의 프레임들을 생성하는 단계;
    상기 프레임들을 인코딩하여 복수의 인코딩된 프레임들을 출력하는 단계;
    상기 제1 통신 채널을 통해 상기 인코딩된 프레임들을 상기 디스플레이 장치로 전송하는 단계를 더 포함하는, 방법.
  12. 제1항에 있어서, 상기 비디오 게임 컨트롤러는 핸드-헬드 컨트롤러이며 상기 디스플레이 장치의 IP 주소와 다른 인터넷 프로토콜(IP) 주소를 갖는, 방법.
  13. 서버와 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템에 있어서, 상기 시스템은:
    상기 서버의 프로세서-상기 프로세서는 제1 통신 채널을 통해 사용자 계정에 대한 애플리케이션을 실행하기 위해 컴퓨팅 장치로 게임 세션을 설정하도록 구성됨-; 및
    제2 통신 채널을 통해 상기 서버에 결합된 비디오 게임 컨트롤러-여기서 상기 컴퓨팅 장치는 상기 게임 세션과 연관된 상기 서버의 주소를 상기 비디오 게임 컨트롤러에 제공하도록 구성되며, 상기 비디오 게임 컨트롤러는 상기 서버의 상기 주소에서 상기 제2 통신 채널을 통해 고유 식별자를 상기 프로세서로 전송하도록 구성됨-를 포함하며,
    상기 고유 식별자 수신 시, 상기 프로세서는,
    상기 고유 식별자를 인증하기 위해 상기 고유 식별자를 처리하되, 인증되는 상기 고유 식별자는 상기 비디오 게임 컨트롤러와 상기 게임 세션 간의 연결을 설정하고;
    상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터의 입력이 상기 애플리케이션과 상기 컴퓨팅 장치의 디스플레이 장치의 상호작용을 제어하도록 하되, 상기 애플리케이션과 상기 디스플레이 장치의 상기 상호작용은 상기 제1 통신 채널을 통해 비디오 및 오디오를 상기 디스플레이 장치에 제공하기 위해 발생하도록 구성되는, 시스템.
  14. 서버와 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템에 있어서, 상기 시스템은:
    제1 통신 채널-여기서 상기 제1 통신 채널은 모뎀, 라우터, 및 컴퓨터 네트워크를 포함하며, 상기 모뎀 및 상기 라우터는 디스플레이 장치에 대해 국부적으로 위치함-을 통해 사용자 계정에 대해 애플리케이션을 실행하기 위해 디스플레이 장치와 세션을 설정하도록 구성된 하나 이상의 프로세서들을 포함하는 상기 서버; 및
    제2 통신 채널을 통해 상기 서버에 연결된 상기 비디오 게임 컨트롤러-여기서 상기 비디오 게임 컨트롤러는 상기 제2 통신 채널을 통해 상기 하나 이상의 프로세서에 고유 식별자를 전송하도록 구성됨-
    를 포함하고,
    상기 고유 식별자의 수신시, 상기 하나 이상의 프로세서들은:
    상기 고유 식별자를 인증하기 위해 상기 고유 식별자-여기서 인증되고 있는 상기 고유 식별자는 상기 비디오 게임 컨트롤러와 상기 세션 간의 연결을 설정함-를 처리하며;
    상기 제2 통신 채널을 통해 상기 비디오 게임 컨트롤러로부터 상기 애플리케이션과 상기 디스플레이 장치의 상호작용을 제어하기 위한 입력을 가능하게 하도록 구성되고,
    상기 애플리케이션과 상기 디스플레이 장치의 상호작용은 상기 제1 통신 채널을 통해 상기 디스플레이 장치에 비디오와 오디오를 제공하기 위해 발생하며, 상기 비디오와 오디오는, 상기 디스플레이 장치 상에 가상 장면을 표시하기 위해, 상기 컴퓨터 네트워크, 상기 라우터, 및 상기 모뎀을 통해 상기 디스플레이 장치의 인터넷 프로토콜(IP) 주소에 제공되는, 시스템.
  15. 제13항에 있어서, 상기 프로세서는,
    상기 고유 식별자가 인증되었다고 결정 시 페어링 요청을 상기 제1 통신 채널을 통해 상기 디스플레이 장치로 전송하되, 상기 페어링 요청은 상기 비디오 게임 컨트롤러가 상기 게임 세션과 페어링되어야 한다는 통지를 포함하고;
    상기 제2 통신 채널을 통해 상기 페어링 요청에 대한 응답을 수신하고;
    상기 페어링 요청에 대한 상기 응답이 긍정적인지 부정적인지 여부를 결정하도록 구성되며,
    상기 연결은 상기 비디오 게임 컨트롤러를 상기 게임 세션과 페어링하기 위해 설정되며, 상기 비디오 게임 컨트롤러는 상기 페어링 요청에 대한 상기 응답이 긍정적이라고 결정하는 것에 응답하여 상기 게임 세션과 페어링되고, 상기 비디오 게임 컨트롤러는 상기 비디오 게임 컨트롤러로부터의 상기 입력이 처리되도록 하여 상기 애플리케이션과 상기 디스플레이 장치의 상기 상호작용을 제어하도록 상기 게임 세션과 페어링되는, 시스템.
  16. 제13항에 있어서, 상기 고유 식별자를 처리하기 위해, 상기 프로세서는 상기 고유 식별자가 상기 게임 세션이 설정된 상기 사용자 계정에 등록된 사전 등록된 식별자와 일치하는지 여부를 결정하도록 구성되며, 상기 고유 식별자는 상기 사용자 계정에 대한 상기 게임 세션에 액세스하는 데 사용된 로그인 정보와 다른, 시스템.
  17. 서버 시스템과의 직접 통신을 설정하기 위한 방법에 있어서, 상기 방법은:
    비디오 게임 컨트롤러에 의해, 컴퓨팅 장치로부터 게임 세션과 연관된 상기 서버 시스템의 주소를 수신하는 단계;
    상기 비디오 게임 컨트롤러에 의해, 사용자 계정에 대한 고유 식별자를 제1 통신 채널을 통해 상기 서버 시스템으로 전송하는 단계-여기서 상기 고유 식별자는 상기 비디오 게임 컨트롤러에 의해 상기 서버 시스템의 상기 주소에서 상기 제1 통신 채널을 통해 상기 서버 시스템으로 전송되며, 상기 고유 식별자를 전송하는 단계는 애플리케이션을 실행하기 위한 상기 게임 세션이 상기 서버 시스템과 상기 컴퓨팅 장치의 디스플레이 장치 사이의 제2 통신 채널을 통해 설정된 후 발생함-;
    상기 고유 식별자가 인증되면, 상기 컴퓨팅 장치에 의해, 상기 비디오 게임 컨트롤러가 상기 게임 세션과 페어링된다는 표시를 상기 제2 통신 채널을 통해 수신하는 단계; 및
    상기 애플리케이션과 연관된 상태를 변경하기 위해 상기 비디오 게임 컨트롤러로부터의 입력을 상기 제1 통신 채널을 통해 상기 서버 시스템으로 전송하는 단계-여기서 상기 입력을 전송하는 단계는 상기 표시를 수신한 후에 발생함-를 포함하는, 방법.
  18. 서버 시스템과의 직접 통신을 설정하기 위한 방법에 있어서, 상기 방법은:
    비디오 게임 컨트롤러에 의해, 사용자 계정에 대한 고유 식별자를 제1 통신 채널을 통해 상기 서버 시스템으로 전송하는 단계-여기서 상기 고유 식별자를 전송하는 단계는 제2 통신 채널을 통해 상기 서버 시스템과 디스플레이 장치 간에 애플리케이션을 실행하기 위한 세션이 설정된 후에 발생함-;
    상기 고유 식별자가 인증되면, 상기 제2 통신 채널을 통해, 상기 비디오 게임 컨트롤러가 상기 세션과 페어링되었다는 표시를 수신하는 단계; 및
    상기 애플리케이션과 연관된 상태를 변경하기 위해, 상기 제1 통신 채널을 통해, 상기 비디오 게임 컨트롤러로부터의 입력을 상기 서버 시스템으로 전송하는 단계-여기서 상기 입력을 전송하는 단계는 상기 표시를 수신하는 단계 후에 발생함-
    를 포함하고,
    상기 제2 통신 채널은 상기 비디오 게임 컨트롤러의 로컬인 라우터를 포함하며, 상기 고유 식별자는 상기 비디오 게임 컨트롤러의 식별자 또는 사용자의 생체 인식 식별 또는 상기 라우터의 식별자 또는 이들 중 둘 이상의 조합을 포함하는, 방법.
  19. 제17항에 있어서, 상기 고유 식별자를 전송하는 단계는 게임 콘솔을 사용하지 않고 상기 고유 식별자를 라우터, 모뎀 및 컴퓨터 네트워크를 통해 상기 서버 시스템으로 전송하는 단계를 포함하는, 방법.
  20. 제17항에 있어서, 상기 제1 통신 채널은 셀룰러 네트워크 및 컴퓨터 네트워크를 포함하며 상기 제2 통신 채널은 상기 컴퓨터 네트워크를 포함하는, 방법.
KR1020217017153A 2018-11-05 2019-09-30 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법 KR102575204B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/181,211 2018-11-05
US16/181,211 US10773156B2 (en) 2018-11-05 2018-11-05 Systems and methods for establishing direct communication between a server system and a video game controller
PCT/US2019/053895 WO2020096714A1 (en) 2018-11-05 2019-09-30 Systems and methods for establishing direct communication between a server system and a video game controller

Publications (2)

Publication Number Publication Date
KR20210090656A KR20210090656A (ko) 2021-07-20
KR102575204B1 true KR102575204B1 (ko) 2023-09-06

Family

ID=68296711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217017153A KR102575204B1 (ko) 2018-11-05 2019-09-30 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (2) US10773156B2 (ko)
EP (1) EP3878186A1 (ko)
JP (2) JP7242850B2 (ko)
KR (1) KR102575204B1 (ko)
CN (1) CN113056921A (ko)
WO (1) WO2020096714A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10888788B2 (en) * 2016-06-30 2021-01-12 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) control mode for playing specific tasks during gaming applications
JP7460520B2 (ja) 2018-04-27 2024-04-02 三菱ケミカル株式会社 水性インク
US10773156B2 (en) * 2018-11-05 2020-09-15 Sony Interactive Entertainment LLC Systems and methods for establishing direct communication between a server system and a video game controller
US11032340B2 (en) * 2019-04-04 2021-06-08 Sony Interactive Entertainment LLC Using camera on computer simulation controller
US11449920B1 (en) * 2019-12-12 2022-09-20 Amazon Technologies, Inc. Providing add-ons for network applications
US11314320B2 (en) * 2020-04-28 2022-04-26 Facebook Technologies, Llc Interface between host processor and wireless processor for artificial reality
CN111773661B (zh) * 2020-07-03 2024-05-03 珠海金山数字网络科技有限公司 基于直播界面组队游戏的系统、方法及装置
CN113018851B (zh) * 2021-05-28 2021-08-06 腾讯科技(深圳)有限公司 游戏处理方法、装置、计算机设备及存储介质
US20230084581A1 (en) * 2021-09-16 2023-03-16 Voyetra Turtle Beach Inc. Video game controller with a graphical user interface
US11846969B1 (en) * 2023-03-29 2023-12-19 Electronic Arts Inc. UI state identification, navigation and crawling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014057221A (ja) * 2012-09-12 2014-03-27 G-Cluster Global Corp コンテンツ配信システム、コンテンツ配信装置およびコンテンツ配信方法
US20170142201A1 (en) * 2015-11-12 2017-05-18 Nvidia Corporation System and method for network coupled cloud gaming

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6511378B1 (en) * 2000-05-05 2003-01-28 Intel Corporation Method of identifying game controllers in multi-player game
US20050147247A1 (en) * 2003-11-14 2005-07-07 Westberg Thomas E. Interactive television systems having POD modules and methods for use in the same
US8715082B2 (en) 2007-04-19 2014-05-06 At&T Intellectual Property I, L.P. Systems, methods and computer products for IPTV network game control
US9498714B2 (en) * 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
JP4615031B2 (ja) 2008-03-12 2011-01-19 テレフオンアクチーボラゲット エル エム エリクソン(パブル) フロア制御を実施するための方法および装置
US20100317443A1 (en) 2009-06-11 2010-12-16 Comcast Cable Communications, Llc Distributed Network Game System
US9699485B2 (en) 2012-08-31 2017-07-04 Facebook, Inc. Sharing television and video programming through social networking
JP6000805B2 (ja) * 2012-11-01 2016-10-05 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
US8870661B2 (en) * 2012-12-21 2014-10-28 Sony Computer Entertainment America Llc Cloud-based game slice generation and frictionless social sharing with instant play
US10380330B2 (en) * 2013-01-31 2019-08-13 Google Llc Smart gamepad
US9579567B2 (en) * 2013-06-03 2017-02-28 Microsoft Technology Licensing, Llc Managing controller pairings
US9542544B2 (en) * 2013-11-08 2017-01-10 Microsoft Technology Licensing, Llc Correlated display of biometric identity, feedback and user interaction state
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10888788B2 (en) * 2016-06-30 2021-01-12 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) control mode for playing specific tasks during gaming applications
KR20230017925A (ko) * 2018-04-02 2023-02-06 구글 엘엘씨 대화형 클라우드 게임용 방법, 디바이스 및 시스템
US10773156B2 (en) * 2018-11-05 2020-09-15 Sony Interactive Entertainment LLC Systems and methods for establishing direct communication between a server system and a video game controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014057221A (ja) * 2012-09-12 2014-03-27 G-Cluster Global Corp コンテンツ配信システム、コンテンツ配信装置およびコンテンツ配信方法
US20170142201A1 (en) * 2015-11-12 2017-05-18 Nvidia Corporation System and method for network coupled cloud gaming

Also Published As

Publication number Publication date
JP2023080070A (ja) 2023-06-08
EP3878186A1 (en) 2021-09-15
US20200139231A1 (en) 2020-05-07
KR20210090656A (ko) 2021-07-20
JP7481522B2 (ja) 2024-05-10
US20210308561A1 (en) 2021-10-07
US10773156B2 (en) 2020-09-15
JP7242850B2 (ja) 2023-03-20
US11045722B2 (en) 2021-06-29
US20200406129A1 (en) 2020-12-31
JP2022508060A (ja) 2022-01-19
WO2020096714A1 (en) 2020-05-14
CN113056921A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
KR102575204B1 (ko) 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법
JP6700463B2 (ja) ヘッドマウントディスプレイ上の視覚的作用を制限するためのフィルタリング及びペアレンタルコントロール法
US10363479B2 (en) Methods for controller pairing with assigned differentiating color/player
JP6448603B2 (ja) マルチ画像インタラクティブゲーミングデバイス
TWI639457B (zh) 利用連接品質歷史以使使用者體驗最佳化之方法及使用該方法之系統
US9818225B2 (en) Synchronizing multiple head-mounted displays to a unified space and correlating movement of objects in the unified space
CN110582331B (zh) 用于使用分布式游戏引擎的系统和方法
US10905943B2 (en) Systems and methods for reducing hops associated with a head mounted system
US8463182B2 (en) Wireless device pairing and grouping methods
JP5665880B2 (ja) 無線デバイスのペアリング方法
US20130162680A1 (en) Systems and Methods for Cloud Processing and Overlaying of Content on Streaming Video Frames of Remotely Processed Applications
US20220362680A1 (en) Systems and methods for facilitating secret communication between players during game play
CN112169327A (zh) 一种云游戏的控制方法以及相关装置
US20100062847A1 (en) Electronic gaming system and method
US11998834B2 (en) Systems and methods for establishing direct communication between a server system and a video game controller
JP2023533227A (ja) ゲームプレイのためにユーザを指導するシステム及び方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right