KR20220040472A - 대화식 컴퓨팅 디바이스 및 액세서리들 - Google Patents

대화식 컴퓨팅 디바이스 및 액세서리들 Download PDF

Info

Publication number
KR20220040472A
KR20220040472A KR1020227006079A KR20227006079A KR20220040472A KR 20220040472 A KR20220040472 A KR 20220040472A KR 1020227006079 A KR1020227006079 A KR 1020227006079A KR 20227006079 A KR20227006079 A KR 20227006079A KR 20220040472 A KR20220040472 A KR 20220040472A
Authority
KR
South Korea
Prior art keywords
data
computing device
signal
portable gaming
gaming device
Prior art date
Application number
KR1020227006079A
Other languages
English (en)
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
Priority claimed from US16/523,891 external-priority patent/US10946272B2/en
Priority claimed from US16/746,734 external-priority patent/US10773157B1/en
Application filed by 아케이드 인코포레이티드 filed Critical 아케이드 인코포레이티드
Publication of KR20220040472A publication Critical patent/KR20220040472A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • 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/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • 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/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/219Input arrangements for video game devices characterised by their sensors, purposes or types for aiming at specific areas on the display, e.g. light-guns
    • 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/22Setup operations, e.g. calibration, key configuration or button assignment
    • 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/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • A63F13/245Constructional details thereof, e.g. game controllers with detachable joystick handles specially adapted to a particular type of game, e.g. steering wheels
    • 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/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • 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/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/323Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections between game devices with different hardware characteristics, e.g. hand-held game devices connectable to game consoles or arcade machines
    • 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/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi or piconet
    • 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 MPEG-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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • 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
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • 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/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • 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/73Authorising game programs or game devices, e.g. checking authenticity
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • 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
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities
    • 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/10Features 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 input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1025Features 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 input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection
    • A63F2300/1031Features 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 input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection using a wireless connection, e.g. Bluetooth, infrared connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Abstract

이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법은, 중개 컴퓨팅 디바이스에 의해 제1 컴퓨팅 디바이스로부터 제1 무선 인터페이스를 통해 제1 컴퓨팅 디바이스의 적어도 하나의 센서로부터 대화식 데이터를 수신하는 단계; 중개 컴퓨팅 디바이스에 의해, 수신된 대화식 데이터로부터 적어도 하나의 데이터 스트링을 추출하는 단계; 중개 컴퓨팅 디바이스에 의해, 추출된 적어도 하나의 데이터 스트링을 전송 계층 헤더에 캡슐화하는 단계; 및 중개 컴퓨팅 디바이스에 의해, 캡슐화된 적어도 하나의 데이터 스트링을 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스에 전송하는 단계를 포함하고, 제2 컴퓨팅 디바이스는 캡슐화된 전송으로부터 적어도 하나의 데이터 스트링을 추출하고, 적어도 하나의 데이터 스트링을 제2 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 가상 인간 인터페이스 디바이스(HID) 드라이버에 전달한다.

Description

대화식 컴퓨팅 디바이스 및 액세서리들
본 출원은 2020년 4월 17일자 출원된 미국 출원 제16/852,263호의 이익 및 우선권을 주장하며, 이는 2019년 7월 26일자 출원된 미국 출원 제16/523,891호의 일부계속인, 2020년 1월 17일자 출원된 미국 출원 제16/746,734호의 일부계속이고, 이 출원들 각각은 이로써 그 전체가 인용에 의해 본 명세서에 포함된다. 본 출원은 또한, 2020년 1월 31일자 출원된 미국 출원 제16/778,891호의 이익 및 우선권을 주장하며, 이는 2019년 7월 26일자 출원된 미국 출원 제16/523,891호의 일부계속인, 2020년 1월 17일자 출원된 미국 출원 제16/746,734호의 계속이고, 이 출원들 각각은 이로써 그 전체가 인용에 의해 본 명세서에 포함된다.
다음의 설명은 독자의 이해를 돕기 위해 제공된다. 제공되는 정보 또는 인용되는 참조들 중 어느 것도 선행 기술인 것으로 인정되지 않는다.
오늘날 비디오 게임 콘솔들은 통상적으로, 사용자가 비디오 게임 콘솔에 의해 처리되고 있는 게임과 상호 작용할 수 있게 하기 위해 외부 원격 제어기를 사용한다. 비디오 게임 콘솔들은 일반적으로, 비디오 게임 콘솔들과 관련하여 정지 상태로 유지되는 외부 스크린(예컨대, 텔레비전)에 접속된다. 정지 스크린들은, 이리저리 움직이고 보다 상호적인 경험을 받기를 원하는 게이머들을 억제할 수 있다. 사용자들은 제어기 입력들을 통해 정지 스크린들 상에서 다양한 캐릭터들 또는 다른 인물들을 이동시킬 수 있지만, 사용자들은 그들이 플레이하고 있는 게임으로부터 분리된 느낌을 받을 수 있다. 예를 들어, 사용자는 정지 스크린 상에 디스플레이되는 가상 전장(battlefield)을 거쳐 캐릭터를 이동시킬 수 있다. 사용자는 다양한 액션들에 대응하는 다양한 푸시 버튼들 및 조이스틱을 사용하여 가상 전장 상의 적 팀의 다른 캐릭터들을 저격할 수 있다. 푸시 버튼들을 누르고 조이스틱을 움직이는 것은 전장 자체에 있는 것과 유사하지 않아, 시뮬레이션의 몰입도 및 현실성을 손상시키기 때문에, 사용자는 게임에 접속되어 있다고 느끼지 않을 수 있다.
게다가, 일부 경우들에서, 외부 원격 제어기는 다른 컴퓨팅 디바이스와 호환 가능한 무선 통신 인터페이스를 갖지 않을 수 있다. 예를 들어, 외부 원격 제어기는 블루투스(Bluetooth)와 같은 특정 통신 프로토콜을 통해 단지 다른 컴퓨팅 디바이스들과만 통신하는 것이 가능할 수 있다. 그러나 많은 컴퓨팅 디바이스들 및 특히 더 오래된 컴퓨팅 디바이스들은 블루투스 통신 하드웨어가 없고, WiFi 통신 프로토콜을 통해 다른 디바이스들과만 통신하는 것이 가능할 수 있다. 외부 원격 제어기 및 컴퓨팅 디바이스가 상이한 또는 호환되지 않는 통신 프로토콜들을 통해 통신할 수 있기 때문에, 외부 원격 제어기 및 컴퓨팅 디바이스는 서로 통신하는 것이 가능하지 않을 수 있다. 호환되지 않는 통신 인터페이스들을 갖는 그러한 디바이스들은 이종 디바이스들, 이종 통신 디바이스들로, 또는 유사한 용어들로 지칭될 수 있다.
본 명세서에서 논의되는 시스템들 및 방법들의 구현들은 컴퓨팅 디바이스들의 대화식 컨트롤의 개선들을 제공한다. 예를 들어, 일부 구현들에서, 아바타를 제어하거나 애플리케이션과 상호 작용할 때 보다 미세한 정확도를 제공하기 위해, 상호 작용 디바이스는 보다 미세한 제어 및 정확도를 제공하기 위해 개별적으로 또는 함께 사용될 수 있는 복수의 상이한 물리적 컨트롤(control)들을 포함할 수 있다. 일부 구현들에서, 예를 들어, 가속도계 또는 다른 관성 측정 유닛(IMU: inertial measurement unit)를 포함하는 3차원 인터페이스 디바이스는 또한 조이스틱을 포함할 수 있다. IMU 및 조이스틱으로부터의 신호들은 일부 구현들에서는 독립적으로 사용될 수 있지만, 이는 직관적인 방식으로 조이스틱으로부터의 신호들을 다른 제어 데이터와 통합하는 데 어려움들을 제시할 수 있다. 예를 들어, 일부 경우들에는, 컴퓨팅 디바이스는 조이스틱이 이동될 때마다 조이스틱 신호가 포지션 센서 신호를 오버라이드(override)하게 하도록 구성될 수 있다. 오버라이드는 사용자들이 제어기 상의 임의의 포지션 센서들과 조이스틱 모두를 사용하여 가상 환경들을 내비게이팅(navigate)하는 것을 어렵게 할 수 있다. 대신에, 본 명세서에서 논의되는 시스템들 및 방법들은 콘텐츠 기반 스케일링(scaling) 기능들, 임계치 기반 스케일링 기능들, 제어 기반 스케일링 기능들, 및 사용자들이 인터페이스들, 가상 환경들, 아바타들, 메뉴(menu) 인터페이스들 또는 다른 대화식 엘리먼트들을 직관적으로 제어할 수 있게 하는 다른 통합들을 포함하는 혼합된 인터페이스 디바이스들(예컨대, IMU 및 조이스틱)의 직관적이고 자연스러운 사용을 가능하게 하는 스케일링 및 집계 기능들을 제공한다.
게다가, 본 명세서에서 논의되는 시스템들 및 방법들의 구현들은 이종 디바이스들, 또는 호환 가능한 통신 인터페이스들이 없는 디바이스들 사이의 통신의 개선들을 제공한다. 예를 들어, 일부 구현들에서는, 2개의 디바이스들이 호환되지 않는 통신 인터페이스들로 제한됨에도, 제1 디바이스가 제2 디바이스와 통신할 수 있게 하기 위해, 중개 디바이스가 2개의 디바이스들 사이의 통신 브리지로서 동작할 수 있다. 중개 디바이스는 제1 통신 프로토콜을 통해 제1 디바이스와 통신할 수 있고, 상이한 제2 통신 프로토콜을 통해 제2 디바이스와 통신할 수 있다. 중개 디바이스는 제1 디바이스로부터 통신들을 수신하고, 대응하는 통신들(예컨대, 동일한 정보를 갖는 통신들)을 제2 디바이스에 전송할 수 있다. 일부 구현들에서, 예를 들어, 중개 디바이스는 블루투스 또는 블루투스 저에너지(Bluetooth Low Energy)를 통해 제1 디바이스와 통신할 수 있고, WiFi를 통해 제2 디바이스와 통신할 수 있다. 블루투스 또는 블루투스 저에너지를 통해 데이터를 전송하는 것은 WiFi를 통해 데이터를 전송하는 것보다 더 적은 전력을 사용할 수 있다. 이에 따라, 블루투스 또는 블루투스 저에너지가 가능하게 하는 효율적인 데이터 전송들을 희생시키지 않으면서 제1 디바이스가 제2 디바이스와 통신하는 것이 바람직할 수 있다. 중개 디바이스를 통신 브리지로서 구현함으로써, 제1 디바이스는 다른 고전력 통신 프로토콜들을 구현함으로써 야기될 수 있는 임의의 에너지 비효율들을 희생시키지 않으면서 제2 디바이스와 간접적으로 통신하기 위해 블루투스를 통해 중개 디바이스와 통신할 수 있다.
적어도 일부 양상들에 따르면, 본 개시내용은 휴대용 게이밍 디바이스를 개시한다. 휴대용 게이밍 디바이스는 핸들, 트리거(trigger) 및 스크린 홀더를 포함하는 게임 콘솔 하우징을 포함한다. 휴대용 게이밍 디바이스는 또한, 스크린 홀더에 결합된 디스플레이 디바이스를 포함한다. 디스플레이 디바이스는 디스플레이를 포함한다. 휴대용 게이밍 디바이스는 게임 콘솔 하우징에 내부적으로 결합된 처리 회로를 포함한다. 처리 회로는 프로세서, 메모리 및 네트워크 인터페이스를 포함한다. 처리 회로는 디스플레이 디바이스와 통신한다. 처리 회로는 디스플레이 상에 디스플레이될 사용자 인터페이스를 생성하고, 게임 콘솔 하우징의 포지션을 결정하며, 게임 콘솔 하우징의 결정된 포지션에 기반하여 사용자 인터페이스를 업데이트한다.
다른 양상들에 따르면, 본 개시내용은 휴대용 게이밍 시스템을 개시한다. 휴대용 게임 시스템은 핸들, 트리거 및 스크린 홀더를 포함하는 게임 콘솔 하우징을 포함하는 게임 콘솔을 포함한다. 게임 콘솔은 스크린 홀더에 결합된 디스플레이 디바이스를 포함한다. 디스플레이 디바이스는 디스플레이를 포함한다. 게임 콘솔은 또한 게임 콘솔 하우징에 내부적으로 결합된 제1 처리 회로를 포함한다. 제1 처리 회로는 제1 프로세서, 제1 메모리 및 제1 네트워크 인터페이스를 포함한다. 제1 처리 회로는 디스플레이 디바이스와 통신한다. 휴대용 게이밍 시스템은 또한 제2 처리 회로를 포함하는 외부 디바이스를 포함한다. 제2 처리 회로는 제2 프로세서, 제2 메모리 및 제2 네트워크 인터페이스를 포함한다. 제2 처리 회로는 제1 처리 회로와 통신한다. 제2 처리 회로는 디스플레이 상에 디스플레이될 시청각 데이터 스트림을 생성하고, 시청각 데이터 스트림을 디스플레이 디바이스에 전송하고, 제1 처리 회로로부터 입력을 수신하고, 입력에 기반하여 업데이트된 시청각 데이터 스트림을 생성하고, 업데이트된 시청각 데이터 스트림을 디스플레이 디바이스에 전송한다.
또 다른 양상들에 따르면, 본 개시내용은 휴대용 게이밍 디바이스를 개시한다. 휴대용 게이밍 디바이스는 핸들, 트리거 및 스크린 홀더를 포함하는 게임 콘솔 하우징을 포함한다. 휴대용 게이밍 디바이스는 스크린 홀더에 결합된 디스플레이 디바이스를 포함한다. 디스플레이 디바이스는 디스플레이를 포함한다. 디스플레이 디바이스는 제2 디바이스로부터 시청각 데이터 스트림을 수신하고, 시청각 데이터 스트림에 기반하여 디스플레이 상에 사용자 인터페이스를 생성한다. 휴대용 게이밍 디바이스는 또한 게임 콘솔 하우징에 내부적으로 결합된 처리 회로를 포함한다. 처리 회로는 프로세서, 메모리 및 네트워크 인터페이스를 포함한다. 처리 회로는 게임 콘솔 하우징의 포지션을 결정하고, 게임 콘솔 하우징의 포지션에 대응하는 신호를 제2 디바이스에 전송한다.
적어도 일부 양상들에 따르면, 본 개시내용은 인간 인터페이스 디바이스(HID: human interface device) 호환 휴대용 게이밍 디바이스를 개시한다. HID 호환 휴대용 게이밍 디바이스는 디스플레이, 포지션 센서, 조이스틱, 그리고 디스플레이, 조이스틱 및 포지션 센서와 통신하는 프로세서를 포함한다. 프로세서는 실행될 때, 프로세서로 하여금 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 포지션 센서로부터 수신하게 하고, 조이스틱의 포지션의 변화를 지시하는 제2 신호를 조이스틱으로부터 수신하게 하고, 제1 신호에 제1 가중치를 그리고 제2 신호에 제2 가중치를 할당하게 하고, 가중된 제1 신호와 가중된 제2 신호의 가중 합을 기초로 제1 신호를 제2 신호와 집계하여 제3 신호를 획득하게 하고; 그리고 제3 신호에 따라 디스플레이 상의 사용자 인터페이스를 업데이트하게 하는 프로그래밍된 명령들을 갖는다.
일부 구현들에서, HID 호환 휴대용 게이밍 디바이스는 실행될 때, 프로세서로 하여금 추가로, 디스플레이의 사용자 인터페이스 상에 디스플레이되는 콘텐츠의 타입을 결정하게 하고; 그리고 사용자 인터페이스 상에 디스플레이되는 결정된 콘텐츠 타입에 기반하여 제1 신호에 제1 가중치를 그리고 제2 신호에 제2 가중치를 할당하게 하는 명령들을 포함한다. 디스플레이의 사용자 인터페이스 상에 디스플레이되는 콘텐츠의 타입은 디스플레이 상에 디스플레이되는 객체들에 기반하여 또는 휴대용 게이밍 디바이스와 통신하는 제2 디바이스 또는 프로세서 중 하나에 의해 실행되는 애플리케이션의 현재 상태에 기반하여 결정된다.
일부 구현들에서, HID 호환 휴대용 게이밍 디바이스는 실행될 때, 프로세서로 하여금 추가로, 사용자 인터페이스 상에 디스플레이되는 상이한 콘텐츠 타입들에 대한 응답으로 제1 가중치 및 제2 가중치 중 하나 또는 둘 다를 동적으로 조정하게 하는 명령들을 포함한다. 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 사용자 인터페이스에 의해 디스플레이되는 환경의 확대된 뷰(zoomed-in view)에 대응하는 결정된 콘텐츠 타입에 대한 응답으로, 제2 가중치 대 제1 가중치의 비를 증가시키도록 제1 신호의 제1 가중치 및 제2 신호의 제2 가중치 중 하나 또는 둘 다를 조정하게 한다. 또 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 사용자 인터페이스에 의해 디스플레이되는 3차원 환경 내에서 사용자 인터페이스의 뷰포인트(viewpoint)와 사용자 인터페이스의 커서(cursor) 포지션에 대응하는, 3차원 환경 내의 엔티티(entity) 간의 거리를 결정하게 하고; 그리고 3차원 환경 내에서 결정된 거리에 비례하여 제2 가중치를 조정하게 한다. 다른 추가 구현에서, 콘텐츠의 타입은 헤드업 디스플레이(HUD: heads up display)이고, 제1 가중치는 제2 가중치보다 크다. 또 다른 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 휴대용 게이밍 디바이스와 통신하는 제2 디바이스 또는 프로세서 중 하나에 의해 실행되는 애플리케이션의 타입에 기반하여 콘텐츠의 타입을 식별하게 한다. 또 계속 다른 추가 구현에서, 콘텐츠의 타입은 메뉴이고 제2 가중치는 0이다.
일부 구현들에서, HID 호환 휴대용 게이밍 디바이스는 실행될 때, 프로세서로 하여금 추가로, 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 임계치와 비교하고; 그리고 제1 신호가 임계치 미만인 것에 대한 응답으로, 제1 가중치를 0이 되게 할당함으로써 제1 신호에 제1 가중치를 그리고 제2 신호에 제2 가중치를 할당하게 하는 명령들을 포함한다. 일부 구현들에서, HID 호환 휴대용 게이밍 디바이스는 실행될 때, 프로세서로 하여금 추가로, 조이스틱의 포지션의 변화를 지시하는 제2 신호를 임계치와 비교하고; 그리고 제2 신호가 임계치 미만인 것에 대한 응답으로, 제2 가중치를 제1 가중치 미만인 값에 할당함으로써 제1 신호에 제1 가중치를 그리고 제2 신호에 제2 가중치를 할당하게 하는 명령들을 포함한다. 일부 구현들에서, HID 호환 휴대용 게이밍 디바이스는 실행될 때, 프로세서로 하여금 추가로, 조이스틱의 포지션의 변화를 지시하는 제2 신호를 임계치와 비교하고; 그리고 제2 신호가 임계치를 초과하는 것에 대한 응답으로, 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호의 제1 가중치를 감소시킴으로써 제1 신호에 제1 가중치를 그리고 제2 신호에 제2 가중치를 할당하게 하는 명령들을 포함한다.
일부 구현들에서, 포지션 센서는 자이로스코프(gyroscope) 또는 가속도계 중 적어도 하나를 포함한다. 일부 구현들에서, 조이스틱은 누를 수 있고, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 조이스틱이 눌렸음을 지시하는 제4 신호를 수신하게 하고; 제4 신호를 수신하는 것에 대한 응답으로, 조이스틱이 눌리는 것에 대응하는 미리 결정된 커맨드를 식별하게 하고; 그리고 미리 결정된 커맨드에 기반하여 디스플레이 상의 사용자 인터페이스를 업데이트하게 한다. 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 제4 신호를 수신하는 것에 대한 응답으로 제1 가중치 및 제2 가중치 중 하나 또는 둘 다를 조정하게 한다.
다른 양상들에 따르면, 본 개시내용은 HID 호환 휴대용 게이밍 디바이스를 개시한다. HID 호환 휴대용 게이밍 디바이스는 사용자의 제1 손을 수용하도록 구성된 그립(grip) 부분 및 그립 부분으로부터 연장되어 사용자의 제2 손을 수용하도록 구성된 세장형(elongated) 부분을 포함한다. 세장형 부분은, 사용자의 제2 손이 세장형 부분 상에 포지셔닝될 때, 사용자의 제2 손의 엄지 손가락에 의해 관절로 움직이도록 포지셔닝된 조이스틱을 포함한다.
일부 구현들에서, 그립 부분은 사용자의 제1 손의 검지 손가락에 의해 관절로 움직이도록 포지셔닝된 트리거를 포함하고; 세장형 부분은 그립 부분으로부터 트리거와 정렬된 방향으로 연장된다. 일부 구현들에서, 세장형 부분은, 사용자의 제2 손이 세장형 부분 상에 포지셔닝될 때, 사용자의 제2 손의 대응하는 하나 이상의 손가락들에 의해 관절로 움직이도록 포지셔닝된 하나 이상의 버튼들을 더 포함한다. 추가 구현에서, 조이스틱은 세장형 부분의 제1 면에 포지셔닝되고, 하나 이상의 버튼들은 제1 면 반대편의, 세장형 부분의 제2 면에 포지셔닝된다. 일부 구현들에서, 세장형 부분은 복수의 조명 세그먼트(lighted segment)들을 더 포함한다. 추가 구현에서, 제어기는 대응하는 복수의 조명 세그먼트들에 접속된 복수의 스위칭된 출력들을 포함하고, 제어기는 HID 호환 휴대용 게이밍 디바이스의 프로세서 또는 HID 호환 휴대용 게이밍 디바이스와 통신하는 제2 디바이스의 프로세서 중 하나로부터 수신된 신호에 따라 대응하는 복수의 조명 세그먼트들을 활성화하게 복수의 스위칭된 출력들을 제어하도록 구성된다. 다른 추가 구현에서, 복수의 조명 세그먼트들은 세장형 부분의 한 면에 행으로 포지셔닝된다. 또 다른 추가 구현에서, 복수의 조명 세그먼트들은 세장형 부분의 복수의 면들 상에 복수의 행들로 포지셔닝된다.
일부 구현들에서, 세장형 부분은 디스플레이를 포함하는 휴대용 컴퓨팅 디바이스를 위한 조정 가능 클램프(clamp)를 더 포함한다. 추가 구현에서, 조정 가능 클램프는 그립 부분에 인접한 세장형 부분의 단자 부분에 근접하게 포지셔닝되고, 조이스틱은 세장형 부분의 대향하는 단자 부분에 근접하게 포지셔닝된다. 일부 구현들에서, 휴대용 게이밍 디바이스는 세장형 부분 또는 그립 부분 중 적어도 하나의 내부에 포지셔닝된 프로세서를 포함하며, 프로세서는 세장형 부분에 결합된 디스플레이와 통신한다. 일부 구현들에서, 세장형 부분은 세장형 부분의 밑면 상에 위치된 복수의 리지(ridge)들을 더 포함한다. 일부 구현들에서, 세장형 부분은, 사용자의 제2 손이 세장형 부분 상에 포지셔닝될 때, 사용자의 제2 손의 엄지 손가락에 의해 관절로 움직이도록 포지셔닝된 하나 이상의 버튼들을 더 포함한다. 추가 구현에서, 조이스틱은 하나 이상의 버튼들과 세장형 부분의 동일한 면에 포지셔닝된다. 또 추가 구현에서, 세장형 부분은 사용자의 제2 손의 대응하는 하나 이상의 손가락들에 의해 관절로 움직이도록 포지셔닝된 제2 하나 이상의 버튼들을 더 포함하며, 여기서 사용자의 제2 손은 세장형 부분 상에 포지셔닝된다. 일부 구현들에서, 그립 부분은 페달(pedal) 시스템을 포함하며, 페달 시스템은 복수의 포지션들 사이에서 피벗 가능하도록 그립 부분의 일부에 피벗 결합된 페달을 포함한다.
또 다른 양상들에 따르면, 본 개시내용은 HID 호환 휴대용 게이밍 디바이스를 개시한다. HID 호환 휴대용 게이밍 디바이스는 디스플레이, 포지션 센서 및 조이스틱을 포함한다. HID 호환 휴대용 게이밍 디바이스는 제1 물리적 통신 프로토콜을 이용하는 제1 무선 통신 인터페이스; 및 제1 물리적 통신 프로토콜과 상이한 제2 물리적 통신 프로토콜을 이용하는 제2 무선 통신 인터페이스를 더 포함한다. 제1 무선 통신 인터페이스는 제1 물리적 통신 프로토콜을 통해, 포지션 센서 또는 조이스틱의 포지션을 나타내는 적어도 하나의 신호를 원격 컴퓨팅 디바이스에 전송하도록 구성된다. 제2 무선 통신 인터페이스는 원격 컴퓨팅 디바이스로부터 제2 물리적 통신 프로토콜을 통해 미디어 스트림을 수신하도록 구성되며, 미디어 스트림은 디스플레이에 의해 렌더링(render)된다.
일부 구현들에서, 제1 물리적 통신 프로토콜은 블루투스이고, 제2 물리적 통신 프로토콜은 WiFi이다. 추가 구현에서, 제2 무선 통신 인터페이스는 손실 전송 계층 통신 프로토콜을 이용한다. 또 추가 구현에서, 제1 무선 통신 인터페이스는 무손실 전송 계층 통신 프로토콜을 이용한다. 일부 구현들에서, 게이밍 디바이스는 프로세서를 포함하며, 프로세서는 실행될 때, 프로세서로 하여금 포지션 센서로부터의 제1 신호 및 조이스틱으로부터의 제2 신호를 수신하게 하고, 제1 신호 및 제2 신호를 제3 신호로 집계하게 하는 프로그래밍된 명령들을 가지며, 제3 신호는 원격 컴퓨팅 디바이스에 전송된다. 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 제1 신호 및 제2 신호를 가중된 신호들의 합으로서 집계하게 한다. 또 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 조이스틱의 신호가 미리 결정된 임계치를 초과하는 것에 대한 응답으로 제1 신호 및 제2 신호의 가중치들을 조정하게 한다. 또 다른 추가 구현에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 제1 무선 통신 인터페이스를 통해 원격 컴퓨팅 디바이스로부터 수신된 신호에 대한 응답으로 제1 신호 및 제2 신호의 가중치들을 동적으로 조정하게 한다. 또 다른 추가 구현에서, 원격 컴퓨팅 디바이스로부터 수신되는 신호는 원격 컴퓨팅 디바이스에 의해 실행되는 애플리케이션의 상태를 식별한다.
적어도 일부 양상들에 따르면, 본 개시내용은 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법을 개시하며, 이 방법은: 중개 컴퓨팅 디바이스에 의해 제1 컴퓨팅 디바이스로부터 제1 무선 인터페이스를 통해 제1 컴퓨팅 디바이스의 적어도 하나의 센서로부터 대화식 데이터를 수신하는 단계; 중개 컴퓨팅 디바이스에 의해, 수신된 대화식 데이터로부터 적어도 하나의 데이터 스트링(string)을 추출하는 단계; 중개 컴퓨팅 디바이스에 의해, 추출된 적어도 하나의 데이터 스트링을 전송 계층 헤더에 캡슐화하는 단계; 및 중개 컴퓨팅 디바이스에 의해, 캡슐화된 적어도 하나의 데이터 스트링을 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스에 전송하는 단계를 포함하고, 제2 컴퓨팅 디바이스는 캡슐화된 전송으로부터 적어도 하나의 데이터 스트링을 추출하고, 적어도 하나의 데이터 스트링을 제2 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 가상 인간 인터페이스 디바이스(HID) 드라이버에 전달한다.
일부 구현들에서, 제1 무선 인터페이스는 블루투스 무선 인터페이스고, 제2 무선 인터페이스는 WiFi 인터페이스이다. 추가 구현들에서, 수신된 대화식 데이터는 자이로스코프, 가속도계, 자력계, 온도 센서, 조이스틱 또는 버튼으로부터의 데이터를 포함한다. 또 추가 구현들에서, 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스는 직접 통신들을 하지 않는다. 일부 구현들에서, 이 방법은 중개 컴퓨팅 디바이스에 의해, 적어도 하나의 센서로부터의 대화식 데이터에 가입하기 위한 요청을 제1 컴퓨팅 디바이스에 전송하는 단계를 더 포함한다. 추가 구현들에서, 이 방법은 중개 컴퓨팅 디바이스에 의해, 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스와 전송 계층 통신 세션을 설정하는 단계를 더 포함한다. 또 추가 구현들에서, 적어도 하나의 데이터 스트링을 추출하는 단계는 중개 컴퓨팅 디바이스에 의해, 수신된 대화식 데이터로부터 복수의 연결된 데이터 스트링들을 추출하는 단계를 더 포함하며, 연결된 데이터 스트링들 각각은 미리 결정된 길이를 갖는다.
다른 양상들에 따르면, 본 개시내용은 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템을 개시하며, 이 시스템은 제1 무선 인터페이스를 통해 제1 컴퓨팅 디바이스와 통신하고 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스와 통신하는 중개 컴퓨팅 디바이스를 포함하고, 중개 컴퓨팅 디바이스는 프로세서를 포함하며, 프로세서는 실행될 때, 프로세서로 하여금, 제1 컴퓨팅 디바이스로부터 제1 무선 인터페이스를 통해 제1 컴퓨팅 디바이스의 적어도 하나의 센서로부터 대화식 데이터를 수신하게 하고; 수신된 대화식 데이터로부터 적어도 하나의 데이터 스트링을 추출하게 하고; 추출된 적어도 하나의 데이터 스트링을 전송 계층 헤더에 캡슐화하게 하고; 그리고 캡슐화된 적어도 하나의 데이터 스트링을 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스에 전송하게 하는 프로그래밍된 명령들을 갖고, 제2 컴퓨팅 디바이스는 캡슐화된 전송으로부터 적어도 하나의 데이터 스트링을 추출하고, 적어도 하나의 데이터 스트링을 제2 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 가상 인간 인터페이스 디바이스(HID) 드라이버에 전달한다.
일부 구현들에서, 제1 무선 인터페이스는 블루투스 무선 인터페이스고, 제2 무선 인터페이스는 WiFi 인터페이스이다. 추가 구현들에서, 수신된 대화식 데이터는 자이로스코프, 가속도계, 자력계, 온도 센서, 조이스틱 또는 버튼으로부터의 데이터를 포함한다. 또 추가 구현들에서, 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스는 직접 통신들을 하지 않는다. 일부 구현들에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 적어도 하나의 센서로부터의 대화식 데이터에 가입하기 위한 요청을 제1 컴퓨팅 디바이스에 전송하게 한다. 추가 구현들에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스와 전송 계층 통신 세션을 설정하게 한다. 또 추가 구현들에서, 프로그래밍된 명령들은 실행될 때, 프로세서로 하여금 추가로, 수신된 대화식 데이터로부터 복수의 연결된 데이터 스트링들을 추출하게 하며, 연결된 데이터 스트링들 각각은 미리 결정된 길이를 갖는다.
또 다른 양상들에 따르면, 본 개시내용은 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법을 개시하며, 이 방법은 제1 컴퓨팅 디바이스에 의해, 중개 컴퓨팅 디바이스의 제1 무선 인터페이스를 통해 중개 컴퓨팅 디바이스와 통신 세션을 설정하는 단계; 중개 컴퓨팅 디바이스에 의해 전달된 제2 컴퓨팅 디바이스의 센서 데이터를 포함하는 패킷을 제1 컴퓨팅 디바이스에 의해 통신 세션을 통해 중개 컴퓨팅 디바이스로부터 수신하는 단계 ― 센서 데이터는 중개 컴퓨팅 디바이스에 의해 제2 무선 인터페이스를 통해 수신되고 중개 컴퓨팅 디바이스에 의해 패킷으로 캡슐화됨 ―; 제1 컴퓨팅 디바이스에 의해 패킷으로부터 센서 데이터를 추출하는 단계; 및 제1 컴퓨팅 디바이스에 의해, 추출된 센서 데이터를 제1 컴퓨팅 디바이스의 가상 인간 인터페이스 디바이스에 제공하는 단계를 포함한다.
일부 구현들에서, 제1 무선 인터페이스는 WiFi이고; 제2 무선 인터페이스는 블루투스이다. 추가 구현들에서, 센서 데이터는 복수의 센서들로부터의 연결된 데이터를 포함하고, 연결된 데이터 각각은 미리 결정된 길이를 갖는다. 또 추가 구현들에서, 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스와 직접 통신하지 않는다. 일부 구현들에서, 통신 세션을 설정하는 단계는 제1 컴퓨팅 디바이스에 의해 전송 계층 서버를 실행하는 단계를 포함한다. 추가 구현들에서, 센서 데이터는 제1 컴퓨팅 디바이스로의 전송 전에 중개 컴퓨팅 디바이스에 의해 전송 계층 헤더로 캡슐화된다.
앞서 말한 요약은 단지 예시일 뿐이며, 어떤 식으로든 제한하는 것으로 의도되지 않는다. 위에서 설명된 예시적인 양상들, 실시예들 및 특징들에 추가하여, 추가 양상들, 실시예들 및 특징들은 다음의 도면들 및 상세한 설명을 참조하여 명백해질 것이다.
하나 이상의 구현들의 세부사항들은 아래 첨부 도면들 및 상세한 설명에서 제시된다. 본 개시내용의 다른 특징들, 양상들 및 이점들은 설명, 도면들 및 청구항들로부터 자명해질 것이다.
도 1은 본 개시내용의 일부 실시예들에 따른 게이밍 환경의 블록도이다.
도 2a는 본 개시내용의 일부 실시예들에 따른 도 1의 게이밍 환경의 예시적인 실시예의 블록도이다.
도 2b는 본 개시내용의 일부 실시예들에 따른, 상이한 통신 인터페이스들을 통해 원격 디바이스와 통신하는 게임 콘솔의 예시적인 실시예의 블록도이다.
도 2c는 본 개시내용의 일부 실시예들에 따라, 조명 엘리먼트들을 제어하기 위해 범용 입력/출력(GPIO: general purpose input/output) 유닛과 통신하는 프로세서의 예시적인 실시예의 블록도이다.
도 3은 본 개시내용의 일부 실시예들에 따른, 게임 콘솔의 게임 콘솔 하우징에 결합된 디스플레이 디바이스를 포함하는 게임 콘솔의 사시도이다.
도 4는 본 개시내용의 일부 실시예들에 따른, 게임 콘솔의 게임 콘솔 하우징에 결합된 디스플레이 디바이스를 포함하는 다른 게임 콘솔의 사시도이다.
도 5는 본 개시내용의 일부 실시예들에 따른 도 4의 게임 콘솔의 측면도이다.
도 6은 본 개시내용의 일부 실시예들에 따라, 조작자가 도 3의 게임 콘솔로 선택할 다양한 레벨들의 난이도를 디스플레이하는 사용자 인터페이스의 스크린 디스플레이이다.
도 7은 본 개시내용의 일부 실시예들에 따라, 도 3의 게임 콘솔 상에서 플레이되고 있는 게임의 사용자 인터페이스의 스크린 디스플레이이다.
도 8은 본 개시내용의 일부 실시예들에 따른 도 3의 게임 콘솔의 동작의 개요를 서술하는 예시적인 흐름도이다.
도 9는 본 개시내용의 일부 실시예들에 따라, 도 3의 게임 콘솔이 게이밍 디바이스에 입력들을 제공하는 동안, 게이밍 디바이스가 게임 콘솔의 디스플레이 디바이스에 시청각 데이터를 스트리밍하는 것의 개요를 서술하는 예시적인 흐름도이다.
도 10a는 본 개시내용의 일부 실시예들에 따라, 사용자 인터페이스를 업데이트하기 위해 조이스틱 및 포지션 센서로부터의 신호들을 집계하는 것의 개요를 서술하는 예시적인 흐름도이다.
도 10b는 본 개시내용의 일부 실시예들에 따라, 디스플레이 상에 디스플레이되는 콘텐츠의 타입에 기반하여 조이스틱 신호 및/또는 포지션 센서 신호에 가중치들을 할당하는 것의 개요를 서술하는 예시적인 흐름도이다.
도 10c는 본 개시내용의 일부 실시예들에 따라, 조이스틱 또는 게임 콘솔의 포지션의 변화에 기반하여 조이스틱 신호 및/또는 포지션 센서 신호에 가중치들을 할당하는 것의 개요를 서술하는 예시적인 흐름도이다.
도 11은 본 개시내용의 일부 실시예들에 따른, 게임 콘솔의 게임 콘솔 하우징에 결합된 스크린 홀더 및 조이스틱을 포함하는 게임 콘솔의 사시도이다.
도 12는 본 개시내용의 일부 실시예들에 따른, 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템의 예시적인 실시예의 블록도이다.
도 13은 본 개시내용의 일부 실시예들에 따른, 이종 디바이스들 간에 대화식 데이터를 통신하는 것의 개요를 서술하는 예시적인 흐름도이다.
본 개시내용의 앞서 말한 그리고 다른 특징들은 첨부 도면들과 함께 볼 때, 다음의 설명 및 첨부된 청구항들로부터 명백해질 것이다. 이러한 도면들은 단지 본 개시내용에 따른 여러 실시예들만을 도시할 뿐이며, 따라서 그 범위를 제한하는 것으로 여겨져서는 안 된다는 것을 이해하여, 본 개시내용은 첨부 도면들의 사용을 통해 추가 특이성 및 세부사항으로 설명될 것이다.
다음의 상세한 설명에서, 본 명세서의 일부를 형성하는 첨부 도면들이 참조된다. 도면들에서는, 맥락이 달리 지시하지 않는 한, 유사한 심벌들은 통상적으로 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면들 및 청구항들에서 설명되는 예시적인 실시예들은 제한인 것으로 여겨지지 않는다. 여기서 제시되는 청구 대상의 사상 또는 범위를 벗어나지 않으면서 다른 실시예들이 이용될 수 있고 다른 변경들이 이루어질 수 있다. 일반적으로 본 명세서에서 설명되며 도면들에 예시되는 바와 같이, 본 개시내용의 양상들은 매우 다양한 상이한 구성들로 배열되고, 치환되고, 조합되고, 설계될 수 있으며, 이들 모두 명시적으로 고려되며 본 개시내용의 일부를 구성한다고 쉽게 이해될 것이다.
본 개시내용은 일반적으로 처리 회로, 게임 콘솔 하우징, 조이스틱 및 스크린 디스플레이를 포함하는 게임 콘솔에 관한 것이다. 처리 회로는 예를 들어, 게임 콘솔 하우징 내에 내부적으로 결합될 수 있다. 스크린 디스플레이는 외부 컴포넌트(예컨대, 스크린 홀더)를 통해 게임 콘솔 하우징에 결합될 수 있다. 처리 회로는 스크린 디스플레이와 통신하여 스크린 디스플레이 상에 사용자 인터페이스를 디스플레이할 수 있다. 처리 회로는 다양한 애플리케이션들 및/또는 게임들을 처리하여 사용자 인터페이스를 디스플레이 및 업데이트할 수 있다. 처리 회로는 게임 콘솔 하우징의 검출된 움직임들, 다양한 버튼들 및/또는 조이스틱으로부터의 입력들을 수신할 수 있다. 처리 회로는 입력들에 기반하여 사용자 인터페이스를 업데이트할 수 있다.
본 명세서에서 설명되는 예시적인 실시예들은 블래스터(blaster) 디바이스(예컨대, 소총, 산탄총, 기관총, 유탄 발사기, 로켓 발사기 등)와 유사하게 형상화될 수 있는 게임 콘솔 하우징을 갖는 게임 콘솔을 제공한다. 게임 콘솔 하우징은 배럴(barrel), 핸들, 트리거, 센서들(예컨대, 가속도계들, 자이로스코프들, 자력계들 등), 조이스틱, 및 게임 콘솔 하우징 외부의 다양한 버튼들을 포함할 수 있다. 게임 콘솔은 또한, 게임 콘솔 하우징에 내부적으로 결합되어, 게임 콘솔과 연관되는 애플리케이션들 및/또는 게임들을 처리하는 처리 회로를 포함할 수 있다. 게임 콘솔은 게임 콘솔 하우징의 배럴에 결합되는 스크린 디스플레이를 포함할 수 있다. 스크린 디스플레이는, 처리 회로에 의해 생성되며 처리 회로가 처리하는 애플리케이션들 및/또는 게임들과 연관되는 사용자 인터페이스를 디스플레이할 수 있다. 스크린 디스플레이는 게임 콘솔에 결합될 수 있고, 그에 따라 게임 콘솔을 사용하는(예컨대, 플레이 또는 동작시키는) 조작자가 스크린 디스플레이 상에서 처리 회로에 의해 생성되는 사용자 인터페이스를 볼 수 있다.
처리 회로는 트리거, 센서들, 조이스틱 및 다양한 버튼들과 연관된 입력들을 수신할 수 있다. 처리 회로는 입력들을 처리하여, 스크린 디스플레이 상에 디스플레이되고 있는 사용자 인터페이스를 업데이트할 수 있다. 처리 회로는, 조작자가 게임 콘솔을 사용하고 다양한 버튼들 중 하나를 누르거나, 조이스틱을 재포지셔닝하거나, 센서들이 움직임을 검출하도록 게임 콘솔을 조종(maneuver)(예컨대, 이동)하거나, 트리거를 당기는 결과로서 입력들을 수신할 수 있다. 처리 회로는 다양한 버튼들, 센서들 및/또는 트리거 각각의 입력들을 상이한 액션 또는 신호와 연관시켜 스크린 디스플레이 상의 사용자 인터페이스를 조정할 수 있다. 예를 들어, 처리 회로는 비디오 게임에서 총을 쏘라는 지시로서 조작자가 트리거를 당기는 것과 연관된 신호를 식별할 수 있다. 동일한 비디오 게임을 처리하는 동안, 처리 회로는, 게임 콘솔이 제1 뷰로부터 제2 뷰로 사용자 인터페이스를 변경하라는 지시에 따라 조종되고 있음을 지시하는, 다양한 센서들로부터의 신호를 연관시킬 수 있다. 처리 회로는, 게임 콘솔을 조종함(예컨대, 게임 콘솔을 약 360도 회전시킴)으로써 조작자들이 볼 수 있는 가상 환경(예컨대, 다수의 뷰들을 갖는 환경)을 생성하도록 게임들 또는 애플리케이션들을 처리할 수 있다.
스크린 디스플레이는 또한 외부 디바이스(예컨대, 다른 비디오 게임 콘솔)로부터 데이터 스트림을 수신할 수 있다. 외부 디바이스는 외부 디바이스의 처리 회로 상에서 애플리케이션 또는 비디오 게임을 처리하여 데이터 스트림을 생성할 수 있다. 데이터 스트림은 시청각 데이터를 포함할 수 있다. 일부 실시예들에서, 외부 디바이스는 게임 콘솔의 처리 회로에 데이터 스트림을 전송하여 스크린 디스플레이를 처리하고 디스플레이할 수 있다. 게임 콘솔을 사용하고 그리고/또는 디스플레이를 보는 조작자는 스크린 디스플레이를 볼 때 버튼을 누르거나, 트리거를 당기거나, 게임 콘솔을 조종할 수 있다. 게임 콘솔은 이러한 상호 작용들 중 임의의 상호 작용에 의해 생성된 입력들을 외부 디바이스에 전송할 수 있다. 외부 디바이스는 외부 디바이스의 처리 회로를 이용하여 입력들을 처리하고, 스크린 디스플레이가 디스플레이하도록 업데이트된 데이터 스트림을 게임 콘솔에 전송할 수 있다. 외부 디바이스의 처리 회로는 입력들에 기반하여 업데이트된 데이터 스트림을 생성할 수 있다. 이에 따라, 게임 콘솔의 처리 회로는 스크린 디스플레이가 사용자 인터페이스를 디스플레이하기 위해 임의의 처리 단계들을 수행할 필요가 없을 수 있다.
유리하게, 본 개시내용은 조작자가 외부 디스플레이(예컨대, 텔레비전) 없이 게이밍 경험에 몰입할 수 있게 하는 게임 콘솔을 설명한다. 게임 콘솔의 스크린 디스플레이가 게임 콘솔 하우징의 외부 컴포넌트에 결합되고, 게임 콘솔의 움직임에 대응하는 뷰들을 변경하는 사용자 인터페이스를 디스플레이할 수 있기 때문에, 조작자는 자신들이 다양한 게이밍 환경의 일부라고 느끼면서 게임 콘솔 상에서 게임들을 플레이할 수 있다. 추가로, 게임 콘솔은 다른 게임 콘솔들과 인터페이스하여 게임 콘솔들의 게임들에 가상 현실 기능을 제공할 수 있는데, 그렇지 않으면 이는 고정 스크린 상에서만 플레이 가능할 것이다. 결과적으로, 게임 콘솔은 외부 디바이스 또는 게임 콘솔 자체에서 처리되고 있는 게임들 및/또는 애플리케이션들에 대한 가상 현실 경험을 조작자들에게 제공한다.
본 개시내용에 대한 다른 이점은, 게임 콘솔이 반드시 사용자의 머리 또는 다른 신체 부위에 접속될 필요가 없는 핸드헬드 가상 현실 시스템을 제공한다는 것이다. 대신에, 사용자는 게임 콘솔을 쉽게 잡고 즉시 게임 환경에 몰입하게 될 수 있다. 추가로, 사용자는 실세계에서 사용자의 주변을 계속 보면서 게이밍 환경에 몰입하게 될 수 있다. 이는 사용자가 3차원 가상 세계에서 몰입형 게임들 또는 애플리케이션을 플레이하면서 실세계 객체들을 때리는 것을 피할 수 있게 한다.
많은 경우들에서, 아바타들을 제어하거나 컴퓨팅 디바이스와 상호 작용하기 위해 사용되는 상이한 인터페이스들은 유용성 및 기능성에 대한 문제들을 제시할 수 있다. 상이한 물리적 인터페이스들은 더욱 또는 덜 정확할 수 있거나, 사용자에 의한 미세 제어가 더욱 또는 덜 가능할 수 있다. 예를 들어, 사용자의 손가락 또는 엄지 손가락이 픽셀 또는 포인트보다 상당히 더 크기 때문에, 터치스크린 대화식 컨트롤은 특정 포인트 또는 픽셀에 대해 제한된 정확도를 가질 수 있다. 그 결과, 사용자가 그러한 인터페이스들로 원하는 포인트를 정확하게 선택하는 것은 어려울 수 있으며, 개발자들은 더 큰 대화식 컨트롤들로 보상해야 할 수 있다. 동일한 또는 유사한 문제들이 다양한 정도로 많은 다른 물리적 인터페이스들에 존재하는데: 예를 들어, 단일 포인트에서 가속도계를 통합하는 무선 리모트(wireless remote)와 같은 3차원 인터페이스 디바이스를 조준하려는 사용자는 손, 손목, 팔 및/또는 어깨의 근육의 작은 떨림들로 인해 부정확성을 가질 수 있다.
본 명세서에서 설명된 시스템들 및 방법의 구현은 위의 문제들을 처리할 수 있다. 본 개시내용은 또한 일반적으로, 조이스틱 신호 데이터와 포지션 센서 신호 데이터를 조합하여 디스플레이 상의 사용자 인터페이스를 업데이트하거나 다른 식으로 조정하기 위한 방법에 관한 것이다. 이러한 데이터를 조합하려고 시도한, 본 명세서에서 설명된 시스템들 및 방법들을 포함하지 않는 구현들은 종종, 2개의 신호들을 조합할 수 없거나 그렇게 하기 위한 방법을 제공하지 않으면서 조이스틱 또는 포지션 센서로부터의 데이터를 사용하여 사용자 인터페이스를 업데이트할지 여부를 결정할 것이다. 예를 들어, 하나의 그러한 구현에서, 조이스틱으로부터의 신호는 게이밍 콘솔을 작동시킬 때 포지션 센서로부터의 신호를 오버라이드할 수 있다. 결과적으로, 게이밍 콘솔은 게임들 또는 애플리케이션들을 처리 또는 실행할 때 다룰 수 있는 입력들의 수 및/또는 타입들이 제한될 것이다.
유리하게는, 본 개시내용은 조작자가 게임 콘솔을 작동시킬 때 조이스틱 데이터를 포지션 센서 데이터와 조합하기 위한 동적 방법을 설명한다. 이 방법을 수행하는 처리 회로는 조이스틱 신호 및 포지션 센서 신호를 수신하고, 2개의 신호들에 가중치들을 할당하고, (예컨대, 집계, 곱셈, 평균 등과 같은 다양한 동작들을 사용하여) 2개의 가중된 신호들을 조합하여 사용자 인터페이스를 업데이트하기 위한 제3 신호를 생성할 수 있다. 처리 회로는 처리 회로 또는 다른 처리 회로가 처리하고 있는 애플리케이션에 기반하여 신호들에 가중치들을 할당하고, 애플리케이션의 현재 상태에 기반하여 또는 조이스틱 신호 및/또는 포지션 센서 신호의 값들에 기반하여 가중치들을 동적으로 조정할 수 있다. 결과적으로, 게임 콘솔은 신호들 중 하나가 다른 신호를 인계 받지 않고 조이스틱 신호들 및 포지션 신호들을 처리할 수 있다.
본 개시내용은 또한 일반적으로, 위에서 설명된 방법에서와 같이 조이스틱 및 포지션 센서들을 구현하는 애플리케이션들 또는 게임들에 사용자가 액세스할 수 있게 하는 휴대용 게이밍 디바이스에 관한 것이다. 본 명세서에서 설명되는 시스템들 및 방법들을 이용하지 않는 게이밍 콘솔들 또는 디바이스들의 구현들은, 사용자가 게이밍 콘솔을 조종하고 또한 조이스틱을 조종함으로써 사용자 인터페이스를 제어할 수 있게 하는 방식으로 조이스틱을 블래스터 형상 하우징과 조합하는 데 실패한다. 결과적으로, 이러한 구현들은 1인칭 슈팅 게임들을 플레이하는 사용자들이 사용자 인터페이스를 미세하게 제어할 수 있게 하면서 사용자가 3차원 가상 환경을 여전히 신속하게 스캔할 수 있게 하지 못했다.
유리하게, 본 개시내용은 블래스터 형상 하우징의 세장형 부분(예컨대, 배럴) 상에 조이스틱이 포지셔닝된 게이밍 콘솔을 설명하며, 이는 게이밍 콘솔을 다루는 사용자가 조이스틱으로 사용자 인터페이스를 미세하게 제어하고 또한 게이밍 콘솔을 조종함으로써 3차원 가상 환경을 신속하게 스캔할 수 있게 한다. 조이스틱은, 사용자가 블래스터의 세장형 부분의 하나의 또는 다수의 면들에 위치된 버튼들을 여전히 누를 수 있게 하면서 세장형 부분을 홀딩하고 또한 사용자들의 엄지 손가락으로 조이스틱을 조종할 수 있도록 포지셔닝될 수 있다. 결과적으로, 사용자는 조이스틱을 사용하여 그리고/또는 게이밍 콘솔을 재포지셔닝함으로써 게이밍 콘솔 상에서 처리되고 있는 게임들 또는 애플리케이션들에 더 쉽게 액세스하고 그리고/또는 플레이할 수 있다.
본 개시내용은 또한 일반적으로, 상이한 무선 통신 인터페이스들 및 통신 프로토콜들을 사용하여 디스플레이 상의 미디어 스트림을 업데이트하거나 다른 식으로 렌더링하는 게이밍 콘솔에 관한 것이다. 본 명세서에서 논의되는 시스템들 및 방법들을 포함하지 않는 게이밍 콘솔들 및 디바이스들의 구현들은, 제어기가 제어기로의 입력들과 같은 데이터를 게이밍 콘솔들에 송신할 수 있게 하고 게이밍 콘솔들이 이러한 입력들을 기반으로 생성하는 데이터를 게이밍 콘솔들로부터 수신할 수 있게 하는 단일 통신 채널을 이용할 수 있다. 그러한 구현들에서, 제어기 및 게이밍 콘솔들은 그러한 데이터 전송을 위해 동일한 통신 채널 및 통신 프로토콜을 사용할 수 있어서, 콘솔이 포지션 센서들로부터 생성된 데이터 및 이미지 데이터와 같은 상이한 타입들의 데이터의 전송을 효율적으로 다루는 것을 어렵게 할 수 있다. 예를 들어, 이러한 통신 채널들 및 프로토콜들은 하나의 타입의 데이터(예컨대, 저 레이턴시 커맨드 또는 제어 데이터) 또는 다른 타입의 데이터(예컨대, 고 대역폭 등시성 멀티미디어 데이터)에 더 양호하게 적응될 수 있다.
유리하게, 본 개시내용은 원격 디바이스와 인터페이스하여 게임 또는 애플리케이션을 처리하는 게이밍 콘솔을 설명한다. 게이밍 콘솔은 2개의 통신 인터페이스들을 통해 원격 디바이스와 인터페이스할 수 있다. 제1 통신 인터페이스는 입력 신호들(예컨대, 포지션 센서 신호들, 버튼 신호들, 조이스틱 신호들 등)에 전용될 수 있다. 제1 통신 인터페이스는 그러한 입력 신호들이 원격 디바이스에 정확하게 전송되게 할 수 있다. 제2 통신 인터페이스는 이미지 데이터를 전송하는 데 전용될 수 있다. 예를 들어, 원격 디바이스는 제1 통신 인터페이스를 통해 입력을 수신하는 것에 대한 응답으로 이미지 데이터를 게이밍 콘솔에 전송할 수 있다. 제1 통신 인터페이스는 무손실 전송 계층 통신 프로토콜을 제공할 수 있는 한편, 제2 통신 인터페이스는 손실 전송 계층 통신 프로토콜을 제공할 수 있다. 이에 따라, 입력 신호들은 처리를 위해 원격 디바이스에 정확하게 전송될 수 있고, 원격 디바이스는 콘솔 디바이스의 사용자 인터페이스 상에 신속하게 디스플레이될 수 있는 이미지 데이터를 콘솔 디바이스에 다시 전송할 수 있다. 결과적으로, 게임 또는 애플리케이션은 원격 디바이스 상에서 처리될 수 있는 한편, 게임 또는 애플리케이션의 컨트롤 및 게임 또는 애플리케이션의 디스플레이는 낮은 레이턴시로 게이밍 콘솔 상에 디스플레이될 수 있다.
일부 경우들에서, 제1 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스와 호환 가능한 통신 인터페이스를 갖지 않을 수 있다. 이러한 디바이스들은 이종 디바이스들 또는 이종 통신 인터페이스들을 갖는 것으로, 또는 유사한 용어들로 지칭될 수 있다. 예를 들어, 제1 컴퓨팅 디바이스는 동작 동안 자신의 배터리 수명을 보존하기 위해 블루투스 또는 블루투스 저에너지와 같은 저에너지 통신 프로토콜을 사용하도록 설계되었을 수 있다. 예를 들어, 제2 컴퓨팅 디바이스가 전력 그리드에 접속될 수 있고 훨씬 더 큰 전력 공급부를 가질 수 있기 때문에, 제2 컴퓨팅 디바이스는 동일한 제약들로 설계되지 않았을 수 있다. 결과적으로, 제2 컴퓨팅 디바이스는 블루투스 통신 프로토콜들이 아니라 WiFi 통신 프로토콜들을 사용하도록 구성될 수 있다. 일부 상황들에서, 제1 컴퓨팅 디바이스 및 제2 디바이스와 같은 컴퓨팅 디바이스들이 통신하는 것이 바람직할 수 있다. 예를 들어, 사용자는 제2 컴퓨팅 디바이스에 의해 처리되고 있는 게임에 대한 제어기로서 제1 컴퓨팅 디바이스를 사용하기를 원할 수 있다. 그러나 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스가 호환 가능한 통신 인터페이스들을 갖지 않기 때문에, 사용자는 그렇게 할 수 없을 수 있다.
호환 가능 통신 인터페이스들이 없는 디바이스들이 서로 통신할 수 있게 하기 위해 시도된 솔루션들은 종종, 디바이스들 중 하나가 다른 디바이스와 호환 가능한 통신 프로토콜을 통해 데이터를 전송하도록 강제하는 여분의 하드웨어를 필요로 한다. 그러한 솔루션들은 종종 고가이거나 추가 하드웨어를 필요로 하고, 포트 트레이드오프(tradeoff)들을 필요로 하고(예컨대, 컴퓨팅 디바이스의 USB 포트에 플러그되는 블루투스 동글(dongle)은 다른 컴포넌트에 전용될 수 있는 포트를 차지함), 그리고/또는 사용하도록 설계된 것과는 상이한 통신 프로토콜을 사용함으로써, 디바이스가 다른 것보다 데이터를 전송하는 데 더 많은 전력을 사용할 것을 요구한다. 블루투스 동글들은 또한 종종 작고 손실되기 쉬우며, 이 시점에서 시스템은 동작 불가능하게 된다. 그러나 본 명세서에서 설명되는 시스템들 및 방법들을 구현함으로써, 호환되지 않는 통신 인터페이스들을 갖는 디바이스들은, 각각의 컴퓨팅 디바이스가 효율적으로 통신(예컨대, 그러한 통신들을 수행하는 데 사용되는 전력을 최소화)할 수 있게 하면서, 그러한 컴퓨팅 디바이스들에 여분의 하드웨어 컴포넌트들을 결합할 필요 없이 서로 통신할 수 있다. 본 명세서에서 설명되는 시스템들 및 방법들은, 컴퓨팅 디바이스들 중 어느 것도 이들이 통신하는 통신 프로토콜들을 변경하도록 요구하지 않으면서, 호환 가능 통신 인터페이스들이 없는 디바이스들이 통신할 수 있게 할 수 있다.
본 명세서에서 논의되는 시스템들 및 방법들의 구현들은 호환 가능한 통신 인터페이스들이 없는 디바이스들 사이의 통신의 개선들을 제공한다. 예를 들어, 일부 구현들에서는, 2개의 디바이스들이 호환되지 않는 통신 인터페이스들로 제한됨에도, 제1 디바이스가 제2 디바이스와 통신할 수 있게 하기 위해, 중개 디바이스가 2개의 디바이스들 사이의 통신 브리지로서 동작할 수 있다. 중개 디바이스는 제1 통신 프로토콜을 통해 제1 디바이스와 통신할 수 있고, 제2 통신 프로토콜을 통해 제2 디바이스와 통신할 수 있다.
예시적인 실시예에서, 중개 디바이스는 자신이 제1 디바이스로부터 수신하는 대화식 데이터를 처리를 위해 제2 디바이스로 전송할 수 있다. 중개 디바이스는 블루투스 또는 블루투스 저에너지와 같은 제1 통신 프로토콜을 통해, 제1 디바이스로부터의 상이한 타입들의 대화식 데이터와 연관되는 전용 비트들을 갖는 데이터 스트링들을 포함하는 대화식 데이터를 수신할 수 있다. 중개 디바이스는 데이터 스트링들로부터 데이터를 추출하고, 추출된 데이터를 중개 디바이스가 처리하는 애플리케이션의 통신 계층 헤더에 캡슐화할 수 있다. 중간 서버는 캡슐화된 데이터를 Wifi를 통해 제2 컴퓨팅 디바이스에 전송할 수 있다. 제2 컴퓨팅 디바이스의 에이전트(agent)는 캡슐화된 추출된 데이터를 수신하고 이를 HID 준수(compliant) 데이터로 트랜스코딩(transcode)할 수 있다. 에이전트는 제2 디바이스의 운영 체제에 대해 HID 준수 디바이스를 도용(spoof)하는 HID 드라이버에 트랜스코딩된 데이터를 삽입할 수 있다. 운영 체제에 의해 처리되고 있는 애플리케이션 또는 게임은 트랜스코딩된 데이터를 마우스 또는 키보드와 같은 HID 준수 디바이스로부터의 입력으로서 식별하고, 애플리케이션이 입력에 따라 디스플레이를 위해 중개 디바이스에 동시에 전송하는 데이터 스트림을 업데이트할 수 있다. 유리하게는, 중개 디바이스를 통신 브리지로서 구현함으로써, 제1 디바이스는 WiFi와 같은 다른 통신 프로토콜들을 사용함으로써 야기될 수 있는 임의의 에너지 비효율들을 희생시키지 않으면서 제2 디바이스와 간접적으로 통신하기 위해 블루투스를 통해 중개 디바이스와 통신할 수 있다.
이제 도 1을 참조하면, 본 개시내용의 일부 실시예들에 따른 게이밍 환경(100)의 블록도가 도시된다. 일부 실시예들에서, 게임 환경(100)은 게임 콘솔(102), 디스플레이 디바이스(106), 네트워크(108) 및 원격 디바이스(110)를 포함하는 것으로 도시된다. 본 명세서에서 설명되는 바와 같이, 게이밍 환경(100)은 휴대용 게이밍 시스템일 수 있다. 게임 콘솔(102)은 네트워크(108)를 통해 원격 디바이스(110)와 통신할 수 있다. 디스플레이 디바이스(106)는 게임 콘솔(102)의 일부일 수 있다(예컨대, 게임 콘솔(102)의 외부 컴포넌트에 결합될 수 있다). 일부 실시예들에서, 디스플레이 디바이스(106)는 모바일 디바이스(예컨대, 게임 콘솔(102)의 하우징에 결합된 셀 폰)일 수 있다. 게임 콘솔(102)의 처리 회로(104)는 디스플레이 디바이스(106)와 통신하여 디스플레이 디바이스(106)에 사용자 인터페이스를 디스플레이할 수 있다. 게임 콘솔(102)은 처리 회로(104) 및 디스플레이 디바이스(106)를 통해 각각 애플리케이션 또는 게임을 처리하고 디스플레이할 수 있다. 본 명세서에서 설명되는 바와 같이, 게임 콘솔(102)은 휴대용 게이밍 디바이스일 수 있다. 간단한 개요에서, 게임 콘솔(102)은 디스플레이 디바이스(106) 상에서 플레이 또는 다운로드될 게임들 또는 애플리케이션들의 리스트를 디스플레이할 수 있다. 조작자는 게임 콘솔(102)을 이동시키고 게임 콘솔(102)의 입력 버튼을 누름으로써 리스트로부터 게임 또는 애플리케이션을 선택할 수 있다. 게임 콘솔(102)은 디스플레이 디바이스(106)에서 선택된 게임 또는 애플리케이션을 디스플레이할 수 있다. 조작자는 게임 콘솔(102)의 입력 버튼들을 조종하고 그리고/또는 누름으로써 게임 또는 애플리케이션의 움직임들 및 액션들을 제어할 수 있다. 디스플레이 디바이스(106)가 게임 콘솔(102)의 일부이거나 아니면 게임 콘솔(102)에 결합되기 때문에, 디스플레이 디바이스(106)는 게임 콘솔(102)의 움직임들과 함께 이동할 수 있다. 일부 실시예들에서, 게임 콘솔(102)은 원격 디바이스(110)가 처리하고 있는 애플리케이션들 및/또는 게임들과 연관되는 움직임들 및/또는 액션들을 디스플레이할 수 있다.
네트워크(108)는 게임 콘솔(102)과 원격 디바이스(110) 그리고 이들의 컴포넌트들 사이의 통신을 가능하게 하는 임의의 엘리먼트 또는 시스템을 포함할 수 있다. 네트워크(108)는 네트워크 인터페이스를 통해 그리고/또는 셀룰러 네트워크, 인터넷, Wi-Fi, 전화, LAN 접속들, 블루투스, HDMI, 또는 디바이스들이 서로 통신할 수 있게 하는 임의의 다른 네트워크 또는 디바이스와 같은, 그러나 이에 제한되지 않는 다양한 통신 방법들을 통해 컴포넌트들을 접속할 수 있다. 일부 경우들에서, 네트워크(108)는 게이밍 환경(100)의 컴포넌트들 사이의 통신들을 가능하게 하는 서버들 또는 프로세서들을 포함할 수 있다.
게임 콘솔(102)은 다양한 애플리케이션들 및/또는 게임들을 처리할 수 있는 처리 회로(104)를 포함하는 게임 콘솔일 수 있다. 게임 콘솔(102)은 게임 콘솔(102)의 하우징의 외부 컴포넌트(예컨대, 스크린 홀더)에 결합되는 디스플레이 디바이스(106)를 포함할 수 있다. 처리 회로(104)는 조작자가 볼 수 있도록 게임 콘솔(102)이 디스플레이 디바이스(106)에서 처리하는 애플리케이션들 및/또는 게임들의 출력을 디스플레이할 수 있다. 게임 콘솔(102)은 또한, 처리 회로(104)에 신호를 전송하기 위해 조작자가 누를 수 있는 다양한 푸시 버튼들을 포함할 수 있다. 신호는 푸시 버튼들 중 하나가 눌려졌다는 것을 지시할 수 있다. 각각의 푸시 버튼은 처리 회로(104)가 처리하고 있는 애플리케이션 또는 게임의 액션 또는 움직임과 연관될 수 있다. 추가로, 처리 회로(104)는 게임 콘솔(102)과 연관된 움직임의 다양한 양상들(예컨대, 속도, 포지션, 가속도 등)을 검출하는 입력들을 게임 콘솔(102)의 센서들로부터 수신할 수 있다. 처리 회로(104)는 처리 회로(104)가 처리하고 있는 게임들 또는 애플리케이션들과 연관된 움직임들 및/또는 액션들에 영향을 주도록 센서들로부터의 입력들을 사용할 수 있다. 처리 회로(104)는 입력들에 기반하여 디스플레이 디바이스(106) 상에 디스플레이되고 있는 게임들 및/또는 애플리케이션들과 연관된 사용자 인터페이스들을 생성 및/또는 업데이트할 수 있다.
디스플레이 디바이스(106)는 처리 회로(104)에 의해 처리되고 있는 게임들 및/또는 애플리케이션들과 연관된 사용자 인터페이스들을 디스플레이하는 스크린(예컨대, 디스플레이)을 포함할 수 있다. 디스플레이 디바이스(106)는 게임 콘솔(102)의 (도시되지 않은) 게임 콘솔 하우징에 부착된 (또한 도시되지 않은) 스크린 홀더를 통해 게임 콘솔(102)에 결합될 수 있다. 디스플레이 디바이스(106)는 사용자 인터페이스들을 디스플레이하는 스크린 디스플레이를 포함할 수 있다. 일부 실시예들에서, 디스플레이 디바이스(106)는 터치스크린을 포함할 수 있다. 일부 실시예들에서, 디스플레이 디바이스(106)는 게임들 또는 애플리케이션들을 처리 또는 실행하기 위한 프로세서를 갖는 모바일 디바이스(예컨대, 스마트폰, 태블릿 등)이다.
일부 실시예들에서, 디스플레이 디바이스(106)는 게임 콘솔(102) 외부의 다른 디바이스(예컨대, 원격 디바이스(110))에 의해 처리되고 있는 게임들 및/또는 애플리케이션들을 디스플레이할 수 있다. 원격 디바이스(110)는 애플리케이션들 및/또는 게임들을 처리하도록 설계된 디바이스일 수 있다. 원격 디바이스(110)는 처리 회로(112)를 포함하는 것으로 도시된다. 처리 회로(112)는 게임들 및/또는 애플리케이션들을 처리하고, 디스플레이될 사용자 인터페이스를 디스플레이 디바이스(106)에 송신할 수 있다. 처리 회로(112)는 처리 회로(104)로부터 송신된 신호들을 수신하여 처리할 수 있다. 처리 회로(112)는 처리 회로(104)로부터의 신호들에 기반하여 게임 콘솔(102)의 디스플레이 디바이스(106)에 디스플레이되고 있는 사용자 인터페이스를 업데이트할 수 있다. 처리 회로(112)는 블루투스를 통해 네트워크(108) 상에서 처리 회로(104)와 통신할 수 있다. 추가로, 처리 회로(112)는 무선 HDMI 접속(예컨대, HDbitT®, WiFi, HDMI HDMI wireless 등) 또는 유선 HDMI 접속(예컨대, HDbaseT®과 같은 HDMI 접속을 통해 디스플레이 디바이스(106)와 통신할 수 있다.
이제 도 2a를 참조하면, 일부 실시예들에서, 게이밍 환경(200)의 블록도가 도시된다. 게이밍 환경(200)은 일부 실시예들에서, 도 1을 참조하여 도시되고 설명된 게이밍 환경(100)의 예시적인 실시예일 수 있다. 게이밍 환경(200)은 게임 콘솔(201) 및 원격 디바이스(228)를 포함하는 것으로 도시된다. 게임 콘솔(201)은 도 1을 참조하여 도시되고 설명된 게임 콘솔(102)과 유사할 수 있다. 원격 디바이스(228)는 도 1을 참조하여 도시되고 설명된 원격 디바이스(110)와 유사할 수 있다. 게임 콘솔(201)은 처리 회로(202), 배터리(204), 충전 인터페이스(206), 센서들(208), 조명 엘리먼트(들)(210), 커맨드 버튼들(212), 페달 시스템(214), 조이스틱(215) 및 디스플레이 디바이스(222)를 포함하는 것으로 도시된다. 위에서 설명된 바와 같이, 디스플레이 디바이스(222)는 게임 콘솔(201)의 외부 컴포넌트에 (예컨대, 배럴 상의 디스플레이 홀더를 통해) 결합될 수 있다. 처리 회로(202)는 컴포넌트들(204-214) 각각으로부터 입력들을 수신하고, 입력들을 처리하며, 입력들에 기반하여 디스플레이 디바이스(222)에서 출력을 디스플레이 및 업데이트할 수 있다. 일부 실시예들에서, 처리 회로(202)는 추가로 또는 대안으로 디스플레이 디바이스(222)의 일부일 수 있다.
게임 콘솔(201)은 배터리(204)를 포함할 수 있다. 배터리(204)는 게임 콘솔(201)에 전력을 제공할 수 있는 임의의 전원을 나타낼 수 있다. 전원들의 예는 리튬 배터리들, 재충전 가능 배터리들, 회로에 대한 벽 플러그인(plug-in)들 등을 포함하지만 이에 제한되는 것은 아니다. 배터리(204)는 충전 인터페이스(206)를 통해 충전될 수 있다. 예를 들어, 배터리(204)는 재충전 가능 배터리일 수 있다. 배터리(204)를 충전하기 위해, 조작자는 충전 인터페이스(206)를 통해 벽면 콘센트(wall outlet)에 게임 콘솔(201)을 접속할 수 있다. 일단 게임 콘솔(201)이 충전을 완료하면, 조작자는 벽면 콘센트로부터 게임 콘솔(201)을 분리하고, 재충전 가능 배터리에 저장된 전력으로 게임 콘솔(201)을 작동시킬 수 있다. 조작자는 게임 콘솔(201)을 작동시키기 위해 언제든지 벽면 콘센트로부터 게임 콘솔(201)을 분리할 수 있다. 일부 경우들에서, 조작자는 게임 콘솔이 벽면 콘센트에 접속되어 있는 동안 게임 콘솔(201)을 작동시킬 수 있다. 처리 회로(202)가 애플리케이션들 및/또는 게임들을 처리하도록 동작할 수 있게, 배터리(204)가 처리 회로(202)에 전력을 제공할 수 있다.
예를 들어, 도 2a에 도시된 바와 같이, 처리 회로(202)는 일부 실시예들에서, 프로세서(216), 메모리(218), 네트워크 인터페이스(220)로서 도시된 통신 디바이스(예컨대, 수신기, 전송기, 트랜시버 등) 및 범용 입력/출력(GPIO: general purpose input/output) 유닛(221)을 포함한다. 처리 회로(202)는 범용 프로세서, 주문형 집적 회로(application specific integrated circuit)("ASIC"), 하나 이상의 필드 프로그래밍 가능 게이트 어레이(field programmable gate array)들("FPGA들"), 디지털 신호 프로세서(digital-signal-processor)("DSP"), 하나 이상의 처리 컴포넌트들을 포함하는 회로들, 마이크로프로세서를 지원하기 위한 회로, 처리 컴포넌트들의 그룹, 또는 다른 적절한 전자 처리 컴포넌트들로서 구현될 수 있다. 프로세서(216)는 ASIC, 하나 이상의 FPGA들, DSP, 하나 이상의 처리 컴포넌트들을 포함하는 회로들, 마이크로프로세서를 지원하기 위한 회로, 처리 컴포넌트들의 그룹, 또는 다른 적절한 전자 처리 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 프로세서(216)는 메모리(218)에 저장된 컴퓨터 코드를 실행하여 본 명세서에서 설명되는 활동들을 가능하게 할 수 있다. 메모리(218)는 활동들에 관련된 데이터 또는 컴퓨터 코드를 저장할 수 있는 임의의 휘발성 또는 비휘발성 컴퓨터 판독 가능 저장 매체일 수 있다. 예시적인 실시예에 따르면, 메모리(218)는 프로세서(216)에 의해 실행할 컴퓨터 코드 모듈들(예컨대, 실행 가능 코드, 객체 코드, 소스 코드, 스크립트 코드, 기계 코드 등)을 포함할 수 있다. GPIO 유닛(221)은 프로세서(216)가 조명 엘리먼트들(210) 및 임의의 다른 주변 컴포넌트를 제어하고 그리고/또는 이들에 전력을 공급할 수 있게 하는 하나 이상의 출력들을 갖는 내부 회로를 포함할 수 있다. 예를 들어, GPIO 유닛(221)은 입력 직렬 인터페이스를 포함하고, 조명 엘리먼트들(210)을 인에이블 또는 디세이블하는 하나 이상의 솔리드 스테이트 또는 아날로그 계전기들에 제공되는 신호들로 직렬 데이터를 변환할 수 있다. (예컨대, 플레이어의 생명 또는 탄약 또는 다른 그러한 데이터를 나타내는 변수의 값과 같은) 그러한 직렬 데이터는 프로세서(216)에 의해 실행되는 애플리케이션, 원격 컴퓨팅 디바이스에 의해 실행되는 원격 애플리케이션, 또는 임의의 다른 컴포넌트 또는 원격 디바이스로부터 획득될 수 있다.
일부 실시예들에서, 처리 회로(202)는 게임 콘솔(201)의 다른 컴포넌트들과 선택적으로 맞물리고, 선택적으로 분리되고, 제어하고 그리고/또는 다른 식으로 통신할 수 있다. 도 2a에 도시된 바와 같이, 네트워크 인터페이스(220)는 처리 회로(202)를 디스플레이 디바이스(222) 및/또는 외부 디바이스(예컨대, 원격 디바이스(110))에 결합할 수 있다. 다른 실시예들에서, 처리 회로(202)는 더 많은 또는 더 적은 컴포넌트들에 결합될 수 있다. 예를 들어, 처리 회로(202)는 조명 엘리먼트들(210); 충전 인터페이스(206); 배터리(204); 커맨드 버튼들(212)(예컨대, 전원 버튼, 입력 버튼들, 트리거 등); 센서들(208)로서 도시된 하나 이상의 센서들; (페달 시스템(214)의 페달들의 포지션을 지시하는 포지션 검출기들을 포함하는) 페달 시스템(214); 및/또는 조이스틱(215)과 같은 게임 콘솔(201)의 컴포넌트들로부터 네트워크 인터페이스(220)를 통해 신호들을 송신 및/또는 수신할 수 있다.
처리 회로(202)는 네트워크 인터페이스(220)를 통해 디스플레이 디바이스(222)의 디스플레이(224) 상에 사용자 인터페이스를 디스플레이하도록 신호들을 디스플레이 디바이스(222)에 전송할 수 있다. 네트워크 인터페이스(220)는 다양한 유선 통신 프로토콜들 및/또는 단거리 무선 통신 프로토콜들(예컨대, 블루투스, 근접장 통신(near field communication)("NFC"), HDMI, RFID, ZigBee, Wi-Fi 등)을 이용하여 디스플레이 디바이스(222) 및/또는 원격 디바이스(228)를 포함하는 게임 콘솔(201)의 다양한 컴포넌트들과의 통신을 가능하게 할 수 있다. 일부 실시예들에서, 처리 회로(202)는 처리 회로(202)와 디스플레이 디바이스(222) 사이에서 실행되는 게임 콘솔(201)의 하우징 내부에 위치된 테더링된(tethered) HDMI 케이블을 통해 디스플레이 디바이스(222)에 내부적으로 결합될 수 있다. 일부 실시예들에서, 처리 회로(202)는 HDbitT®를 통해 디스플레이 디바이스(222)에 접속될 수 있으며, 이는 아래에서 설명된다. 일부 실시예들에서, 처리 회로(202)는 HDMI 저 레이턴시 무선 전송 기술을 통해 디스플레이 디바이스(222)에 접속될 수 있다. 유리하게는, HDMI 저 레이턴시 무선 전송 기술을 사용함으로써, 디스플레이 디바이스(222)는 외부 디바이스들 및 처리 회로(202) 모두에 접속될 수 있다.
예시적인 실시예에 따르면, 처리 회로(202)는 게임 콘솔(201)의 외부 표면 상에 위치되는 다양한 커맨드 버튼들(212), 페달 시스템(214) 및/또는 조이스틱(215)으로부터 입력들을 수신할 수 있다. 커맨드 버튼들(212)의 예들은 전원 버튼, 입력 버튼들, 트리거 등을 포함하지만 이에 제한되는 것은 아니다. 페달 시스템(214)은 한 번에 단 하나의 페달만 눌릴 수 있게 서로 결합되는 다수의 페달들(입력 버튼들)을 포함할 수 있다. 일부 실시예들에서, 페달들은 다양한 정도로 눌릴 수 있다. 일부 실시예들에서, 페달 시스템은 복수의 포지션들 사이에서 피벗 가능하도록 그립 부분의 일부에 피벗 결합된 페달을 포함할 수 있다. 처리 회로(202)는, 조작자가 페달 시스템(214)의 페달을 누를 때 입력을 수신하고, 페달에 결합된 센서들에 의해 검출된 데이터에 기반하여, 조작자가 페달을 얼마나 눌렀는지를 식별할 수 있다. 처리 회로(202)는 입력들을 수신하고, 처리 회로(202)가 현재 처리하고 있는 게임 또는 애플리케이션과 연관된 액션을 수행하도록 입력들을 해석 및 구현할 수 있다.
추가로, 사용자는 조이스틱(215)을 조종(예컨대, 조이스틱을 제1 포지션에서 제2 포지션으로 이동)함으로써 입력을 처리 회로(202)에 제공할 수 있다. 조이스틱(215)은, 하나의 접촉점을 통해 게임 콘솔(201)에 부착되고 하나의 접촉점을 중심으로 피벗하는 입력 디바이스일 수 있다. 조이스틱(215)은 2축 또는 3축 조이스틱일 수 있다. 일반적으로 조이스틱으로 지칭되지만, 일부 구현들에서, 조이스틱(215)은 방향성 패드(예컨대, 대응하는 4개 또는 8개의 접촉 스위치들에 걸친 4방향 또는 8방향 패드)를 포함할 수 있다. 조이스틱(215)은 조이스틱이 신호를 생성하지 않거나 아니면, 조이스틱이 이동되지 않았음을 지시하는 신호를 생성하는 정지(resting) 포지션을 가질 수 있다. 사용자가 조이스틱(215)을 피벗할 때, 조이스틱(215)은 움직임을 감지하고 조이스틱의 정지 포지션 또는 게임 콘솔(201)과 비교하여 조이스틱의 각도를 지시하는 신호를 생성할 수 있다. 일부 실시예들에서, 조이스틱(215)은 자신의 포지션의 크기 또는 포지션의 변화 및/또는 조이스틱이 이동된 방향을 지시하는 신호를 생성할 수 있다. 일부 실시예들에서, 게임 플레이 동안 드리프트(drift)를 피하기 위해, 조이스틱(215)은 단지, 사용자가 조이스틱(215)을 임계량 넘게 피벗할 때(예컨대, 조이스틱의 사소한 조작 또는 조이스틱의 기계적 처짐이 포지션의 변화 또는 신호의 전송을 트리거하지 않는 "데드 존(dead zone)" 또는 영역을 허용할 때) 포지션의 변화를 지시하는 신호를 생성한다. 다른 실시예들에서, 조이스틱(215)은 사용자가 조이스틱(215)을 임계량 넘게 피벗했는지 여부에 관계없이 신호를 생성 및/또는 전송할 수 있고, 처리 회로(202)는 조이스틱 신호를 사용하여 사용자 인터페이스를 업데이트할지 여부를 결정하기 위해 또는 조이스틱 신호를 포지션 센서 신호와 집계할 때 조이스틱 신호를 제공하기 위한 가중치를 결정하기 위해 유사한 임계치를 사용한다.
일부 실시예들에서, 조이스틱(215)은 누를 수 있거나, 조이스틱을 누름으로써 활성화되는 접촉 스위치를 통합할 수 있다. 사용자는 조이스틱(215)을 누를 수 있고, 조이스틱(215)은 결과적으로, 조이스틱(215)이 눌렸음을 지시하는 신호를 처리 회로(202)에 전송할 수 있다. 일부 실시예들에서, 조이스틱(215)이 눌렸음을 지시하는 신호는 미리 결정된 커맨드에 대응할 수 있다. 미리 결정된 커맨드는 게임 또는 애플리케이션과 개별적으로 연관될 수 있다. 예를 들어, 1인칭 슈팅 게임에서, 사용자는 일부 실시예들에서, 조이스틱(215)을 눌러 스코프(scope) 상에서 웅크리거나 확대할 수 있다. 조이스틱(215)을 누르는 것은 임의의 미리 결정된 커맨드와 연관될 수 있다. 일부 실시예들에서, 조이스틱(215)을 누르는 것은, 아래에서 설명되는 바와 같이, 조이스틱 신호 또는 포지션 센서 신호와 연관되는 가중치들이 조정되게 할 수 있다. 조이스틱(215)을 누르는 것은 사용자 인터페이스의 변화, 실행되는 게임 또는 애플리케이션의 상태의 변화에 기반하여, 또는 다른 식으로 단지 조이스틱이 눌리는 것에만 기반하여 가중치들이 조정되게 할 수 있다.
일부 실시예들에서, 처리 회로(202)는 센서들(208) 및 조이스틱(215)으로부터의 신호들을 조합하여 디스플레이(224)의 디스플레이(예컨대, 사용자 인터페이스)를 업데이트할 수 있다. 처리 회로(202)는 각각의 신호에 가중치들을 할당하고 가중된 신호들에 대해 일부 다른 동작 또는 동작들의 조합을 집계, 평균 또는 수행함으로써 센서들(208) 및 조이스틱(215)으로부터의 신호를 조합할 수 있다. 예를 들어, 처리 회로(202)는 조이스틱 신호가 포지션 센서 신호보다 더 작은 가중치를 갖는다고 결정할 수 있어, 조이스틱(215)은 사용자 인터페이스의 미세 제어를 위해 사용될 수 있는 한편, 사용자는 더 큰 사용자 인터페이스 조정들을 위해 게임 콘솔(201)을 재배향할 수 있다. 예컨대, 사용자가 1인칭 슈터(shooter) 게임을 플레이하고 있을 때, 사용자는 3차원 가상 환경을 스캔하도록 게임 콘솔(201)을 재배향하고, 조이스틱(215)을 사용하여 3차원 가상 환경 내의 타깃을 단련시킬 수 있다.
처리 회로(202)는 입력들에 기반하여 디스플레이(224)의 디스플레이(예컨대, 사용자 인터페이스)를 변경할 수 있다. 입력 버튼들, 트리거 및/또는 페달 시스템으로부터의 입력들은 게임 콘솔(201)의 조작자가 게임에서 자신들의 캐릭터가 점프하고, 웅크리고, 잠수/슬라이드하고, 칼을 던지고, 수류탄을 던지고, 무기들을 전환하고, 무기를 쏘고, 뒤로 이동하고, 앞으로 이동하고, 걷기, 조깅, 달리기, 스프린트(sprint) 등을 하기를 원한다는 지시일 수 있다. 입력 버튼들, 트리거 및/또는 페달 시스템으로부터의 입력들은 추가로 또는 대안으로, 게임 콘솔(201)의 조작자가 게임의 메뉴들에 있는 동안 다양한 상이한 액션들을 수행하기를, 이를테면 스크롤 업, 스크롤 다운하고 그리고/또는 메뉴 선택(예컨대, 맵 선택, 캐릭터 선택, 무기 또는 무기 패키지 선택, 무기 패키지 선택, 게임 타입 선택 등)을 하기를 원한다는 지시일 수 있다. 이런 식으로, 조작자는 디스플레이(224)가 디스플레이하는 옵션을 선택하기 위해 디스플레이(224) 상에서 커서를 이동시킬 수 있는 마우스 또는 롤러 볼로서 게임 콘솔(201)을 이용할 수 있다. 전원 버튼으로부터의 입력들은, 게임 콘솔(201)의 조작자가 게임 콘솔(201)이 온 또는 오프 전환되기를 원한다는 지시일 수 있다.
일부 실시예들에서, 조작자는 센서들(208)이 검출하는 움직임에 대한 디스플레이(224)의 뷰들의 변화율을 조정하기 위해 게임 콘솔(201)을 교정할 수 있다. 예를 들어, 게임 콘솔(201)은 조작자가 게임 콘솔(201)을 이동시키는 것과 동일한 레이트로 디스플레이(224)의 뷰들을 변경하도록 구성될 수 있다. 조작자는 뷰들이 더 느린 레이트로 변하기를 원할 수 있다. 이에 따라, 조작자는 조작자가 게임 콘솔(201)을 이동시키는 것보다 더 느리게 디스플레이(224)가 뷰들을 변경하도록 게임 콘솔(201)의 설정들을 조정할 수 있다.
일부 실시예들에서, 조작자는 사용자 인터페이스 상에서 수행되고 있는 액션들에 기반하여 게임 콘솔(201)을 교정할 수 있다. 예를 들어, 조작자는 게임을 플레이할 때 조작자가 게임 콘솔(201)을 이동시키는 것과 동일한 레이트로 사용자 인터페이스가 변하도록 게임 콘솔(201)을 교정할 수 있다. 동일한 구성 내에서, 조작자는 또한, 드롭다운 메뉴로부터 또는 다른 타입들의 메뉴들 또는 옵션 인터페이스들로부터 선택할 때, 조작자가 게임 콘솔(201)을 이동시키는 것보다 더 빠른 레이트로 조작자가 커서를 조종할 수 있도록, 게임 콘솔(201)을 교정할 수 있다.
일부 실시예들에서, 처리 회로(202)는 게임 콘솔(201)에 의해 동작되는 게임 내의 특징(예컨대, 게임의 캐릭터의 건강 상태)에 관한 지시를 수신하고, 게임 콘솔(201)에 의해 동작되는 게임 내의 특징의 시각적 지시를 제공하도록 (도시되지 않은) 조명 바의 조명 엘리먼트들(210)을 제어할 수 있다. 예를 들어, 처리 회로(202)는 게임 콘솔(201)의 조작자와 연관되는 게임 내의 캐릭터의 건강 상태에 관한 지시를 수신할 수 있고, 조명 바를 통해 캐릭터의 건강의 시각적 지시를 제공하도록 조명 엘리먼트들(210)을 제어(예컨대, 조명 엘리먼트들(210) 중 하나 이상을 선택적으로 조명하는 등)할 수 있다. 다른 예로서, 처리 회로(202)는 게임 콘솔(201)의 조작자와 연관되는 게임 내의 캐릭터에 대해 남아있는 생명들에 관한 지시를 수신할 수 있고, 조명 바를 통해 남은 생명들의 수의 시각적 지시를 제공하도록 조명 엘리먼트들(210)을 제어(예컨대, 조명 엘리먼트들(210) 중 하나 이상을 선택적으로 조명하는 등)할 수 있다. 다른 예에서, 처리 회로(202)는 게임 내의 위험 또는 이벤트에 관한 지시(예컨대, 방사, 경고, 위험, 보스 레벨, 레벨 업 등)를 수신하고, 지정된 컬러(예컨대, 녹색, 적색, 청색 등)로 변경하도록 또는 조명 바를 통해 게임 내의 위험 또는 이벤트의 타입의 시각적 지시를 제공하기 위해 깜빡이도록 조명 엘리먼트들(210)을 제어할 수 있다.
일부 실시예들에서, 처리 회로(202)는 게임 콘솔(201)의 센서들(208)로부터 입력들을 수신할 수 있다. 센서들(208)은 가속도계, 자이로스코프, 및/또는 게임 콘솔(201)의 공간 배향 및/또는 움직임을 검출하는 다른 적절한 모션 센서들 또는 포지션 센서들(예컨대, 자력계)을 포함할 수 있다. 가속도계 및 자이로스코프는 (도시되지 않은) 관성 측정 유닛의 컴포넌트일 수 있다. 관성 측정 유닛은 게임 콘솔(201)의 공간 배향 및/또는 움직임을 검출하기 위해 임의의 수의 가속도계들, 자이로스코프들 및/또는 자력계들을 포함할 수 있다. 관성 측정 유닛(IMU)은 게임 콘솔(201)의 (도시되지 않은) 게임 콘솔 하우징의 공간 배향 및/또는 움직임을 검출함으로써 게임 콘솔(201)의 공간 배향 및/또는 움직임을 검출할 수 있다. IMU는 게임 콘솔(201)의 공간 배향 및/또는 움직임을 식별하는 데이터를 처리 회로(202)에 전송할 수 있다. 센서들(208)로부터 수신된 신호들에 기반하여, 처리 회로(202)는 디스플레이 디바이스(222)의 디스플레이(224)에 의해 제공되는 디스플레이를 조정할 수 있다. 예를 들어, 센서들(208)은 게임 콘솔(201)이 위를 향하고, 아래로 향하고, 왼쪽으로 돌리거나, 오른쪽으로 돌리는 등의 경우를 검출할 수 있다. 처리 회로(202)는 게임 콘솔(201)의 움직임에 부합하도록 디스플레이(224) 상의 디스플레이를 적응적으로 조정할 수 있다.
일부 실시예들에서, 게임 콘솔(201)은 (도시되지 않은) 스피커들을 포함할 수 있다. 처리 회로(202)는 게임 및/또는 애플리케이션을 처리하는 동안 처리 회로(202)가 처리하는 입력들에 대응하는 오디오 신호들을 스피커들에 전송할 수 있다. 오디오 신호들은 게임 또는 애플리케이션과 연관될 수 있다. 예를 들어, 조작자는 처리 회로(202)가 처리하는 슈팅 게임을 플레이하고 있을 수 있다. 조작자는 게임 콘솔(201)의 트리거를 당겨 사격 게임의 총을 발사할 수 있다. 처리 회로(202)는 총 발사와 연관된 사운드를 방출하기 위해 스피커들에 신호를 전송할 수 있다.
일부 실시예들에서, 게임 콘솔(201)은 디스플레이 디바이스(222)를 통해 디스플레이되는 다양한 드롭다운 메뉴들 및 선택 리스트들과 상호 작용하기 위한 마우스 및/또는 키보드로서 사용될 수 있다. 일부 경우들에서, 다양한 드롭다운 메뉴들 및 선택 리스트들은 조작자들이 처리 회로(202)의 메모리(218)에 다운로드할 게임 또는 애플리케이션을 선택할 수 있게 하는 온라인 교환과 관련될 수 있다. 조작자들은, 디스플레이 디바이스(222)가 드롭다운 메뉴들 및/또는 선택 리스트들을 포함하는 사용자 인터페이스 상에 디스플레이하고 있는 커서를 이동시키도록 게임 콘솔(201)을 재배향함으로써 게임 또는 애플리케이션을 선택할 수 있다. 게임 콘솔(201)의 센서들(208)은 게임 콘솔(201)의 움직임들을 검출하고, 적어도 움직임 방향 및/또는 속도를 포함하는 움직임들을 지시하는 신호들을 처리 회로(202)에 송신할 수 있다. 처리 회로(202)는 디스플레이 디바이스(222)가 디스플레이하고 있는 커서를 어떻게 이동시킬지를 결정하기 위해 신호들을 수신하여 처리할 수 있다. 처리 회로(202)는 게임 콘솔(201)의 움직임에 대응하여 커서를 이동시킬 수 있다. 예를 들어, 일부 경우들에서, 조작자가 게임 콘솔(201)을 위쪽을 향하게 한다면, 처리 회로(202)는 커서를 위쪽으로 이동시킬 수 있다. 조작자가 게임 콘솔(201)을 아래쪽을 향하게 한다면, 처리 회로(202)는 커서를 아래쪽으로 이동시킬 수 있다. 조작자는 커서의 움직임에 영향을 주도록 임의의 방식으로 움직임들을 반전시키거나 움직임들을 변경하도록 게임 콘솔(201)을 구성할 수 있다. 일부 실시예들에서, 처리 회로(202)는 게임 콘솔(201)의 배럴의 단부의 움직임에 기반하여 게임 콘솔(201)의 움직임 및 움직임의 속도에 대응하는 입력들을 수신할 수 있다.
일부 실시예들에서, 게임 콘솔(201)은 게임 콘솔(201)의 움직임들이 비교하여 검출될 수 있는 교정된 플로어(floor) 포지션을 포함할 수 있다. 관리자는 게임 콘솔(201)의 피치와 연관되는 게임 콘솔(201)의 자이로스코프들의 베이스 포지션을 설정함으로써 플로어 포지션을 교정할 수 있다. 게임 콘솔(201)의 피치는 교정된 플로어 포지션에 대한 게임 콘솔(201)의 포지션에 기반하여 결정될 수 있다. 예를 들어, 관리자는 게임 콘솔(201)이 지면과 평행하게 포지셔닝될 때가 되도록 게임 콘솔(201)의 플로어 포지션을 교정할 수 있다. 관리자는 게임 콘솔(201)이 지면과 평행할 때를 포지셔닝 및/또는 결정하고, 포지션의 피치와 연관된 자이로스코프 판독치들을 교정된 플로어 포지션으로서 설정할 수 있다. 게임 콘솔(201)이 교정된 플로어 포지션 위의 포지션을 향하고 있음을 자이로스코프들이 검출한다면, 자이로스코프들은 게임 콘솔(201)의 포지션이 위를 향하고 있음을 그리고/또는 게임 콘솔(201)이 교정된 플로어 포지션에 대해 얼마나 멀리 위로 향하고 있는지를 지시하는 데이터를 처리 회로(202)에 송신할 수 있다.
일부 실시예들에서, 자이로스코프들은 포지션 데이터를 처리 회로(202)에 송신할 수 있고, 처리 회로(202)는 교정된 플로어 포지션과 비교하여 게임 콘솔(201)의 포지션을 결정할 수 있다. 결과적으로, 처리 회로(202)는 게임 또는 애플리케이션의 시작 시에 게임 콘솔(201)의 시작 피치 포지션에 대해서가 아니라 일관된 고정된 피치 포지션에 대한 게임 콘솔(201)의 피치 포지션을 결정할 수 있다. 유리하게는, 관리자는 게임 콘솔(201)의 피치에 대한 교정된 플로어 포지션만을 설정할 수 있다. 처리 회로(202)는 부트 업(boot up) 시에 또는 게임 또는 애플리케이션의 처리를 시작할 때 게임 콘솔(201)의 교정된 요(yaw) 포지션을 결정 및 설정할 수 있다. 게임 또는 애플리케이션을 플레이하는 사용자는 게임, 애플리케이션 또는 게임 콘솔(201)과 연관된 설정들에 액세스함으로써 교정된 플로어 포지션 및/또는 교정된 요 포지션을 조정할 수 있다.
자이로스코프 데이터는 게임 콘솔(201)의 피치, 요 및/또는 롤을 포함할 수 있다. 피치는 위 또는 아래로 이동하는 게임 콘솔(201)의 배럴 및/또는 y축 상의 포지션(예컨대, 게임 콘솔(201)의 y축 경사)에 대응할 수 있다. 요는 좌우로 이동하는 게임 콘솔(201)의 배럴 및/또는 x축 상의 포지션(예컨대, 게임 콘솔(201)의 x축 경사)에 대응할 수 있다. 롤은 z축을 중심으로 시계 방향 또는 반시계 방향으로 회전하는 배럴에 대응할 수 있다. y축은 지면으로부터 하늘을 향할 수 있고, x축은 y축에 수직일 수 있으며, z축은 게임 콘솔(201)의 단부(예컨대, 배럴 또는 핸들)로부터 연장되는 축일 수 있다. IMU의 자이로스코프들은 이러한 컴포넌트들 각각의 방향과 함께 자이로스코프 데이터로서 게임 콘솔(201)의 피치, 요 및/또는 롤을 검출하도록 포지셔닝될 수 있다. 자이로스코프들은 게임 콘솔(201)이 어떻게 이동하고 그리고/또는 회전하고 있는지를 지시하기 위해 자이로스코프 데이터를 처리 회로(202)에 전송할 수 있다.
처리 회로(202)는 게임 콘솔(201)의 자이로스코프들이 다른 포지션 데이터(예컨대, 가속도계들로부터의 가속도 데이터)와 함께 처리 회로(202)에 전송하는 자이로스코프 데이터를 분석함으로써 사용자 인터페이스 상에서 커서를 이동시킬 수 있다. 처리 회로(202)는 자이로스코프 데이터를 처리하여 이를 마우스 데이터로 변환할 수 있다. 마우스 데이터에 기반하여, 처리 회로(202)는 이에 따라 사용자 인터페이스 상에서 커서를 이동시킬 수 있다. 예를 들어, 검출된 피치가 게임 콘솔(201)이 위를 향하고 있음을 지시한다면, 처리 회로(202)는 커서를 위로 이동시킬 수 있다. 검출된 요가 게임 콘솔(201)이 좌측을 가리키고 있음을 지시한다면, 처리 회로(202)는 커서를 좌측으로 이동시킬 수 있다. 결과적으로, 처리 회로(202)와 자이로스코프들의 조합은, 게임 콘솔(201)의 움직임을 검출하고 그 움직임에 대응하는 사용자 인터페이스의 커서를 움직일 수 있는 HID 준수 마우스로서 작용할 수 있다. 추가로, 처리 회로(202)는 유사한 처리를 위해 그러한 자이로스코프 데이터를 다른 디바이스(예컨대, 원격 디바이스(228))에 송신할 수 있다. 유리하게는, HID 호환 마우스로서 작동함으로써, 게임 콘솔(201)은 설정된 표준에 따라 다양한 게임들 및 애플리케이션과 연관된 커서들을 이동시킬 수 있다. 게임 및 애플리케이션 제조업체들은 처리 회로(202) 상에서 구체적으로 동작할 자신들의 게임들 또는 애플리케이션들을 생성할 필요가 없을 수 있다.
처리 회로(202)는 또한 게임 콘솔(201)의 자이로스코프 데이터를 (하나 이상의 가속도계들로부터의 데이터와 같은 다른 데이터와 조합하여) 사용하여 HID 준수 조이스틱으로서 작동할 수 있다. 3차원 환경에서 사람의 뷰를 에뮬레이트(emulate)하는 사용자 인터페이스로 게임을 처리할 때, 처리 회로(202)는 위에서 설명된 바와 같이 교정된 플로어 포지션과 비교하여 게임 콘솔(201)의 피치, 요 및/또는 롤과 연관된 자이로스코프 데이터를 수신할 수 있다. 처리 회로(202)는 자이로스코프 데이터 및 가속도계 데이터를 게임 콘솔(201)의 움직임의 방향 및 가속도와 연관된 HID 준수 조이스틱 데이터로 변환할 수 있다. 방향 및 가속도에 기반하여, 처리 회로(202)는 사용자 인터페이스를 업데이트할 수 있다.
예를 들어, 처리 회로(202)는 게임 또는 애플리케이션의 3차원 환경을 처리할 수 있다. 처리 회로(202)는 게임 콘솔(201)이 교정된 피치 포지션에 대해 위로 향하고 있음을 지시하는 자이로스코프 데이터를 수신하고, 데이터를 HID 준수 조이스틱 데이터로 변환할 수 있다. HID 준수 조이스틱 데이터에 기반하여, 처리 회로(202)는 게임 또는 애플리케이션의 캐릭터가 3차원 환경에서 올려다보게(예컨대, 3차원 환경에서 올려다보도록 스크린을 재배향하게) 하거나 3차원 환경에서 커서를 위로 이동시키도록 사용자 인터페이스를 업데이트할 수 있다. 처리 회로(202)는 또한 게임 콘솔(201)의 롤을 지시하는 자이로스코프 데이터를 수신할 수 있다. 롤은 게임 또는 애플리케이션에서의 액션에 대응할 수 있다. 예를 들어, 조작자는 게임에서 코너 주위를 정점으로 하도록 게임 콘솔(201)을 롤링할 수 있다.
게임 콘솔(201)의 다양한 포지션들은 게임에서의 액션들에 대응할 수 있다. 예를 들어, 자이로스코프 데이터는 게임 콘솔(201)이 아래로 향하고 있음을 지시할 수 있다. 그러한 움직임은 게임에서의 재로딩과 연관될 수 있다. 처리 회로(202)는 이 데이터를 수신하고, 데이터를 HID 준수 조이스틱 데이터로 변환하고, 재로딩 애니메이션이 수행되도록 사용자 인터페이스를 업데이트할 수 있다. 게임 콘솔(201)이 처리하고 있는 게임 또는 애플리케이션에 따라 다양한 모션 제스처들을 다양한 액션들과 연관시킬 수 있다.
일부 실시예들에서, 디스플레이 디바이스(222)는 디지털 키보드로서 동작할 수 있다. 디스플레이 디바이스(222)는 디스플레이(224)에서 디지털 키보드를 제시할 수 있고, 조작자는 디지털 키보드와 상호 작용하여 다양한 키들을 선택할 수 있다. 조작자는 위에서 논의된 바와 같이 커서를 이동시키고 버튼을 누르거나 게임 콘솔(201)의 트리거를 당김으로써 다양한 키들을 선택할 수 있다. 일부 실시예들에서, 디스플레이 디바이스(222)는 터치스크린을 포함할 수 있다. 이러한 실시예들에서, 조작자는 디스플레이 디바이스(222)의 디스플레이(224) 상의 각각의 키의 전자 표현을 물리적으로 터치하여 디지털 키보드의 키들을 선택할 수 있다.
일부 실시예들에서, 게임 콘솔(201)은 조작자가 볼 가상 환경을 생성할 수 있다. 게임 콘솔(201)은 처리 회로(202)가 처리하는 게임 또는 애플리케이션에 기반하여 가상 환경을 생성할 수 있다. 처리 회로(202)는 게임 또는 애플리케이션과 연관된 소프트웨어를 처리함으로써 가상 환경을 생성할 수 있다. 가상 환경은, 조작자가 게임 콘솔(201)에 다양한 입력들을 제공함으로써 상호 작용할 수 있는 3차원 환경일 수 있다. 가상 환경의 일부는 디스플레이 디바이스(222)에 의해 디스플레이될 수 있다. 게임 콘솔(201)을 조작하고 있는 조작자는 게임 콘솔(201)에 입력을 제공함으로써 디스플레이 디바이스(222)에 의해 디스플레이되는 가상 환경의 부분을 변경할 수 있다. 처리 회로(202)는 입력을 수신하고 입력에 기반하여 디스플레이 디바이스(222)의 디스플레이를 업데이트할 수 있다. 일부 실시예들에서, 처리 회로(202)는 디스플레이 디바이스(222)에 의해 현재 디스플레이되고 있지 않은 가상 환경의 뷰들을 계속 생성 및 업데이트할 수 있다. 유리하게는, 디스플레이 디바이스(222)에 의해 현재 보여지고 있지 않은 환경의 부분들을 계속해서 생성 및 업데이트함으로써, 조작자가 디스플레이를 환경의 다른 뷰로 변경되게 하는 입력을 제공한다면, 처리 회로(202)는 입력에 응답하는 새로운 뷰를 생성할 필요가 없을 수 있다. 대신에, 처리 회로(202)는 처리 회로(202)가 이미 생성한 뷰를 디스플레이할 수 있다. 결과적으로, 처리 회로(202)는 가상 환경을 초기에 생성한 후에 가상 환경을 더 빠르게 처리할 수 있다.
예를 들어, 조작자는 게임 콘솔(201) 상에서 전쟁 게임 시뮬레이터를 플레이하고 있을 수 있다. 게임 콘솔(201)의 처리 회로(202)는 전쟁 게임과 연관된 3차원 전장을 생성할 수 있다. 3차원 전장은 지형(예컨대, 벙커들, 언덕들, 터널들 등), 및 전장에서 서로 상호 작용하는 다양한 캐릭터들을 포함할 수 있다. 전쟁 게임을 플레이하는 조작자는 디스플레이 디바이스(222)를 통해 전장의 일부를 볼 수 있다. 전장의 부분은 전장이 실제이고 전장에 사람이 있었다면 그 사람이 무엇을 보게 될지를 나타낼 수 있다. 조작자는 게임 콘솔(201)을 재배향함으로써 전장의 뷰들을 변경(예컨대, 제1 뷰에서 제2 뷰로 변경)할 수 있다. 예컨대, 조작자가 360도 돈다면, 처리 회로(202)는 조작자가 돌 때 디스플레이 디바이스(222) 상에 전장의 360도 뷰를 디스플레이할 수 있다. 조작자가 게임 콘솔(201)의 트리거를 당긴다면, 총을 발사하는 것과 연관된 시퀀스가 디스플레이 디바이스(222)에 디스플레이될 수 있다. 또한, 조작자가 페달 시스템(214)의 페달을 밟는다면, 조작자의 캐릭터 표현은 밟힌 페달에 대응하는 전장에서 전진 또는 후진 이동할 수 있다. 상호 작용들의 다른 예들은, 조작자가 입력 버튼을 눌러 전장에서 아이템(예컨대, 의료 팩)을 선택하는 것, 조작자가 제2 입력 버튼을 눌러 재로딩하는 것, 조작자가 제3 입력 버튼을 눌러 재고 스크린을 불러 오는 것 등을 포함할 수 있다. 설명되는 바와 같이, 입력 버튼을 누름으로써, 조작자는 눌리지 않은 상태에서 눌린 상태로 입력 버튼의 상태를 변경할 수 있다. 유사하게, 트리거를 당김으로써, 조작자는 당겨지지 않은 상태에서 당겨진 상태로 트리거의 상태를 변경할 수 있다. 추가로, 게임 콘솔(201)의 포지션의 검출된 변화는 게임 콘솔(201)의 포지션의 상태의 변화로서 설명될 수 있다.
다양한 버튼들(예컨대, 커맨드 버튼들(212))은 처리 회로(202)가 처리하는 게임들의 상이한 액션들 또는 상호 작용들에 매핑될 수 있다. 상이한 게임들은 상이한 버튼 매핑들과 연관될 수 있다. 추가로, 매핑들은, 각각의 버튼이 연관된 액션들을 조작자가 제어할 수 있도록 맞춤화 가능할 수 있다. 예를 들어, 하나의 게임에서의 버튼은 게임에서의 "점프" 움직임과 연관될 수 있다. 다른 게임에서, 동일한 버튼이 "스프린트" 움직임과 연관될 수 있는 한편, 다양한 버튼들 중 다른 버튼은 점프 움직임과 연관될 수 있다.
일부 실시예들에서, 다양한 버튼들은 각각, 사용자 인터페이스 상에 디스플레이되는 키보드 상의 문자 또는 버튼과 연관될 수 있다. 조작자는 조작자의 선호도들에 기반하여 상이한 문자들과 연관되도록 버튼들을 맞춤화할 수 있다. 키보드가 디스플레이(224) 상에 디스플레이될 수 있고, 조작자는 다양한 푸시 버튼들을 사용하여 키보드의 키들을 선택할 수 있다.
일부 실시예들에서, 게임 콘솔(201)은 외부 게이밍 디바이스(예컨대, 원격 디바이스(228))에 대한 입력 및 디스플레이 디바이스로서 동작할 수 있다. 예를 들어, 게이밍 환경(200)의 원격 디바이스(228)는 게임 콘솔(201)의 처리 회로(202)와 통신할 수 있다. 원격 디바이스(228)는 프로세서(232), 메모리(234) 및 네트워크 인터페이스(236)를 갖는 처리 회로(230)를 포함할 수 있다. 처리 회로(230), 프로세서(232), 메모리(234) 및 네트워크 인터페이스(236)는 각각 게임 콘솔(201)의 처리 회로(202), 프로세서(216), 메모리(218) 및 네트워크 인터페이스(220)와 유사할 수 있다. 일부 경우들에서, 원격 디바이스(228)는 디스플레이 디바이스(222)로의 또는 디스플레이 디바이스(222)로 전달하기 위해 처리 회로(202)로의 HDMI 출력(예컨대, 처리 회로(230)에 의해 생성된 시청각 데이터 스트림)의 전송을 가능하게 하는 플러그인을 포함할 수 있다. 일부 경우들에서, 원격 디바이스(228)는 원격 디바이스(228)가 전송하는 시각적 데이터에 대응하는 오디오 데이터를 전송할 수 있다. 결과적으로, 원격 디바이스(228)는 디스플레이 디바이스(222)에서 디스플레이하도록 시청각 데이터 스트림들을 게임 콘솔(201)에 전송할 수 있다.
일부 실시예들에서, 게임 콘솔(201)의 처리 회로(202)는 다양한 블루투스 칩셋들을 포함하는 블루투스 프로세서일 수 있거나 이를 포함할 수 있다. 블루투스 프로세서는 게임 콘솔(201)의 다양한 컴포넌트들로부터 입력들을 수신하고, 처리를 위해 처리 회로(230)에 입력들을 송신할 수 있다. 유리하게, 블루투스 프로세서들은 물리적으로 더 작고, 다른 프로세서들보다 더 적은 처리 전력 및/또는 메모리를 요구할 수 있는데, 이는 블루투스 프로세서들이 디스플레이 디바이스(222)에서 디스플레이하기 위해 애플리케이션들 또는 게임들을 처리하거나 시청각 데이터 스트림을 생성할 필요가 없을 수 있기 때문이다. 대신에, 블루투스 프로세서는 오직 게임 콘솔(201)과의 조작자 상호 작용들에 기반하여 입력들을 수신 및 패키징하고, 처리를 위해 입력들을 원격 디바이스(228)에 전송할 수 있다. 블루투스에 추가하여, 입력들을 원격 디바이스(228)에 전송하는 데 다른 무선 프로토콜들이 이용될 수 있다. 예를 들어, 처리 회로(202)는 적외선 신호들을 통해 원격 디바이스(228)에 입력들을 전송할 수 있다. 입력들은 임의의 타입의 무선 전송 기술을 통해 전송될 수 있다.
일부 실시예들에서, 원격 디바이스(228)는 HDbitT® 기술을 사용하여 디스플레이 디바이스(222)에 HDMI 출력을 전송할 수 있다. HDbitT®는 4K Ultra HD 비디오, 오디오, 이더넷, 이더넷 전원 장치(power over Ethernet), 다양한 컨트롤들(예컨대, RS232, IR 등) 및 유선 및/또는 무선 통신 매체들을 통한 다양한 다른 디지털 신호들의 전송을 가능하게 할 수 있다. 예를 들어, HDbitT®는 UTP/STP Cat5/6/7, 광섬유 케이블들, 전력선들, 동축 케이블들 및/또는 무선 전송을 통한 데이터 전송을 가능하게 할 수 있다. 원격 디바이스(228)는 (예컨대, 블루투스를 통해) 게임 콘솔(201)로부터 입력들을 수신하고, 원격 디바이스(228)가 현재 처리하고 있는 게임 또는 애플리케이션에 기반하여 입력들을 처리하고, HDbitT® 기술을 사용하여 디스플레이 디바이스(222)에 업데이트된 HDMI 출력(예컨대, 업데이트된 시청각 데이터 스트림)을 전송할 수 있다. 유리하게는, HDbitT®를 사용하여 데이터 스트림들을 전송함으로써, 원격 디바이스(228)는 게임 콘솔(201)을 사용하고 있는 사용자들이 시청하기 위한 고화질 시청각 데이터 신호들을 디스플레이 디바이스(222)에 무선으로 전송할 수 있다. HDbitT®는 원격 디바이스(228)가 먼 거리들에 걸쳐 고화질 시청각 데이터 신호들을 전송할 수 있게 할 수 있어, 사용자들이 원격 디바이스(228)로부터 멀리 떨어진(예컨대, 200미터) 또는 집안의 방들 사이에서 게임 콘솔(201)을 사용할 수 있다. 예를 들어, 조작자들은 집의 방들 간에 원격 디바이스(228)를 이동시키지 않으면서 다양한 방들에서 게임 콘솔(201)을 사용할 수 있다.
원격 디바이스(228)는 게임들 및/또는 애플리케이션들을 처리할 수 있다. 원격 디바이스(228)는 게임들 또는 애플리케이션들과 연관된 사용자 인터페이스를 생성하고, 사용자 인터페이스를 처리 회로(202)에 또는 디스플레이 디바이스(222)에 직접 송신할 수 있다. 원격 디바이스(228)가 사용자 인터페이스를 디스플레이 디바이스(222)에 송신한다면, 디스플레이 디바이스(222)는 디스플레이(224)에서 사용자 인터페이스를 디스플레이하고, 원격 디바이스(228)가 게임 콘솔(201)의 오디오 컴포넌트(예컨대, 하나 이상의 스피커들)를 통해 디스플레이 디바이스(222)에 송신한 임의의 오디오를 플레이할 수 있다. 일부 실시예들에서, 원격 디바이스(228)의 스피커는 원격 디바이스(228)에 접속된 스피커들(예컨대, 원격 디바이스(228)에 접속된 텔레비전 상의 스피커들)을 통해 오디오를 플레이할 수 있다.
일부 경우들에서, 게임 콘솔(201)을 조작하는 조작자는 원격 디바이스(228)가 생성하여 디스플레이 디바이스(222)에 송신한 사용자 인터페이스를 볼 수 있다. 조작자는 게임 콘솔(201)의 입력 버튼들(예컨대, 커맨드 버튼들(212), 페달 시스템(214), 트리거 등)을 누르거나 게임 콘솔(201)을 재배향함으로써 사용자 인터페이스와 상호 작용할 수 있다. 처리 회로(202)는 어느 하나의 액션으로부터 생성된 입력 신호들을 수신하고 입력들을 원격 디바이스(228)의 처리 회로(230)에 전송(예컨대, 전달)할 수 있다. 처리 회로(202)는 위에서 설명된 바와 같이, 블루투스를 통해 처리 회로(230)에 입력 신호들을 전송할 수 있다. 원격 디바이스(228)는 입력 신호들을 수신하여 처리할 수 있다. 결과적으로, 원격 디바이스(228)는 업데이트된 사용자 인터페이스(예컨대, 디스플레이 디바이스(222)에 현재 디스플레이되고 있는 사용자 인터페이스를 조정하는 업데이트된 데이터 스트림)를 (예컨대, HDbitT®를 통해) 게임 콘솔(201)에 제공할 수 있다. 원격 디바이스(228)는 업데이트된 사용자 인터페이스를 디스플레이 디바이스(222)에 직접 송신하여 디스플레이(224)의 디스플레이를 업데이트하거나 처리 회로(202)를 위해 처리 회로(202)에 송신하여 디스플레이를 업데이트할 수 있다. 유리하게는, 설명되는 바와 같이, 게임 콘솔(201)은 원격 디바이스(228)에 접속되어, 원격 디바이스(228)를 위해 설계된 게임들 및/또는 애플리케이션들을 디스플레이할 수 있다. 게임 콘솔(201)은 디스플레이 디바이스(222) 상에 게임 또는 애플리케이션을 디스플레이할 수 있다. 게임 콘솔(201)에 액세스하는 조작자는 게임 콘솔(201)을 통해 입력들을 제공함으로써 게임들 또는 애플리케이션들을 플레이할 수 있다. 원격 디바이스(228)의 처리 회로(230)는 게임들 또는 애플리케이션들의 처리 기능들을 수행할 수 있어, 게임 콘솔(201)의 처리 회로(202)가 그러한 기능들을 수행할 필요가 없거나 이를 수행하기 위한 능력(예컨대, 처리 전력 및/또는 메모리 요건들)을 가질 필요가 없을 수 있다.
도 2b는 본 개시내용의 일부 실시예들에 따른, 상이한 통신 인터페이스들을 통해 원격 디바이스(238)와 통신하는 게임 콘솔(248)의 예시적인 실시예의 블록도이다. 게임 콘솔(248)은 게임 콘솔(201)과 유사할 수 있고, 원격 디바이스(238)는 도 2a를 참조하여 도시되고 또한 설명되는 원격 디바이스(228)와 유사할 수 있다. 게임 콘솔(248)은 통신 인터페이스(244) 및 통신 인터페이스(246)를 포함하는 것으로 도시된다. 원격 디바이스(238)는 통신 인터페이스(240) 및 통신 인터페이스(242)를 포함하는 것으로 도시된다. 일부 실시예들에서, 통신 인터페이스들(244, 246)은 네트워크 인터페이스(220)의 일부일 수 있고, 통신 인터페이스들(240, 242)은 도 2a를 참조하여 도시되고 또한 설명되는 네트워크 인터페이스(236)의 일부일 수 있다. 게임 콘솔(248)의 통신 인터페이스(244)는 입력 신호들을 생성하여 통신 인터페이스(240)에 전송할 수 있다. 입력 신호들의 예들은, 사용자가 푸시 버튼을 누르거나, 조이스틱을 움직이거나, 트리거를 당기거나, 페달을 누르거나, 게임 콘솔(248)을 재지향하거나, 또는 사용자 액션에 기인하여 생성될 수 있는 임의의 다른 신호에 기인하여 생성되는 신호들일 수 있다. 통신 인터페이스(244)는 블루투스, 적외선을 통해, 유선 접속을 통해, 또는 IEEE 802.11 표준(예컨대, 802.11a/b/g/n/ax/등)에 부합하는 임의의 무선 LAN 방식을 통해 신호를 송신할 수 있다. 일부 실시예들에서, 통신 인터페이스(244)는 무손실 전송 계층 통신 프로토콜을 이용하여 이러한 신호들을 전송할 수 있다. 통신 인터페이스(244)는 게임 콘솔과 원격 디바이스 간에 정확한 신호들이 전송되고 있음을 보장하기 위해 그렇게 할 수 있다. 임의의 에러들은 사용자에게 불만족스러운 것으로 증명될 것이므로, 입력들을 전송할 때 정확한 신호들이 중요할 수 있다. 예를 들어, 원격 디바이스(238)가 반대 방향으로 이동하도록 사용자 인터페이스를 업데이트하는 동안 사용자는 하나의 방향으로 조이스틱을 이동시키기를 원하지 않을 수 있다. 무손실 통신 프로토콜들은 에러 정정, 재전송들 등을 위해 여분의 오버헤드를 요구하지만, 제어 신호들은 비교적 낮은 대역폭일 수 있고, 따라서 여전히 신속하게 그리고 낮은 유효 레이턴시로 전송될 수 있다. 통신 인터페이스(244)는 입력 신호를 원격 디바이스(238)의 통신 인터페이스(240)에 전송할 수 있다.
원격 디바이스(238)는 원격 디바이스(238)가 실행하고 있는 애플리케이션 또는 게임에 따라 통신 인터페이스(244)로부터의 입력 신호를 처리할 수 있다. 원격 디바이스(238)는 업데이트된 시청각 데이터 스트림(예컨대, 미디어 스트림)을 통신 인터페이스(244)로부터의 신호에 기반하여 생성하고, 업데이트된 시청각 데이터 스트림을 통신 인터페이스(242)를 통해 게임 콘솔(248)에 전송할 수 있다. 통신 인터페이스(242)는 WiFi, HDbitT®, HdBaseT®, 유선 접속, 또는 IEEE 802.11 표준에 부합하는 임의의 무선 LAN 방식을 이용하여 시청각 데이터 스트림을 게임 콘솔(248)에 전송할 수 있다. 통신 인터페이스(242)는, 통신 인터페이스(244)가 입력 데이터를 원격 디바이스(238)에 전송하기 위해 사용하는 통신 프로토콜과 상이한 통신 프로토콜을 사용하여 시청각 데이터 스트림을 게임 콘솔(248)에 전송할 수 있다. 일부 실시예들에서, 통신 인터페이스(242)는 시청각 데이터를 게임 콘솔(248)에 전송하여 사용자 인터페이스를 업데이트하는 데 손실 전송 계층 통신 프로토콜을 이용할 수 있다. 시청각 데이터는 (예를 들어, 초당 매우 많은 수의 프레임들에서의, 예컨대 고해상도 이미지들에 대해) 고 대역폭이면서 시간 민감성일 수 있다(예컨대, 뷰가 플레이어와 함께 회전하지 않고, 지연 이후까지 액션들이 보이지 않게 하는 등, 지연들 또는 지체는 시각들이 커맨드들 또는 컨트롤들과 시간적으로 연관되지 않게 할 수 있음). 통신 인터페이스(242)는 시청각 데이터를 수용할 수 있는 큰 파일 크기가 게임 콘솔(248)에 전송되어 게임 콘솔(248)의 사용자 인터페이스를 신속하게 업데이트할 수 있음을 보장하기 위해 손실 전송 계층 통신 프로토콜을 이용할 수 있다.
도 2c는 본 개시내용의 일부 실시예들에 따라, 조명 엘리먼트들(270-284)을 제어하기 위해 범용 입력/출력(GPIO) 유닛(252)과 통신하는 프로세서(250)의 예시적인 실시예의 블록도이다. 프로세서(250)는 도 2a를 참조하여 도시되고 설명된 프로세서(216)와 유사할 수 있다. GPIO 유닛(252)은 도 2a를 참조하여 도시되고 설명된 GPIO 유닛(252)과 유사할 수 있다. GPIO 유닛(252)은 GPIO 셀들(254-268)을 포함할 수 있다. GPIO 유닛(252)은 그 구성에 따라 더 많은 또는 더 적은 GPIO 셀들(254-268)을 포함할 수 있다. 프로세서(250)는 GPIO 셀들(254-268) 각각에 접속되는 것으로 도시된다. 그러나 프로세서(250)는 더 많은 또는 더 적은 GPIO 셀들에 접속될 수 있다. 추가로, GPIO 셀들(254-268) 각각은 하나 이상의 조명 엘리먼트들에 접속될 수 있다. GPIO 셀들(254-268)은 블래스터의 다른 컴포넌트들에 접속될 수 있거나, 어떠한 컴포넌트에도 접속되지 않을 수 있다. 조명 엘리먼트들(270-284)은 도 2a를 참조하여 도시되고 또한 설명되는 조명 엘리먼트들(210)과 유사할 수 있다.
프로세서(250)는 프로세서(250)가 처리하고 있는 애플리케이션 또는 게임에 기반하여 조명 엘리먼트들(270-284) 각각 또는 그 일부를 제어할 수 있다. 예를 들어, 프로세서(250)는, 게임 내 캐릭터의 건강도가 높다면 모든 조명 엘리먼트들(270-284)이 점등되게 하거나, 게임 내 캐릭터의 건강도가 낮다면 조명 엘리먼트들(270-284) 중 단지 몇 개만이 점등되게 할 수 있다. 다른 예에서, 조명 엘리먼트들(270-284)의 일부는 게임 내 캐릭터가 총에 맞았거나 다른 식으로 접촉되었다는 것을 표현하기 위해 깜빡일 수 있다. 또 다른 예에서, 조명 엘리먼트들(270-284)의 일부는 게임 내 캐릭터가 갖는 탄약의 양을 지시하기 위해 점등될 수 있다. 또 다른 예에서, 조명 엘리먼트들(270-284)의 일부는 캐릭터가 말하고, 달리고, 점프하고, 아이템을 집어 올리는 것 등과 같은 게임 내 액션을 지시하기 위해 점등될 수 있다. 일부 실시예들에서, 조명 엘리먼트들(270-284)은 액션 및 조명 엘리먼트들(270-284)이 게임 내에서 무엇을 지시하는지에 따라 상이한 컬러들이 되도록 점등될 수 있다. 예를 들어, 조명 엘리먼트들(270-284)은 건강도를 표현하기 위해 적색으로 점등되고, 동일한 게임에서 탄약을 표현하기 위해 백색으로 점등될 수 있다. 일부 실시예들에서, 조작자는 게임의 상이한 양상들을 보기 위해 컬러들 간에 토글할 수 있다. 프로세서(250)는 처리되고 있는 게임 또는 애플리케이션의 양상을 지시하기 위해 조명 엘리먼트들(270-284)을 순차적으로 점등되게 할 수 있다(예컨대, 모든 조명 엘리먼트들(270-284)이 점등될 때까지 조명 엘리먼트들(270-284)이 서로 나란히 점등될 수 있음). 조명 엘리먼트들(270-284)은 임의의 순서로 그리고 임의의 패턴으로 점등될 수 있다.
조명 엘리먼트들(270-284)을 제어하거나 점등하기 위해, 프로세서(250)는 하나 이상의 신호들을 GPIO 셀들(254-268) 중 하나 이상에 전송할 수 있다. GPIO 셀은 입력 노드 및 입력 노드에서 수신된 임의의 입력에 대해 수행되는 GPIO 유닛(252)의 내부 로직을 나타낸다. 일부 실시예들에서, GPIO 셀은 프로세서(250)로부터 신호를 수신하기 위한 입력 노드 및 하나 이상의 조명 엘리먼트들을 점등하거나 다른 식으로 전력을 공급하기 위한 출력 노드를 나타낸다. GPIO 셀은 프로세서(250)로부터 신호를 수신하고, 그에 따라 조명 엘리먼트들(270-284) 중 임의의 조명 엘리먼트를 점등할 수 있다. 조명 엘리먼트를 점등하기 위해 더 많은 전류가 필요하다면, GPIO 셀은 그러한 전류를 제공하기 위해 드라이버에 신호를 제공할 수 있다. 일부 실시예들에서, GPIO 셀은 프로세서(250)로부터 하나보다 많은 신호를 수신하도록 구성될 수 있다. 이러한 실시예들에서, GPIO 셀은 다양한 프로세스들을 수행하여 신호들의 조합을 기반으로 하나 이상의 조명 엘리먼트들을 점등할 수 있다.
예를 들어, 프로세서(250)는 게임 내의 캐릭터가 갖는 건강도의 양과 같은 게임 내 특징에 대응하는 광 패턴을 식별할 수 있다. 프로세서(250)는 게임 내 특징에 기반하여 데이터베이스로부터 광 패턴을 식별할 수 있다. 프로세서(250)는 광 패턴을 지시하는 신호를 GPIO 셀들(254-268) 중 하나 이상에 송신할 수 있고, GPIO 셀들 중 하나 이상은 광 패턴에 따라 조명 엘리먼트들(270-284)의 일부를 점등할 수 있다. 프로세서(250)는 임의의 광 패턴을 GPIO 셀들(254-268)에 송신할 수 있다.
이제 도 3을 참조하면, 본 개시내용의 일부 실시예들에 따라 스크린 홀더(314)(예컨대, 조정 가능 클램프 또는 게임 콘솔 하우징(301)의 일부인 컴포넌트)를 통해 게임 콘솔 하우징(301)에 결합된 디스플레이 디바이스(316)를 포함하는 게임 콘솔(300)의 사시도가 도시된다. 게임 콘솔(300)은 도 2를 참조하여 도시되고 설명되는 게임 콘솔(201)과 유사하고 그와 유사한 컴포넌트들을 포함할 수 있다. 디스플레이 디바이스(316)는 도 2를 참조하여 도시되고 설명되는 디스플레이 디바이스(222)와 유사할 수 있다. 게임 콘솔 하우징(301)은 그립 부분(302), 트리거(304), 세장형 부분(306)(예컨대, 배럴), 래치들(307), 그립(308), 커맨드 버튼들(310, 311), 전원 버튼(312) 및 조명 엘리먼트들(313)을 포함하는 것으로 도시된다. 게임 콘솔 하우징(301)은 플라스틱, 금속, 나무, 유리, 또는 임의의 다른 타입의 재료로 제조될 수 있다. 게임 콘솔 하우징(301)은 블래스터 디바이스(예컨대, 소총, 산탄총, 기관총, 유탄 발사기, 로켓 발사기 등)와 유사하게 형상화될 수 있다. 세장형 부분(306)은 그러한 블래스터 디바이스의 배럴과 닮도록 형상화될 수 있다(예컨대, 세장형 부분(306)은 튜브와 같이 형상화될 수 있고 그립 부분(302) 및 트리거(304)로부터 멀어지게 연장될 수 있다). 스크린 홀더(314)는, 게임 콘솔(300)을 홀딩하는 조작자가 게임 콘솔(300)을 홀딩하고 있을 때, 조작자가 스크린 홀더(314)에 부착되는 디스플레이 디바이스(316)를 볼 수 있도록 세장형 부분(306)에 결합될 수 있다. 스크린 홀더(314)는 세장형 부분(306)의 상단에 결합될 수 있다. 도 3을 참조하여 도시되고 설명되는 바와 같은 핸들들, 트리거들, 배럴들, 래치들, 그립들, 커맨드 버튼들 및 조명 엘리먼트들의 포지션들 및 수는 예시적인 것으로 여겨진다고 이해되어야 한다. 게임 콘솔 하우징(301)은 임의의 수의 핸들들, 트리거들, 배럴들, 래치들, 그립들, 커맨드 버튼들 및/또는 조명 엘리먼트들을 포함할 수 있고, 이들은 게임 콘솔 하우징(301) 상의 임의의 크기 또는 배향으로 그리고 임의의 포지션에 있을 수 있다. 추가로, 스크린 홀더(314) 및 디스플레이 디바이스(316)는 임의의 형상 또는 크기일 수 있고, 게임 콘솔 하우징(301)의 임의의 컴포넌트에 결합될 수 있으며, 본 개시내용에 의해 제한되는 것으로 여겨지지 않는다.
그립 부분(302)은 사용자가 게임 콘솔 하우징을 잡을 수 있게 하는 핸들일 수 있고, 세장형 부분(306)으로부터 직각으로 또는 일정 각도로(예컨대, 세장형 부분(306)이 수평일 때 아래쪽으로) 연장되는 부분을 포함할 수 있다. 그립 부분(302)은, 사용자의 손가락들이 사용자를 뒤로 향하게 하기 시작할 때까지 손가락들을 그립 부분(302) 주위에 감음으로써 사용자가 게임 콘솔 하우징(301)을 잡을 수 있도록 구성될 수 있다. 예를 들어, 조작자는 그립 부분(302)이 조작자의 손가락들에 대해 맞서는 상태로 자신의 손으로 "U" 형상을 형성함으로써 그립 부분(302)을 잡을 수 있다. 추가로, 그립 부분(302)은, 조작자가 조작자의 검지 손가락을 조작자 쪽으로 당김으로써 조작자의 검지 손가락으로 조작자로부터 멀어지게 포지셔닝된 트리거(304)를 당길 수 있도록 구성될 수 있다. 이에 따라, 그립 부분(302)은 사용자가 블래스터를 홀딩하는 방법과 유사하게 사용자가 홀딩할 수 있는 핸들을 생성한다.
세장형 부분(306)은 그립 부분(302)으로부터 직교하게 연장되거나 그립 부분으로부터 일정 각도로(예컨대, 그립 부분(302)이 수직 또는 거의 수직일 때는 수평으로) 연장되는 게임 콘솔 하우징(301)의 일부일 수 있다. 세장형 부분(306)은 블래스터의 배럴과 유사하게 형상화될 수 있고, 중공(hollow) 또는 적어도 부분적으로 중실(solid)일 수 있다. 조작자는 제1 손으로 그립 부분(302)을 그리고 제2 손으로 세장형 부분(306)을 홀딩할 수 있다. 일부 실시예들에서, 도 11에 도시된 바와 같이, 세장형 부분은 제2 손의 엄지 손가락에 의해 관절로 움직이도록 포지셔닝된 조이스틱을 포함할 수 있다. 세장형 부분(306)은 조작자가 검지 손가락으로 당길 수 있는 트리거(304)로부터 연장될 수 있다. 추가로, 세장형 부분(306)은 단자 단부(309)의 면들 상에 커맨드 버튼들(310)을 포함할 수 있다. 커맨드 버튼들(310)은 사용자가 게임 콘솔 하우징(301)을 홀딩하고 있는 동안 사용자의 제2 손의 손가락들 및/또는 엄지 손가락들에 의해 눌리도록 포지셔닝될 수 있다. 커맨드 버튼들(310)은 세장형 부분(306)의 하나 이상의 대향 면들에 포지셔닝될 수 있다.
게임 콘솔(300)은 또한 (도시되지 않은) 처리 회로(예컨대, 처리 회로(202))를 포함할 수 있다. 처리 회로는 게임 콘솔 하우징(301)에 내부적으로 결합될 수 있다. 일부 실시예들에서, 처리 회로는 보호 컴포넌트들(예컨대, 처리 회로가 게임 콘솔 하우징(301)에 대해 이동하는 것을 방지하거나 게임 콘솔(300)의 다른 컴포넌트들에 의해 접촉되는 것을 방지하는 컴포넌트들)에 의해 절연될 수 있어, 처리 회로는 조작자들이 게임 및/또는 애플리케이션을 플레이하기 위해 게임 콘솔(300)을 이동시키고 있는 동안 계속해서 동작할 수 있다. 추가로, 일부 실시예들에서, 처리 회로는 디스플레이 디바이스(316)에 결합될 수 있다. 처리 회로는 HDMI 케이블, HDMI 저 레이턴시 무선 전송 기술, HDbitT®, WiFi 등과 같은, 그러나 이에 제한되는 것은 아닌 임의의 통신 인터페이스를 통해 디스플레이 디바이스(316)에 결합될 수 있다. 처리 회로는 도 2를 참조하여 위에서 설명된 바와 같이, 처리 회로가 처리하고 있는 게임 또는 애플리케이션 및/또는 처리 회로가 처리하는 입력들에 기반하여 디스플레이 디바이스(316) 상에 도시되고 있는 사용자 인터페이스를 생성 및 업데이트할 수 있다.
디스플레이 디바이스(316)는 래치들(307) 및 스크린 홀더(314)를 통해 게임 콘솔 하우징(301)에 제거 가능하게 결합될 수 있다. 디스플레이 디바이스(316)는 스크린 홀더(314)에 결합될 수 있다. 래치들(307)은, 스크린 홀더(예컨대, 스크린 홀더(314))가 래치들 중 임의의 래치에 부착될 수 있도록 상승되는 다수의 래치들을 포함할 수 있다. 게임 콘솔(300)을 조작하는 조작자는 래치들 중 임의의 래치로부터 스크린 홀더(314)를 제거하고 스크린 홀더(314)를 상이한 래치에 재부착하여 스크린 홀더(314)의 포지션 및 결과적으로 디스플레이 디바이스(316)의 포지션을 조정할 수 있다. 일부 실시예들에서, 래치들(307) 및 스크린 홀더(314)는, 조작자가 스크린 홀더(314)를 래치들 사이에 슬라이딩하고 스크린 홀더(314)를 제자리에 고정하여 스크린 홀더(314)의 포지션을 설정하도록 구성될 수 있다. 일부 실시예들에서, 스크린 홀더(314) 및/또는 디스플레이 디바이스(316)는 게임 콘솔 하우징(301)의 일부일 수 있다.
디스플레이 디바이스(316)는 스크린 홀더(314)에 결합될 수 있다. 디스플레이 디바이스(316)는 스냅 핏(snap fit), 자석들, 스크류들, 못들, 루프 및 후크들 등과 같은 패스너로 스크린 홀더(314)에 결합될 수 있다. 일부 실시예들에서, 디스플레이 디바이스(316)와 스크린 홀더(314)는 동일한 컴포넌트일 수 있다. 이러한 실시예들에서, 디스플레이 디바이스(316)는 래치들(307) 중 한 래치에 결합될 수 있다. 일부 실시예들에서, 디스플레이 디바이스(316)는, 디스플레이 디바이스(316)가 스크린 홀더(314)를 중심으로 조작자가 원하는 포지션으로 회전될 수 있도록 스크린 홀더(314)에 회전 가능하게 결합될 수 있다.
디스플레이 디바이스(316)는 게임 콘솔(300)의 처리 회로에 의해 처리되고 있는 게임 또는 애플리케이션의 사용자 인터페이스를 디스플레이하기 위해 처리 회로와 통신할 수 있는 디스플레이 디바이스일 수 있다. 일부 실시예들에서, 디스플레이 디바이스(316)는 디스플레이 디바이스(316)와 게임 콘솔(300)의 처리 회로 및/또는 외부 디바이스의 처리 회로 간의 데이터의 전송을 가능하게 하는 (도시되지 않은) 적어도 프로세서 및 메모리를 포함하는 내부 처리 회로를 포함할 수 있다. 디스플레이 디바이스(316)는 디스플레이(318)를 포함하는 것으로 도시된다. 디스플레이(318)는 도 2를 참조하여 도시되고 설명되는 디스플레이(224)와 유사할 수 있다. 디스플레이 디바이스(316)는 게임 콘솔(300)의 처리 회로로부터 사용자 인터페이스를 포함하는 데이터 스트림을 수신하고 디스플레이(318)에서 사용자 인터페이스를 디스플레이할 수 있다.
조작자는 커맨드 버튼들(310 또는 311) 및/또는 전원 버튼(312)을 누르고 그리고/또는 트리거(304)를 당겨 게임 콘솔(300)의 처리 회로에 입력을 제공할 수 있다. 처리 회로에 입력을 제공함으로써, 조작자는 게임 콘솔(300)의 처리 회로가 디스플레이 디바이스(316)를 통해 제공하고 있는 사용자 인터페이스를 조정할 수 있다. 예를 들어, 조작자는 커맨드 버튼들(310 또는 311) 중 하나를 누름으로써 게임에서 액션을 수행할 수 있다. 다른 예에서, 조작자는 전원 버튼(312)을 누름으로써 게임 콘솔(300)을 켜거나 끌 수 있다. 추가로, 조작자는 위에서 설명된 바와 같이, 처리 회로에 입력을 제공하고 디스플레이 디바이스(316)의 사용자 인터페이스를 조정하기 위해 게임 콘솔(300)을 이동(예컨대, 재배향)시킬 수 있다.
일부 실시예들에서, 게임 콘솔(300)은 게임 콘솔 하우징(301)에 내부적으로 결합되는 (도시된 바와 같은) 센서들(예컨대, 센서들)을 포함할 수 있다. 센서들은 가속도계들, 자이로스코프들, 자력계들 등과 같은, 그러나 이에 제한되지 않는 센서들을 포함하는 관성 측정 유닛의 일부일 수 있다. 센서들은 게임 콘솔 하우징(301)의 포지션을 식별하는 포지션 데이터를 게임 콘솔(300)의 처리 회로에 제공할 수 있다. 처리 회로는 포지션 데이터를 수신하고 포지션 데이터에 기반하여 디스플레이(318)의 사용자 인터페이스를 업데이트할 수 있다.
사용자 인터페이스를 업데이트하기 위해, 처리 회로는 현재 포지션 데이터를 수신하고, 현재 포지션 데이터를 게임 콘솔 하우징의 이전 포지션에 대응하는 이전 포지션 데이터와 비교할 수 있다. 처리 회로는 포지션 데이터 간의 차이를 식별하고 그 차이에 기반하여 사용자 인터페이스를 업데이트할 수 있다. 예를 들어, 처리 회로는 게임 콘솔 하우징(301)의 현재 포지션 데이터를 수신할 수 있다. 이전 포지션 데이터는 게임 콘솔 하우징(301)이 똑바로 가리키고 있다는 것을 지시할 수 있다. 처리 회로는 현재 포지션 데이터를 이전 포지션 데이터와 비교하고, 게임 콘솔 하우징(301)이 이전 포지션 데이터의 포지션과 비교하여 좌측을 가리키고 있다고 결정할 수 있다. 결과적으로, 처리 회로는 가상 환경의 좌측으로 이동시키거나 사용자 인터페이스 상의 커서를 좌측으로 이동시키도록, 디스플레이(318) 상에 도시된 사용자 인터페이스의 뷰를 변경할 수 있다. 일부 실시예들에서, 이전 포지션 데이터는 조작자에 의해 설정된 게임 콘솔 하우징(301)의 교정된 포지션일 수 있다.
게임 콘솔(201)의 처리 회로에 의해 처리되고 있는 게임들 또는 애플리케이션들의 특징들은 조명 엘리먼트들(313)을 통해 도시될 수 있다. 조명 엘리먼트들(313)은 상이한 컬러들의 광을 제공할 수 있는 전구들을 갖는 (예컨대, 일렬로 포지셔닝된) 평행한 슬릿들을 게임 콘솔 하우징(301)에 포함할 수 있다. 조명 엘리먼트들(313)은 임의의 방식으로 포지셔닝될 수 있다. 추가로, 조명 엘리먼트들(313)은 세장형 부분(306)의 어느 한 면 또는 양면에 포지셔닝될 수 있다. 게임 콘솔(300)의 처리 회로는 조명 엘리먼트들(313)과 통신하여, 처리 회로가 현재 처리하고 있는 게임 또는 애플리케이션에 기반하여 광을 제공할 수 있다. 조명 엘리먼트들(313)은 처리 회로가 처리하고 있는 게임 또는 애플리케이션의 특징들에 기반하여 광을 제공할 수 있다. 예를 들어, 조명 엘리먼트들(313)은 점등되는 조명 엘리먼트들(313)의 수에 기반하여 게임의 캐릭터가 남긴 건강도의 양을 지시할 수 있다. 다른 예에서, 조명 엘리먼트들(313)은, 캐릭터가 남긴 생명들의 수에 대응하는 다수의 조명 엘리먼트들(313)을 점등함으로써, 캐릭터가 남긴 다수의 생명들을 제공할 수 있다. 조명 엘리먼트들(313)은 게임들 또는 애플리케이션들의 임의의 종류의 특징들을 디스플레이할 수 있다.
예시적인 실시예에서, 게임 콘솔(300)을 조작하는 조작자는 한 손 또는 두 손으로 게임 콘솔(300)을 홀딩할 수 있다. 일부 경우들에서, 조작자는 한 손으로 그립 부분(302)을 잡고 다른 손으로 게임 콘솔 하우징(301)의 일부를 트리거(304) 상의 손가락으로 홀딩하여 게임 콘솔(300)을 홀딩할 수 있다. 다른 경우들에서, 조작자는 한 손을 사용하여 트리거(304)를 당길 수 있으면서 다른 손은 그립(308)을 잡는다. 그립(308)은 세장형 부분(306)을 따라 손을 슬라이딩하지 않으면서 조작자가 그립할 수 있는 물질(예컨대, 고무)을 포함할 수 있다. 일부 실시예들에서, 그립(308)의 부분들은 그립(308)의 다른 부분들로부터 상승(리지들)되어 조작자들의 손들을 슬라이딩하는 것으로부터의 추가 보호들을 제공할 수 있다. 그립(308)은 그립(308)을 잡는 손들이 또한 이들의 포지션을 조정하지 않고 커맨드 버튼들(310) 및/또는 전원 버튼(312) 중 임의의 것을 누를 수 있도록 세장형 부분(306) 상에 포지셔닝될 수 있다. 게임 콘솔(300)을 홀딩하는 동안, 조작자는 디스플레이 디바이스(316)를 볼 수 있다.
이제 도 4를 참조하면, 본 개시내용의 일부 실시예들에 따라 스크린 홀더(406)를 통해 게임 콘솔 하우징(402)에 결합된 디스플레이 디바이스(408)를 포함하는 게임 콘솔(400)의 사시도가 도시된다. 게임 콘솔(400)은 도 3을 참조하여 도시되고 설명된 게임 콘솔(300)과 유사할 수 있다. 게임 콘솔(400)은 게임 콘솔 하우징(402), 래치들(404), 스크린 홀더(406) 및 디스플레이 디바이스(408)를 포함하는 것으로 도시된다. 디스플레이 디바이스(408)는 디스플레이(410)를 포함하는 것으로 도시된다. 컴포넌트들(402-410) 각각은 게임 콘솔(300)의 대응하는 컴포넌트들과 유사할 수 있다. 그러나 게임 콘솔(400)의 스크린 홀더(406)는 래치들(404) 중 게임 콘솔(300)의 스크린 홀더(314)가 결합되는 래치와 상이한 래치에 결합될 수 있다. 스크린 홀더(406)는, 게임 콘솔(400)의 조작자가 게임 콘솔(400)의 애플리케이션들 또는 게임들을 플레이할 때 디스플레이(410)를 더 쉽게 볼 수 있도록 조작자에게 더 가까운 래치에 결합될 수 있다. 스크린 홀더(406)는 게임 콘솔 하우징(402)의 배럴 상의(예컨대, 래치들(404) 중 한 래치 상의) 상이한 위치들에 포지셔닝되도록 조정 가능할 수 있다. 유리하게는, 스크린 홀더(406)는 조작자가 조작자로부터 임의의 거리에서 디스플레이(410)와 함께 게임 콘솔(400)을 작동시킬 수 있도록 래치들(404) 중 임의의 래치에 결합될 수 있다.
이제 도 5를 참조하면, 본 개시내용의 일부 실시예들에 따라, 도 4를 참조하여 도시되고 설명되는 게임 콘솔(400)의 측면도가 도시된다. 게임 콘솔(400)은 핸들(501), 트리거(502), 그립(504), 커맨드 버튼들(506), 페달(508), 스크린 홀더(406) 및 디스플레이 디바이스(408)를 포함하는 것으로 도시된다. 조작자는 트리거(502), 커맨드 버튼들(506) 및/또는 페달(508) 중 임의의 것과 상호 작용하여, 위에서 설명된 바와 같이 게임 콘솔(400)의 처리 회로에 입력들을 제공할 수 있다. 추가로, 조작자는 그립(504) 및 핸들(501)을 잡음으로써 게임 콘솔(400)을 홀딩할 수 있다.
일부 실시예들에서, 디스플레이 디바이스(408)는 스크린 홀더(406)에 조정 가능하게(예컨대, 회전 가능하게) 결합될 수 있다. 디스플레이 디바이스(408)는, 조작자가 스크린 홀더(406)와 관련하여 디스플레이 디바이스(408)의 포지션을 재배향할 수 있도록 결합될 수 있다. 예를 들어, 조작자는 조작자로부터 멀어지게 또는 위쪽을 향하도록 스크린 홀더(406)를 중심으로 디스플레이 디바이스(408)를 회전할 수 있다. 디스플레이 디바이스(408)가 어떻게 포지셔닝되기를 조작자가 원하는지에 따라 조작자는 디스플레이 디바이스(408)를 180도까지 회전시킬 수 있다.
이제 도 6을 참조하면, 본 개시내용의 일부 실시예들에 따라, 조작자가 게임 콘솔(예컨대, 게임 콘솔(201))로 선택할 다양한 레벨들의 난이도를 디스플레이하는 스크린 디스플레이(600)가 도시된다. 스크린 디스플레이(600)는 사용자 인터페이스(602)를 포함하는 것으로 도시된다. 사용자 인터페이스(602)는 게임 콘솔의 디스플레이에 의해 디스플레이될 수 있고, 게임 콘솔의 처리 회로가 처리하고 있는 게임 또는 애플리케이션과 연관될 수 있다. 도시된 바와 같이, 사용자 인터페이스(602)는 선택 리스트(604) 및 커서(606)를 포함할 수 있다. 선택 리스트(604)는 게임 콘솔이 현재 처리하고 있는 게임과 연관된 난이도 레벨들의 다양한 옵션들을 포함할 수 있다. 예를 들어, 도시된 바와 같이, 선택 리스트(604)는 평이 옵션, 중간 옵션, 하드(hard) 옵션 및 불가능 옵션과 같은 옵션들을 포함할 수 있다. 조작자는 선택 리스트(604)를 보고, 선택된 옵션과 연관된 난이도로 게임을 플레이하기 시작할 옵션들 중 하나를 선택할 수 있다.
일부 실시예들에서, 선택 리스트(604)로부터 옵션을 선택하기 위해, 조작자는 커서(606)를 원하는 옵션 쪽으로 이동시키기 위해 게임 콘솔(201)의 배향을 변경할 수 있다. 배향의 변경은 게임 콘솔의 배럴의 단부의 포지션의 변화에 의해 표현될 수 있다. 예를 들어, 커서(606)가 사용자 인터페이스(602)의 최상부 좌측 코너에 있고, 조작자가 선택 리스트(604)의 중간 옵션을 선택하기를 원한다면, 조작자는 배럴의 단부의 포지션을 아래쪽으로 지향시킬 수 있다. 게이밍 디바이스의 처리 회로는, 배럴의 단부가 이동 중이거나 아래쪽으로 이동했음을 지시하는 신호들을 게이밍 디바이스의 센서들로부터 수신하고, 검출된 움직임에 대응하여 커서(606)를 이동시킬 수 있다. 일단 커서(606)가 원하는 옵션(예컨대, 중간) 위에 있으면, 조작자는 입력 버튼을 누르거나 게임 콘솔의 트리거를 당김으로써 옵션을 선택할 수 있다. 조작자는 게임 콘솔의 움직임에 기반하여 사용자 인터페이스(602) 상에서 임의의 방향으로 커서(606)를 이동시킬 수 있다.
이제 도 7을 참조하면, 본 개시내용의 일부 실시예들에 따라, 게임 콘솔(예컨대, 게임 콘솔(201))을 통해 플레이되는 게임의 사용자 인터페이스(702)를 포함하는 스크린 디스플레이(700)가 도시된다. 사용자 인터페이스(702)는 게임 콘솔의 처리 회로에 의해 생성 및 업데이트될 수 있다. 사용자 인터페이스(702)는 처리 회로에 의해 처리되고 있는 게임과 연관될 수 있다. 처리 회로는, 조작자가 게임 콘솔의 외부 표면 상의 입력 버튼들을 누르거나, 게임 콘솔의 트리거를 당기거나, 게임 콘솔을 이동시키거나 재배향하는 것과 연관된 입력을 수신하는 것에 대한 응답으로 사용자 인터페이스(702)를 업데이트할 수 있다. 사용자 인터페이스(702)는 클라우드들로 표현되는 환경(704), 테이블(706) 상의 일렬의 캔(can)들, 및 십자선들(708)을 포함하는 것으로 도시된다. 게임 콘솔을 조작하는 조작자는 게임 콘솔 상의 푸시 버튼들을 이동시키고 누름으로써 사용자 인터페이스(702)와 상호 작용할 수 있다.
예를 들어, 조작자는 도 6을 참조하여 위에서 도시되고 설명된 커서(606)의 포지션을 조작자가 제어한 방식과 유사한 방식으로 게임 콘솔을 이동시킴으로써 십자선들(708)의 포지션을 제어할 수 있다. 조작자는 캔들 중 하나 위에 십자선들(708)을 포지셔닝하고, 게임 콘솔의 트리거를 당김으로써 캔들에 발사할 수 있다. 게임 콘솔의 처리 회로는, 조작자가 트리거를 당겼다는 지시를 수신하고, 십자선들(708)의 중간으로 표현되는 포지션에서 총 발사의 시퀀스를 플레이하도록 사용자 인터페이스(702)를 업데이트할 수 있다. 조작자가 캔에서 발사하는 데 성공했다면, 처리 회로는 테이블에서 떨어지는 캔의 시퀀스를 플레이하도록 사용자 인터페이스(702)를 업데이트할 수 있다.
이제 도 8을 참조하면, 본 개시내용의 일부 실시예들에 따라, 도 2를 참조하여 설명된 것과 같은 게임 콘솔의 동작의 개요를 서술하는 예시적인 흐름도가 도시된다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 데이터 처리 시스템(예컨대, 도 2를 참조하여 도시되고 또한 설명되는 게임 콘솔(201))에 의해 수행되는 방법(800)은 게임 또는 애플리케이션 선택을 수신하고(802), 게임 또는 애플리케이션을 처리하고(804), 게임 또는 애플리케이션의 인터페이스를 생성하여 디스플레이하고(806), "입력을 수신하고"(808), 입력을 식별하고(810), 입력에 기반하여 사용자 인터페이스를 업데이트하는(812) 것을 포함한다.
동작(802)에서, 데이터 처리 시스템은 게임 또는 애플리케이션 선택을 수신할 수 있다. 데이터 처리 시스템은 온라인 교환을 통해 네트워크를 통해 리트리브(retrieve)된 게임들의 리스트를 디스플레이할 수 있다. 데이터 처리 시스템은 데이터 처리 시스템의 하우징에 결합된 디스플레이 디바이스의 스크린 상에 게임들의 리스트를 디스플레이할 수 있다. 게임들의 리스트는 데이터 처리가 생성하는 사용자 인터페이스 상에 디스플레이될 수 있다. 데이터 처리 시스템에 액세스하는 조작자는 하우징을 회전시키고 푸시 버튼을 누르거나 하우징의 트리거를 당김으로써 게임들 중 하나를 선택할 수 있다. 데이터 처리 시스템은 하우징의 포지션의 변화(예컨대, 움직임)를 지시하는 신호를 수신하고, 사용자 인터페이스 상에 디스플레이되는 커서를 이동시킬 수 있다. 데이터 처리 시스템은, 조작자가 하우징을 이동시킬 때 사용자 인터페이스 상에서 동일한 방향으로 커서를 이동시킬 수 있다.
조작자가 게임 또는 애플리케이션을 선택하면, 동작(804)에서, 데이터 처리 시스템은 게임 또는 애플리케이션을 처리할 수 있다. 데이터 처리 시스템은 선택된 게임 또는 애플리케이션을 저장하는 외부 서버 또는 프로세서로부터 선택된 게임 또는 애플리케이션과 연관된 파일들을 다운로드함으로써 게임 또는 애플리케이션을 처리할 수 있다. 데이터 처리 시스템은 네트워크를 통해 게임 또는 애플리케이션을 다운로드할 수 있다. 데이터 처리 시스템이 게임 또는 애플리케이션을 다운로드하면, 동작(806)에서, 데이터 처리 시스템은 게임 또는 애플리케이션과 연관된 사용자 인터페이스를 생성하고 사용자 인터페이스를 스크린 상에 디스플레이할 수 있다. 일부 경우들에서, 게임 또는 애플리케이션은 이미 데이터 처리 시스템에 다운로드되었을 수 있다. 이러한 경우들에서, 데이터 처리 시스템은 선택된 게임 또는 애플리케이션을 처리하여, 외부 서버 또는 프로세서로부터 선택된 게임 또는 애플리케이션을 다운로드하지 않고 스크린 상에 사용자 인터페이스를 생성할 수 있다.
데이터 처리 시스템이 사용자 인터페이스를 디스플레이하면, 동작(808)에서, 데이터 처리 시스템은 자신이 입력을 수신했는지 여부를 결정할 수 있다. 데이터 처리 시스템을 조작하고 있는 조작자가 데이터 처리 시스템의 하우징의 푸시 버튼을 누르거나 하우징의 포지션을 변경할 때, 데이터 처리 시스템은 입력을 수신할 수 있다. 데이터 처리 시스템이 입력을 수신하지 않는다면, 방법(800)은 동작(804)으로 돌아가서 게임 또는 애플리케이션을 계속 처리하고, 데이터 처리 시스템이 입력을 수신할 때까지 동작(806)에서 사용자 인터페이스를 디스플레이할 수 있다.
데이터 처리 시스템이 입력을 수신한다면, 동작(810)에서, 데이터 처리 시스템은 입력을 식별할 수 있다. 데이터 처리 시스템은 입력에 기반하여 데이터 처리 시스템이 처리하고 있는 게임 또는 애플리케이션과 연관된 액션을 결정할 수 있다. 예를 들어, 데이터 처리 시스템은 조작자가 누름 버튼을 누르는 것에 기반하여 입력을 수신할 수 있다. 데이터 처리 시스템은 데이터 처리 시스템에 의해 저장된 룩업 테이블의 점프 액션에 푸시 버튼을 매칭시킬 수 있다. 결과적으로, 데이터 처리 시스템은 점프를 액션으로 결정할 수 있다.
일단 데이터 처리 시스템이 액션을 결정하면, 동작(812)에서, 데이터 처리 시스템은 입력에 기반하여 사용자 인터페이스를 업데이트할 수 있다. 데이터 처리 시스템은 결정된 액션에 기반하여 스크린 상의 사용자 인터페이스에서 액션 시퀀스를 디스플레이할 수 있다. 점프 액션과 연관된 입력과 연관된 위의 예를 계속하면, 점프 액션을 결정할 때, 데이터 처리 시스템은 점프 시퀀스를 보여주도록 사용자 인터페이스를 업데이트할 수 있다.
다른 경우에, 동작(810)에서, 데이터 처리 시스템은 사용자 인터페이스에 커서를 디스플레이할 수 있다. 입력은 하우징에 결합된 센서들이 데이터 처리 시스템에 제공하는 데이터 처리 시스템의 하우징의 검출된 움직임일 수 있다. 데이터 처리 시스템은 검출된 움직임을 하우징의 움직임으로서 식별할 수 있다. 동작(812)에서, 데이터 처리 시스템은 하우징의 검출된 움직임에 대응하게 사용자 인터페이스 상에서 커서를 이동시킬 수 있다. 커서를 이동시키기 위해, 데이터 처리 시스템은 커서의 현재 포지션을 검출하고 하우징의 검출된 움직임과 동일한 방향으로 커서를 이동시킬 수 있다.
이제 도 9를 참조하면, 본 개시내용의 일부 실시예들에 따라, 도 2를 참조하여 설명된 것과 같은 원격 게이밍 디바이스와 통신하는 게임 콘솔의 동작의 개요를 서술하는 예시적인 흐름도가 도시된다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 제2 데이터 처리 시스템(예컨대, 게임 콘솔(201)의 처리 회로)과 통신하는 제1 데이터 처리 시스템(예컨대, 도 2를 참조하여 도시되고 설명되는 원격 디바이스(228)의 처리 회로) 및 제2 데이터 처리 시스템의 하우징에 결합된 디스플레이 디바이스(예컨대, 디스플레이 디바이스(222))에 의해 방법(900)이 수행된다. 방법(900)은 시청각 데이터 스트림을 생성하고(902), 시청각 데이터 스트림을 게임 콘솔에 전송하고(904), 게임 콘솔로부터 입력을 수신하고(906), 업데이트된 시청각 데이터 스트림을 생성하고(908), 업데이트된 시청각 데이터 스트림을 전송하는(910) 것을 포함한다.
동작(902)에서, 제1 데이터 처리 시스템은 시청각 데이터 스트림을 생성할 수 있다. 제1 데이터 처리 시스템은 제1 데이터 처리 시스템과 연관된 게임 또는 애플리케이션을 처리하면서 시청각 데이터 스트림을 생성할 수 있다. 시청각 데이터 스트림은 게임 또는 애플리케이션과 연관된 사용자 인터페이스와 연관된 시각적 데이터를 포함할 수 있다. 시청각 데이터 스트림은 또한 사용자 인터페이스에 대응하는 오디오 데이터를 포함할 수 있다. 사용자 인터페이스는 그래픽들, 메뉴들, 또는 조작자가 게임 또는 애플리케이션을 플레이하는 동안 볼 수 있는 임의의 다른 컴포넌트를 포함하는 게임 또는 애플리케이션의 인터페이스일 수 있다.
동작(904)에서, 제1 데이터 처리 시스템은 제1 통신 인터페이스 및 제1 통신 프로토콜을 통해 시청각 데이터 스트림을 제2 데이터 처리 시스템의 하우징의 디스플레이 디바이스에 전송할 수 있다. 디스플레이 디바이스는 디스플레이 디바이스의 스크린에 시청각 데이터 스트림의 사용자 인터페이스를 디스플레이할 수 있다. 제1 통신 인터페이스는 손실 전송 계층 통신 프로토콜을 이용할 수 있다. 손실 전송 계층 통신 프로토콜은 디스플레이 디바이스가 이미지 데이터를 신속하게 다루고 디스플레이하는 것을 가능하게 하고 (예컨대, 사용자가 1인칭 슈팅 게임을 플레이하는 동안 헤드업 디스플레이를 신속하게 이동시킬 때) 사용자 인터페이스에서 빠른 변경들을 다루는 것을 가능하게 할 수 있다. 손실 전송 계층 통신 프로토콜은 이미지 데이터가 몇몇 데이터 패킷들을 누락하게 할 수 있지만(그리고 픽처가 덜 상세해지게 할 수 있지만), 그러한 프로토콜의 이점들은 3차원 가상 환경을 신속하게 스캔하길 원하는 사용자의 플레이 경험을 크게 개선할 수 있다. 일부 실시예들에서, 제1 통신 인터페이스는 HDbitT® 또는 WiFi를 이용하여 이미지 및/또는 다른 데이터를 전송할 수 있다. 일부 실시예들에서, 외부 디바이스는 제1 데이터 처리 시스템으로부터 디스플레이 디바이스로의 무선 HDMI 접속을 제공하기 위해 제1 데이터 처리 시스템에 플러그인될 수 있다.
동작(906)에서, 제1 데이터 처리 시스템은 제2 통신 인터페이스를 통해 제2 데이터 처리 시스템으로부터 입력을 수신할 수 있다. 제2 통신 인터페이스는 무손실 전송 계층 통신 프로토콜을 이용하여 데이터를 전송할 수 있다. 예를 들어, 제2 통신 인터페이스는 무손실 전송 계층 통신 프로토콜을 이용하여 포지션 센서들, 조이스틱 데이터 또는 버튼 데이터 중 하나 이상으로부터의 신호들과 같은 제어 신호들을 제1 데이터 처리 시스템으로 전송한다. 일부 실시예들에서, 제2 통신 인터페이스는 이를 위해 블루투스 또는 다른 형태들의 통신을 이용할 수 있다. 입력은, 조작자가 제2 데이터 처리 시스템의 하우징 상의 푸시 버튼을 누르는 것에 대한 응답으로 제2 데이터 처리 시스템에 의해 생성된 신호, 조이스틱 데이터, 또는 하우징이 이동한 것을 검출하는, 하우징에 결합된 센서들에 의해 생성된 데이터에 대응할 수 있다. 제2 데이터 처리 시스템은 검출된 움직임에 기반하여 센서들로부터 생성된 신호들, 조이스틱 데이터, 또는 푸시 버튼들이 눌리는 것에 기반한 푸시 버튼들을 처리하고, 처리될 신호들을 제1 데이터 처리 시스템에 송신할 수 있다. 유리하게는, 무손실 전송 계층 통신 프로토콜을 사용하여 이러한 신호들을 제1 데이터 처리 시스템에 전송함으로써, 제2 통신 인터페이스는 신호들이 정확하게 송신되어 처리되는 것을 보장할 수 있다.
동작(908)에서, 제1 데이터 처리 시스템은 제2 데이터 처리 시스템으로부터 신호들을 수신하고 신호들에 기반하여 업데이트된 시청각 데이터 스트림을 생성할 수 있다. 제1 데이터 처리 시스템은 입력들을 수신하고 입력들과 연관되는 액션들을 결정할 수 있다. 제1 데이터 처리 시스템은, 제1 데이터 처리 시스템이 현재 처리하고 있는 게임 또는 애플리케이션에 특정한 내부 룩업 테이블에 대한 입력들을 비교함으로써 액션들을 결정할 수 있다. 제1 데이터 처리 시스템은 매치를 식별하고, 룩업 테이블에서의 매치에 기반하여 업데이트된 시청각 데이터 스트림을 생성할 수 있다. 동작(910)에서, 제2 데이터 처리 시스템은 업데이트된 시청각 데이터 스트림을 디스플레이 디바이스에 전송하여, 제1 통신 인터페이스 및 제1 통신 프로토콜을 통해 디스플레이 상에 보여지고 있는 사용자 인터페이스를 업데이트할 수 있다.
일부 실시예들에서, 제1 데이터 처리 시스템은 조이스틱으로부터의 신호 및 제2 데이터 처리 시스템의 포지션 센서로부터의 신호를 수신할 수 있다. 제1 데이터 처리 시스템은 신호들을 조합하고, 업데이트된 신호에 기반하여 업데이트된 시청각 데이터 스트림을 생성할 수 있다. 일부 실시예들에서, 제2 데이터 처리 시스템은 신호들을 조합하여 제3 신호를 생성하고 제3 신호를 제1 데이터 처리 시스템에 전송할 수 있다. 제1 데이터 처리 시스템은 이러한 실시예들에서 제3 신호에 기반하여 시청각 데이터 스트림을 업데이트할 수 있다. 제1 데이터 처리 시스템 또는 제2 데이터 처리 시스템은 도 10a - 도 10c를 참조하여 아래에서 설명되는 방식으로 신호들을 조합할 수 있다.
유리하게는, 전송되는 데이터의 타입에 따라 데이터 처리 시스템과 원격 데이터 처리 시스템 간에 데이터를 전송하기 위해 상이한 통신 프로토콜들을 사용함으로써, 데이터 처리 시스템은 비디오 게임을 플레이하는 사용자에게 보다 저 레이턴시 경험을 제공하도록 동작할 수 있다. 무손실 통신 계층 프로토콜을 사용하여 원격 데이터 처리에 제어 신호들을 전송하는 것은 더 작은 그리고 정확하도록 더 중요한 제어 신호들에 유용하다. 통신은 신호의 더 높은 정확도를 보장하면서 여전히 빠를 수 있다. 다른 한편으로, 원격 데이터 처리 시스템이 시청각 데이터로 응답하기 때문에, 그리고 특히, 인터페이스가 빠르게 변하는 애플리케이션 컨텍스트에서는, 원격 데이터 처리 시스템이 시청각 데이터와 같은 큰 데이터 파일들을 데이터 처리 시스템에 다시 송신하여, 사용자 인터페이스가 사용자가 원격 데이터 처리 시스템에 제공하는 임의의 입력들을 따라잡을 수 있음을 보장하는 것이 중요할 수 있다.
이제 도 10a를 참조하면, 본 개시내용의 일부 실시예들에 따라, 조이스틱 및 포지션 센서로부터의 신호들의 조합에 기반하여 사용자 인터페이스를 업데이트하는 것의 개요를 서술하는 예시적인 흐름도가 도시된다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 방법(1000)은 데이터 처리 시스템(예컨대, 도 2를 참조하여 도시되고 설명된 처리 회로(202) 또는 처리 회로(230))에 의해 수행된다. 방법(1000)은 데이터 처리 시스템이 조이스틱 및 포지션 센서들로부터의 입력들을 동적으로 처리하고 조합하여 사용자 인터페이스를 업데이트하는 것을 가능하게 할 수 있다. 방법(1000)은 사용자가 상이한 애플리케이션들 및/또는 애플리케이션의 상태들에 액세스할 때 조이스틱 및 포지션 센서들로부터의 신호들에 대한 가중치들을 할당하고 업데이트함으로써 데이터 처리 시스템이 사용자 인터페이스를 업데이트하는 것을 가능하게 할 수 있다.
동작(1002)에서, 데이터 처리 시스템은 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 포지션 센서로부터 수신할 수 있다. 포지션 센서는 자이로스코프, 가속도계, 관성 측정 유닛 또는 다른 어떤 포지션 감지 디바이스일 수 있다. 일부 실시예들에서, 제1 신호는 휴대용 게이밍 디바이스의 배향의 변화량을 지시하는 크기 또는 값을 포함한다. 예를 들어, 휴대용 게이밍 디바이스를 홀딩하는 사용자는 휴대용 게이밍 디바이스를 직선 포지션에서 위를 보는 포지션으로 가리킬 수 있다. 포지션 센서는 휴대용 게이밍 디바이스의 포지션의 변화를 검출하고, 휴대용 게이밍 디바이스의 포지션의 변화에 비례하는 값 또는 크기를 갖는 신호를 생성하여 데이터 처리 시스템에 전송할 수 있다. 일부 실시예들에서, 신호는 또한 방향을 포함한다. 위의 예를 계속하면, 신호는 휴대용 게이밍 디바이스를 홀딩하는 사용자가 디바이스를 위쪽으로 가리킴을 지시하는 방향 지시자를 신호에 포함할 수 있다.
동작(1004)에서, 데이터 처리 시스템은 조이스틱의 포지션의 변화를 지시하는 제2 신호를 조이스틱으로부터 수신할 수 있다. 조이스틱은 3축 또는 2축 조이스틱, 방향성 패드, 정사각형 또는 직사각형 터치 패드, 또는 유사한 인터페이스일 수 있다. 추가로, 조이스틱은 디지털 조이스틱, 패들 조이스틱, 아날로그 조이스틱, PC 아날로그 조이스틱, 조이패드, 또는 임의의 다른 타입의 조이스틱일 수 있다. 일부 실시예들에서, 제2 신호는 정지 포지션으로부터의 조이스틱의 포지션의 변화량을 지시하는 크기 또는 값을 포함할 수 있다. 예를 들어, 제2 신호는 조이스틱이 이동된 축(예컨대, x축 또는 y축) 상의 거리를 나타내는 아날로그 전압일 수 있거나, 제2 신호는 아날로그-디지털 변환기를 통해 결정된 축을 따라 양자화된 포지션을 나타내는 디지털 신호일 수 있다. 일부 실시예들에서, 제2 신호의 크기는 조이스틱이 휴대용 게이밍 디바이스와의 접촉점으로부터 피벗하는 각도에 대응한다. 일부 실시예들에서, 각도가 더 클수록, 크기가 더 커진다. 예를 들어, 휴대용 게이밍 디바이스를 홀딩하는 사용자는 자신의 엄지 손가락으로 조이스틱을 조종할 수 있다. 사용자는 조이스틱을 옆으로 누를 수 있다. 이에 따라, 조이스틱은 사용자가 조이스틱을 옆으로 눌렀음을 지시하는 신호 및 사용자가 조이스틱을 옆으로 눌렀던 거리의 크기를 생성할 수 있다. 조이스틱은 포지션 센서가 송신하는 신호에 추가하여 또는 그 대신에 처리를 위해 데이터 처리 시스템에 그러한 신호를 송신할 수 있다.
동작(1006)에서, 데이터 처리 시스템은 휴대용 게이밍 디바이스의 사용자 인터페이스 상에 현재 디스플레이되고 있는 콘텐츠에 기반하여 또는 제1 신호 및/또는 제2 신호에 기반하여 제1 신호 및 제2 신호에 가중치들을 할당할지 여부를 결정할 수 있다. 데이터 처리 시스템은, 사용자 인터페이스 상에 보여지고 있는 것에 변화가 있다면, 또는 데이터 처리 시스템에 의해 실행되고 있는 애플리케이션의 상태에 변화가 있다면, 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠에 기반하여 가중치들을 할당하기로 결정할 수 있다. 예를 들어, 데이터 처리 시스템은, 사용자가 사용자 인터페이스의 확대된 뷰에 방금 진입한 것을 데이터 처리 시스템이 검출한다면, 사용자 인터페이스 상에 보여지는 콘텐츠에 기반하여 가중치들을 할당하기로 결정할 수 있다. 다른 예에서, 데이터 처리 시스템은, 데이터 처리 시스템에 의해 실행되는 애플리케이션이 메뉴를 갖는 상태에 진입했다고 데이터 처리 시스템이 결정한다면, 사용자 인터페이스 상에 보여지는 콘텐츠에 기반하여 가중치들을 할당하기로 결정할 수 있다. 일부 실시예들에서, 데이터 처리 시스템은 프로세서가 방금 실행을 시작한 애플리케이션의 타입에 기반하여 가중치들을 할당하기로 결정할 수 있다. 예를 들어, 데이터 처리 시스템이 애플리케이션을 실행하기 시작한다면, 데이터 처리 시스템은 애플리케이션의 타입(예컨대, 1인칭 슈터, 어드벤처 게임, 메뉴 게임, 조이스틱 집중 게임 등)을 식별하고 애플리케이션의 결정된 타입에 기반하여 신호들에 가중치들을 할당할 수 있다.
데이터 처리 시스템이 제1 신호 및/또는 제2 신호의 값의 갑작스러운 변화를 검출한다면, 데이터 처리 시스템은 제1 신호 및/또는 제2 신호에 기반하여 가중치들을 할당하기로 결정할 수 있다. 예를 들어, 사용자가 갑자기 조이스틱을 전방으로 푸시한다면, 데이터 처리 시스템은 변화를 검출하고 그에 따라 신호들에 가중치들을 할당하거나 조정할 수 있다. 다른 예에서, 사용자가 갑자기 휴대용 게임 콘솔을 위쪽으로 저크(jerk)한다면, 데이터 처리 시스템은 휴대용 게이밍 디바이스의 배향의 갑작스러운 변화를 지시하는 신호를 포지션 센서로부터 수신하고 그에 따라 신호들의 가중치들을 조정할 수 있다. 이에 따라, 일부 구현들에서, 가중치들은 신호들 중 어느 하나 또는 둘 다의 미분 또는 변화율에 응답하여 할당 또는 조정될 수 있다.
데이터 처리 시스템이 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠에 기반하여 애플리케이션에 가중치들을 할당하기로 결정한다면, 동작(1008)에서, 데이터 처리 시스템은 사용자 인터페이스의 콘텐츠를 분석함으로써 콘텐츠의 타입을 결정할지 여부를 또는 데이터 처리 시스템에 의해 실행되고 있는 애플리케이션의 상태를 분석할지 여부를 결정할 수 있다. 데이터 처리 시스템은 콘텐츠의 타입을 이용하여 조이스틱 및/또는 포지션 센서들로부터의 신호들에 대한 가중치들을 결정할 수 있다. 데이터 처리 시스템은 그것이 어떻게 구성되는지에 기반하여(예컨대, 관리자에 의해 설정된 설정들에 기반하여) 그러한 결정을 내릴 수 있다. 예를 들어, 관리자는 사용자 인터페이스를 통해 디스플레이되는 객체들 또는 구조들에 기반하여 또는 데이터 처리 시스템이 실행하고 있는 애플리케이션의 상태에 기반하여 콘텐츠의 타입을 결정하도록 데이터 처리 시스템을 구성할 수 있다.
데이터 처리 시스템이 디스플레이에 기반하여 콘텐츠의 타입을 결정하도록 구성된다면, 동작(1010)에서, 데이터 처리 시스템은 현재 사용자 인터페이스를 분석하여, 사용자 인터페이스가 현재 디스플레이하고 있는 콘텐츠의 타입을 결정할 수 있다. 예를 들어, 데이터 처리 시스템은, 사용자 인터페이스 상에 현재 보여지고 있는 콘텐츠의 타입을 결정하기 위해, 스크린 스크래핑(scraping) 또는 광학적 캐릭터 인식을 사용하여 사용자 인터페이스의 객체들 및/또는 특징들을 식별할 수 있다. 예를 들어, 데이터 처리 시스템은 인터페이스의 부분들을 식별하고, 헤드업 디스플레이(HUD)의 십자선들이 정상보다 크다고 결정하고, 결과적으로 큰 십자선들에 기반하여 디스플레이가 확대된 1인칭 슈터 타입 콘텐츠를 디스플레이하고 있다고 결정할 수 있다. 다른 예에서, 데이터 처리 시스템은 메뉴 시스템의 아웃라인들을 식별하고, 사용자 인터페이스 상에 현재 디스플레이되고 있는 콘텐츠의 타입이 메뉴라고 결정할 수 있다. 데이터 처리 시스템은 디스플레이 상의 임의의 객체들 또는 지시자들을 사용하여, 현재 디스플레이되고 있는 콘텐츠의 타입을 결정할 수 있다. 콘텐츠의 타입들의 예들은 확대된 1인칭 슈터, 텍스트, HUD, 메뉴, 브라우저 등을 포함하지만 이에 제한되는 것은 아니다.
데이터 처리 시스템은 또한 애플리케이션 프로그래밍 인터페이스(API: application programming interface) 요청을 사용자 인터페이스에 송신함으로써 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠를 분석할 수 있다. 사용자 인터페이스는 현재 디스플레이되고 있는 객체들의 리스트로 응답할 수 있다. 사용자 인터페이스는 또한 사용자 인터페이스에 관한 다른 메타데이터, 이를테면 레이아웃 메타데이터 및 레코드 메타데이터를 포함할 수 있다. 이에 따라, 데이터 처리 시스템은 사용자 인터페이스로부터의 응답을 데이터베이스와 비교하여, 사용자 인터페이스 상에 현재 디스플레이되고 있는 콘텐츠의 타입에 객체들을 매칭시킬 수 있다. 데이터 처리 시스템이 데이터베이스에 대한 응답의 매칭 특징들을 갖는 콘텐츠의 타입을 찾는다면, 데이터 처리 시스템은 매칭 특징들을 갖는 콘텐츠의 타입이 사용자 인터페이스 상에 현재 디스플레이되고 있는 콘텐츠의 타입이라고 결정할 수 있다. 예를 들어, 데이터 처리 시스템은 사용자 인터페이스에 API 요청을 송신할 수 있다. (API를 통한) 사용자 인터페이스는 HUD에서 일반적으로 발견되는 객체들의 리스트로 응답할 수 있다. 데이터 처리 시스템은 객체들의 리스트를 데이터 처리 시스템 내의 데이터베이스와 비교하고, 현재 보여지고 있는 콘텐츠의 타입이 HUD인 것으로 결정할 수 있다.
동작(1008)에서, 데이터 처리 시스템이 사용자 인터페이스 자체의 디스플레이에 기반하여 디스플레이 상의 콘텐츠를 결정하지 않도록 구성된다면, 동작(1012)에서, 데이터 처리 시스템은 실행되고 있는 애플리케이션의 상태에 기반하여 콘텐츠의 타입을 결정할 수 있다. 데이터 처리 시스템은, 현재 실행되고 있는 애플리케이션의 부분을 식별하고 식별된 부분에 기반하여 상태를 결정하는 것으로 애플리케이션을 분석함으로써 애플리케이션의 상태를 결정할 수 있다. 데이터 처리 시스템은 애플리케이션의 상태를 식별하기 위해 실행되고 있는 애플리케이션의 코드를 통한 키워드 파싱(parsing)에 의해 애플리케이션의 부분을 식별할 수 있다. 예를 들어, 데이터 처리 시스템은 상태와 연관되는 임의의 단어들을 식별하기 위해 현재 실행되고 있는 애플리케이션의 코드를 분석할 수 있다. 데이터 처리 시스템은 코드를 데이터베이스와 비교하여 임의의 매칭 상태들을 식별할 수 있다. 일부 실시예들에서, 애플리케이션은 애플리케이션의 현재 상태를 지시하는 지시들을 갖도록 구성될 수 있다. 예를 들어, 사용자가 1인칭 슈터의 환경의 확대된 뷰에 진입할 때마다, 대응하는 애플리케이션은, 사용자 인터페이스가 현재 확대된 뷰를 보여주고 있음을 지시하는, 데이터 처리 시스템이 판독할 수 있는 태그를 특정할 수 있다. 데이터 처리 시스템은 임의의 방법을 사용하여, 실행되고 있는 애플리케이션의 현재 상태를 식별할 수 있다.
동작(1014)에서, 데이터 처리 시스템은 동작들(1010, 1012)에서 결정된 콘텐츠의 타입에 기반하여 제1 신호 및 제2 신호에 가중치들을 할당할 수 있다. 데이터 처리 시스템은 현재 보여지고 있는 콘텐츠의 타입을 식별하고 데이터 처리 시스템의 데이터베이스 내의 콘텐츠의 타입에 기반하여 각각의 신호에 가중치들을 할당함으로써 가중치들을 할당할 수 있다. 사용자 인터페이스 상에 현재 보여지고 있는 콘텐츠의 타입에 기반하여 신호들에 대한 가중치들의 타입들을 결정하기 위한 예시적인 프로세스가 도 10b를 참조하여 아래에서 도시되고 설명된다. 각각의 신호에는 임의의 가중치가 할당될 수 있다. 일부 실시예들에서, 가중치들이 사용자 인터페이스 상의 디스플레이 상의 콘텐츠의 타입들에 실시간으로 대응할 수 있도록, 가중치들은 애플리케이션이 실행되고 있을 때 할당 및 업데이트될 수 있다.
동작(1006)에서, 조이스틱 및 포지션에 대한 신호들에 대한 가중치들이 휴대용 게이밍 디바이스의 배향의 갑작스러운 변화들에 기반한다고 데이터 처리 시스템이 결정한다면, 동작(1016)에서, 데이터 처리 시스템은 포지션 센서로부터의 제1 신호가 임계치를 초과하는 값을 갖는지 여부를 결정할 수 있다. 위에서 설명된 바와 같이, 제1 신호는 사용자가 휴대용 게이밍 디바이스를 재배향한 정도를 지시하는 값 또는 가중치와 연관될 수 있다. 데이터 처리 시스템은 그 값을 관리자에 의해 미리 결정되는 임계치와 비교할 수 있다. 데이터 처리 시스템은, 약간의 움직임들이 사용자 인터페이스의 변화에 크게 영향을 미치는 것을 막기 위해 그렇게 할 수 있다. 예를 들어, 사용자가 1인칭 슈터를 플레이하고 있고 작은 객체를 향해 쏘려고 시도한다면, 데이터 처리 시스템은 사용자가 휴대용 게이밍 디바이스를 하나의 포지션에 유지하려고 시도하고 있을 때 휴대용 게이밍 디바이스의 포지션의 약간의 변동들 또는 트위치(twitch)들에 기반하지 않고 사용자 인터페이스를 변경하는 것을 피하도록 신호들의 가중치들을 조정할 수 있다. 이에 따라, 데이터 처리 시스템은, 약간의 움직임들이 사용자 인터페이스에 큰 영향을 주는 것을 피하기 위해, 사용자가 휴대용 게이밍 디바이스를 임계치로 재배향하고 있는지 여부를 결정할 수 있다.
동작(1016)에서, 데이터 처리 시스템이 포지션 센서로부터의 신호가 임계치 미만이라고 결정한다면, 동작(1018)에서, 데이터 처리 시스템은 제1 신호의 가중치의 값을 조이스틱으로부터의 제2 신호의 가중치 이하로 할당할 수 있다. 데이터 처리 시스템은 일부 경우들에는, 가중치를 0이 되게 할당하도록 구성될 수 있다. 예를 들어, 사용자가 작은 객체를 타깃팅하려고 시도하고 있고 휴대용 게이밍 디바이스를 약간만 이동시키고 있다면, 데이터 처리 시스템은 포지션 센서로부터의 신호의 가중치를 0이 되도록 조정할 수 있다. 결과적으로, 사용자는 조이스틱만을 사용하여 작은 객체를 조준하여 사용자의 정확도를 개선할 수 있다.
동작(1016)에서, 데이터 처리 시스템이 포지션 센서로부터의 제1 신호가 임계치를 초과한다고 결정한다면, 동작(1020)에서, 데이터 처리 시스템은 조이스틱으로부터의 제2 신호가 임계치를 초과하는지 여부를 결정할 수 있다. 포지션 센서 신호와 유사하게, 데이터 처리 시스템은, 조이스틱이 이동된 후에 완벽하게 재포지셔닝되지 않는다면 또는 조이스틱이 자신의 홈 포지션으로 다시 이동할 때 발생할 수 있는, 사용자 인터페이스에서의 임의의 드리프트(예컨대, 휴대용 게이밍 디바이스에 대해 약 90도)를 피하기 위해 제2 신호가 임계치를 초과하는지 여부를 결정할 수 있다. 예를 들어, 사용자가 조이스틱을 사용하여 사용자 인터페이스 상의 뷰를 제어한다면, 조이스틱은 홈 포지션으로 완벽하게 돌아가지 않을 수 있다. 조이스틱이 사용되기 위해 초과해야 하는 포지션에서의 임계 변화를 설정함으로써, 사용자 인터페이스 드리프트의 임의의 위험이 최소화될 수 있다. 임계치는 관리자에 의해 설정될 수 있다.
동작(1020)에서, 데이터 처리 시스템이 포지션 센서로부터의 신호가 임계치 미만이라고 결정한다면, 동작(1022)에서, 데이터 처리 시스템은 조이스틱으로부터의 제2 신호의 가중치의 값을 포지션 센서로부터의 제1 신호의 가중치의 값 이하로 할당할 수 있다. 데이터 처리 시스템은 일부 경우들에는, 가중치를 0이 되게 할당하도록 구성될 수 있다. 예를 들어, 위에서 설명된 바와 같이, 데이터 처리 시스템은 사용자 인터페이스에서의 임의의 드리프트를 피하도록 0의 가중치를 조이스틱에 할당할 수 있다.
동작(1020)에서, 데이터 처리 시스템이 조이스틱으로부터의 신호가 임계치 미만이라고 결정한다면, 동작(1024)에서, 데이터 처리 시스템은 제1 신호 및 제2 신호의 값들에 기반하여 다른 식으로 제1 신호 및 제2 신호에 가중치들을 할당할 수 있다. 예를 들어, 데이터 처리 시스템은 제1 신호 및 제2 신호의 값들을 서로 비교할 수 있고, 하나의 값이 다른 값보다 상당히 더 높다면, 데이터 처리 시스템은 상당히 더 높은 값을 갖는 신호가 더 중요하고 더 많은 가중치를 갖는다고 결정할 수 있다. 가중치들이 유사하다면, 데이터 처리 시스템은 가중치들을 조정하거나 업데이트하지 않을 수 있다. 이에 따라, 데이터 처리 시스템은, 사용자가 휴대용 게이밍 디바이스를 어떻게 조작하고 있고 그리고/또는 어떻게 조이스틱을 이동시키고 있는지에 따라 가중치들을 조정 또는 업데이트할 수 있다. 데이터 처리 시스템은 조이스틱 및/또는 포지션 센서 신호들에 기반하여 신호들에 임의의 가중치들을 할당할 수 있다. 신호들 자체에 기반하여 신호들에 대한 가중치들의 타입들을 결정하기 위한 예시적인 프로세스가 도 10c를 참조하여 아래에서 도시되고 설명된다. 각각의 신호에는 임의의 가중치가 할당될 수 있다. 일부 실시예들에서, 사용자들이 실시간으로 휴대용 게이밍 디바이스를 어떻게 작동시키고 있는지에 가중치들이 대응할 수 있도록, 가중치들은 애플리케이션이 실행되고 있을 때 할당 및 업데이트될 수 있다.
동작(1026)에서, 데이터 처리 시스템은 가중된 제1 신호와 가중된 제2 신호를 집계하여 제3 신호를 획득할 수 있다. 데이터 처리 시스템은 가중된 신호들에 대해 임의의 연산(예컨대, 집계, 곱셈, 평균, 감산 등)을 수행하여 제3 신호를 획득할 수 있다. 예를 들어, 데이터 처리 시스템은 가중치들에 이들의 대응하는 값들을 곱하고 결과적인 값들을 집계 또는 가산하여 제3 신호를 획득할 수 있다. 다른 예에서, 데이터 처리 시스템은 가중치들에 이들의 대응하는 값들을 곱하고 결과적인 신호들을 곱하여 제3 신호를 획득할 수 있다. 데이터 처리 시스템은 가중치들 및 가중된 신호들에 대해 임의의 연산들을 수행하여 제3 신호를 획득할 수 있다.
동작(1028)에서, 데이터 처리 시스템은 제3 신호에 기반하여 사용자 인터페이스를 업데이트할 수 있다. 데이터 처리 시스템은 데이터 처리 시스템이 실행하고 있는 애플리케이션에 기반하여 사용자 인터페이스를 업데이트할 수 있다. 예를 들어, 데이터 처리 시스템이 커서를 갖는 애플리케이션을 실행하고 있다면, 데이터 처리 시스템은 제3 신호에 의해 특정된 방향으로 그리고 그에 비례하여 커서를 이동시킴으로써 사용자 인터페이스를 업데이트할 수 있다. 다른 예에서, 데이터 처리 시스템은 3차원 환경에서 HUD의 뷰를 변경함으로써 사용자 인터페이스를 업데이트할 수 있다. 또 다른 예에서, 데이터 처리 시스템은 제1 신호, 제2 신호 또는 제3 신호 중 임의의 신호와 연관된 미리 결정된 액션을 수행할 수 있다(예컨대, 휴대용 게이밍 디바이스에서 위로 갑작스러운 저크 움직임은 사용자 인터페이스 상에서 재로딩 액션을 야기할 수 있다). 데이터 처리 시스템은 이러한 신호들에 기반하여 임의의 방식으로 사용자 인터페이스를 업데이트할 수 있다.
이제 도 10b를 참조하면, 본 개시내용의 일부 실시예들에 따라, 디스플레이 상에 디스플레이되는 콘텐츠의 타입에 기반하여 조이스틱 신호 및/또는 포지션 센서 신호에 가중치들을 할당하는 것의 개요를 서술하는 예시적인 흐름도가 도시된다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 방법(1029)은 데이터 처리 시스템(예컨대, 도 2를 참조하여 도시되고 또한 설명된 처리 회로(202) 또는 처리 회로(230))에 의해 수행된다. 방법(1029)은 데이터 처리 시스템이 사용자 인터페이스 상에 현재 디스플레이되고 있는 콘텐츠의 타입에 기반하여 조이스틱 신호들 및 포지션 센서 신호들에 동적으로 가중치들을 할당하는 것을 가능하게 할 수 있다.
동작(1030)에서, 데이터 처리 시스템은 현재 실행되고 있는 애플리케이션의 콘텐츠의 현재 타입을 결정할 수 있다. 도 10a를 참조하여 도시되고 설명된 동작들(1008-1012)을 참조하여 위에서 설명된 바와 같이, 데이터 처리 시스템은 스크린 상에 무엇이 디스플레이되고 있는지에 기반하여 또는 실행되고 있는 애플리케이션의 현재 상태에 기반하여 콘텐츠의 현재 타입을 결정할 수 있다. 예를 들어, 데이터 처리 시스템은 API 요청들, 스크린 스크래핑을 사용하여, 또는 애플리케이션을 다른 식으로 분석하여 그 상태를 실시간으로 결정함으로써 콘텐츠의 현재 타입을 결정할 수 있다. 데이터 처리 시스템은 임의의 방식으로 콘텐츠의 현재 타입을 결정할 수 있다.
동작(1032)에서, 데이터 처리 시스템은 콘텐츠의 타입이 메뉴인지 여부를 결정할 수 있다. 데이터 처리 시스템은 사용자 인터페이스를 분석하여 메뉴들의 키워드들이나 아니면 아웃라인들을 찾음으로써 그러한 결정을 내릴 수 있다. 일부 실시예들에서, 데이터 처리 시스템은 실행되고 있는 애플리케이션을 분석하고 애플리케이션의 현재 상태를 결정함으로써 콘텐츠의 타입을 결정할 수 있다. 데이터 처리 시스템이 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠의 현재 타입이 메뉴라고 결정한다면, 동작(1034)에서, 데이터 처리 시스템은 제2 가중치(예컨대, 조이스틱 신호의 가중치) 대 제1 가중치(예컨대, 포지션 센서 신호의 가중치)의 비를 증가시킬 수 있다. 데이터 처리 시스템은 제2 신호의 가중치만을 증가시키거나, 제1 신호의 가중치만을 감소시키거나, 이 둘 모두를 수행하여 비를 증가시킬 수 있다. 유리하게는, 사용자 인터페이스가 메뉴일 때 조이스틱이 더 큰 영향을 갖게 함으로써, 사용자는 휴대용 게이밍 디바이스를 이동시킬 필요 없이 메뉴 항목을 보다 정확하게 선택할 수 있고 대신 조이스틱을 사용할 수 있다.
동작(1036)에서, 데이터 처리 시스템은 콘텐츠의 타입이 콘텐츠의 확대된 타입인지 여부를 결정할 수 있다. 예를 들어, 콘텐츠의 확대된 타입은 표준 뷰와 비교하여 3차원 환경 내의 영역의 클로즈업(close-up) 뷰일 수 있다. 예를 들어, 1인칭 슈터를 플레이하는 사람이 영역의 더 가까운 뷰를 얻기 위해 스코프인(scope in)한다면, 이는 콘텐츠의 확대된 타입이다. 데이터 처리 시스템은, 사용자 인터페이스 상의 십자선들의 두꺼운 아웃라인들 또는 다른 어떤 지시자를 찾는 사용자 인터페이스를 분석하거나 본 명세서에서 설명되는 바와 같이 콘텐츠의 타입을 결정하는 임의의 방법을 수행함으로써 그러한 결정을 내릴 수 있다. 데이터 처리 시스템이 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠의 현재 타입이 콘텐츠의 확대된 타입이라고 결정한다면, 동작(1038)에서, 데이터 처리 시스템은 제2 가중치 대 제1 가중치의 비를 증가시킬 수 있다. 예를 들어, 데이터 처리 시스템은 제2 신호의 가중치만을 증가시키거나, 제1 신호의 가중치만을 감소시키거나, 이 둘 모두를 수행할 수 있다.
일부 실시예들에서, 데이터 처리 시스템은, 사용자 인터페이스의 뷰포인트로부터 3차원 환경 내의 엔티티가 있는 거리(예컨대, 3차원 가상 환경 내의 엔티티와 가상 카메라 사이의 거리)에 따라 비를 증가시킬 수 있다. 예를 들어, 엔티티가 먼 거리에 떨어져 있다면, 데이터 처리 시스템은 엔티티가 가까운 거리에 떨어져 있는 경우보다 제2 신호 대 제1 신호의 비를 더 높게 할 수 있다. 일부 실시예들에서, 데이터 처리 시스템은 제2 신호 및 제1 신호의 두 가중치들 모두를 증가 또는 감소시키면서 비를 동일하게 유지함으로써 엔티티의 포지션에 따라 가중치들을 다른 식으로 조정할 수 있다. 유리하게는, 사용자 인터페이스가 확대된 뷰에 있을 때 조이스틱이 더 큰 가중치를 갖게 함으로써, 사용자는 사용자 인터페이스 상에서 더 작을 수 있는 객체를 보다 정확하게 쏠 수 있다. 추가로, 타깃 엔티티에 기반하여 가중치들을 동적으로 조정함으로써, 사용자는 타깃 엔티티를 보다 정확하게 조준할 수 있다.
동작(1040)에서, 데이터 처리 시스템은 콘텐츠의 타입이 HUD인지 여부를 결정할 수 있다. 데이터 처리 시스템은, 사용자 인터페이스 상에서 HUD의 지시자들을 찾는 사용자 인터페이스를 분석함으로써 또는 본 명세서에서 설명되는 바와 같은 임의의 다른 방법을 사용함으로써 그러한 결정을 내릴 수 있다. 데이터 처리 시스템이 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠의 현재 타입이 HUD라고 결정한다면, 동작(1042)에서, 데이터 처리 시스템은 제1 가중치 대 제2 가중치의 비를 증가시킬 수 있다. 예를 들어, 데이터 처리 시스템은 제1 신호의 가중치만을 증가시키거나, 제2 신호의 가중치만을 감소시키거나, 이 둘 모두를 수행할 수 있다. 유리하게는, 사용자 인터페이스가 HUD일 때 포지션 센서 신호가 더 큰 가중치를 갖게 함으로써, 사용자는 조이스틱을 사용하여 환경 내에서 타깃들을 단련시킬 수 있게 하면서 휴대용 게이밍 디바이스를 재배향함으로써 3차원 환경을 보다 신속하게 스캔할 수 있다.
동작(1044)에서, 데이터 처리 시스템은, 콘텐츠의 타입이 데이터 처리 시스템의 데이터베이스 내의 식별을 갖는 임의의 다른 타입의 콘텐츠인지 여부를 결정할 수 있다. 데이터 처리 시스템은 본 명세서에서 설명되는 방법들 중 임의의 방법을 사용하여 데이터 처리 시스템에 의해 실행되고 있는 사용자 인터페이스 및/또는 애플리케이션을 분석하고, 사용자 인터페이스의 특징들 또는 애플리케이션의 현재 상태를 데이터베이스와 비교함으로써 그러한 결정을 내릴 수 있다. 데이터 처리가 콘텐츠의 임의의 매칭 타입들을 식별한다면, 데이터 처리 시스템은 대응하는 세트의 가중치들을 식별할 수 있고, 동작(1046)에서, 데이터 처리 시스템은 대응하는 세트의 가중치들에 따라 제1 신호 및/또는 제2 신호의 가중치들을 설정 또는 조정할 수 있다. 관리자는 각각의 콘텐츠 타입에 대한 가중치들을 설정 또는 조정하고, 설정된 또는 조정된 가중치들을 데이터베이스에 저장할 수 있다. 관리자는 임의의 값들로 가중치들을 설정 또는 조정할 수 있다.
데이터 처리 시스템이 애플리케이션 또는 사용자 인터페이스의 상태로부터 어떠한 타입들의 콘텐츠도 식별하지 않는다면, 동작(1048)에서, 데이터 처리 시스템은 제1 신호 및 제2 신호의 가중치들을 미리 결정된 가중치들로 설정할 수 있다. 미리 결정된 가중치들은 관리자에 의해 결정된 임의의 세트의 가중치들일 수 있다. 예를 들어, 미리 결정된 세트의 가중치들은, 조이스틱으로부터의 제2 신호와 연관된 가중치를 포지션 센서로부터의 제1 신호와 연관된 가중치보다 더 낮게 할 수 있다. 이에 따라, 사용자는 사용자 인터페이스의 미세 제어를 위해 조이스틱을 사용하고, 사용자 인터페이스를 제어하면서 더 큰 변경들을 행하기 위해 포지션 센서 신호를 사용할 수 있다. 예를 들어, 사용자는 조이스틱을 사용하여 타깃을 단련시키면서 휴대용 게이밍 디바이스를 재배향함으로써 3차원 환경을 신속하게 스캔할 수 있다. 관리자는 그들이 원하는 대로 미리 설정된 가중치들을 설정할 수 있다. 유리하게는, 미리 설정된 가중치들을 사용함으로써, 관리자는 자신이 의도하는 대로 휴대용 게임 콘솔의 사용자 인터페이스를 제어할 수 있다.
이제 도 10c를 참조하면, 본 개시내용의 일부 실시예들에 따라, 조이스틱 또는 게임 콘솔의 포지션의 변화에 기반하여 조이스틱 신호 및/또는 포지션 센서 신호에 가중치들을 할당하는 것의 개요를 서술하는 예시적인 흐름도가 도시된다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 방법(1049)은 데이터 처리 시스템(예컨대, 도 2를 참조하여 도시되고 또한 설명된 처리 회로(202) 또는 처리 회로(230))에 의해 수행된다. 방법(1049)은 데이터 처리 시스템이 신호들 자체의 값들에 기반하여 조이스틱 신호들 및 포지션 센서 신호들에 동적으로 가중치들을 할당하는 것을 가능하게 할 수 있다.
동작(1050)에서, 데이터 처리 시스템은 조이스틱 신호 및 포지션 센서 신호에 대한 값들을 식별할 수 있다. 이 값들은 포지션 센서들 및/또는 조이스틱의 이전 포지션 또는 정지 포지션에 대한 포지션의 변화의 크기일 수 있다. 데이터 처리 시스템은 데이터 처리 시스템이 수신하는 신호들에 기반하여 값들을 식별할 수 있다. 예를 들어, 사용자가 조이스틱을 훨씬 전방으로 이동시킨다면, 데이터 처리 시스템은 조이스틱의 전방 움직임과 연관된 높은 값을 식별할 수 있다. 다른 예에서, 사용자가 갑자기 휴대용 게이밍 디바이스를 아래쪽으로 향하게 한다면, 데이터 처리 시스템은 포지션 센서로부터의 신호의 값을 하향 움직임과 연관된 큰 값으로 식별할 수 있다. 데이터 처리 시스템은 임의의 방식으로 값들을 식별할 수 있다.
동작(1052)에서, 데이터 처리 시스템은 조이스틱 신호의 변화가 임계치를 초과하는지 여부를 결정할 수 있다. 예컨대, 데이터 처리 시스템은 데이터 처리 시스템이 조이스틱으로부터 수신하는 신호의 값을 임계치와 비교하고, 그 값이 임계치를 초과하는지 여부를 결정할 수 있다. 데이터 처리 시스템이 그 값을 임계치를 초과하는 것으로 결정한다면, 동작(1054)에서, 데이터 처리 시스템은 조이스틱 신호 대 포지션 센서 신호의 비를 증가시킬 수 있다. 데이터 처리 시스템은, 사용자가 사용자 인터페이스를 업데이트하기 위해 조이스틱만을 사용하고 있거나 주로 사용하고 있는 경우들에, 이를테면 사용자가 애플리케이션의 확대된 뷰 또는 메뉴 인터페이스 상의 커서를 제어하고 있을 때 그렇게 할 수 있다. 조이스틱의 가중치를 증가시킴으로써, 데이터 처리 시스템은 사용자들이 사용자 인터페이스를 보다 쉽게 제어할 수 있게 할 수 있다.
동작(1056)에서, 데이터 처리 시스템은 포지션 센서 신호의 변화가 임계치를 초과하는지 여부를 결정할 수 있다. 예컨대, 데이터 처리 시스템은 데이터 처리 시스템이 포지션 센서로부터 수신하는 신호의 값을 임계치와 비교하고, 그 값이 임계치를 초과하는지 여부를 결정할 수 있다. 데이터 처리 시스템이 그 값을 임계치를 초과하는 것으로 결정한다면, 동작(1058)에서, 데이터 처리 시스템은 포지션 센서 대 조이스틱 신호의 비를 증가시킬 수 있다. 데이터 처리 시스템은, 사용자가 사용자 인터페이스를 업데이트하기 위해 휴대용 게이밍 디바이스의 컨트롤만을 사용하고 있거나 주로 사용하고 있는 경우들에, 이를테면 사용자가 HUD를 제어하고 있을 때 그렇게 할 수 있다. 포지션 센서 신호의 가중치를 증가시킴으로써, 데이터 처리 시스템은 사용자들이 사용자 인터페이스를 보다 쉽게 제어할 수 있게 할 수 있다. 데이터 처리 시스템이 조이스틱 신호의 변화 또는 포지션 센서 신호의 변화의 가중치가 임계치를 초과하지 않는다고 결정한다면, 동작(1060)에서, 데이터 처리 시스템은 미리 결정된 가중치들에 따라 조이스틱 신호 및 포지션 센서 신호의 가중치들을 설정할 수 있다. 데이터 처리 시스템은 도 10b를 참조하여 도시되고 설명된 동작(1048)에서 데이터 처리 시스템이 가중치들을 설정하는 방법과 유사하게 가중치들을 설정할 수 있다.
이제 도 11을 참조하면, 본 개시내용의 일부 실시예들에 따라, 게임 콘솔(1100)의 게임 콘솔 하우징(1108)에 결합된 스크린 홀더(1106) 및 조이스틱(1102)을 포함하는 게임 콘솔(1100)의 사시도가 도시된다. 스크린 홀더(1106)는 (도시되지 않은) 모바일 디바이스(예컨대, 스마트폰) 상에서 애플리케이션들을 실행하기 위해 모바일 디바이스를 홀딩하도록 구성될 수 있다. 모바일 디바이스는 게임 콘솔(1100)로서 동작하기 위해 게임 콘솔 하우징(1108)에 내부적으로 결합된 프로세서와 통신할 수 있다. 프로세서들은 모바일 디바이스 상의 사용자 인터페이스를 업데이트하기 위해 다양한 입력들을 사용하면서 게임들 또는 애플리케이션들을 처리하기 위해 함께 동작하고 통신할 수 있다. 일부 실시예들에서, 모바일 디바이스 대신에, 상이한 디스플레이 디바이스가 게임 콘솔 하우징(1108)에 결합될 수 있고, 수행되는 임의의 처리가 게임 콘솔 하우징(1108)에 내부적으로 결합되는 프로세서 상에서 또는 (도시되지 않은) 원격 디바이스 상에서 수행된다.
사용자는 게임 콘솔(1100)의 그립 부분을 홀딩하고 게임 콘솔(1100)을 조종할 수 있다. 결국, 게임 콘솔(1100)은 휴대 전화에 신호들을 전송하여 휴대 전화의 사용자 인터페이스를 업데이트할 수 있다. 추가로, 게임 콘솔(1100) 상의 그립을 변경하지 않으면서, 사용자는 조이스틱(1102)을 이동시키고 그리고/또는 버튼들(1104)을 누를 수 있다. 버튼들(1104)은 게임 콘솔(1100)의 세장형 부분의 한 면 또는 양면에 있을 수 있다. 게임 콘솔 하우징(1108) 내의 그리고/또는 모바일 디바이스의 프로세서는 조이스틱(1102), 버튼들(1104) 및/또는 게임 콘솔 하우징(1108) 상의 포지션 센서로부터 입력들을 수신하고, 그에 따라, 본 명세서에서 설명되는 바와 같이 사용자 인터페이스를 업데이트할 수 있다.
이제 도 12를 참조하면, 본 개시내용의 일부 실시예들에 따라, 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템(1200)의 예시적인 실시예의 블록도가 도시된다. 시스템(1200)은 상이한 통신 프로토콜들을 통해 게임 콘솔(1202)과 원격 디바이스(1236) 간의 통신을 브리지할 수 있는 중개 디바이스(1220)를 포함하는 것으로 도시된다. 시스템(1200)의 간단한 개요에서, 게임 콘솔(1202)은 제1 통신 프로토콜을 통해 중개 디바이스(1220)에 입력들을 제공할 수 있다. 중개 디바이스(1220)는 상이한 제2 통신 프로토콜을 통해 원격 디바이스(1236)에 입력들을 전송할 수 있다. 제2 통신 프로토콜은 제1 통신 프로토콜과 호환되지 않을 수 있다(예컨대, 전송 및 수신을 위해 상이한 하드웨어를 요구함). 주로 무선 프로토콜들로서 논의되지만, 일부 구현들에서는 제1 통신 프로토콜 또는 제2 통신 프로토콜 또는 이 둘 모두가 유선일 수 있다. 예를 들어, 하나의 통신 프로토콜은 USB일 수 있고, 제2 통신 프로토콜은 WiFi일 수 있다. 원격 디바이스(1236)는 게임 또는 애플리케이션을 처리하고, 미디어(시청각) 스트림을 중개 디바이스(1220)에 전송할 수 있다. 추가로 그리고 일부 경우들에는, 동시에 원격 디바이스(1236)가 중개 디바이스(1220)로부터 입력을 수신하고, 입력에 따라 원격 디바이스(1236)가 중개 디바이스(1220)에 전송하는 미디어 스트림을 업데이트할 수 있다. 시스템(1200) 및/또는 컴포넌트들(1202, 1220, 1236) 각각은 임의의 수의 컴포넌트들을 포함할 수 있고 임의의 방식으로 통신할 수 있다.
게임 콘솔(1202)은 도 2a를 참조하여 도시되고 설명된 게임 콘솔(201)과 유사할 수 있다. 일부 실시예들에서, 게임 콘솔(1202)은 처리 회로(1204), 페달 시스템(1210), 조이스틱(1212), 센서들(1214), 커맨드 버튼들(1216) 및 통신 인터페이스(1218)를 포함하는 것으로 도시된다. 처리 회로(1204)는 프로세서(1206) 및 메모리(1208)를 포함하는 것으로 도시된다. 컴포넌트들(1204-1216) 각각은 도 2a의 게임 콘솔(201)의 그 각각의 대응하는 컴포넌트들과 유사할 수 있다. 센서들(1214)은 자이로스코프들, 가속도계들, 자력계들 및/또는 온도 센서들과 같은 센서들을 포함할 수 있지만, 임의의 타입의 센서를 포함할 수 있다. 유사하게, 통신 인터페이스(1218)는 도 2a의 네트워크 인터페이스(220)와 유사할 수 있다.
통신 인터페이스(1218)는 중개 디바이스(1220)의 통신 인터페이스(1230)와 통신할 수 있다. 통신 인터페이스(1218)는 게임 콘솔(1202)의 다양한 하드웨어 컴포넌트들(예컨대, 페달 시스템(1210), 조이스틱(1212), 센서들(1214) 및/또는 커맨드 버튼들(1216))로부터 처리 회로(1204)에 의해 수신되는 생성된 데이터를 통신 인터페이스(1230)에 전송함으로써 통신 인터페이스(1230)와 통신할 수 있다. 통신 인터페이스(1218)는 소프트웨어 또는 하드웨어 기반 통신 인터페이스를 포함할 수 있다. 예를 들어, 통신 인터페이스(1218)는 게임 콘솔(1202)이 네트워크에 접속되게 하는 하드웨어 포트, 또는 예를 들어, 처리 회로(1204)에 의해 실행되는 웹 브라우저의 소프트웨어 컴포넌트일 수 있다. 일부 구현들에서, 통신 인터페이스(1218)는 LAN 네트워크, Wi-Fi 네트워크, 셀룰러 네트워크, 광역 네트워크, 전화 네트워크, 무선 링크, 위성 링크, 디바이스-디바이스 메시 네트워크, 인트라넷, 인터넷, 또는 이들의 조합을 통해 통신 인터페이스(1230)와 통신할 수 있다. 일부 실시예들에서, 통신 인터페이스(1218)는 블루투스 또는 블루투스 저에너지를 통해 통신 인터페이스(1230)와 통신할 수 있다. 통신 인터페이스(1218)는 임의의 통신 프로토콜을 통해 통신 인터페이스(1230)와 통신할 수 있다.
일부 실시예들에서, 예를 들어, 처리 회로(1204)는 디바이스 정보 서비스, 배터리 서비스 및/또는 HID 서비스와 같은 다양한 블루투스 및/또는 블루투스 저에너지 서비스들을 사용하여 게임 콘솔(1202)에 관한 다양한 정보를 획득 또는 저장하고 그리고/또는 그러한 정보를 중개 디바이스(1220)에 전송할 수 있다. 예를 들어, 디바이스 정보 서비스는 게임 콘솔(1202)의 디바이스 식별자(일련번호)와 같은 게임 콘솔(1202)에 관한 정보를 포함할 수 있다. 배터리 서비스를 통해, 처리 회로(1204)는 게임 콘솔(1202)의 현재 배터리량 및/또는 게임 콘솔(1202)의 배터리의 건강도에 관련된 정보를 획득할 수 있다. HID 서비스를 통해, 처리 회로(1204)는 자신이 수신하는 임의의 입력들을 수신하고 그리고/또는 HID 준수 신호들로 변환할 수 있다. 처리 회로(1204)는 이러한 서비스들 각각으로부터의 정보를 통신 인터페이스(1218)를 통해 중개 디바이스(1220)에 전송할 수 있다.
일부 실시예들에서, 처리 회로(1204)는 또한 게임 콘솔(1202)과 중개 디바이스(1220) 사이의 통신들을 위해 맞춤 서비스들을 사용할 수 있다. 예를 들어, 처리 회로(1204)는 처리 회로(1204)가 중개 디바이스(1220)의 애플리케이션(1228)과 통신할 수 있게 하는 Rx/Tx 서비스를 사용할 수 있다. 처리 회로(1204)는 또한, 처리 회로(1204)가 센서들(1214)에 의해 생성된 데이터를 수집하고 그리고/또는 중개 디바이스(1220)에 전송할 수 있게 하는 IMU 서비스를 사용할 수 있다. 처리 회로(1204)는 처리 회로(1204)가 커맨드 버튼들(1216)(예컨대, 눌림 또는 눌리지 않음) 및/또는 조이스틱(1212)(예컨대, 현재 포지션 또는 이전 포지션에 대한 현재 포지션)의 현재 상태들을 수집하고 그리고/또는 중개 디바이스(1220)에 전송할 수 있게 하는 버튼 및/또는 조이스틱 서비스를 추가로 사용할 수 있다. 처리 회로(1204)는 데이터를 수집하고 그리고/또는 중개 디바이스(1220)에 전송하기 위해 임의의 서비스들을 구현 또는 사용할 수 있다.
처리 회로(1204)는 IMU 서비스를 통해 값들을 수집할 수 있다. IMU 서비스는 처리 회로(1204)가 센서들(1214) 중 하나 이상의 자이로스코프들, 하나 이상의 가속도계들, 하나 이상의 자력계들 및 하나 이상의 온도 센서들로부터 값들을 수집하고, 수집된 값들로 센서 데이터의 패킷을 생성하는 것을 가능하게 할 수 있다. IMU 서비스는 처리 회로(1204)가 게임 콘솔(1202)의 하나 이상의 포트들을 통해 센서 데이터를 수집하는 것을 가능하게 할 수 있다. 처리 회로(1204)는 임의의 센서 및/또는 임의의 센서 타입의 센서들(1214)로부터 값들을 수집할 수 있다. 처리 회로(1204)는 센서들(1214)을 미리 결정된 간격들로 폴링(poll)함으로써 그리고/또는 센서들(1214) 중 하나 이상이 데이터를 생성하고 데이터를 처리 회로(1204)에 전송하는 것에 대한 응답으로 센서들(1214)로부터의 값들을 수집할 수 있다. 일부 실시예들에서, 수집된 값들 중의 값들은 게임 콘솔(1202)의 현재 포지션 또는 배향에 대응할 수 있다. 이 값들은 각각 값들의 범위 내의 부호 있는 16-비트 정수 값들일 수 있다. 예를 들어, 일 실시예에서, 값들의 범위는 -32768 내지 +32767일 수 있다. 값들의 범위는 임의의 수들 사이일 수 있다.
일부 실시예들에서, 처리 회로(1204)는 IMU 서비스를 통해 센서들(1214)로부터 획득된 데이터와 동일한 또는 유사한 시간들과 연관되는 하나 이상의 데이터 스트링들을 포함하는 센서 데이터의 패킷들을 생성할 수 있다. 수집된 센서 데이터의 값들은 이 값들이 수집 및/또는 생성된 시간들을 지시하는 타임스탬프들과 연관될 수 있다. 처리 회로(1204)는 동일하거나 유사한 시간들(예컨대, 서로의 임계치 내에 있는 시간들)과 연관되는 값들을 식별할 수 있다. 처리 회로(1204)는 동일하거나 유사한 시간들과 연관된 값들을 식별하고, 일부 구현들에서는, 식별된 값들을 함께 연결하여, 연결된 데이터 스트링을 형성할 수 있다. 형성된 연결된 데이터 스트링은 미리 결정된 수(예컨대, 10개)의 연결된 16-비트 부호 있는 정수 값들을 포함할 수 있다. 예를 들어, 일 실시예에서, 형성된 연결된 데이터 스트링은 3개의 자이로스코프들, 3개의 가속도계들, 3개의 자력계들 및 온도 센서로부터의 16-비트 정수 값들을 포함할 수 있다. 일부 구현들에서, 연결된 데이터 스트링은 상이한 값들 사이에 구분 기호(delimiter)들을 갖지 않을 수 있는데; 대신에, 각각의 값은 미리 결정된 길이를 갖고 미리 결정된 순서로 나타날 수 있어, 수신 측 디바이스는 미리 결정된 길이 및 순서에 따라 값들을 추출할 수 있다. 다른 구현들에서, 데이터 스트링은 값들 사이에 구분 기호(delimiter)들 또는 다른 식별자들(예컨대, 콤마(comma), 라인 피드(line feed)들, XML 태그들 등)을 가질 수 있다.
유사하게, 처리 회로(1204)는 버튼으로부터의 데이터 및/또는 버튼 및 조이스틱 서비스를 통해 획득된 조이스틱 데이터를 비트 어레이로 포함하는 데이터 패킷을 생성할 수 있다. 처리 회로(1204)는 조이스틱(1212) 및 커맨드 버튼들(1216)로부터 값들을 수집하고, 그 값들을 포함하는 비트 어레이를 생성할 수 있다. 처리 회로(1204)는 미리 결정된 간격들로 그리고/또는 조이스틱(1212)의 하나 이상의 센서들 또는 커맨드 버튼들(1216)이 데이터를 생성하는 것에 대한 응답으로 조이스틱(1212) 또는 커맨드 버튼들(1216)을 폴링함으로써 값들을 수집할 수 있다. 비트 어레이는 센서 데이터의 연결된 데이터 스트링과 유사한 연결된 데이터 스트링에 복수의 연결된 비트들을 포함할 수 있고, 구분 기호들 또는 다른 식별자들을 포함하거나 포함하지 않을 수 있다. 비트 어레이는 커맨드 버튼들(1216) 중 하나 이상의 커맨드 버튼들의 상태에 대응하는 비트들 또는 조이스틱(1212)의 x-포지션 또는 y-포지션에 대응하는 미리 결정된 수(예컨대, 2개)의 16-비트 부호 있는 정수들을 포함할 수 있다. 일부 실시예들에서, 처리 회로(1204)는 유사하게, 페달 시스템(1210)의 센서들에 의해 생성된 값들을 비트 어레이에서 수집 및/또는 포함할 수 있다. 비트 어레이에서, 커맨드 버튼들(1216) 중 커맨드 버튼들의 상태는 이진수로 표현될 수 있다. 예를 들어, 처리 회로(1204)는, 커맨드 버튼이 눌려졌다는 결정에 대한 응답으로, 커맨드 버튼에 대응하는 비트에 대해 숫자 "1"을 생성하고, 커맨드 버튼이 눌리지 않았다는 또는 커맨드 버튼이 다른 식으로 해제되었다는 결정에 대한 응답으로 동일한 비트에 대해 숫자 "0"을 생성할 수 있다. 처리 회로(1204)는 커맨드 버튼들(1216)의 각각의 커맨드 버튼에 대해 유사한 동작들을 수행할 수 있다.
처리 회로(1204)는 또한 조이스틱(1212)의 x축 포지션에 대응하는 값 및 조이스틱(1212)의 y축 포지션에 대응하는 값을 생성함으로써 비트 어레이를 생성할 수 있다. 조이스틱(1212)의 하나 이상의 센서들은 이동된 조이스틱(1212)이 이동했음의 검출 및 움직임의 크기(예컨대, 중심 포지션으로부터의 또는 이전 포지션으로부터의 거리)에 대한 응답으로 x축 값 및/또는 y축 값을 생성할 수 있다. 이 값들은 각각의 y축 또는 x축 상의 이전 포지션 또는 교정된 포지션으로부터 멀어지는 움직임의 크기에 비례할 수 있다. 조이스틱(1212)의 하나 이상의 센서들은 생성된 값들을 처리 회로(1204)에 전송할 수 있다. 처리 회로(1204)는 조이스틱(1212)의 하나 이상의 센서들로부터 각각의 값을 수신할 수 있다. 처리 회로(1204)는 조이스틱(1212)의 x축 포지션에 대응하는 값들, 조이스틱(1212)의 y축 포지션에 대응하는 값들, 및/또는 버튼들 각각의 상태에 대응하는 값들을 비트 어레이를 구성하는 연결된 데이터 스트링으로 연결시킬 수 있다. 일부 실시예들에서, 처리 회로(1204)는, 조이스틱 및 버튼 값들이 언제 수집 또는 생성되었는지를 지시하는 매칭 타임스탬프와 이러한 값들이 연관된다는 결정에 대한 응답으로 조이스틱 및 버튼 값들을 연결시킴으로써 비트 어레이를 생성할 수 있다.
처리 회로(1204)는 센서 데이터의 패킷 및/또는 조이스틱 및/또는 커맨드 버튼 데이터의 비트 어레이를 중개 디바이스(1220)에 전송할 수 있다. 처리 회로(1204)는 미리 결정된 간격들(예컨대, 매 5밀리초, 10밀리초, 20밀리초 등)로, 의사 랜덤하게 그리고/또는 하나 이상의 센서들로부터 생성된 수신 시에 센서 데이터의 패킷들을 전송할 수 있다. 처리 회로(1204)는 센서 데이터의 패킷 및/또는 조이스틱 및/또는 커맨드 버튼 데이터의 비트 어레이를 임의의 레이트로 중개 디바이스(1220)에 전송할 수 있다. 처리 회로(1204)는 비트 어레이를 센서 데이터의 패킷에 포함시킴으로써 또는 비트 어레이를 개별 데이터 패킷으로 전송함으로써 중개 디바이스(1220)에 비트 어레이를 전송할 수 있다.
일부 실시예들에서, 처리 회로(1204)는 단지 중개 디바이스(1220)가 가입된 중개 디바이스(1220)에 데이터를 전송할 수 있다. 가입은 게임 콘솔(1202)의 특정 특징(예컨대, 예컨대, 페달 시스템(1210), 조이스틱(1212), 센서들(1214) 중의 센서, 커맨드 버튼들(1216) 중의 커맨드 버튼 등)과 연관되거나 특정 특징에서 발생되는 데이터를 전송하도록 처리 회로(1204)에 대한 인가 또는 허가를 지시할 수 있다. 처리 회로(1204)는 게임 콘솔(1202)의 임의의 수의 특징들 및/또는 임의의 조합에 대한 지시를 수신할 수 있다. 특징들에 대한 하나 이상의 가입들에 대한 지시를 수신하면, 처리 회로(1204)는, 가입된 특징과 연관되는 데이터를 전송하도록 처리 회로(1204)가 인가됨을 지시하기 위해, 특징과 연관된 데이터베이스에서 설정을 업데이트하거나 플래그를 저장할 수 있다. 일부 실시예들에서, 처리 회로(1204)는 가입된 특징과 연관되지 않은 데이터를 중개 디바이스(1220)에 전송하지 않을 수 있다.
중개 디바이스(1220)는 도 2를 참조하여 도시되고 설명된 디스플레이 디바이스(222)와 유사한 컴퓨팅 디바이스일 수 있다. 일부 실시예들에서, 중개 디바이스(1220)는 게임들 및/또는 애플리케이션들을 처리하고 그리고/또는 그러한 게임들 또는 애플리케이션들과 연관되는 미디어 스트림들을 디스플레이할 수 있는 스마트폰과 같은 셀룰러폰일 수 있다. 중개 디바이스(1220)는 처리 회로(1222), 통신 인터페이스(1230), 디스플레이(1232) 및 통신 인터페이스(1234)를 포함하는 것으로 도시된다. 중개 디바이스(1220)는 임의의 수의 컴포넌트들을 포함할 수 있다.
통신 인터페이스(1230)는 게임 콘솔(1202)의 통신 인터페이스(1218)와 통신하는 통신 인터페이스일 수 있거나 이를 포함할 수 있다. 통신 인터페이스들(1230, 1218)은 예를 들어, 블루투스, 블루투스 저에너지 등과 같은 동일한 통신 프로토콜들을 통해 서로 통신할 수 있다. 통신 인터페이스(1230)는 통신 인터페이스(1218)와 관련하여 위에서 설명된 통신 프로토콜들과 유사한 임의의 통신 프로토콜을 통해 통신 인터페이스(1218)와 통신할 수 있다.
처리 회로(1222)는 프로세서(1224) 및 메모리(1226)를 포함하는 것으로 도시된다. 처리 회로(1222)는 처리 회로(1204)와 유사한 컴포넌트들을 포함할 수 있다. 메모리(1226)는 애플리케이션(1228)을 포함하는 것으로 도시된다. 애플리케이션(1228)은 중개 디바이스(1220)가 통신 인터페이스(1230)를 통해 게임 콘솔(1202)로부터 수신하는 데이터에 액세스하도록 구성될 수 있다. 아래에서 설명되는 바와 같이, 애플리케이션(1228)은 제1 통신 인터페이스를 통해 게임 콘솔(1202)에 대한 입력들과 연관된 데이터를 수신하고, 제2 통신 인터페이스를 통해 원격 디바이스(1236)에 대응하는 데이터를 전송할 수 있다. 결과적으로, 게임 콘솔(1202)이 원격 디바이스(1236)와 어떠한 직접 통신도 하지 않더라도, 입력들이 게임 콘솔(1202)로부터 원격 디바이스(1236)로 전송될 수 있다.
일부 구현들에서, 애플리케이션(1228)은 (예컨대, 센서들, 페달 시스템 등의 값들의 주기적인 전달을 위해) 게임 콘솔(1202)의 특징들에 가입하기 위한 하나 이상의 요청들을 전송하도록 구성될 수 있다. 가입은 또 추가 요청들을 요구하지 않으면서 애플리케이션(1228) 및/또는 중개 디바이스(1220)에 주기적으로 전달될 값들 또는 값들의 타입들을 선택하는 것을 의미할 수 있다. 예를 들어, 게임 콘솔(1202)은 각각의 새로운 전송에 대한 후속 요청들을 요구하지 않으면서, 10밀리초마다 가입된 중개 디바이스(1220)에 센서 값들을 전송할 수 있다. 가입 요청들은 게임 콘솔(1202)의 특징들의 지시들을 포함할 수 있는데, 이들은 게임 콘솔(1202)로 하여금 지시된 특징과 연관된 설정을 업데이트하게 한다. 애플리케이션(1228)은 중개 디바이스(1220)가 게임 콘솔(1202)과의 통신 범위에 진입했다는 지시를 수신하는 것에 대한 응답으로 가입 요청들을 게임 콘솔(1202)에 전송할 수 있으며, 이는 통신 인터페이스(1230)가 통신 인터페이스(1218)와 통신할 수 있게 한다. 예를 들어, 애플리케이션(1228)은 통신 인터페이스(1230)가 블루투스 저에너지를 통해 통신 인터페이스(1218)와 통신할 수 있다고 검출하면 게임 콘솔(1202)에 가입 요청을 전송할 수 있다. 일부 실시예들에서, 애플리케이션(1228)은 중개 디바이스(1220)의 사용자 인터페이스를 통해 입력을 수신하는 것에 대한 응답으로 가입 요청들을 전송하도록 구성될 수 있다.
애플리케이션(1228)은 사용자 인터페이스에 대한 입력들 또는 애플리케이션(1228)과 연관된 설정들에 기반하여 다양한 특징들에 가입하도록 구성될 수 있다. 예를 들어, 애플리케이션(1228)은 커맨드 버튼들(1216) 중의 커맨드 버튼으로부터만 데이터를 수집하도록 지시하는 입력을 중개 디바이스(1220)의 사용자 인터페이스에서 수신할 수 있다. 다른 예에서, 애플리케이션(1228)은 애플리케이션(1228)으로 하여금 게임 콘솔(1202)의 각각의 특징에 자동으로 가입하게 하는 설정들과 연관될 수 있다. 이러한 설정들은 중개 디바이스(1220)의 사용자 인터페이스에서의 사용자 입력에 대한 응답으로 변경될 수 있다. 애플리케이션(1228)은 특징들의 임의의 조합에 가입하기 위한 입력들을 수신하고 입력들에 대응하는 가입 요청들을 게임 콘솔(1202)에 전송할 수 있다.
애플리케이션(1228)은 애플리케이션(1228)이 게임 콘솔(1202)로부터 수신하는 센서 데이터의 패킷들로부터 값들을 추출하도록 구성될 수 있다. 센서 데이터의 패킷들은 일부 실시예들에서는, 센서들(1214)에 의해 생성된 데이터와 연관된 하나 이상의 데이터 스트링들 및/또는 조이스틱(1212) 및/또는 커맨드 버튼들(1216)에 의해 생성된 데이터와 연관된 하나 이상의 데이터 스트링들을 포함할 수 있다. 애플리케이션(1228)은 센서 데이터의 패킷들의 연결된 데이터 스트링들의 값들을 판독함으로써 센서 데이터의 패킷들로부터 하나 이상의 데이터 스트링들을 추출할 수 있다. 애플리케이션(1228)은 센서 데이터 및/또는 커맨드 버튼 및/또는 조이스틱 데이터와 연관된 하나 이상의 데이터 스트링들을 추출할 수 있다. 애플리케이션(1228)은 데이터 내의 구분 기호들 또는 식별자들에 따라, 또는 미리 결정된 길이들 및 값들의 차수들(예컨대, 가속도계들 X, Y 및 Z에 대한 16-비트 값들 등)에 기반하여 하나 이상의 데이터 스트링들을 추출할 수 있다.
애플리케이션(1228)은 원격 디바이스(1236)와의 전송 계층 통신 세션을 설정하도록 구성될 수 있다. 애플리케이션(1228)은 원격 디바이스(1236) 상에서 실행되고 있는 (도시되지 않은) 전송 계층 서버를 통해 원격 디바이스(1236)와의 전송 계층 통신 세션을 설정할 수 있다. 전송 계층 서버는 원격 디바이스(1236)와 다른 디바이스들 간의 통신을 가능하게 하는 에이전트(1244)의 일부일 수 있다. 전송 계층 서버는 전송 제어 프로토콜(TCP: transmission control protocol) 및/또는 사용자 데이터그램 프로토콜(UDP: user datagram protocol)을 작동시킬 수 있다. 애플리케이션(1228)은 원격 디바이스(1236)의 전송 계층 서버와의 접속 세션을 설정하기 위한 요청을 원격 디바이스(1236)의 전송 계층 서버에 전송할 수 있다. 전송 계층 서버는 요청을 수신하고 에이전트(1244)의 세션 계층에 요청을 전달함으로써 통신 세션을 설정할 수 있다. 요청을 수신하는 것에 대한 응답으로, 에이전트(1244)의 세션 계층은 에이전트(1244)와 애플리케이션(1228) 간의 통신 세션을 개방할 수 있다.
에이전트(1244)의 전송 계층 서버와의 통신 세션을 설정하는 것에 대한 응답으로, 애플리케이션(1228)은 제2 통신 프로토콜을 통해 원격 디바이스(1236)에 전송될 수 있는 추출된 하나 이상의 데이터 스트링들을 캡슐화할 수 있다. 애플리케이션(1228)은 추출된 하나 이상의 데이터 스트링들을 통신 인터페이스들(1234, 1252)에 의해 이용되는 통신 프로토콜(예컨대, 전송 제어 프로토콜, 사용자 데이터그램 프로토콜 등)의 전송 계층 헤더에 캡슐화할 수 있다. 일부 구현들에서, 애플리케이션(1228)은 또한 추출된 하나 이상의 데이터 스트링들을 세션 또는 애플리케이션 계층 헤더(예컨대, HTTP 헤더들)에 캡슐화할 수 있다. 추출된 하나 이상의 데이터 스트링들을 전송 계층 헤더에 캡슐화할 때, 애플리케이션(1228)은 추출된 하나 이상의 데이터 스트링들을 통신 인터페이스(1234)를 통해 원격 디바이스(1236)의 에이전트(1244)에 전송할 수 있다.
통신 인터페이스(1234)는 원격 디바이스(1236)의 통신 인터페이스(1252)와 통신하는 통신 인터페이스일 수 있다. 통신 인터페이스(1234)는 그러한 통신들을 위해 통신 인터페이스(1218 및/또는 1230)와 상이한 통신 프로토콜을 구현할 수 있다. 예를 들어, 통신 인터페이스(1234)는 Wi-Fi 프로토콜을 사용하여 통신할 수 있는 한편, 통신 인터페이스들(1218, 1230)은 블루투스 저에너지 프로토콜을 사용하여 통신할 수 있다. 통신 인터페이스(1234)는 캡슐화된 추출된 하나 이상의 데이터 스트링들을 통신 인터페이스(1252)를 통해 에이전트(1244)의 전송 서버에 전송할 수 있다. 통신 인터페이스(1252)는 임의의 통신 프로토콜을 통해 통신 인터페이스(1234)와 통신할 수 있다.
원격 디바이스(1236)는 도 2a를 참조하여 도시되고 설명된 원격 디바이스(228)와 유사한 컴퓨팅 디바이스일 수 있다. 원격 디바이스(1236)는 처리 회로(1238) 및 통신 인터페이스(1252)를 포함하는 것으로 도시된다. 통신 인터페이스(1252)는 위에서 설명된 바와 같이 통신 인터페이스(1234)와 통신할 수 있다. 일부 실시예들에서, 통신 인터페이스(1252)는 게임 콘솔(1202)의 통신 인터페이스(1218)와 통신하지 않을 수 있다. 처리 회로(1238)는 프로세서(1240) 및 메모리(1242)를 포함하는 것으로 도시된다. 메모리(1242)는 에이전트(1244) 및 운영 체제(1246)를 포함하는 것으로 도시된다. 아래에서 설명되는 바와 같이, 에이전트(1244) 및 운영 체제(1246)는 중개 디바이스(1220)로부터 데이터 스트링들을 수신하고, 현재 중개 디바이스(1220)에 전송되고 있는 미디어 스트림을 업데이트하기 위해 데이터 스트링들을 사용하도록 협력할 수 있다.
에이전트(1244)는 운영 체제(1246)의 전송 계층 및/또는 네트워크 스택을 통해 애플리케이션(1228)으로부터 캡슐화된 추출된 데이터 스트링들을 수신하고, 캡슐화된 추출된 데이터 스트링들을 HID 준수 데이터로 트랜스코딩할 수 있다. 에이전트(1244)는 데이터 스트링들의 값들을 판독함으로써 수신된 캡슐화된 추출된 데이터 스트링들을 추출할 수 있다. 에이전트(1244)는 추출된 데이터 스트링들을 변환 정책에 따라 HID 준수 데이터로 트랜스코딩할 수 있다. 변환 정책은 에이전트(1244)가 중개 디바이스(1220)로부터 수신하는 데이터에 적용할 수 있는 일련의 규칙들 및/또는 임계치들을 포함할 수 있다. 예를 들어, 에이전트(1244)는 추출된 센서 데이터를 마우스의 움직임들로 변환하는 규칙을 적용할 수 있다. 규칙은 추출된 센서 데이터의 모든 각각의 움직임 정도가 사용자 인터페이스 상의 커서의 10픽셀 움직임에 대응한다는 것을 지시할 수 있다. 에이전트(1244)는 게임 콘솔(1202)이 좌측으로 5도 회전했다는 지시를 수신하고, 회전에 대응하는 데이터에 규칙을 적용하고, 마우스가 사용자 인터페이스 상에서 좌측으로 50픽셀 이동시키는 것을 지시하는 HID 준수 데이터를 생성할 수 있다. 에이전트(1244)는 HID 준수 데이터를 생성하기 위해, 자신이 중개 디바이스(1220)로부터 수신하는 데이터에 변환 정책의 임의의 규칙 또는 임계치를 적용할 수 있다.
에이전트(1244)는 생성된 HID 준수 데이터를 운영 체제(1246)의 HID 드라이버(1248)에 기록할 수 있다. HID 드라이버(1248)는 HID 준수 디바이스를 에뮬레이트하거나 도용할 수 있는 운영 체제(1246)의 HID 커널 드라이버일 수 있으며, 때때로 가상 HID 디바이스, 가상 조이스틱, 가상 HID 드라이버로 지칭될 수 있거나, 유사한 용어들로 지칭될 수 있다. 에이전트(1244)는 HID 드라이버(1248)에 메모리를 예비할 수 있다. 중개 디바이스(1220)로부터 캡슐화된 연결된 데이터 스트링을 수신할 때, 에이전트(1244)는 데이터 스트링으로부터 데이터를 추출하고, 위에서 설명된 바와 같이 데이터를 HID 준수 데이터로 트랜스코딩할 수 있다. 에이전트(1244)는 HID 준수 데이터를 HID 드라이버(1248)의 예비된 메모리에 삽입할 수 있다. 결국, 운영 체제(1246)의 애플리케이션(1250)은, 마치 제어기, 조이스틱, 마우스, 키보드 등과 같은 HID 준수 디바이스가 운영 체제(1246)에 데이터를 제공하고 있는 것처럼 HID 준수 데이터를 판독할 수 있다. 이에 따라, 운영 체제(1246) 및/또는 애플리케이션(1250)은 데이터가 로컬로 접속된 USB 조이스틱 또는 다른 그러한 디바이스보다는 중개 디바이스(1220)를 통해 원격 게임 콘솔(1202)에서 나온다고 결정하는 것이 불가능하거나 그에 대해 관용적(agnostic)일 수 있다. 애플리케이션(1250)은 신호들을 판독하고, 애플리케이션(1250)이 HID 준수 데이터에 따른 디스플레이를 위해 중개 디바이스(1220)에 동시에 제공하는 미디어 스트림을 업데이트할 수 있다.
일부 실시예들에서, HID 드라이버(1248)는 2개의 HID 드라이버들일 수 있거나 이를 포함할 수 있거나, 2개의 개별 HID 준수 디바이스들을 위한 전용 메모리를 포함할 수 있다. 예를 들어, HID 드라이버(1248)는 컴퓨팅 디바이스의 개별 디바이스들, 이를테면 마우스와 키보드, 또는 마우스와 조이스틱을 에뮬레이트할 수 있다. 그렇게 하기 위해, HID 드라이버(1248)는 마우스 디바이스 전용인 메모리를 위한 공간 및 키보드 디바이스 전용인 메모리를 위한 공간을 포함할 수 있다. 에이전트(1244)는 중개 디바이스(1220)로부터 데이터 패킷들을 수신하고, 마우스 디바이스와 연관되는 데이터 및 키보드 디바이스와 연관되는 데이터를 식별하고, 데이터를 이들의 지정들에 따라 HID 드라이버(1248)의 메모리에 배치할 수 있다. HID 드라이버(1248)가 2개의 상이한 디바이스들에 전용되는 메모리를 포함하거나 운영 체제(1246)의 2개의 HID 드라이버들이 있는 경우들에는, 에이전트(1244)가 연결된 데이터 스트링들 내의 값들의 위치(예컨대, 비트 또는 인덱스)에 기반하여, 추출된 데이터의 값들을 어디에 할당할지를 결정할 수 있다. 위의 예를 계속하면, 조이스틱 데이터는 커맨드 버튼들(1216) 및 조이스틱(1212)으로부터의 값들을 포함하는 연결된 데이터 스트링의 특정 비트들과 연관될 수 있다. 커맨드 버튼들(1216)은 연결된 데이터 스트링 또는 상이한 연결된 데이터 스트링의 다른 비트들과 연관될 수 있다. 에이전트(1244)는 연결된 데이터 스트링의 비트들을 개개의 데이터 타입과 연관시킬 수 있어, 조이스틱 비트들로부터의 데이터는 마우스 가상 HID 준수 디바이스와 연관된 메모리에 할당될 수 있고, 커맨드 버튼들(1216)로부터의 데이터는 키보드 가상 HID 준수 디바이스와 연관된 메모리에 할당될 수 있다. 에이전트(1244)는 임의의 수 또는 타입의 디바이스들과 비트들을 연관시킬 수 있다.
애플리케이션(1250)은 중개 디바이스(1220)의 디스플레이(1232) 상에 디스플레이하기 위한 사용자 인터페이스를 생성하는 게임과 같은 애플리케이션일 수 있다. 일부 실시예들에서, 애플리케이션(1250)은 또한, 에이전트(1244)가 메모리에 커맨드들을 기록할 때, HID 드라이버(1248)의 메모리를 판독할 수 있다. 애플리케이션(1250)은 에이전트(1244)의 기록된 커맨드들을 식별하고 커맨드들에 따라 미디어 스트림을 업데이트할 수 있다. 예를 들어, 애플리케이션(1250)은 브라우저일 수 있다. 브라우저는 중개 디바이스(1220)의 디스플레이(1232) 상에 웹페이지를 디스플레이하고 있을 수 있다. 에이전트(1244)는 HID 드라이버(1248)의 메모리로부터 센서 데이터 움직임들을 식별하고 센서 데이터 움직임들에 따라 디스플레이(1232) 상에 디스플레이되고 있는 커서를 이동시킬 수 있다.
도 13은 본 개시내용의 일부 실시예들에 따른, 이종 디바이스들 간에 대화식 데이터를 통신하는 것의 개요를 서술하는 예시적인 흐름도이다. 구현 및 어레인지먼트에 따라, 방법에서 추가, 더 적은 또는 상이한 동작들이 수행될 수 있다. 방법은 제1 컴퓨팅 디바이스(1302)(예컨대, 게임 콘솔(1202)), 중개 컴퓨팅 디바이스(1304)(예컨대, 중개 디바이스(1220)) 및 제2 컴퓨팅 디바이스(1306)(예컨대, 원격 디바이스(1236))의 조합에 의해 수행될 수 있다. 이 방법은 임의의 수의 컴퓨팅 디바이스들에 의해 수행될 수 있다. 이 방법은 제1 컴퓨팅 디바이스가 상이한 무선 인터페이스들 또는 통신 프로토콜들을 통해 중개 컴퓨팅 디바이스를 거쳐 제2 컴퓨팅 디바이스에 대화식 데이터를 간접적으로 전달하는 것을 가능하게 할 수 있다. 결과적으로, 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)가 제2 컴퓨팅 디바이스(1306)와 직접 통신하는 능력을 갖지 않는 시나리오들에서 제2 컴퓨팅 디바이스(1306)에 대화식 데이터를 전달할 수 있다.
동작(1308)에서, 중개 컴퓨팅 디바이스(1304)는 대화식 데이터에 가입할 수 있다. 대화식 데이터는 제1 컴퓨팅 디바이스(1302)의 센서 또는 다른 하드웨어 컴포넌트에 의해 생성되는 데이터일 수 있다. 제1 컴퓨팅 디바이스(1302)는 개개의 컴포넌트와의 사용자 상호 작용에 응답하여 그리고/또는 미리 결정된 간격들로 대화식 데이터를 각각 생성할 수 있는 버튼들, 조이스틱, 센서들(예컨대, 자이로스코프들, 가속도계들, 온도 센서들 등) 및/또는 페달 시스템과 같은, 그러나 이에 제한되는 것은 아닌 하나 이상의 하드웨어 컴포넌트들을 포함할 수 있다. 하드웨어 컴포넌트들은 하드웨어 컴포넌트들과 결합되거나 다른 식으로 연관되는 센서들을 통해 대화식 데이터를 생성할 수 있다. 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스(1302)에 요청을 제출함으로써 제1 컴퓨팅 디바이스(1302)의 하드웨어 컴포넌트들과 연관된 센서들로부터 대화식 데이터를 주기적으로 수신하도록 가입할 수 있다. 요청은 중개 컴퓨팅 디바이스(1304)가 가입하고 있는 센서들 또는 하드웨어 컴포넌트들의 지시들을 포함할 수 있다. 중개 컴퓨팅 디바이스(1304)는 블루투스 인터페이스, 블루투스 저에너지 인터페이스, 또는 임의의 다른 유선 또는 무선 인터페이스를 통해 제1 컴퓨팅 디바이스(1302)에 요청을 전달할 수 있다.
동작(1310)에서, 제1 컴퓨팅 디바이스(1302)는 요청으로부터 지시들을 식별할 수 있다. 제1 컴퓨팅 디바이스(1302)는 요청을 수신하고 요청에서 지시들을 식별할 수 있다. 동작(1312)에서, 제1 컴퓨팅 디바이스(1302)는 지시들을 데이터베이스 내의 설정들과 비교하고, 요청으로부터의 지시들과 매칭하는 설정들을 조정 또는 업데이트할 수 있다. 설정은 중개 컴퓨팅 디바이스(1304)가 설정과 연관되는 하나 이상의 센서들 또는 하드웨어 컴포넌트들(예컨대, 하드웨어 컴포넌트들의 센서들)에 의해 생성되는 데이터에 가입되었는지 여부의 지시일 수 있다. 각각의 센서 또는 하드웨어 컴포넌트는 상이한 설정과 연관될 수 있다. 예를 들어, 설정은 중개 컴퓨팅 디바이스(1304)가 제1 컴퓨팅 디바이스(1302)의 조이스틱에 의해 생성된 조이스틱 데이터를 수신하도록 가입되었는지 여부의 지시일 수 있다. 설정은, 중개 컴퓨팅 디바이스(1304)가 센서 또는 하드웨어 컴포넌트에 가입된 경우에는 "1" 또는 중개 컴퓨팅 디바이스(1304)가 센서 또는 하드웨어 컴포넌트에 가입되지 않은 경우에는 "0"과 같은 이진 값일 수 있다.
일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 다양한 컴퓨팅 디바이스들에 대한 프로파일들을 저장할 수 있다. 프로파일들은 위에서 설명된 바와 같이 컴퓨팅 디바이스들이 가입할 수 있는 설정들과 연관될 수 있다. 프로파일은 컴퓨팅 디바이스의 디바이스 식별자 또는 컴퓨팅 디바이스의 사용자 계정의 계정 식별자와 같은 식별자와 연관되거나 링크될 수 있다. 이러한 실시예들에서, 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스(1302)에 대한 가입 요청에 식별자를 포함할 수 있다. 제1 컴퓨팅 디바이스(1302)는 요청으로부터 식별자를 식별하고, 식별자를 제1 컴퓨팅 디바이스(1302)의 데이터베이스에 저장된 프로파일들의 식별자들과 비교할 수 있다. 제1 컴퓨팅 디바이스(1302)는 매칭 식별자와 연관되는 데이터베이스의 프로파일을 식별하고 요청의 지시들에 따라 프로파일의 설정들을 업데이트할 수 있다.
동작(1314)에서, 제1 컴퓨팅 디바이스(1302)는 입력이 수신되었는지 여부를 결정할 수 있다. 제1 컴퓨팅 디바이스(1302)는 미리 결정된 또는 의사 랜덤 간격들로 제1 컴퓨팅 디바이스(1302)의 센서들 및/또는 다른 하드웨어 컴포넌트들을 폴링할 수 있다. 일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 센서들 및/또는 다른 하드웨어 컴포넌트들에 의해 생성되는 값들의 변화가 있는지 여부에 기반하여 입력이 수신되었는지 여부를 결정할 수 있다. 예를 들어, 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)의 IMU의 센서들을 폴링하고, 센서들이 이전 폴링 이후 임의의 데이터를 생성했는지 여부를 결정할 수 있다. 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)의 센서들 중 임의의 부분 또는 각각의 부분의 센서들을 폴링할 수 있다. 제1 컴퓨팅 디바이스(1302)가 그러한 폴링으로부터 임의의 생성된 데이터를 검출하지 않는다면, 제1 컴퓨팅 디바이스(1302)는 센서들 및/또는 다른 하드웨어 컴포넌트들을 다시 폴링할 수 있다. 제1 컴퓨팅 디바이스(1302)는 하나 이상의 입력들이 수신되었다고 결정할 때까지 동작(1314)을 수행할 수 있다.
일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 센서들 또는 하드웨어 컴포넌트들 중 하나 이상으로부터 데이터를 수신하는 것에 기반하여 입력이 수신되었다고 결정할 수 있다. 하나 이상의 센서들 또는 하드웨어 컴포넌트들은 사용자 상호 작용에 대한 응답으로 데이터를 생성하고 그리고/또는 제1 컴퓨팅 디바이스(1302)에 전송할 수 있다. 사용자 상호 작용들의 예들은, IMU 센서들로 하여금 데이터를 생성하게 할 수 있는 제1 컴퓨팅 디바이스(1302)를 조작하는 것(예컨대, 이동시키는 것); 조이스틱 센서들로 하여금 데이터를 생성하게 할 수 있는 제1 컴퓨팅 디바이스(1302)의 조이스틱을 이동시키는 것; 버튼들 또는 버튼들의 하나 이상의 센서들로 하여금 데이터를 생성하게 할 수 있는 버튼의 푸시 등을 포함하지만 이에 제한되는 것은 아니다. 센서들 또는 하드웨어 컴포넌트들은 데이터를 생성하고 데이터를 제1 컴퓨팅 디바이스(1302)의 처리 회로에 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 처리 회로가 생성된 데이터를 수신하는 것에 대한 응답으로 입력이 수신되었다고 결정할 수 있다.
동작(1316)에서, 제1 컴퓨팅 디바이스(1302)는 중개 컴퓨팅 디바이스(1304)가 센서 또는 하드웨어 컴포넌트에서 생성되는 대화식 데이터에 가입되었는지를 결정할 수 있다. 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)가 데이터를 수신하기 위해 사용한 포트 또는 서비스(예컨대, 블루투스 또는 블루투스 저에너지 서비스)에 기반하여 어느 센서 또는 하드웨어 컴포넌트가 데이터를 생성 및/또는 전송했는지를 식별할 수 있다. 제1 컴퓨팅 디바이스(1302)는 식별된 센서 또는 하드웨어 컴포넌트의 식별을 식별된 센서 또는 하드웨어 컴포넌트와 연관되는 설정과 비교하고, 그 설정에 기반하여 중개 컴퓨팅 디바이스(1304)가 센서 또는 하드웨어 컴포넌트에 가입되었는지 여부를 결정할 수 있다. 예를 들어, 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)의 커맨드 버튼에 의해 생성된 데이터를 식별할 수 있다. 중개 컴퓨팅 디바이스(1304)는 중개 컴퓨팅 디바이스(1304)가 커맨드 버튼 또는 다른 방식으로 커맨드 버튼에 의해 생성된 데이터에 가입되었는지 여부를 지시하는 커맨드 버튼 설정을 식별할 수 있다. 제1 컴퓨팅 디바이스(1302)는 설정에 기반하여 중개 컴퓨팅 디바이스(1304)가 커맨드 버튼에 가입되었는지 여부를 결정할 수 있다. 중개 컴퓨팅 디바이스가 제1 컴퓨팅 디바이스(1302)의 센서에 의해 생성된 데이터에 가입되지 않았다고 제1 컴퓨팅 디바이스(1302)가 결정하는 것에 대한 응답으로, 동작(1318)에서, 도 13의 프로세스가 종료될 수 있다.
그러나 중개 컴퓨팅 디바이스(1304)가 생성된 대화식 데이터에 가입되었다고 제1 컴퓨팅 디바이스(1302)가 결정하는 것에 대한 응답으로, 동작(1320)에서, 제1 컴퓨팅 디바이스(1302)는 대화식 데이터가 IMU인지 또는 조이스틱 데이터인지를 결정할 수 있다. 제1 컴퓨팅 디바이스(1302)는 제1 컴퓨팅 디바이스(1302)의 처리 회로가 대화식 데이터를 수신하게 한 포트 또는 서비스를 식별함으로써 그와 같이 결정할 수 있다. 예를 들어, 각각의 센서 또는 하드웨어 컴포넌트는 상이한 포트 또는 서비스를 통해 제1 컴퓨팅 디바이스(1302)의 처리 회로에 데이터를 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 데이터를 수신한 포트 또는 서비스를 식별하고, 식별된 포트 또는 서비스에 기반하여 데이터를 송신한 센서 또는 하드웨어 컴포넌트를 식별할 수 있다.
제1 컴퓨팅 디바이스(1302)가 대화식 데이터가 IMU 또는 조이스틱 데이터라고(예컨대, IMU 또는 조이스틱의 센서에 의해 생성되었다고) 결정하는 것에 대한 응답으로, 동작(1322)에서, 제1 컴퓨팅 디바이스(1302)는 대화식 데이터를 필터링할 수 있다. 제1 컴퓨팅 디바이스(1302)는 상이한 타임스탬프들에 걸쳐 대화식 데이터를 평균하고 그리고/또는 오프셋 보상을 수행하여 드리프트를 감소시킴으로써 대화식 데이터를 필터링할 수 있다. 제1 컴퓨팅 디바이스(1302)는 대화식 데이터의 값들을 식별하고 대화식 데이터로부터 미리 결정된 수(예컨대, 오프셋)를 감산함으로써 오프셋 보상을 수행할 수 있다. 일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 대화식 데이터가 임의의 타입의 데이터라고 결정하는 것에 대한 응답으로 대화식 데이터를 필터링할 수 있다.
동작(1324)에서, 제1 컴퓨팅 디바이스(1302)는 대화식 데이터를 중개 컴퓨팅 디바이스(1304)에 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 동작(1322)에서 대화식 데이터가 필터링되는 것에 대한 응답으로 필터링된 대화식 데이터를 전송하거나, 대화식 데이터가 필터링되지 않는 것에 대한 응답으로 필터링되지 않은 대화식 데이터를 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 블루투스, 블루투스 저에너지, WiFi, 또는 위에서 설명된 바와 같은 임의의 다른 통신 인터페이스 또는 프로토콜과 같은, 그러나 이에 제한되지 않는 무선 또는 유선 통신 인터페이스들을 통해 중개 컴퓨팅 디바이스(1304)에 대화식 데이터를 전송할 수 있다.
제1 컴퓨팅 디바이스(1302)는 가입된 대화식 데이터를 적어도 하나의 데이터 스트링으로서 중개 컴퓨팅 디바이스(1304)에 전송할 수 있다. 데이터 스트링은 IMU의 센서들에 의해 생성된 센서 데이터에 대응하는 값들을 포함할 수 있다. 이 값들은 제1 컴퓨팅 디바이스(1302)의 현재 포지션 또는 배향에 대응할 수 있다. 이 값들은 각각 값들의 범위 내의 부호 있는 16-비트 정수 값들일 수 있다. 예를 들어, 일 실시예에서, 값들의 범위는 -32768 내지 +32767일 수 있다. 값들의 범위는 임의의 수들 사이일 수 있다.
일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 IMU의 센서들로부터 획득된 데이터로부터 (예컨대, 임계치 내의) 동일한 또는 유사한 시간과 연관되는 하나 이상의 데이터 스트링들을 포함하는 센서 데이터의 패킷들을 생성할 수 있다. 데이터 스트링은 미리 결정된 수(예컨대, 10개)의 연결된 16-비트 부호 있는 정수 값들을 포함하는 형성된 연결된 데이터 스트링일 수 있다. 예를 들어, 일 실시예에서, 형성된 연결된 데이터 스트링은 3개의 자이로스코프들, 3개의 가속도계들, 3개의 자력계들 및 온도 센서로부터의 16-비트 정수 값들을 포함할 수 있다. 데이터 스트링은 센서들에 의해 생성된 값들 및/또는 중개 컴퓨팅 디바이스가 가입된 값들을 포함할 수 있다. 센서가 값을 생성하지 않았다면 또는 중개 컴퓨팅 디바이스(1304)가 센서에 의해 생성된 데이터를 수신하도록 달리 가입되지 않았다면, 제1 컴퓨팅 디바이스(1302)는 센서와 연관되는 데이터 스트링의 값 또는 비트에 대해 널 또는 0을 생성할 수 있다.
유사하게, 제1 컴퓨팅 디바이스(1302)는 버튼으로부터의 데이터 및/또는 커맨드 버튼들 또는 조이스틱의 센서들로부터 획득된 조이스틱 데이터를 비트 어레이로 포함하는 데이터 패킷을 생성할 수 있다. 제1 컴퓨팅 디바이스(1302)는 조이스틱 및 커맨드 버튼들의 센서들로부터 값들을 수집하고, 그 값들을 포함하는 비트 어레이를 생성할 수 있다. 비트 어레이는 센서 데이터의 연결된 데이터 스트링과 유사한 연결된 데이터 스트링에 복수의 연결된 비트들을 포함할 수 있다. 비트 어레이는 커맨드 버튼들의 상태들에 대응하는 비트들 또는 조이스틱의 x-포지션 및/또는 y-포지션에 대응하는 미리 결정된 수(예컨대, 2개)의 16-비트 부호 있는 정수들을 포함할 수 있다. 일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 유사하게, 제1 컴퓨팅 디바이스(1302)의 페달 시스템의 센서들에 의해 생성된 값들을 비트 어레이에 포함할 수 있다. 비트 어레이에서, 커맨드 버튼들의 상태는 이진수로 표현될 수 있다. 예를 들어, 제1 컴퓨팅 디바이스(1302)는, 커맨드 버튼이 눌려졌다는 결정에 대한 응답으로, 커맨드 버튼에 대응하는 비트에 대해 숫자 "1"을 생성하고, 커맨드 버튼이 눌리지 않았다는 또는 커맨드 버튼이 다른 식으로 해제되었다는 결정에 대한 응답으로 동일한 비트에 대해 숫자 "0"을 생성할 수 있다. 제1 컴퓨팅 디바이스(1302)는 각각의 커맨드 버튼에 대해 유사한 동작들을 수행할 수 있다.
제1 컴퓨팅 디바이스(1302)는 또한 조이스틱의 x축 포지션에 대응하는 제1 값 및 조이스틱의 y축 포지션에 대응하는 제1 값을 생성함으로써 비트 어레이를 생성할 수 있다. 조이스틱의 하나 이상의 센서들은 이동된 조이스틱이 이동했음의 검출 및 움직임의 크기(예컨대, 중심 포지션으로부터의 또는 이전 포지션으로부터의 거리)에 대한 응답으로 x축 값 및/또는 y축 값을 생성할 수 있다. 이 값은 이전 포지션 또는 교정된 포지션으로부터 멀어지는 움직임의 크기에 비례할 수 있다. 조이스틱의 하나 이상의 센서들은 생성된 값들을 제1 컴퓨팅 디바이스(1302)의 처리 회로에 전송할 수 있다. 처리 회로는 조이스틱의 하나 이상의 센서들로부터 각각의 값을 수신할 수 있다. 제1 컴퓨팅 디바이스(1302)는 조이스틱의 x축 포지션에 대응하는 값들, 조이스틱의 y축 포지션에 대응하는 값들, 및/또는 버튼들 각각의 상태에 대응하는 값들을 비트 어레이를 구성하는 연결된 데이터 스트링으로 연결시킬 수 있다. 일부 실시예들에서, 제1 컴퓨팅 디바이스(1302)는 IMU로부터의 센서 데이터의 데이터 스트링들과 동일한 데이터 패킷에 조이스틱 및/또는 커맨드 버튼들로부터 생성된 데이터 스트링들을 포함할 수 있다. 조이스틱 또는 커맨드 버튼들의 센서가 값을 생성하지 않았다면 또는 중개 컴퓨팅 디바이스(1304)가 조이스틱 또는 커맨드 버튼들의 센서에 의해 생성된 데이터를 수신하도록 달리 가입되지 않았다면, 제1 컴퓨팅 디바이스(1302)는 센서와 연관되는 데이터 스트링의 값 또는 비트에 대해 널 또는 0을 생성할 수 있다.
제1 컴퓨팅 디바이스(1302)는 센서 데이터의 패킷 및/또는 조이스틱 및/또는 커맨드 버튼 데이터의 비트 어레이를 중개 컴퓨팅 디바이스(1304)에 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 미리 결정된 간격들(예컨대, 매 5밀리초, 10밀리초, 20밀리초 등)로, 의사 랜덤하게 그리고/또는 중개 컴퓨팅 디바이스(1304)로부터 그러한 데이터에 대한 요청의 수신 시에 센서 데이터의 패킷들을 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 센서 데이터의 패킷 및/또는 조이스틱 및/또는 커맨드 버튼 데이터의 비트 어레이를 임의의 레이트로 중개 컴퓨팅 디바이스(1304)에 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 센서 데이터의 패킷에 비트 어레이를 포함시킴으로써(예컨대, 동일한 또는 유사한 타임스탬프와 연관되는 연결된 데이터 스트링에 비트 어레이를 연결함으로써) 또는 비트 어레이를 개별 데이터 패킷으로 전송함으로써 비트 어레이를 중개 컴퓨팅 디바이스(1304)에 전송할 수 있다.
동작(1326)에서, 제1 컴퓨팅 디바이스(1302)는 제2 컴퓨팅 디바이스(1306)와의 통신 세션을 설정하기 위한 요청을 전송할 수 있다. 제1 컴퓨팅 디바이스(1302)는 중개 컴퓨팅 디바이스(1304)가 제1 컴퓨팅 디바이스(1302)와 통신하는 통신 인터페이스와 상이한 통신 인터페이스를 통해 요청을 전송할 수 있다. 예를 들어, 제1 컴퓨팅 디바이스(1302)는 블루투스 저에너지를 통해 중개 컴퓨팅 디바이스와 통신할 수 있고, 중개 컴퓨팅 디바이스(1304)는 WiFi를 통해 제2 컴퓨팅 디바이스(1306)와 통신할 수 있다. 중개 컴퓨팅 디바이스(1304)는 임의의 통신 프로토콜을 통해 제1 컴퓨팅 디바이스(1302) 및/또는 제2 컴퓨팅 디바이스(1306)와 통신할 수 있다.
동작(1328)에서, 제2 컴퓨팅 디바이스(1306)는 통신 세션을 설정하고 제2 컴퓨팅 디바이스(1306)의 에이전트와 중개 컴퓨팅 디바이스(1304)의 애플리케이션 사이에 전송 계층 통신 세션을 설정하기 위한 요청을 수신할 수 있다. 제2 컴퓨팅 디바이스(1306)는 제2 컴퓨팅 디바이스(1306)의 전송 계층 서버를 통해 요청을 수신할 수 있다. 제2 컴퓨팅 디바이스(1306)의 에이전트는 중개 컴퓨팅 디바이스(1304)의 애플리케이션이 제2 컴퓨팅 디바이스(1306)의 에이전트와 통신할 수 있게 하는 통신 세션을 설정할 수 있다. 세션을 설정할 때, 제2 컴퓨팅 디바이스(1306)는 세션이 성공적으로 설정되었음을 지시하는 신호를 중개 컴퓨팅 디바이스(1304)에 다시 전송할 수 있다. 중개 컴퓨팅 디바이스(1304)는 제2 컴퓨팅 디바이스(1306)로부터 신호를 수신하는 것에 대한 응답으로 세션이 설정되었음을 지시하는 지시를 중개 컴퓨팅 디바이스(1304)의 데이터 구조에 저장할 수 있다.
동작(1330)에서, 중개 컴퓨팅 디바이스(1304)는 중개 컴퓨팅 디바이스(1304)가 제1 컴퓨팅 디바이스(1302)로부터 대화식 데이터를 수신했는지 여부를 결정할 수 있다. 위에서 설명된 바와 같이, 제1 컴퓨팅 디바이스(1302)가 하나 이상의 센서들을 통해 데이터를 생성하고 생성된 데이터를 중개 컴퓨팅 디바이스(1304)에 전송한 후에, 중개 컴퓨팅 디바이스(1304)는 대화식 데이터를 수신할 수 있다. 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스(1302)로부터 대화식 데이터를 수신하는 것에 대한 응답으로 대화식 데이터가 수신되었다고 결정할 수 있다.
대화식 데이터가 수신되었다고 중개 컴퓨팅 디바이스(1304)가 결정하는 것에 대한 응답으로, 동작(1332)에서, 중개 컴퓨팅 디바이스(1304)는 제2 컴퓨팅 디바이스(1306)와 세션이 설정되었는지 여부를 결정할 수 있다. 중개 컴퓨팅 디바이스(1304)는 중개 컴퓨팅 디바이스(1304)에 저장된 그러한 세션의 지시가 존재하는지 여부를 결정함으로써 세션이 설정되었는지 여부를 결정할 수 있다. 제2 컴퓨팅 디바이스(1306)와의 설정된 세션의 지시가 없다고 중개 컴퓨팅 디바이스(1304)가 결정하는 것에 대한 응답으로, 도 13의 방법은 동작(1334)에서 종료될 수 있다. 일부 구현들에서, 단계들(1332-1334)은 단계(1330) 전에 수행될 수 있다.
그러나 설정된 세션의 지시가 있거나 세션이 달리 설정되었다고 중개 컴퓨팅 디바이스(1304)가 결정하는 것에 대한 응답으로, 동작(1336)에서, 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스(1302)로부터 중개 컴퓨팅 디바이스(1304)가 수신한 대화식 데이터로부터 적어도 하나의 데이터 스트링을 추출할 수 있다. 적어도 하나의 데이터 스트링은 조이스틱 및 버튼 데이터 및/또는 IMU 센서 데이터의 데이터 스트링을 포함할 수 있다. 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스가 전송하는 대화식 데이터의 데이터 패킷으로부터 적어도 하나의 데이터 스트링을 판독함으로써 적어도 하나의 데이터 스트링을 추출할 수 있다.
동작(1338)에서, 중개 컴퓨팅 디바이스(1304)는 전송 계층 헤더에 적어도 하나의 데이터 스트링을 캡슐화할 수 있다. 중개 컴퓨팅 디바이스(1304)의 애플리케이션은 애플리케이션의 애플리케이션 계층으로부터의 적어도 하나의 데이터 스트링을 애플리케이션의 전송 계층 헤더에 캡슐화할 수 있다. 동작(1340)에서, 중개 컴퓨팅 디바이스(1304)는 캡슐화된 하나 이상의 데이터 스트링들을 애플리케이션을 통해 제2 컴퓨팅 디바이스(1306)에 전송할 수 있다.
동작(1342)에서, 제2 컴퓨팅 디바이스(1306)는 제2 컴퓨팅 디바이스(1306)가 중개 컴퓨팅 디바이스(1304)로부터 임의의 센서 데이터를 수신했는지 여부를 결정할 수 있다. 센서 데이터는 하나 이상의 센서들에 의해 생성된 데이터를 포함하는 적어도 하나의 캡슐화된 데이터 스트링을 포함할 수 있다. 제2 컴퓨팅 디바이스(1306)는 캡슐화된 센서 데이터를 포함하는 패킷으로서 센서 데이터를 중개 컴퓨팅 디바이스(1304)로부터 수신할 수 있다. 제2 컴퓨팅 디바이스(1306)는 통신 인터페이스를 통해 중개 컴퓨팅 디바이스(1304)의 애플리케이션과 통신할 수 있는 제2 컴퓨팅 디바이스(1306)의 에이전트를 통해 센서 데이터를 수신할 수 있다. 중개 컴퓨팅 디바이스(1304)는 중개 컴퓨팅 디바이스(1304)로부터 센서 데이터를 수신하는 것에 대한 응답으로 센서 데이터가 수신되었다고 결정할 수 있다.
센서 데이터를 수신하는 것에 대한 응답으로, 동작(1344)에서, 제2 컴퓨팅 디바이스(1306)는 센서 데이터의 캡슐화된 데이터 스트링으로부터 데이터를 추출할 수 있다. 제2 컴퓨팅 디바이스(1306)는 캡슐화된 데이터 스트링으로부터 데이터를 판독함으로써 데이터를 추출할 수 있다. 제2 컴퓨팅 디바이스(1306)는 센서 데이터를 포함하는 패킷에 포함될 수 있는 임의의 수의 캡슐화된 데이터 스트링들로부터 데이터를 추출할 수 있다.
동작(1346)에서, 에이전트를 통해, 제2 컴퓨팅 디바이스(1306)는 추출된 데이터가 마우스 데이터와 연관되는지 또는 키보드 데이터와 연관되는지를 결정할 수 있다. 제2 컴퓨팅 디바이스(1306)는, 제2 컴퓨팅 디바이스(1306)가 데이터를 추출하고 있는 데이터 스트링의 비트 또는 인덱스 값을 식별하고, 그리고 비트 또는 인덱스 값에 기반하여 인덱스 값이 마우스 데이터와 연관되는지 또는 키보드 데이터와 연관되는지를 식별함으로써 그렇게 결정할 수 있다. 마우스 데이터는 컴퓨팅 디바이스 상에서 x축 또는 y축 상의 검출된 움직임들, 버튼 클릭들, 또는 마우스 상의 휠의 검출된 움직임들 등과 같은, 그러나 이에 제한되지 않는 마우스 입력들을 도용하는 데 사용될 수 있는 데이터일 수 있다. 키보드 데이터는 컴퓨팅 디바이스 상의 키보드 입력들을 도용하는 데 사용될 수 있는 데이터일 수 있다. 제2 컴퓨팅 디바이스(1306)는 제2 컴퓨팅 디바이스(1306)의 데이터베이스에 저장되는 마우스 데이터 또는 키보드 데이터와 비트 또는 인덱스 값들 간의 연관성에 기반하여 데이터 스트링들의 비트들 또는 인덱스 값들을 마우스 데이터 또는 키보드 데이터와 연관시키도록 구성될 수 있다. 제2 컴퓨팅 디바이스(1306)는 데이터 스트링으로부터 추출된 데이터의 비트 또는 인덱스 값을 식별하고, 비트 또는 인덱스 값을 데이터베이스와 비교함으로써 비트 또는 인덱스 값이 마우스 데이터와 연관되는지 또는 키보드 데이터와 연관되는지를 식별할 수 있다.
추출된 데이터가 마우스 데이터(예컨대, 키보드 데이터)와 연관되지 않는다고 제2 컴퓨팅 디바이스(1306)가 결정하는 것에 대한 응답으로, 동작(1348)에서 그리고 에이전트를 통해, 제2 컴퓨팅 디바이스(1306)는 데이터를 키보드 데이터로 트랜스코딩할 수 있다. 제2 컴퓨팅 디바이스(1306)는 추출된 데이터에 미리 결정된 세트의 규칙들을 적용함으로써 데이터를 키보드 데이터로 트랜스코딩할 수 있다. 예를 들어, 제2 컴퓨팅 디바이스(1306)는 제1 컴퓨팅 디바이스(1302)의 특정 커맨드 버튼으로부터 추출된 데이터가 문자 "J"와 연관된다고 결정할 수 있다. 커맨드 버튼에 의해 생성된 데이터를 수신하면, 제2 컴퓨팅 디바이스(1306)의 에이전트는 문자 J를 식별하는 데이터로 데이터를 트랜스코딩할 수 있다. 제2 컴퓨팅 디바이스(1306)는 임의의 수의 규칙들을 적용함으로써 데이터를 임의의 키보드 입력으로 트랜스코딩할 수 있다.
추출된 데이터가 마우스 데이터와 연관된다고 제2 컴퓨팅 디바이스(1306)가 결정하는 것에 대한 응답으로, 동작(1350)에서 그리고 에이전트를 통해, 제2 컴퓨팅 디바이스(1306)는 데이터를 마우스 데이터로 트랜스코딩할 수 있다. 제2 컴퓨팅 디바이스(1306)는 추출된 데이터에 미리 결정된 세트의 규칙들을 적용함으로써 데이터를 마우스 데이터로 트랜스코딩할 수 있다. 예를 들어, 제2 컴퓨팅 디바이스(1306)는 제1 컴퓨팅 디바이스(1302)의 IMU 센서들로부터 추출된 데이터가 사용자 인터페이스 상의 커서의 움직임들에 대응한다고 결정할 수 있다. 제2 컴퓨팅은 제1 컴퓨팅 디바이스(1302)가 위쪽을 향했다는 지시를 수신하고 그에 따라 지시와 연관되는 데이터를 커서의 상향 이동을 전달하는 데이터로 트랜스코딩할 수 있다. 제2 컴퓨팅 디바이스(1306)는 임의의 규칙 및/또는 임의의 수의 규칙들을 적용함으로써 데이터를 임의의 마우스 입력으로 트랜스코딩할 수 있다.
동작(1352)에서 그리고 에이전트를 통해, 제2 컴퓨팅 디바이스(1306)는 트랜스코딩된 추출된 데이터를 제2 컴퓨팅 디바이스(1306)의 가상 인간 인터페이스 디바이스에 제공할 수 있다. 가상 인간 인터페이스 디바이스는 제2 컴퓨팅 디바이스(1306)의 운영 체제에 저장된 가상 드라이버일 수 있다. 가상 인간 인터페이스 디바이스는 컴퓨팅 디바이스의 포트에 물리적으로 플러그될 수 있는 HID 준수 하드웨어 디바이스를 도용할 수 있다. 제2 컴퓨팅 디바이스(1306)는 트랜스코딩된 추출된 데이터를 가상 인간 인터페이스 디바이스와 연관된 메모리에 기록함으로써, 트랜스코딩된 추출된 데이터를 가상 인간 인터페이스 디바이스에 제공할 수 있다.
일부 실시예들에서, 제2 컴퓨팅 디바이스(1306)는 자신의 운영 체제에 다수의 가상 인간 인터페이스 디바이스들을 포함할 수 있다. 예를 들어, 제2 컴퓨팅 디바이스(1306)는 마우스를 도용하는 가상 인간 인터페이스 및 키보드를 도용하는 가상 인간 인터페이스 디바이스를 포함할 수 있다. 제2 컴퓨팅 디바이스(1306)는 자신의 운영 체제에 임의의 수의 가상 인간 인터페이스 디바이스들을 포함할 수 있다. 제2 컴퓨팅 디바이스(1306)는 트랜스코딩된 추출된 데이터의 타입에 기반하여 어떤 가상 인간 인터페이스 디바이스가 트랜스코딩된 추출된 데이터를 제공할지를 결정할 수 있다. 예를 들어, 제2 컴퓨팅 디바이스(1306)는 동작(1346)에서 이루어진 결정에 기반하여 트랜스코딩된 추출된 데이터의 타입을 마우스 데이터로서 식별할 수 있다. 이에 따라, 제2 컴퓨팅 디바이스(1306)는 트랜스코딩된 추출된 데이터를 마우스와 연관된 가상 인간 인터페이스 디바이스에 제공할 수 있다.
동작(1354)에서, 제2 컴퓨팅 디바이스(1306)는 중개 컴퓨팅 디바이스(1304)에 제공되고 있는 미디어 스트림을 업데이트할 수 있다. 미디어 스트림은 제2 컴퓨팅 디바이스(1306)에 의해 실행되거나 처리되는 게임 또는 애플리케이션의 사용자 인터페이스일 수 있다. 제2 컴퓨팅 디바이스(1306)는 게임 또는 애플리케이션의 사용자 인터페이스를 미디어 스트림으로서 중개 컴퓨팅 디바이스(1304)에 전송하여, 미디어 스트림이 디스플레이되게 할 수 있다. 제2 컴퓨팅 디바이스(1306)는 가상 인간 인터페이스 디바이스로부터의 입력을 식별하고 게임 또는 애플리케이션과 연관되는 대응하는 액션을 식별할 수 있다. 액션은 캐릭터 점프와 같은 게임 내 액션 또는 사용자 인터페이스를 가로질러 이동하는 커서와 같은 다른 액션일 수 있다. 제2 컴퓨팅 디바이스(1306)는 처리되고 있는 게임 또는 애플리케이션 그리고 게임 또는 애플리케이션의 현재 상태에 기반하여 액션을 결정할 수 있다. 제2 컴퓨팅 디바이스(1306)는 액션을 결정하고 그 액션에 따라 미디어 스트림을 업데이트할 수 있다. 동작(1356)에서, 중개 컴퓨팅 디바이스(1304)는 업데이트된 미디어 스트림을 디스플레이할 수 있다. 중개 컴퓨팅 디바이스(1304)는 중개 컴퓨팅 디바이스(1304)의 디스플레이 상에 업데이트된 미디어 스트림을 디스플레이할 수 있다.
예를 들어, 제2 컴퓨팅 디바이스(1306)는 컴퓨팅 디바이스(1302)가 왼쪽으로 재배향되었음을 지시하는 IMU 데이터와 연관된 마우스 데이터를 수신하는 것에 대한 응답으로 사용자가 제1 컴퓨팅 디바이스(1302)를 왼쪽으로 재배향했다고 결정할 수 있다. 제2 컴퓨팅 디바이스(1306)는 브라우저 애플리케이션을 처리하고 있을 수 있다. 제2 컴퓨팅 디바이스(1306)는 미디어 스트림 상에서 커서를 좌측으로 이동시키기 위해 브라우저 애플리케이션의 사용자 인터페이스를 디스플레이하는 중개 컴퓨팅 디바이스(1304)에 전송되는 미디어 스트림을 업데이트할 수 있다.
유리하게는, 중개 컴퓨팅 디바이스(1304)는 상이한 통신 인터페이스들을 통해 제1 컴퓨팅 디바이스(1302) 및 제2 컴퓨팅 디바이스(1306)와 통신할 수 있다. 그렇게 함으로써, 중개 컴퓨팅 디바이스(1304)는 제1 컴퓨팅 디바이스(1302)와 제2 컴퓨팅 디바이스(1306)가 서로 호환 가능한 통신 인터페이스들을 갖지 않을 때 제1 컴퓨팅 디바이스(1302)와 제2 컴퓨팅 디바이스(1306) 간의 통신들을 브리지할 수 있다. 이에 따라, 제1 컴퓨팅 디바이스(1302)는 둘 사이의 직접 통신을 가능하게 하는 통신 인터페이스를 갖지 않으면서 제2 컴퓨팅 디바이스(1306)와 통신할 수 있다.
본 명세서에 개시된 예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘 동작들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합들로 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 상호 호환성을 명확히 설명하기 위해, 각종 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 동작들은 일반적으로 이들의 기능과 관련하여 위에서 설명되었다. 이러한 기능이 하드웨어로 구현되는지 아니면 소프트웨어로 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 좌우된다. 당해 기술분야에서 통상의 지식을 가진 자들은 설명된 기능을 특정 애플리케이션마다 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 개시내용의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
본 명세서에 개시된 예들과 관련하여 설명된 다양한 예시적인 로직들, 로직 블록들, 모듈들 및 회로들을 구현하는 데 사용된 하드웨어는 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 이들에 의해 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로 프로세서는 임의의 종래 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다. 대안으로, 일부 동작들 또는 방법들은 주어진 기능에 특정한 회로에 의해 수행될 수 있다.
일부 예시적인 예들에서, 설명되는 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기능들은 비-일시적 컴퓨터 판독 가능 저장 매체 또는 비-일시적 프로세서 판독 가능 저장 매체 상에 하나 또는 그보다 많은 명령들 또는 코드로서 저장될 수 있다. 본 명세서에 개시된 방법 또는 알고리즘의 동작들은 비-일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체에 상주할 수 있는 프로세서 실행 가능 소프트웨어 모듈에서 구현될 수 있다. 비-일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 저장 매체일 수 있다. 한정이 아닌 예를 들면, 이러한 비-일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 조합들은 또한 비-일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 매체의 범위 내에 포함된다. 추가로, 방법 또는 알고리즘의 동작들은 컴퓨터 프로그램 제품으로 통합될 수 있는 비-일시적 프로세서 판독 가능 저장 매체 및/또는 컴퓨터 판독 가능 저장 매체 상에 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 상주할 수 있다.
본 명세서에서 설명되는 청구 대상은 때때로 상이한 다른 컴포넌트들 내에 포함되거나 상이한 다른 컴포넌트들과 접속된 상이한 컴포넌트들을 예시한다. 그러한 도시된 아키텍처들은 단지 예시일 뿐이며, 실제로 동일한 기능을 달성하는 많은 다른 아키텍처들이 구현될 수 있다고 이해되어야 한다. 개념적 의미로, 동일한 기능을 달성하기 위한 컴포넌트들의 임의의 어레인지먼트는 원하는 기능이 달성되도록 효과적으로 "연관"된다. 그러므로 특정 기능을 달성하기 위해 본 명세서에서 조합되는 임의의 2개의 컴포넌트들은 아키텍처들 또는 중간 컴포넌트들에 관계없이, 원하는 기능이 달성되도록 서로 "연관되는" 것으로 보일 수 있다. 마찬가지로, 그렇게 연관된 임의의 2개의 컴포넌트들은 또한 원하는 기능을 달성하기 위해 서로 "동작 가능하게 접속" 또는 "동작 가능하게 결합"되는 것으로 보일 수 있고, 그렇게 연관될 수 있는 임의의 2개의 컴포넌트들은 또한 원하는 기능을 달성하기 위해 서로 "동작 가능하게 결합 가능한" 것으로 보일 수 있다. 동작 가능하게 결합 가능한 것의 특정 예들은 물리적으로 정합 가능한 그리고/또는 물리적으로 상호 작용하는 컴포넌트들 및/또는 무선으로 상호 작용 가능한 그리고/또는 무선으로 상호 작용하는 컴포넌트들 및/또는 논리적으로 상호 작용하는 그리고/또는 논리적으로 상호 작용 가능한 컴포넌트들을 포함하지만 이에 제한되는 것은 아니다.
본 명세서에서의 실질적으로 임의의 복수 및/또는 단수 용어들의 사용과 관련하여, 당해 기술분야에서 통상의 지식을 가진 자들은 맥락 및/또는 적용에 적절하게 복수에서 단수로 그리고/또는 단수에서 복수로 해석할 수 있다. 다양한 단수/복수 치환들은 명료성을 위해 본 명세서에서 명백하게 제시될 수 있다.
일반적으로, 본 명세서에서, 특히 첨부된 청구항들(예컨대, 첨부된 청구항들의 본문들)에서 사용된 용어들은 일반적으로 "열린" 용어들로 의도된 것으로 이해될 것이다(예컨대, "포함하는"이라는 용어는 "포함하지만 이에 한정된 것은 아닌"으로 해석되어야 하고, "갖는"이라는 용어는 "적어도 갖는"으로 해석되어야 하고, "포함한다"라는 용어는 "포함하지만 이에 한정된 것은 아닌"으로 해석되어야 하는 식이다). 특정 수의 도입된 청구항 언급이 의도된다면, 그러한 의도는 청구항에서 명시적으로 언급될 것이며, 그러한 언급이 없으면 그러한 의도가 없다고 당해 기술분야에서 통상의 지식을 가진 자들에 의해 추가로 이해될 것이다. 예를 들어, 이해를 돕기 위해, 다음의 첨부된 청구항들은 청구항 언급들을 도입하기 위해 "적어도 하나" 및 "하나 이상"이라는 도입 문구들의 사용을 포함할 수 있다. 그러나 동일한 청구항이 "하나 이상" 또는 "적어도 하나"라는 도입 문구들 및 부정 관사들(예컨대, 부정 관사 표현은 통상적으로 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 해석되어야 함)을 포함하는 경우에도, 이러한 문구들의 사용은 부정 관사들에 의한 청구항 언급의 도입이 그러한 도입된 청구항 언급을 포함하는 임의의 특정 청구항을 단 하나의 그러한 언급만을 포함하는 발명들로 제한하는 것을 의미하는 것으로 해석되지는 않아야 하며; 이는 청구항 언급들을 도입하기 위해 사용된 정관사들의 사용에 대해서도 마찬가지이다. 추가로, 특정 번호의 도입된 청구항 언급이 명시적으로 언급되더라도, 당해 기술분야에서 통상의 지식을 가진 자들은 이러한 언급이 통상적으로, 적어도 언급된 번호를 의미(예컨대, "두 번의 언급들" 중, 다른 수식어들 없이, 가장 기본적인 언급은 통상적으로, 적어도 두 번의 언급들, 또는 두 번 이상의 언급들을 의미하는 의미함)하는 것으로 해석되어야 한다고 인식할 것이다. 더욱이, "A, B 및 C 중 적어도 하나 등"과 유사한 조약이 사용되는 그러한 경우들에는, 일반적으로 이러한 구성이 당해 기술분야에서 통상의 지식을 가진 자가 조약을 이해할 것이라는 의미로 의도된다(예컨대, "A, B 및 C 중 적어도 하나를 갖는 시스템"은 A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께 그리고/또는 A와 B와 C를 함께 갖는 등의 시스템들을 포함하지만 이에 제한되지는 않을 것이다). "A, B 또는 C 중 적어도 하나 등"과 유사한 조약이 사용되는 그러한 경우들에는, 일반적으로 이러한 구성이 당해 기술분야에서 통상의 지식을 가진 자가 조약을 이해할 것이라는 의미로 의도된다(예컨대, "A, B 또는 C 중 적어도 하나를 갖는 시스템"은 A만, B만, C만, A와 B를 함께, A와 C를 함께, B와 C를 함께 그리고/또는 A와 B와 C를 함께 갖는 등의 시스템들을 포함하지만 이에 제한되지는 않을 것이다). 설명에서든, 청구항들에서든 또는 도면에서든, 둘 이상의 대안 용어들을 나타내는 사실상 임의의 이접적인 단어 및/또는 문구는 용어들 중 하나, 용어들 중 어느 하나, 또는 두 용어들 모두를 포함할 가능성들을 고려하도록 이해되어야 한다는 것이 당해 기술분야에서 통상의 지식을 가진 자들에 의해 추가로 이해될 것이다. 예를 들어, "A 또는 B"라는 문구는 "A" 또는 "B" 또는 "A와 B"의 가능성들을 포함하는 것으로 이해될 것이다. 또한, 달리 언급되지 않는 한, "대략", "약", "~ 정도", "실질적으로" 등의 단어들의 사용은 플러스 또는 마이너스 10%를 의미한다.
예시적인 실시예들에 대한 상기 설명은 예시 및 설명의 목적으로 제시되었다. 이는 개시된 바로 그 형태들에 관해 전적이거나 제한적인 것으로 의도되지 않으며, 위의 교시들에 비추어 수정들 및 변동들이 가능하거나 개시된 실시예들의 실시로부터 획득될 수 있다. 본 발명의 범위는 이에 첨부된 청구항들 및 이들의 등가물들로 정의되는 것으로 의도된다.

Claims (86)

  1. 인간 인터페이스 디바이스(HID: human interface device) 호환 휴대용 게이밍 디바이스로서,
    디스플레이, 조이스틱(joystick) 및 포지션 센서와 통신하는 프로세서를 포함하며,
    상기 프로세서는 실행될 때, 상기 프로세서로 하여금:
    상기 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 포지션 센서로부터 수신하게 하고;
    상기 조이스틱의 포지션의 변화를 지시하는 제2 신호를 상기 조이스틱으로부터 수신하게 하고;
    상기 디스플레이의 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠의 타입을 결정하게 하고;
    상기 사용자 인터페이스 상에 디스플레이되고 있는 결정된 콘텐츠의 타입에 기반하여 상기 제1 신호에 제1 가중치를 그리고 상기 제2 신호에 제2 가중치를 할당하게 하고;
    가중된 제1 신호와 가중된 제2 신호의 가중된 합에 기반하여 상기 제1 신호를 상기 제2 신호와 집계하여 제3 신호를 획득하게 하고; 그리고
    상기 제3 신호에 따라 상기 디스플레이 상의 사용자 인터페이스를 업데이트하게 하는 프로그래밍된 명령들을 갖고,
    상기 디스플레이의 사용자 인터페이스 상에 디스플레이되는 콘텐츠의 타입은 상기 디스플레이 상에 디스플레이되고 있는 객체들에 기반하여 또는 상기 휴대용 게이밍 디바이스와 통신하는 제2 디바이스 또는 상기 프로세서 중 하나에 의해 실행되는 애플리케이션의 현재 상태에 기반하여 결정되는,
    HID 호환 휴대용 게이밍 디바이스.
  2. 제1항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 사용자 인터페이스 상에 디스플레이되는 상이한 콘텐츠 타입들에 대한 응답으로 상기 제1 가중치 및 상기 제2 가중치 중 하나 또는 둘 다를 동적으로 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  3. 제2항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 사용자 인터페이스에 의해 디스플레이되는 환경의 확대된 뷰(zoomed-in view)에 대응하는 결정된 콘텐츠 타입에 대한 응답으로, 상기 제2 가중치 대 상기 제1 가중치의 비를 증가시키도록 상기 제1 신호의 제1 가중치 및 상기 제2 신호의 제2 가중치 중 하나 또는 둘 다를 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  4. 제3항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 사용자 인터페이스에 의해 디스플레이되는 3차원 환경 내에서 상기 사용자 인터페이스의 뷰포인트(viewpoint)와 상기 사용자 인터페이스의 커서(cursor) 포지션에 대응하는 상기 3차원 환경 내의 엔티티(entity) 간의 거리를 결정하게 하고; 그리고
    상기 3차원 환경 내에서 결정된 거리에 비례하여 상기 제2 가중치를 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  5. 제1항에 있어서,
    상기 콘텐츠의 타입은 헤드업 디스플레이(HUD: heads up display)이고,
    상기 제1 가중치는 상기 제2 가중치보다 큰,
    HID 호환 휴대용 게이밍 디바이스.
  6. 제1항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때 상기 프로세서로 하여금 추가로, 상기 휴대용 게이밍 디바이스와 통신하는 상기 제2 디바이스 또는 상기 프로세서 중 하나에 의해 실행되는 애플리케이션의 타입에 기반하여 상기 콘텐츠의 타입을 식별하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  7. 제1항에 있어서,
    상기 콘텐츠의 타입은 메뉴(menu)이고 상기 제2 가중치는 0인,
    HID 호환 휴대용 게이밍 디바이스.
  8. 인간 인터페이스 디바이스(HID) 호환 휴대용 게이밍 디바이스로서,
    디스플레이;
    포지션 센서;
    조이스틱; 및
    상기 디스플레이, 상기 조이스틱 및 상기 포지션 센서와 통신하는 프로세서를 포함하며,
    상기 프로세서는 실행될 때, 상기 프로세서로 하여금:
    상기 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 포지션 센서로부터 수신하게 하고;
    상기 조이스틱의 포지션의 변화를 지시하는 제2 신호를 상기 조이스틱으로부터 수신하게 하고;
    상기 제1 신호에 제1 가중치를 그리고 상기 제2 신호에 제2 가중치를 할당하게 하고;
    가중된 제1 신호와 가중된 제2 신호의 가중된 합에 기반하여 상기 제1 신호를 상기 제2 신호와 집계하여 제3 신호를 획득하게 하고; 그리고
    상기 제3 신호에 따라 상기 디스플레이 상의 사용자 인터페이스를 업데이트하게 하는 프로그래밍된 명령들을 갖는,
    HID 호환 휴대용 게이밍 디바이스.
  9. 제8항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 디스플레이의 사용자 인터페이스 상에 디스플레이되고 있는 콘텐츠의 타입을 결정하게 하고; 그리고
    상기 사용자 인터페이스 상에 디스플레이되고 있는 결정된 콘텐츠의 타입에 기반하여 상기 제1 신호에 상기 제1 가중치를 그리고 상기 제2 신호에 상기 제2 가중치를 할당하게 하며,
    상기 디스플레이의 사용자 인터페이스 상에 디스플레이되는 콘텐츠의 타입은 상기 디스플레이 상에 디스플레이되는 객체들에 기반하여 또는 상기 휴대용 게이밍 디바이스와 통신하는 제2 디바이스 또는 상기 프로세서 중 하나에 의해 실행되는 애플리케이션의 현재 상태에 기반하여 결정되는,
    HID 호환 휴대용 게이밍 디바이스.
  10. 제9항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 사용자 인터페이스 상에 디스플레이되는 상이한 콘텐츠 타입들에 대한 응답으로 상기 제1 가중치 및 상기 제2 가중치 중 하나 또는 둘 다를 동적으로 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  11. 제10항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 사용자 인터페이스에 의해 디스플레이되는 환경의 확대된 뷰에 대응하는 결정된 콘텐츠 타입에 대한 응답으로, 상기 제2 가중치 대 상기 제1 가중치의 비를 증가시키도록 상기 제1 신호의 제1 가중치 및 상기 제2 신호의 제2 가중치 중 하나 또는 둘 다를 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  12. 제11항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 사용자 인터페이스에 의해 디스플레이되는 3차원 환경 내에서 상기 사용자 인터페이스의 뷰포인트와 상기 사용자 인터페이스의 커서 포지션에 대응하는, 상기 3차원 환경 내의 엔티티 간의 거리를 결정하게 하고; 그리고
    상기 3차원 환경 내에서 결정된 거리에 비례하여 상기 제2 가중치를 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  13. 제9항에 있어서,
    상기 콘텐츠의 타입은 헤드업 디스플레이(HUD)이고,
    상기 제1 가중치는 상기 제2 가중치보다 큰,
    HID 호환 휴대용 게이밍 디바이스.
  14. 제9항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때 상기 프로세서로 하여금 추가로, 상기 휴대용 게이밍 디바이스와 통신하는 제2 디바이스 또는 상기 프로세서 중 하나에 의해 실행되는 애플리케이션의 타입에 기반하여 상기 콘텐츠의 타입을 식별하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  15. 제9항에 있어서,
    상기 콘텐츠의 타입은 메뉴이고 상기 제2 가중치는 0인,
    HID 호환 휴대용 게이밍 디바이스.
  16. 제8항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호를 임계치와 비교하고; 그리고
    상기 제1 신호가 상기 임계치 미만인 것에 대한 응답으로, 상기 제1 가중치를 0으로 할당함으로써,
    상기 제1 신호에 상기 제1 가중치를 그리고 상기 제2 신호에 상기 제2 가중치를 할당하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  17. 제8항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 조이스틱의 포지션의 변화를 지시하는 제2 신호를 임계치와 비교하고; 그리고
    상기 제2 신호가 상기 임계치 미만인 것에 대한 응답으로, 상기 제2 가중치를 상기 제1 가중치 미만인 값에 할당함으로써,
    상기 제1 신호에 상기 제1 가중치를 그리고 상기 제2 신호에 상기 제2 가중치를 할당하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  18. 제8항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 조이스틱의 포지션의 변화를 지시하는 제2 신호를 임계치와 비교하고; 그리고
    상기 제2 신호가 상기 임계치를 초과하는 것에 대한 응답으로, 상기 휴대용 게이밍 디바이스의 배향의 변화를 지시하는 제1 신호의 제1 가중치를 감소시킴으로써,
    상기 제1 신호에 상기 제1 가중치를 그리고 상기 제2 신호에 상기 제2 가중치를 할당하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  19. 제8항에 있어서,
    상기 포지션 센서는 자이로스코프(gyroscope) 또는 가속도계 중 적어도 하나를 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  20. 제8항에 있어서,
    상기 조이스틱은 누를 수 있고, 상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로:
    상기 조이스틱이 눌렸음을 지시하는 제4 신호를 수신하게 하고;
    상기 제4 신호를 수신하는 것에 대한 응답으로, 상기 조이스틱이 눌리는 것에 대응하는 미리 결정된 커맨드를 식별하게 하고; 그리고
    상기 미리 결정된 커맨드에 기반하여 상기 디스플레이 상의 사용자 인터페이스를 업데이트하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  21. 제20항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 제4 신호를 수신하는 것에 대한 응답으로 상기 제1 가중치 및 상기 제2 가중치 중 하나 또는 둘 다를 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  22. 인간 인터페이스 디바이스(HID) 호환 휴대용 게이밍 디바이스로서,
    사용자의 제1 손을 수용하도록 구성된 그립(grip) 부분;
    상기 그립 부분으로부터 연장되어 상기 사용자의 제2 손을 수용하도록 구성된 세장형(elongated) 부분을 포함하며,
    상기 세장형 부분은, 상기 사용자의 제2 손이 상기 세장형 부분 상에 포지셔닝될 때, 상기 사용자의 제2 손의 엄지 손가락에 의해 관절로 움직이도록 포지셔닝된 조이스틱을 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  23. 제22항에 있어서,
    상기 그립 부분은 상기 사용자의 제1 손의 검지 손가락에 의해 관절로 움직이도록 포지셔닝된 트리거(trigger)를 포함하고;
    상기 세장형 부분은 상기 그립 부분으로부터 상기 트리거와 정렬된 방향으로 연장되는,
    HID 호환 휴대용 게이밍 디바이스.
  24. 제22항에 있어서,
    상기 세장형 부분은, 상기 사용자의 제2 손이 상기 세장형 부분 상에 포지셔닝될 때, 상기 사용자의 제2 손의 대응하는 하나 이상의 손가락들에 의해 관절로 움직이도록 포지셔닝된 하나 이상의 버튼들을 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  25. 제24항에 있어서,
    상기 조이스틱은 상기 세장형 부분의 제1 면에 포지셔닝되고,
    상기 하나 이상의 버튼들은 상기 제1 면 반대편의, 상기 세장형 부분의 제2 면에 포지셔닝되는,
    HID 호환 휴대용 게이밍 디바이스.
  26. 제22항에 있어서,
    상기 세장형 부분은 복수의 조명 세그먼트들을 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  27. 제26항에 있어서,
    대응하는 복수의 조명 세그먼트들에 접속된 복수의 스위칭된 출력들을 포함하는 제어기를 더 포함하며,
    상기 제어기는 상기 HID 호환 휴대용 게이밍 디바이스의 프로세서 또는 상기 HID 호환 휴대용 게이밍 디바이스와 통신하는 제2 디바이스의 프로세서 중 하나로부터 수신된 신호에 따라 상기 대응하는 복수의 조명 세그먼트들을 활성화하게 상기 복수의 스위칭된 출력들을 제어하도록 구성되는,
    HID 호환 휴대용 게이밍 디바이스.
  28. 제26항에 있어서,
    상기 복수의 조명 세그먼트들은 상기 세장형 부분의 한 면에 행으로 포지셔닝되는,
    HID 호환 휴대용 게이밍 디바이스.
  29. 제26항에 있어서,
    상기 복수의 조명 세그먼트들은 상기 세장형 부분의 복수의 면들 상에 복수의 행들로 포지셔닝되는,
    HID 호환 휴대용 게이밍 디바이스.
  30. 제22항에 있어서,
    상기 세장형 부분은 디스플레이를 포함하는 휴대용 컴퓨팅 디바이스를 위한 조정 가능 클램프(clamp)를 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  31. 제30항에 있어서,
    상기 조정 가능 클램프는 상기 그립 부분에 인접한 상기 세장형 부분의 단자 부분에 근접하게 포지셔닝되고,
    상기 조이스틱은 상기 세장형 부분의 대향하는 단자 부분에 근접하게 포지셔닝되는,
    HID 호환 휴대용 게이밍 디바이스.
  32. 제22항에 있어서,
    상기 세장형 부분 또는 상기 그립 부분 중 적어도 하나의 내부에 포지셔닝된 프로세서를 더 포함하며,
    상기 프로세서는 상기 세장형 부분에 결합된 디스플레이와 통신하는,
    HID 호환 휴대용 게이밍 디바이스.
  33. 제22항에 있어서,
    상기 세장형 부분은 상기 세장형 부분의 밑면에 포지셔닝된 복수의 리지(ridge)들을 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  34. 제22항에 있어서,
    상기 세장형 부분은, 상기 사용자의 제2 손이 상기 세장형 부분 상에 포지셔닝될 때, 상기 사용자의 제2 손의 엄지손가락에 의해 관절로 움직이도록 포지셔닝된 하나 이상의 버튼들을 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  35. 제34항에 있어서,
    상기 조이스틱은 상기 하나 이상의 버튼들과 상기 세장형 부분의 동일한 면에 포지셔닝되는,
    HID 호환 휴대용 게이밍 디바이스.
  36. 제35항에 있어서,
    상기 세장형 부분은, 상기 사용자의 제2 손이 상기 세장형 부분 상에 포지셔닝될 때, 상기 사용자의 제2 손의 대응하는 하나 이상의 손가락들에 의해 관절로 움직이도록 포지셔닝된 제2 하나 이상의 버튼들을 더 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  37. 제22항에 있어서,
    상기 그립 부분은 페달 시스템을 포함하며,
    상기 페달 시스템은 복수의 포지션들 사이에서 피벗 가능하도록 상기 그립 부분의 일부에 피벗 결합된 페달을 포함하는,
    HID 호환 휴대용 게이밍 디바이스.
  38. HID 호환 휴대용 게이밍 디바이스로서,
    디스플레이;
    포지션 센서;
    조이스틱;
    제1 물리적 통신 프로토콜을 이용하는 제1 무선 통신 인터페이스; 및
    상기 제1 물리적 통신 프로토콜과 상이한 제2 물리적 통신 프로토콜을 이용하는 제2 무선 통신 인터페이스를 포함하며,
    상기 제1 무선 통신 인터페이스는 상기 제1 물리적 통신 프로토콜을 통해, 상기 포지션 센서 또는 상기 조이스틱의 포지션을 나타내는 적어도 하나의 신호를 원격 컴퓨팅 디바이스에 전송하도록 구성되고; 그리고
    상기 제2 무선 통신 인터페이스는 상기 원격 컴퓨팅 디바이스로부터 상기 제2 물리적 통신 프로토콜을 통해 미디어 스트림을 수신하도록 구성되며,
    상기 미디어 스트림은 상기 디스플레이에 의해 렌더링(render)되는,
    HID 호환 휴대용 게이밍 디바이스.
  39. 제38항에 있어서,
    상기 제1 물리적 통신 프로토콜은 블루투스이고,
    상기 제2 물리적 통신 프로토콜은 WiFi인,
    HID 호환 휴대용 게이밍 디바이스.
  40. 제39항에 있어서,
    상기 제2 무선 통신 인터페이스는 손실 전송 계층 통신 프로토콜을 이용하는,
    HID 호환 휴대용 게이밍 디바이스.
  41. 제40항에 있어서,
    상기 제1 무선 통신 인터페이스는 무손실 전송 계층 통신 프로토콜을 이용하는,
    HID 호환 휴대용 게이밍 디바이스.
  42. 제38항에 있어서,
    프로세서를 더 포함하며,
    상기 프로세서는 실행될 때, 상기 프로세서로 하여금 상기 포지션 센서로부터의 제1 신호 및 상기 조이스틱으로부터의 제2 신호를 수신하게 하고, 상기 제1 신호 및 상기 제2 신호를 제3 신호로 집계하게 하는 프로그래밍된 명령들을 갖고,
    상기 제3 신호는 상기 원격 컴퓨팅 디바이스에 전송되는,
    HID 호환 휴대용 게이밍 디바이스.
  43. 제42항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 제1 신호 및 상기 제2 신호를 가중된 신호들의 합으로서 집계하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  44. 제43항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 조이스틱의 신호가 미리 결정된 임계치를 초과하는 것에 대한 응답으로 상기 제1 신호 및 상기 제2 신호의 가중치들을 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  45. 제43항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 제1 무선 통신 인터페이스를 통해 상기 원격 컴퓨팅 디바이스로부터 수신된 신호에 대한 응답으로 상기 제1 신호 및 상기 제2 신호의 가중치들을 동적으로 조정하게 하는,
    HID 호환 휴대용 게이밍 디바이스.
  46. 제38항에 있어서,
    상기 원격 컴퓨팅 디바이스로부터 수신된 신호는 상기 원격 컴퓨팅 디바이스에 의해 실행되는 애플리케이션의 상태를 식별하는,
    HID 호환 휴대용 게이밍 디바이스.
  47. 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법으로서,
    중개 컴퓨팅 디바이스에 의해 제1 컴퓨팅 디바이스로부터 제1 무선 인터페이스를 통해 상기 제1 컴퓨팅 디바이스의 적어도 하나의 센서로부터 대화식 데이터를 수신하는 단계;
    상기 중개 컴퓨팅 디바이스에 의해, 수신된 대화식 데이터로부터 적어도 하나의 데이터 스트링(string)을 추출하는 단계;
    상기 중개 컴퓨팅 디바이스에 의해, 추출된 적어도 하나의 데이터 스트링을 전송 계층 헤더에 캡슐화하는 단계; 및
    상기 중개 컴퓨팅 디바이스에 의해, 캡슐화된 적어도 하나의 데이터 스트링을 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스에 전송하는 단계를 포함하며,
    상기 제2 컴퓨팅 디바이스는 캡슐화된 전송으로부터 상기 적어도 하나의 데이터 스트링을 추출하고, 상기 적어도 하나의 데이터 스트링을 상기 제2 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 가상 인간 인터페이스 디바이스(HID) 드라이버에 전달하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  48. 제47항에 있어서,
    상기 제1 무선 인터페이스는 블루투스 무선 인터페이스이고,
    상기 제2 무선 인터페이스는 WiFi 인터페이스인,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  49. 제47항에 있어서,
    상기 수신된 대화식 데이터는 자이로스코프, 가속도계, 자력계, 온도 센서, 조이스틱 또는 버튼으로부터의 데이터를 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  50. 제47항에 있어서,
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스는 직접 통신들을 하지 않는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  51. 제47항에 있어서,
    상기 중개 컴퓨팅 디바이스에 의해, 상기 적어도 하나의 센서로부터의 상기 대화식 데이터에 가입하기 위한 요청을 상기 제1 컴퓨팅 디바이스에 전송하는 단계를 더 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  52. 제47항에 있어서,
    상기 중개 컴퓨팅 디바이스에 의해, 상기 제2 무선 인터페이스를 통해 상기 제2 컴퓨팅 디바이스와 전송 계층 통신 세션을 설정하는 단계를 더 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  53. 제47항에 있어서,
    상기 적어도 하나의 데이터 스트링을 추출하는 단계는, 상기 중개 컴퓨팅 디바이스에 의해, 상기 수신된 대화식 데이터로부터 복수의 연결된 데이터 스트링들을 추출하는 단계를 더 포함하며,
    상기 연결된 데이터 스트링들 각각은 미리 결정된 길이를 갖는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  54. 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템으로서,
    제1 무선 인터페이스를 통해 제1 컴퓨팅 디바이스와 통신하고 제2 무선 인터페이스를 통해 제2 컴퓨팅 디바이스와 통신하는 중개 컴퓨팅 디바이스를 포함하며,
    상기 중개 컴퓨팅 디바이스는 실행될 때, 상기 프로세서로 하여금:
    상기 제1 컴퓨팅 디바이스로부터 상기 제1 무선 인터페이스를 통해 상기 제1 컴퓨팅 디바이스의 적어도 하나의 센서로부터 대화식 데이터를 수신하게 하고;
    수신된 대화식 데이터로부터 적어도 하나의 데이터 스트링을 추출하게 하고;
    추출된 적어도 하나의 데이터 스트링을 전송 계층 헤더에 캡슐화하게 하고; 그리고
    캡슐화된 적어도 하나의 데이터 스트링을 상기 제2 무선 인터페이스를 통해 상기 제2 컴퓨팅 디바이스에 전송하게 하는 프로그래밍된 명령들을 갖고,
    상기 제2 컴퓨팅 디바이스는 캡슐화된 전송으로부터 상기 적어도 하나의 데이터 스트링을 추출하고, 상기 적어도 하나의 데이터 스트링을 상기 제2 컴퓨팅 디바이스의 운영 체제에 의해 실행되는 가상 인간 인터페이스 디바이스(HID) 드라이버에 전달하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  55. 제54항에 있어서,
    상기 제1 무선 인터페이스는 블루투스 무선 인터페이스이고,
    상기 제2 무선 인터페이스는 WiFi 인터페이스인,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  56. 제54항에 있어서,
    상기 수신된 대화식 데이터는 자이로스코프, 가속도계, 자력계, 온도 센서, 조이스틱 또는 버튼으로부터의 데이터를 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  57. 제54항에 있어서,
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스는 직접 통신들을 하지 않는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  58. 제54항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 적어도 하나의 센서로부터의 상기 대화식 데이터에 가입하기 위한 요청을 상기 제1 컴퓨팅 디바이스에 전송하게 하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  59. 제54항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 제2 무선 인터페이스를 통해 상기 제2 컴퓨팅 디바이스와 전송 계층 통신 세션을 설정하게 하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  60. 제54항에 있어서,
    상기 프로그래밍된 명령들은 실행될 때, 상기 프로세서로 하여금 추가로, 상기 수신된 대화식 데이터로부터 복수의 연결된 데이터 스트링들을 추출하게 하며,
    상기 연결된 데이터 스트링들 각각은 미리 결정된 길이를 갖는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 시스템.
  61. 이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법으로서,
    제1 컴퓨팅 디바이스에 의해, 중개 컴퓨팅 디바이스의 제1 무선 인터페이스를 통해 상기 중개 컴퓨팅 디바이스와 통신 세션을 설정하는 단계;
    상기 중개 컴퓨팅 디바이스에 의해 전달된 제2 컴퓨팅 디바이스의 센서 데이터를 포함하는 패킷을 상기 제1 컴퓨팅 디바이스에 의해 상기 통신 세션을 통해 상기 중개 컴퓨팅 디바이스로부터 수신하는 단계 ― 상기 센서 데이터는 상기 중개 컴퓨팅 디바이스에 의해 제2 무선 인터페이스를 통해 수신되고 상기 중개 컴퓨팅 디바이스에 의해 패킷으로 캡슐화됨 ―;
    상기 제1 컴퓨팅 디바이스에 의해 상기 패킷으로부터 상기 센서 데이터를 추출하는 단계; 및
    상기 제1 컴퓨팅 디바이스에 의해, 추출된 센서 데이터를 상기 제1 컴퓨팅 디바이스의 가상 인간 인터페이스 디바이스에 제공하는 단계를 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  62. 제61항에 있어서,
    상기 제1 무선 인터페이스는 WiFi이고, 상기 제2 무선 인터페이스는 블루투스인,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  63. 제61항에 있어서,
    상기 센서 데이터는 복수의 센서들로부터의 연결된 데이터를 포함하고,
    상기 연결된 데이터 각각은 미리 결정된 길이를 갖는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  64. 제61항에 있어서,
    상기 제1 컴퓨팅 디바이스는 상기 제2 컴퓨팅 디바이스와 직접 통신하지 않는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  65. 제61항에 있어서,
    상기 통신 세션을 설정하는 단계는 상기 제1 컴퓨팅 디바이스에 의해 전송 계층 서버를 실행하는 단계를 포함하는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  66. 제61항에 있어서,
    상기 센서 데이터는 상기 제1 컴퓨팅 디바이스로의 전송 전에 상기 중개 컴퓨팅 디바이스에 의해 전송 계층 헤더로 캡슐화되는,
    이종 디바이스들 간에 대화식 데이터를 통신하기 위한 방법.
  67. 휴대용 게이밍 디바이스로서,
    핸들, 트리거 및 스크린 홀더를 포함하는 게임 콘솔 하우징;
    상기 스크린 홀더에 결합된 디스플레이 디바이스 ― 상기 디스플레이 디바이스는 디스플레이 및 제1 네트워크 인터페이스를 포함함 ―;
    상기 게임 콘솔 하우징 내의 포지션 센서; 및
    상기 게임 콘솔 하우징 내의 처리 회로를 포함하며,
    상기 처리 회로는 프로세서, 메모리 및 제2 네트워크 인터페이스를 포함하고,
    상기 처리 회로는 상기 디스플레이 디바이스 및 상기 포지션 센서와 통신하며 그리고:
    상기 디스플레이 상에 디스플레이될 사용자 인터페이스를 생성하고;
    상기 제2 네트워크 인터페이스를 통해, 상기 사용자 인터페이스를 상기 디스플레이 디바이스의 제1 네트워크 인터페이스에 전송하고;
    상기 포지션 센서에 의해 생성된 데이터에 기반하여 상기 게임 콘솔 하우징의 포지션을 결정하고;
    상기 게임 콘솔 하우징의 결정된 포지션에 기반하여 업데이트된 사용자 인터페이스를 생성하고; 그리고
    상기 제2 네트워크 인터페이스를 통해, 상기 업데이트된 사용자 인터페이스를 상기 디스플레이 디바이스의 제1 네트워크 인터페이스에 전송하는,
    휴대용 게이밍 디바이스.
  68. 제67항에 있어서,
    상기 게임 콘솔 하우징은 배럴(barrel)을 더 포함하며,
    상기 스크린 홀더는 상기 배럴에 결합되는,
    휴대용 게이밍 디바이스.
  69. 제67항에 있어서,
    상기 처리 회로는:
    상기 포지션 센서로부터 포지션 데이터를 수신하고; 그리고
    상기 포지션 데이터를 상기 게임 콘솔 하우징의 교정된 포지션과 비교함으로써,
    상기 게임 콘솔 하우징의 포지션을 결정하는,
    휴대용 게이밍 디바이스.
  70. 제69항에 있어서,
    상기 처리 회로는:
    상기 교정된 포지션에 대한 포지션 데이터의 비교에 기반하여 상기 업데이트된 사용자 인터페이스를 생성하는,
    휴대용 게이밍 디바이스.
  71. 제67항에 있어서,
    상기 처리 회로는 커서의 포지션을 변경함으로써 상기 업데이트된 사용자 인터페이스를 생성하는,
    휴대용 게이밍 디바이스.
  72. 제67항에 있어서,
    상기 사용자 인터페이스를 생성하는 것은 가상 환경을 생성하는 것을 포함하고,
    상기 업데이트된 사용자 인터페이스를 생성하는 것은 상기 가상 환경의 제1 뷰에서 상기 가상 환경의 제2 뷰로 변경하는 것을 포함하는,
    휴대용 게이밍 디바이스.
  73. 제67항에 있어서,
    상기 처리 회로는 추가로:
    상기 트리거의 포지션의 변화에 대응하는 신호를 수신하고; 그리고
    상기 트리거의 포지션의 변화에 대응하는 수신된 신호에 기반하여, 상기 업데이트된 사용자 인터페이스를 생성하는,
    휴대용 게이밍 디바이스.
  74. 제67항에 있어서,
    상기 포지션 센서는 포지션 데이터를 생성하며 상기 포지션 데이터를 상기 처리 회로에 전달하는 자이로스코프이고; 그리고
    상기 처리 회로는 상기 포지션 센서로부터 수신된 포지션 데이터를 HID 준수(compliant) 데이터로 추가로 변환하는,
    휴대용 게이밍 디바이스.
  75. 제67항에 있어서,
    상기 디스플레이 디바이스는:
    제2 디바이스로부터 시청각 데이터 스트림을 수신하고; 그리고
    상기 디스플레이 상에 상기 시청각 데이터 스트림을 디스플레이하는,
    휴대용 게이밍 디바이스.
  76. 제75항에 있어서,
    상기 처리 회로는 추가로:
    푸시 버튼, 상기 트리거 및 상기 포지션 센서 중 임의의 하나의 포지션의 변화에 대응하는 입력 신호를 수신하고; 그리고
    상기 입력 신호에 대응하는 출력 신호를 상기 제2 디바이스에 전송하며; 그리고
    상기 디스플레이 디바이스는:
    상기 제2 디바이스로부터 업데이트된 시청각 데이터 스트림을 수신하는,
    휴대용 게이밍 디바이스.
  77. 제67항에 있어서,
    상기 게임 콘솔 하우징은 페달을 더 포함하고; 그리고
    상기 처리 회로는 상기 페달의 포지션의 변화에 대응하는 입력을 추가로 수신하는,
    휴대용 게이밍 디바이스.
  78. 제67항에 있어서,
    복수의 푸시 버튼들을 더 포함하며,
    상기 복수의 푸시 버튼들은 키보드 상의 버튼들에 대응하는,
    휴대용 게이밍 디바이스.
  79. 제67항에 있어서,
    상기 스크린 홀더는 상기 게임 콘솔 하우징 상의 상이한 위치들에 포지셔닝되도록 조정 가능한,
    휴대용 게이밍 디바이스.
  80. 휴대용 게이밍 디바이스로서,
    핸들, 트리거 및 스크린 홀더를 포함하는 게임 콘솔 하우징;
    상기 게임 콘솔 하우징 내의 포지션 센서;
    상기 스크린 홀더에 결합된 디스플레이 디바이스 ― 상기 디스플레이 디바이스는 제1 무선 물리적 통신 프로토콜을 이용하는 제1 네트워크 인터페이스 및 디스플레이를 포함하며, 상기 디스플레이 디바이스는:
    상기 제1 무선 물리적 통신 프로토콜을 통해 제2 디바이스로부터 시청각 데이터 스트림을 수신하고; 그리고
    상기 시청각 데이터 스트림에 기반하여 상기 디스플레이 상에 사용자 인터페이스를 생성함 ―; 및
    상기 게임 콘솔 하우징 내에 있으며 프로세서, 메모리, 및 상기 제1 무선 물리적 통신 프로토콜과 상이한 제2 무선 물리적 통신 프로토콜을 이용하는 제2 네트워크 인터페이스를 포함하는 처리 회로를 포함하며,
    상기 처리 회로는:
    상기 제2 무선 물리적 통신 프로토콜을 통해, 상기 제2 디바이스에 신호를 전송하고,
    상기 신호는 상기 게임 콘솔 하우징의 포지션에 대응하는, 상기 포지션 센서에 의해 생성된 포지션 데이터를 포함하며, 상기 제2 디바이스로 하여금, 업데이트된 사용자 인터페이스를 상기 디스플레이 디바이스에 전송하게 하는,
    휴대용 게이밍 디바이스.
  81. 제80항에 있어서,
    상기 처리 회로가 상기 제2 디바이스에 전송하는 포지션 데이터를 포함하는 신호는 상기 게임 콘솔 하우징의 포지션의 변화에 대응하는,
    휴대용 게이밍 디바이스.
  82. 제81항에 있어서,
    상기 업데이트된 사용자 인터페이스는 상기 디스플레이 상의 커서의 업데이트된 포지션을 포함하는,
    휴대용 게이밍 디바이스.
  83. 제80항에 있어서,
    상기 제2 디바이스에 대한 신호는 상기 제2 디바이스로 하여금, 가상 환경의 뷰를 제1 뷰에서 제2 뷰로 변경함으로써 업데이트된 사용자 인터페이스를 생성하게 하는,
    휴대용 게이밍 디바이스.
  84. 제80항에 있어서,
    상기 처리 회로는 추가로:
    상기 트리거의 상태의 변화에 대응하는 제1 신호를 제2 디바이스에 전송하는,
    휴대용 게이밍 디바이스.
  85. 제80항에 있어서,
    상기 제2 디바이스는 고화질 디지털 비트 전송 기술 프로토콜을 통해 상기 디스플레이 디바이스와 통신하는,
    휴대용 게이밍 디바이스.
  86. 휴대용 게이밍 시스템으로서,
    게임 콘솔 ― 상기 게임 콘솔은:
    핸들, 트리거 및 스크린 홀더를 포함하는 게임 콘솔 하우징;
    상기 게임 콘솔 하우징 내의 포지션 센서;
    상기 스크린 홀더에 결합되며, 제1 무선 물리적 통신 프로토콜을 이용하는 제1 네트워크 인터페이스 및 디스플레이를 포함하는 디스플레이 디바이스; 및
    상기 게임 콘솔 하우징 내의 제1 처리 회로를 포함하며,
    상기 제1 처리 회로는 제1 프로세서, 제1 메모리, 및 상기 제1 무선 물리적 통신 프로토콜과 상이한 제2 무선 물리적 통신 프로토콜을 이용하는 제2 네트워크 인터페이스를 포함함 ―; 및
    외부 디바이스를 포함하며,
    상기 외부 디바이스는:
    제2 프로세서, 제2 메모리, 상기 제1 무선 물리적 통신 프로토콜을 이용하는 제3 네트워크 인터페이스, 및 상기 제2 통신 프로토콜을 이용하는 제4 네트워크 인터페이스를 포함하는 제2 처리 회로를 포함하고,
    상기 제2 처리 회로는 상기 제1 처리 회로 및 상기 디스플레이 디바이스와 통신하며,
    상기 제2 처리 회로는:
    상기 디스플레이 상에 디스플레이될 시청각 데이터 스트림을 생성하고,
    상기 제1 무선 물리적 통신 프로토콜을 통해, 상기 시청각 데이터 스트림을 상기 디스플레이 디바이스의 제1 네트워크 인터페이스에 전송하고,
    상기 제2 무선 물리적 통신 프로토콜을 통해, 상기 제1 처리 회로로부터 상기 게임 콘솔 하우징의 포지션에 대응하는, 상기 포지션 센서에 의해 생성된 포지션 데이터를 포함하는 입력 신호를 수신하고,
    상기 입력 신호에 기반하여, 업데이트된 시청각 데이터 스트림을 생성하고, 그리고
    상기 제1 무선 물리적 통신 프로토콜을 통해, 상기 업데이트된 시청각 데이터 스트림을 상기 디스플레이 디바이스의 제1 네트워크 인터페이스에 전송하는,
    휴대용 게이밍 시스템.
KR1020227006079A 2019-07-26 2020-07-24 대화식 컴퓨팅 디바이스 및 액세서리들 KR20220040472A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US16/523,891 US10946272B2 (en) 2019-07-26 2019-07-26 PC blaster game console
US16/523,891 2019-07-26
US16/746,734 2020-01-17
US16/746,734 US10773157B1 (en) 2019-07-26 2020-01-17 Interactive computing devices and accessories
US16/778,891 US10905949B1 (en) 2019-07-26 2020-01-31 Interactive computing devices and accessories
US16/778,891 2020-01-31
US16/852,263 US10893127B1 (en) 2019-07-26 2020-04-17 System and method for communicating interactive data between heterogeneous devices
US16/852,263 2020-04-17
PCT/US2020/043477 WO2021021622A1 (en) 2019-07-26 2020-07-24 Interactive computing device and accessories

Publications (1)

Publication Number Publication Date
KR20220040472A true KR20220040472A (ko) 2022-03-30

Family

ID=74067059

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227006079A KR20220040472A (ko) 2019-07-26 2020-07-24 대화식 컴퓨팅 디바이스 및 액세서리들

Country Status (8)

Country Link
US (1) US10893127B1 (ko)
EP (1) EP4003555A1 (ko)
JP (1) JP2022544340A (ko)
KR (1) KR20220040472A (ko)
CN (1) CN114728200A (ko)
AU (1) AU2020322427A1 (ko)
CA (1) CA3148830A1 (ko)
WO (1) WO2021021622A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2617174A (en) * 2022-03-31 2023-10-04 Sony Interactive Entertainment Inc Processing devices, systems and methods

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6054991A (en) 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
US6061064A (en) 1993-08-31 2000-05-09 Sun Microsystems, Inc. System and method for providing and using a computer user interface with a view space having discrete portions
US6020885A (en) 1995-07-11 2000-02-01 Sony Corporation Three-dimensional virtual reality space sharing method and system using local and global object identification codes
US5641288A (en) 1996-01-11 1997-06-24 Zaenglein, Jr.; William G. Shooting simulating process and training device using a virtual reality display screen
JP2002525769A (ja) 1998-09-22 2002-08-13 ヴェガ ヴィスタ インコーポレイテッド 携帯型データディスプレイの直接的コントロール方法
US7319992B2 (en) 2000-09-25 2008-01-15 The Mission Corporation Method and apparatus for delivering a virtual reality environment
US6684062B1 (en) * 2000-10-25 2004-01-27 Eleven Engineering Incorporated Wireless game control system
US20020128064A1 (en) 2001-03-06 2002-09-12 Sobota John F. Game controller
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US7854655B2 (en) 2002-07-27 2010-12-21 Sony Computer Entertainment America Inc. Obtaining input for controlling execution of a game program
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US10075750B2 (en) 2002-12-10 2018-09-11 Sony Interactive Entertainment America Llc Porting locally processed media data with low latency to a remote client device via various wireless links
US8012025B2 (en) 2002-12-13 2011-09-06 Applied Minds, Llc Video game controller hub with control input reduction and combination schemes
US20050197178A1 (en) 2004-03-03 2005-09-08 Villegas Ariel P. Gun-shaped game controller
US8469824B1 (en) 2004-09-27 2013-06-25 Hasbro, Inc. Device and method for an electronic tag game
JP2007021065A (ja) 2005-07-21 2007-02-01 Aruze Corp 携帯ゲーム機用コントローラ
JP4805633B2 (ja) 2005-08-22 2011-11-02 任天堂株式会社 ゲーム用操作装置
KR101060779B1 (ko) 2006-05-04 2011-08-30 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 시각, 음향, 관성, 및 혼합 데이터 중 하나 이상에 근거하여 기어링 효과들을 입력에 적용하기 위한 방법들 및장치들
US9498714B2 (en) * 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US20090197679A1 (en) 2008-01-16 2009-08-06 Argentar Eric J Video Game Controller
US20090280901A1 (en) 2008-05-09 2009-11-12 Dell Products, Lp Game controller device and methods thereof
US8961313B2 (en) 2009-05-29 2015-02-24 Sony Computer Entertainment America Llc Multi-positional three-dimensional controller
US9056249B2 (en) * 2009-04-01 2015-06-16 Activision Publishing, Inc. Device and method for a streaming video game
US9110505B2 (en) 2010-04-16 2015-08-18 Innovative Devices Inc. Wearable motion sensing computing interface
US8740708B2 (en) 2011-05-27 2014-06-03 Performance Designed Products Llc Gun handle attachment for game controller
US9160615B2 (en) * 2011-08-10 2015-10-13 Corvo Technologies Llc Device and method for remote computer operation
CN103028248A (zh) 2011-09-29 2013-04-10 曹思明 一种枪型多功能移动电子设备游戏输入手柄
JP6117464B2 (ja) 2011-10-11 2017-04-19 任天堂株式会社 ゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置
JP5951957B2 (ja) 2011-10-27 2016-07-13 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、およびゲーム処理方法
BR112014010230A8 (pt) 2011-10-28 2017-06-20 Magic Leap Inc sistema e método para realidade virtual e aumentada
US20130222369A1 (en) 2012-02-23 2013-08-29 Charles D. Huston System and Method for Creating an Environment and for Sharing a Location Based Experience in an Environment
US10937239B2 (en) 2012-02-23 2021-03-02 Charles D. Huston System and method for creating an environment and for sharing an event
US20130225295A1 (en) 2012-02-24 2013-08-29 Nintendo Co., Ltd. Methods and/or systems for controlling virtual objects
US11406906B2 (en) * 2012-03-13 2022-08-09 Sony Interactive Entertainment LLC Network connected controller for direct to cloud gaming
EP2900344B1 (en) 2012-09-26 2018-04-04 Razer (Asia-Pacific) Pte. Ltd. A game controller
US20140179423A1 (en) 2012-12-25 2014-06-26 Arcsoft (Hangzhou) Multimedia Technology Co., Ltd. Video Game Display System and Related Method of Using a Portable Computing Device to Control Game Play in Video Games Displayed on a Wireless Display
US9838463B2 (en) * 2013-03-12 2017-12-05 Sony Interactive Entertainment America Llc System and method for encoding control commands
US9041741B2 (en) 2013-03-14 2015-05-26 Qualcomm Incorporated User interface for a head mounted display
US9369825B2 (en) 2013-06-11 2016-06-14 Mad Catz Interactive, Inc. Systems and methods for transmitting data using selected transmission technology from among other transmission technologies
US20150087414A1 (en) * 2013-09-26 2015-03-26 Cellco Partnership D/B/A Verizon Wireless Cloud gaming implemented using a mobile device and a display device
US20160321947A1 (en) 2014-06-09 2016-11-03 Twd Sports Tech, Llc System and method for treating patients having conditions that affect walking
US20180264321A1 (en) 2014-12-17 2018-09-20 Bo & Bo Ltd. Tilting surface application controller
WO2016170512A1 (en) 2015-04-24 2016-10-27 Tager Sean Universal game controller
US10810797B2 (en) 2015-05-22 2020-10-20 Otoy, Inc Augmenting AR/VR displays with image projections
US10463979B2 (en) 2015-06-09 2019-11-05 Collective Minds Gaming Co. Ltd. Adapter for attachment to a game controller
US9757647B2 (en) 2015-06-12 2017-09-12 Nintendo Co., Ltd. Game controller
US10630773B2 (en) 2015-11-12 2020-04-21 Nvidia Corporation System and method for network coupled cloud gaming
US20170354864A1 (en) 2016-06-11 2017-12-14 Sony Interactive Entertainment Inc. Directional Interface Object
US10046236B2 (en) * 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
CN206631173U (zh) 2017-08-30 2017-11-14 肖辉 Vr游戏枪
US10341162B2 (en) 2017-09-12 2019-07-02 Pacific Import Manufacturing, Inc. Augmented reality gaming system
JP7073526B2 (ja) 2018-04-02 2022-05-23 グーグル エルエルシー インタラクティブなクラウドゲームのための方法、デバイス、およびシステム
US10675536B2 (en) 2018-10-03 2020-06-09 Song Chen Gaming system that alters target images produced by an LED array
US10471345B1 (en) 2019-02-08 2019-11-12 Arkade, Inc. Pedal system for gaming apparatus

Also Published As

Publication number Publication date
CA3148830A1 (en) 2021-02-04
JP2022544340A (ja) 2022-10-17
US20210029224A1 (en) 2021-01-28
CN114728200A (zh) 2022-07-08
US10893127B1 (en) 2021-01-12
WO2021021622A1 (en) 2021-02-04
AU2020322427A1 (en) 2022-03-10
EP4003555A1 (en) 2022-06-01

Similar Documents

Publication Publication Date Title
US11344796B2 (en) Interactive computing devices and accessories
JP7277545B2 (ja) 検出された手入力に基づく仮想手ポーズのレンダリング
US11435825B2 (en) Haptic interaction method, tool and system
EP3469466B1 (en) Directional interface object
KR102574170B1 (ko) 가상 캐릭터의 배치 제어 방법 및 디바이스와 저장 매체
US10946272B2 (en) PC blaster game console
US9339724B2 (en) Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting
JP2020519992A (ja) Led追跡リングを用いたハンドコントローラ
KR102021851B1 (ko) 가상현실 환경에서의 사용자와 객체 간 상호 작용 처리 방법
KR20220040472A (ko) 대화식 컴퓨팅 디바이스 및 액세서리들
US20240009564A1 (en) Data processing apparatus and method
CN115869623A (zh) 虚拟武器的处理方法、装置、计算机设备及存储介质
CN117482523A (zh) 游戏交互方法、装置、计算机设备及计算机可读存储介质
TW201321051A (zh) 棒球遊戲的投球方法及系統