KR20250150917A - An electronic apparatus and a method of operating the electronic apparatus - Google Patents
An electronic apparatus and a method of operating the electronic apparatusInfo
- Publication number
- KR20250150917A KR20250150917A KR1020240049400A KR20240049400A KR20250150917A KR 20250150917 A KR20250150917 A KR 20250150917A KR 1020240049400 A KR1020240049400 A KR 1020240049400A KR 20240049400 A KR20240049400 A KR 20240049400A KR 20250150917 A KR20250150917 A KR 20250150917A
- Authority
- KR
- South Korea
- Prior art keywords
- game
- input data
- electronic device
- application
- game application
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/23—Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
- A63F13/235—Input 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling 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
- A63F13/533—Controlling 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 for prompting the player, e.g. by displaying a game menu
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1025—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by 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/1031—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
개시된 전자 장치는 클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션 및 상기 게임 어플리케이션의 실행을 위한 게임 구동부를 포함하고, 상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하고, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하도록 제어한다. The disclosed electronic device includes a game application corresponding to the execution of cloud game content and a game driving unit for executing the game application, and receives input data while executing the game application by the game driving unit, and when an application corresponding to an activated window corresponds to the game application, controls to transmit the received input data to a server transmitting the cloud game content or to provide the input data to the game application depending on whether the state of the player for executing the cloud game content is a play state.
Description
다양한 실시예들은 전자 장치 및 그 동작 방법에 관한 것으로, 보다 구체적으로는, 클라우드 게임 어플리케이션을 실행하는 전자 장치 및 그 동작 방법에 관한 것이다.Various embodiments relate to electronic devices and methods of operating the same, and more particularly, to electronic devices for executing cloud gaming applications and methods of operating the same.
네트워크가 발달하면서 고용량 데이터를 지연없이 빠른 시간 안에 전달할 수 있게 됨에 따라 여러가지 산업이 발달하고 있는데, 그 중 하나가 클라우드 컴퓨팅 시스템이다. 클라우드 컴퓨팅 시스템을 게임 산업에 접목시킨 것이 클라우드 게임 서비스인데, 제공하는 업체가 많아지고 시장 규모 또한 전세계적으로 증가하고 있는 추세이다. As networks advance, enabling the rapid transmission of large amounts of data without delay, various industries are thriving. One such industry is cloud computing. Cloud gaming services, which integrate cloud computing into the gaming industry, are gaining popularity. The number of providers is increasing, and the market size is growing globally.
클라우드 게임(Cloud game)은, 게임에 필요한 그래픽 처리 등의 주요 연산은 클라우드 서버 상에서 수행하고, 스마트 폰이나 스마트 TV와 같은 사용자 장치에서 사용자의 조작 입력을 서버로 전송하고, 랜더링된 게임 화면을 사용자 장치에서 스트리밍으로 수신하여 표시하는 구조의 게임 서비스를 말한다. 클라우드 게임은 이와 같이 고가의 장비가 필요한 연산 과정을 클라우드 서버가 전담하기 때문에 사용자로 하여금 탈 하드웨어를 제공할 수 있다. 따라서 사용자는 스트리밍 영상을 수신하거나 입력장치의 신호를 발신하는 정도의 성능을 가진 디바이스로 고사양의 게임을 언제 어디서나 저비용으로 즐길 수 있다는 장점이 있다.Cloud gaming is a gaming service where key computations, such as graphics processing, required for games are performed on cloud servers. User inputs from user devices, such as smartphones or smart TVs, are transmitted to the server, and the rendered game screen is streamed and displayed on the user device. Because cloud servers handle these computational processes, which typically require expensive equipment, cloud gaming allows users to de-clutter their hardware. Therefore, users can enjoy high-spec games anytime, anywhere at a low cost, using devices capable of receiving streaming video or transmitting input signals.
일 실시예에 따라 게임 구동부의 작업을 줄이고자 불필요하게 데이터를 전송하는 로직을 삭제하고 게임 구동부에서 바로 게임 서버로 데이터를 전달하게끔 함으로서 네트워크 자원을 효율적으로 사용하는 것을 가능하게 하는 전자 장치 및 그 동작 방법을 제공하고자 한다. In one embodiment, an electronic device and an operating method thereof are provided that enable efficient use of network resources by eliminating logic for unnecessarily transmitting data and transmitting data directly from the game driving unit to the game server in order to reduce the work of the game driving unit.
일 실시예에 따라 전자 장치는 통신 인터페이스, 클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션 및 상기 게임 어플리케이션의 실행을 위한 게임 구동부를 저장하는 메모리, 및 상기 메모리에 저장된 하나 이상의 인스트럭션을 실행하는 프로세서를 포함할 수 있다. 프로세서는 하나 이상의 인스트럭션을 실행함으로써, 상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. 프로세서는 하나 이상의 인스트럭션을 실행함으로써, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하도록 제어할 수 있다. According to one embodiment, an electronic device may include a communication interface, a memory storing a game application corresponding to execution of cloud game content and a game driver for executing the game application, and a processor executing one or more instructions stored in the memory. The processor may receive input data while executing the game application by executing one or more instructions by the game driver. The processor may control the received input data to be transmitted to a server transmitting the cloud game content or provided to the game application depending on whether the state of a player for executing the cloud game content is a play state when an application corresponding to an activated window corresponds to the game application by executing one or more instructions.
일 실시예에 따라 클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션 및 상기 게임 어플리케이션의 실행을 위한 게임 구동부를 포함하는 전자 장치 100를 동작시키는 방법은, 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하는 동작을 포함할 수 있다. 상기 방법은, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하는 동작을 포함할 수 있다. According to one embodiment, a method for operating an electronic device 100 including a game application corresponding to execution of cloud game content and a game driver for executing the game application may include an operation of receiving input data while executing the game application by the game driver. The method may include an operation of transmitting the received input data to a server transmitting the cloud game content or providing the received input data to the game application depending on whether the state of a player for execution of the cloud game content is a play state when an application corresponding to an activated window corresponds to the game application.
일 실시예에 따라 하나 이상의 인스트럭션이 저장된 비일시적 컴퓨터 판독가능 기록 매체에서, 상기 하나 이상의 인스트럭션이, 클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션 및 상기 게임 어플리케이션의 실행을 위한 게임 구동부를 포함하는 전자 장치 100의 프로세서에 의해 실행됨으로써, 상기 전자 장치는, 상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하고, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공할 수 있다. According to one embodiment, a non-transitory computer-readable recording medium storing one or more instructions, wherein the one or more instructions are executed by a processor of an electronic device 100 including a game application corresponding to execution of cloud game content and a game driving unit for executing the game application, so that the electronic device receives input data while executing the game application by the game driving unit, and when an application corresponding to an activated window corresponds to the game application, transmits the received input data to a server transmitting the cloud game content or provides the received input data to the game application depending on whether the state of a player for execution of the cloud game content is a play state.
개시된 실시예에 따른 전자 장치 및 그 동작 방법에 따라 클라우드 게임의 실행에서 병목 현상이 발생하는 게임 구동부에서 수행되는 작은 데이터의 빈번하고 연속적인 전송 작업을 효율적으로 만듦으로써 레이턴시를 줄이고 전체적인 성능 향상을 기대할 수 있다. According to the disclosed embodiment, the electronic device and its operating method can reduce latency and improve overall performance by efficiently performing frequent and continuous transmission tasks of small data performed in a game driving unit that causes a bottleneck in the execution of a cloud game.
본 발명은, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일 실시예에 따라 서버와 전자 장치의 동작을 설명하기 위한 참고도이다.
도 2는 일 실시예에 따라 전자 장치, 입력 장치, 서버를 포함하는 시스템의 일 예를 나타낸다.
도 3은 일 실시예에 따라 전자 장치의 블록도의 일 예이다.
도 4는 일 실시예에 따라 전자 장치의 동작을 설명하기 위한 전자 장치의 기능적인 블록도의 일 예를 나타낸다.
도 5는 일 실시예에 따라 전자 장치를 동작시키는 방법의 일 예에 따른 흐름도이다.
도 6은 일 실시예에 따라 게임 어플리케이션을 선택할 수 있는 유저 인터페이스에서 게임 어플리케이션을 선택하는 동작을 설명하기 위한 참고도이다.
도 7은 일 실시예에 따라 게임 어플리케이션 유저 인터페이스에서 게임 컨텐츠 아이템을 선택하는 동작을 설명하기 위한 참고도이다.
도 8은 일 실시예에 따라 미디어 플레이어 파이프라인의 일 예를 나타낸다.
도 9는 일 실시예에 따라 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다.
도 10은 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다.
도 11 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다.
도 12는 일 실시예에 따라 게임 플레이 중 UI 를 표시하는 예를 설명하기 위한 참고도이다.
도 13은 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다.
도 14는 일 실시예에 따라 퀵 패널의 예를 나타낸다.
도 15는 일 실시예에 따라 유저 인터페이스의 일 예를 나타낸다.
도 16은 일 실시예에 따라 윈도우 스택의 일 예를 나타낸다. The present invention can be readily understood by the following detailed description and its accompanying drawings, wherein reference numerals refer to structural elements.
FIG. 1 is a reference diagram for explaining the operation of a server and an electronic device according to one embodiment.
FIG. 2 illustrates an example of a system including an electronic device, an input device, and a server according to one embodiment.
FIG. 3 is an example of a block diagram of an electronic device according to one embodiment.
FIG. 4 illustrates an example functional block diagram of an electronic device for explaining the operation of the electronic device according to one embodiment.
FIG. 5 is a flowchart according to an example of a method of operating an electronic device according to one embodiment.
FIG. 6 is a reference diagram for explaining an operation of selecting a game application in a user interface that allows selection of a game application according to one embodiment.
FIG. 7 is a reference diagram for explaining an operation of selecting a game content item in a game application user interface according to one embodiment.
Figure 8 illustrates an example of a media player pipeline according to one embodiment.
FIG. 9 illustrates an example of a flowchart of a method of operating an electronic device according to one embodiment.
FIG. 10 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to one embodiment.
FIG. 11 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to an embodiment.
FIG. 12 is a reference diagram for explaining an example of displaying a UI during game play according to one embodiment.
FIG. 13 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to one embodiment.
Figure 14 illustrates an example of a quick panel according to one embodiment.
Figure 15 illustrates an example of a user interface according to one embodiment.
Figure 16 illustrates an example of a window stack according to one embodiment.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.The terms used in this specification will be briefly explained, and the present invention will be described in detail.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in this invention have been selected from widely used, current terms, taking into account the functions of the invention. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, in which case their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this invention should not be defined simply as names, but rather based on their inherent meanings and the overall content of the invention.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part of the specification is said to "include" a component, this does not exclude other components, but rather implies the inclusion of other components, unless otherwise specifically stated. Furthermore, terms such as "part," "module," etc., used throughout the specification refer to a unit that processes at least one function or operation, which may be implemented in hardware, software, or a combination of hardware and software.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Below, with reference to the attached drawings, embodiments of the present invention are described in detail so that those skilled in the art can easily implement the present invention. However, the present invention can be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description have been omitted to clearly explain the present invention, and similar parts have been designated with similar reference numerals throughout the specification.
본 개시서에서 "사용자"라는 용어는 제어 장치를 이용하여 컴퓨팅 장치 또는 전자 장치의 기능 또는 동작을 제어하는 사람을 의미하며, 시청자, 관리자 또는 설치 기사를 포함할 수 있다.The term "user" in this disclosure means a person who controls a function or operation of a computing device or electronic device using a control device, and may include a viewer, an administrator, or an installer.
본 개시서에서 “게임 어플리케이션”은 클라우드 게임의 플레이를 가능하게 하는 어플리케이션으로서, 게임 어플리케이션의 실행에 따른 유저 인터페이스는 하나 이상의 클라우드 게임 컨텐츠의 실행을 요청할 수 있도록 하는 아이템들을 제공할 수 있다. 게임 어플리케이션은 주로 이와 같은 게임 어플리케이션의 실행에 따라 유저 인터페이스를 제공하고 사용자 입력을 처리하는 부분과, 클라우드 서버로부터 스트리밍 방식으로 수신된 오디오 비디오 데이터를 재생하는 부분을 포함할 수 있다. In this disclosure, a "game application" refers to an application that enables the playing of cloud games. The user interface upon execution of the game application may provide items that enable the execution of one or more cloud game contents. The game application may primarily include a portion that provides a user interface and processes user input upon execution of such a game application, and a portion that plays audio and video data received in a streaming manner from a cloud server.
도 1은 일 실시예에 따라 서버와 전자 장치의 동작을 설명하기 위한 참고도이다. FIG. 1 is a reference diagram for explaining the operation of a server and an electronic device according to one embodiment.
도 1을 참조하면, 서버 300는 전자 장치 100으로부터의 요청에 따라 게임 컨텐츠를 실행하고, 게임 컨텐츠 실행에 따른 결과 화면을 통신 네트워크를 통해 전자 장치 100으로 전송할 수 있다. 예를 들어 서버 300가 전자 장치 100로부터 게임 컨텐츠의 실행 요청을 수신한 경우, 서버 300는 게임 컨텐츠를 실행하고 게임 컨텐츠 실행에 따라 랜더링되는 결과 화면 또는 결과 이미지를 통신 네트워크를 통해 전자 장치 100로 전송할 수 있다. Referring to FIG. 1, server 300 may execute game content upon a request from electronic device 100 and transmit a result screen according to the execution of the game content to the electronic device 100 via a communication network. For example, when server 300 receives a request to execute game content from electronic device 100, server 300 may execute the game content and transmit a result screen or result image rendered according to the execution of the game content to the electronic device 100 via a communication network.
전자 장치 100는 서버 300로 게임 컨텐츠의 실행 요청을 전송하고, 이러한 실행 요청에 따라 게임 컨텐츠 실행에 따른 결과 화면을 서버 300로부터 수신하고 수신된 결과 화면 30을 디스플레이에 표시할 수 있다. Electronic device 100 transmits a request for executing game content to server 300, and according to this execution request, receives a result screen according to the execution of the game content from server 300 and can display the received result screen 30 on a display.
입력 장치 200는 전자 장치 100에 표시된 게임 컨텐츠 실행 결과인 게임 화면을 제어하기 위한 조작 명령을 전자 장치 100로 전송할 수 있다. 사용자는 전자 장치 100에 표시된 게임 화면을 보면서 표시된 게임 화면을 제어하기 위해 입력 장치 200를 조작할 수 있고, 입력 장치 200는 이와 같은 사용자 조작에 따른 조작 명령을 전자 장치 100로 전송할 수 있다. 서버 300는 입력 장치 200로부터의 컨텐츠 조작 명령을 전자 장치 100로부터 수신하고, 컨텐츠 조작 명령에 따라 게임 컨텐츠를 실행하고 게임 컨텐츠 실행 결과 화면을 전자 장치 100로 전송할 수 있다. The input device 200 can transmit an operation command to the electronic device 100 for controlling a game screen, which is a result of executing game content displayed on the electronic device 100. A user can operate the input device 200 to control the displayed game screen while viewing the game screen displayed on the electronic device 100, and the input device 200 can transmit an operation command according to such user operation to the electronic device 100. The server 300 can receive a content operation command from the input device 200 from the electronic device 100, execute the game content according to the content operation command, and transmit a game content execution result screen to the electronic device 100.
클라우드 게임은 스트리밍 방식으로 게임 플레이가 이루어지기 때문에 게임 플레이어가 입력한 신호가 단말기에 바로 반영되지 않고 레이턴시(지연 시간)을 가지게 된다. 클라우드 게임 서비스는 일반이용자가 고성능 PC와 콘솔 등에서 경험하는 것과 동일한 게임 환경을 제공해야 할 필요가 있다. 그러나 일반 OTT(Over The Top)에서의 영상 컨텐츠와는 다르게 빠른 반응속도가 게임 플레이에서 중요한 요소인 대전 격투 게임이나 FPS (First Person Shooter) 게임 등에서는 지연 시간이 문제가 된다. 따라서 높은 반응성을 위한 레이턴시 최소화는 클라우드 게임에서 중요한 과제이다. 레이턴시를 발생시키는 요소에는 여러가지가 있는데 그 중에 하나가 입력 신호 처리 지연이다. Because cloud gaming uses streaming, player input signals are not immediately reflected on the device, resulting in latency. Cloud gaming services need to provide a gaming experience comparable to what regular users experience on high-performance PCs and consoles. However, unlike typical OTT (Over the Top) video content, latency can be a problem in games like fighting games and FPS (First-Person Shooters), where fast response times are crucial. Therefore, minimizing latency for high responsiveness is a critical challenge in cloud gaming. Latency can be caused by a variety of factors, one of which is input signal processing delay.
전자 장치 100에서는 클라우드 게임 플레이를 위해 게임 어플리케이션 및 게임 구동부를 구비할 수 있다. 게임 어플리케이션은 게임 컨텐츠의 선택과 사용자 설정 등을 가능하게 하는 게임 어플리케이션 사용자 인터페이스를 제공하고 서버 300로부터 수신된 게임 컨텐츠의 재생을 관리할 수 있다. 게임 구동부는 게임 어플리케이션과 인터페이스 모듈 사이에서 사용자 입력을 처리하거나 전송하는 역할을 할 수 있다. 이를 위해 게임 구동부는 인터페이스 모듈에서 처리하는 음성/영상 데이터 처리, 네트워크 이벤트, 영상 출력 등의 작업들을 위한 자원을 공유하기 때문에 병목이 발생할 수 있다. 특히 현재 대부분 서비스 형태인 웹 기반의 서비스들은 단일 쓰레드에서 위의 작업들과 더불어 UI (User Interface) 이벤트 처리 및 렌더링 등의 작업들도 함께 처리하고 있고, 입력 장치 중 게임 컨트롤러의 경우 이벤트 방식으로 입력을 받는 것이 아니라 주기적으로 값을 읽어 처리해야 하기 때문에 병목은 더욱 심해질 수 있다. 이와 같은 게임 구동부에서의 병목 현상은 클라우드 게임 플레이에서의 레이턴시를 증대시킬 수 있다. 따라서 게임 구동부의 동작을 효율적으로 관리하는 것이 바람직하다. Electronic device 100 may include a game application and a game driver for cloud gaming. The game application provides a game application user interface that enables game content selection and user settings, and manages the playback of game content received from server 300. The game driver may process or transmit user input between the game application and the interface module. To achieve this, the game driver shares resources for tasks such as audio/video data processing, network events, and video output handled by the interface module, which can cause bottlenecks. Most web-based services, currently in service form, handle UI (User Interface) event processing and rendering in addition to the aforementioned tasks on a single thread. Furthermore, game controllers, among input devices, require periodic reading and processing of values rather than event-based input, which can exacerbate bottlenecks. This bottleneck in the game driver can increase latency in cloud gaming. Therefore, efficient management of the game driver's operations is desirable.
본 개시의 실시예에 따라 게임 구동부에서 사용자 입력을 처리할 때 게임이 실행되는 환경을 고려하여 사용자 입력을 해당 사용자 입력을 처리할 목적지로 적절하게 제공함으로써 게임 구동부의 동작을 효율적으로 하여 레이턴시를 감소시킬 수 있다. According to an embodiment of the present disclosure, when processing user input in a game driving unit, the game driving unit can efficiently operate and reduce latency by appropriately providing the user input to a destination for processing the user input while considering the environment in which the game is executed.
일 실시예에 따라 전자 장치 100는 클라우드 게임 컨텐츠의 실행을 위한 유저 인터페이스를 제공하는 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. According to one embodiment, the electronic device 100 may receive input data while executing a game application that provides a user interface for executing cloud game content.
일 실시예에 따라 전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션을 식별 할 수 있다. According to one embodiment, the electronic device 100 can identify an application corresponding to an activated window.
일 실시예에 따라 전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션임을 식별함에 따라 상기 클라우드 게임 컨텐츠의 재생을 위한 플레이어의 상태가 플레이 상태 인지 여부를 식별 할 수 있다. According to one embodiment, the electronic device 100 can identify whether the state of the player for playing the cloud game content is a play state by identifying that the application corresponding to the activated window is the game application.
일 실시예에 따라 전자 장치 100는 상기 플레이어의 상태가 상기 플레이 상태 인지 여부에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the electronic device 100 may transmit the input data to a server transmitting the cloud game content or provide the input data to the game application depending on whether the state of the player is the play state.
일 실시예에 따라 전자 장치 100는 상기 플레이어의 상태가 상기 플레이 상태 인 것으로 식별됨에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송 할 수 있다. According to one embodiment, the electronic device 100 may transmit the input data to a server transmitting the cloud game content when the state of the player is identified as being in the play state.
일 실시예에 따라 전자 장치 100는 상기 플레이어의 상태가 상기 플레이 상태가 아닌 것으로 식별됨에 따라 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. In one embodiment, the electronic device 100 may provide the input data to the game application so that the game application can operate based on the user input when the state of the player is identified as not being in the play state.
일 실시예에 따라 전자 장치 100는 상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션에 기반한 유저 인터페이스 표시 중임을 나타내는 상태 정보를 수신 할 수 있다. According to one embodiment, the electronic device 100 may receive status information from the game application indicating that a user interface based on the game application is being displayed while the player's status is in the play state.
일 실시예에 따라 전자 장치 100는 상기 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the electronic device 100 may provide the input data to the game application based on the state information so that the game application can operate based on the user input.
일 실시예에 따라 전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션임을 식별함에 따라, 상기 시스템 유저 인터페이스내에 포커스가 위치하는 지 여부에 따라 입력 데이터를 다르게 처리 할 수 있다. According to one embodiment, the electronic device 100 may process input data differently depending on whether focus is located within the system user interface, as the electronic device 100 identifies that the application corresponding to the activated window is an application corresponding to the system user interface.
일 실시예에 따라 전자 장치 100는 상기 시스템 유저 인터페이스내에 포커스가 위치하는지 여부를 식별 할 수 있다. According to one embodiment, the electronic device 100 can identify whether focus is located within the system user interface.
일 실시예에 따라 전자 장치 100는 상기 시스템 유저 인터페이스내에 포커스가 위치하는 것으로 식별됨에 따라, 상기 입력 데이터를 시스템 UI 모듈로 전달할 수 있다. According to one embodiment, the electronic device 100 may transmit the input data to the system UI module upon identifying that focus is located within the system user interface.
일 실시예에 따라 전자 장치 100는 상기 시스템 유저 인터페이스내에 포커스가 위치하지 않는 것으로 식별됨에 따라 상기 입력 데이터를 상기 서버로 전달할 수 있다. In one embodiment, the electronic device 100 may transmit the input data to the server upon identifying that focus is not located within the system user interface.
일 실시예에 따라 전자 장치 100는 윈도우 스택에서 최상단 레이어에 있는 어플리케이션을 상기 활성화된 윈도우에 대응하는 어플리케이션으로 식별할 수 있다. In one embodiment, the electronic device 100 can identify an application at the top layer in the window stack as the application corresponding to the activated window.
일 실시예에 따라 전자 장치 100는 상기 클라우드 게임 컨텐츠의 실행을 위한 상기 플레이어를 생성하고, 상기 생성된 플레이어의 오디오 디코더 또는 비디오 디코더 중 적어도 하나의 동작 상태에 기반하여 상기 플레이어의 상태가 상기 플레이 상태인지를 식별할 수 있다. According to one embodiment, the electronic device 100 can generate the player for executing the cloud game content, and identify whether the state of the player is the play state based on the operating state of at least one of an audio decoder or a video decoder of the generated player.
일 실시예에 따라 전자 장치 100는 상기 서버로부터 수신한 상기 클라우드 게임 컨텐츠의 메타데이터에 기반하여 상기 플레이어를 생성할 수 있다. According to one embodiment, the electronic device 100 can create the player based on metadata of the cloud game content received from the server.
일 실시예에 따라 전자 장치 100는 상기 입력 데이터를 상기 서버로 전송함에 따라 상기 서버로부터 상기 입력 데이터에 기반하여 상기 클라우드 게임 컨텐츠를 실행한 결과 화면을 수신하고, 상기 입력 데이터를 상기 게임 어플리케이션에 제공함에 따라 상기 게임 어플리케이션이 상기 입력 데이터를 기반으로 동작하도록 제어할 수 있다. According to one embodiment, the electronic device 100 transmits the input data to the server, receives a result screen of executing the cloud game content based on the input data from the server, and provides the input data to the game application, thereby controlling the game application to operate based on the input data.
도 2는 일 실시예에 따라 전자 장치, 입력 장치, 서버를 포함하는 시스템의 일 예를 나타낸다. FIG. 2 illustrates an example of a system including an electronic device, an input device, and a server according to one embodiment.
도 2를 참조하면, 시스템은 통신 네트워크로 연결된 전자 장치 100, 입력 장치 200, 서버 300를 포함할 수 있다. Referring to FIG. 2, the system may include an electronic device 100, an input device 200, and a server 300 connected to a communication network.
전자 장치 100는 사용자의 요청에 따라서 이미지나 데이터를 표시할 수 있는 장치로서, 통신부 110, 디스플레이 120, 메모리 130, 프로세서 140를 포함할 수 있다. The electronic device 100 is a device that can display images or data according to a user's request, and may include a communication unit 110, a display 120, a memory 130, and a processor 140.
통신부 110는 적어도 하나의 외부 장치와 통신을 수행할 수 있다. 통신부 110는 통신 회로를 포함할 수 있다. 여기서, '통신'은 데이터, 신호, 요청, 및/또는 명령 등을 송신 및/또는 수신하는 동작을 의미할 수 있다. The communication unit 110 may perform communication with at least one external device. The communication unit 110 may include a communication circuit. Here, "communication" may refer to an operation of transmitting and/or receiving data, signals, requests, and/or commands.
통신부 110는 적어도 하나의 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 외부 장치는 서버 300 또는 입력 장치 200 등이 될 수 있다. The communication unit 110 can perform wired or wireless communication with at least one external device. The external device may be a server 300 or an input device 200, etc.
예를 들어, 통신부 110는 적어도 하나의 외부 장치와 유선 또는 무선 통신 통신을 수행하기 위한 통신 모듈, 통신 회로, 통신 장치, 입/출력 포트, 및 입/출력 플러그 중 적어도 하나를 포함할 수 있다. For example, the communication unit 110 may include at least one of a communication module, a communication circuit, a communication device, an input/output port, and an input/output plug for performing wired or wireless communication with at least one external device.
예를 들어, 통신부 110는 적어도 하나의 외부 장치와 무선 통신을 수행하는 적어도 하나의 무선 통신 모듈, 무선 통신 회로, 또는 무선 통신 장치를 포함할 수 있다. For example, the communication unit 110 may include at least one wireless communication module, wireless communication circuit, or wireless communication device that performs wireless communication with at least one external device.
예를 들어, 통신부 110는 근거리에 위치하는 원격 제어 장치(remote controller), 예를 들어 입력 장치 200로부터 제어 명령을 수신할 수 있는 근거리 통신 모듈, 예를 들어, IR(infrared) 통신 모듈 등을 포함할 수 있다. 이 경우, 통신부 110는 원격 제어 장치로부터 제어 신호를 수신할 수 있다. For example, the communication unit 110 may include a short-range communication module, such as an IR (infrared) communication module, that can receive control commands from a remote controller located in close proximity, such as an input device 200. In this case, the communication unit 110 may receive a control signal from the remote control device.
또 다른 예로, 통신부 110는 블루투스, 와이파이, BLE(Bluetooth Low Energy), NFC/RFID, 와이파이 다이렉트(Wi-Fi Direct), UWB, 또는 ZIGBEE 등의 무선 통신 규격에 따른 통신을 수행하는 적어도 하나의 통신 모듈을 포함할 수 있다. 또는, 통신부 110는 원거리 통신 규격에 따라서 원거리 통신을 지원하기 위한 서버와 통신을 수행하는 통신 모듈을 더 포함할 수 있다. 예를 들어, 통신부 110는 인터넷 통신을 위한 네트워크를 통하여 통신을 수행하는 통신 모듈을 포함할 수 있다. 또한, 통신부 110는 3G, 4G, 5G 및/또는 6G 등의 통신 규격에 따르는 통신 네트워크를 통하여 통신을 수행하는 통신 모듈을 포함할 수 있다. As another example, the communication unit 110 may include at least one communication module that performs communication according to a wireless communication standard such as Bluetooth, Wi-Fi, BLE (Bluetooth Low Energy), NFC/RFID, Wi-Fi Direct, UWB, or ZIGBEE. Alternatively, the communication unit 110 may further include a communication module that performs communication with a server to support long-distance communication according to a long-distance communication standard. For example, the communication unit 110 may include a communication module that performs communication through a network for Internet communication. In addition, the communication unit 110 may include a communication module that performs communication through a communication network according to a communication standard such as 3G, 4G, 5G, and/or 6G.
또 다른 예로, 통신부 110는 외부 장치와 유선으로 통신하기 위해서, 외부 장치와 유선 케이블로 연결되기 위한 적어도 하나의 포트를 포함할 수 있다. 예를 들어, 통신부 110는 HDMI 포트(High-Definition Multimedia Interface port), 컴포넌트 잭(component jack), PC 포트(PC port), 및 USB 포트(USB port) 중 적어도 하나를 포함할 수 있다. 그에 따라서, 통신부 110는 적어도 하나의 포트를 통하여 유선 연결된 외부 장치와 통신을 수행할 수 있다. 여기서, 포트는 케이블, 통신선, 또는 플러그 등을 연결 또는 삽입할 수 있는 물리적 장치 구성을 의미할 수 있다. As another example, the communication unit 110 may include at least one port for connecting to an external device via a wired cable in order to communicate with the external device via a wired connection. For example, the communication unit 110 may include at least one of an HDMI port (High-Definition Multimedia Interface port), a component jack, a PC port, and a USB port. Accordingly, the communication unit 110 may communicate with a wired external device via at least one port. Here, the port may refer to a physical device configuration into which a cable, communication line, or plug can be connected or inserted.
전술한 바와 같이, 통신부 110는 전자 장치 100와 외부 장치 간의 통신을 지원하기 위한 적어도 하나의 지원 요소들을 포함할 수 있다. 여기서, 지원 요소는 전술한, 통신 모듈, 통신 회로, 통신 장치, (데이터의 입/출력을 위한) 포트, (데이터의 입/출력을 위한) 케이블 포트, (데이터의 입/출력을 위한) 플러그 등을 포함할 수 있다. 예를 들어, 통신부 110에 포함되는 적어도 하나의 지원 요소는, 이더넷(Ethernet) 통신 모듈, 와이파이 통신 모듈, 블루투스 통신 모듈, IR 통신 모듈, USB 포트, 튜너(또는, 방송 수신기), HDMI 포트, DP(display port), DVI(digital visual interface) 포트 등을 예로 들 수 있다. As described above, the communication unit 110 may include at least one support element for supporting communication between the electronic device 100 and an external device. Here, the support element may include the communication module, the communication circuit, the communication device, the port (for input/output of data), the cable port (for input/output of data), the plug (for input/output of data), etc., as described above. For example, the at least one support element included in the communication unit 110 may include an Ethernet communication module, a Wi-Fi communication module, a Bluetooth communication module, an IR communication module, a USB port, a tuner (or a broadcast receiver), an HDMI port, a DP (display port), a DVI (digital visual interface) port, etc.
디스플레이 120는 전자 장치 100에서 처리된 이미지나 데이터를 출력할 수 있다. The display 120 can output images or data processed in the electronic device 100.
메모리 130는, 프로세서 140의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치 100로 입력되거나 전자 장치 100로부터 출력되는 데이터를 저장할 수 있다. 또한, 메모리 130는 전자 장치 100의 동작에 필요한 데이터들을 저장할 수 있다. The memory 130 can store a program for processing and controlling the processor 140, and can store data input to or output from the electronic device 100. In addition, the memory 130 can store data necessary for the operation of the electronic device 100.
메모리 130는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The memory 130 may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory), a SRAM (Static Random Access Memory), a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a magnetic memory, a magnetic disk, and an optical disk.
프로세서 140는 전자 장치 100의 전반적인 동작을 제어한다. 예를 들어, 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시서에 기재된 전자 장치 100의 기능을 수행할 수 있다.The processor 140 controls the overall operation of the electronic device 100. For example, the processor 140 may perform the functions of the electronic device 100 described in the present disclosure by executing one or more instructions stored in the memory 130.
프로세서 140는 다양한 프로세싱 회로 및/또는 복수의 프로세서를 포함할 수 있다. 예를 들어 청구항을 포함하여 여기서 사용된 용어 "프로세서"는 적어도 하나의 프로세서를 포함하여 다양한 프로세싱 회로를 포함할 수 있다. 적어도 하나의 프로세서 에서 하나 이상의 프로세서는 분산 형태로 개별적으로 및/또는 집합적으로, 여기서 설명된 다양한 기능을 수행하도록 구성될 수 있다. 여기서 사용된 것 처럼, "프로세서", "적어도 하나의 프로세서", "하나 이상의 프로세서"는 여러가지 기능들을 수행하도록 구성될 수 있다. 그러나 이러한 용어들은 예를 들어 그러나 제한없이, 하나의 프로세서가 기능들의 일부를 수행하고 다른 프로세서(들)가 기능들의 다른 일부를 수행하는 상황, 그리고, 단일 프로세서가 모든 기능들을 수행할 수 있는 상황을 커버한다. 또한, 적어도 하나의 프로세서는 분산된 방법으로 개시된 기능들의 다양한 기능들을 수행하는 프로세서들의 결합을 포함할 수 있다. 적어도 하나의 프로세서는 다양한 기능들을 달성하거나 수행하기 위해 프로그램 인스트럭션들을 실행할 수 있다.Processor 140 may include various processing circuits and/or multiple processors. For example, the term "processor" as used herein, including in the claims, may include various processing circuits, including at least one processor. At least one processor, one or more processors may be individually and/or collectively configured to perform various functions described herein in a distributed fashion. As used herein, "processor," "at least one processor," and "one or more processors" may be configured to perform multiple functions. However, these terms encompass, for example, but not limited to, situations where one processor performs some of the functions and other processor(s) perform other parts of the functions, and situations where a single processor may perform all of the functions. Furthermore, the at least one processor may include a combination of processors that perform various of the disclosed functions in a distributed manner. At least one processor may execute program instructions to achieve or perform various functions.
본 개시의 실시예에서, 프로세서 140는 내부적으로 구비되는 메모리에 하나 이상의 인스트럭션을 저장하고, 내부적으로 구비되는 메모리에 저장된 하나 이상의 인스트럭션을 실행하여 디스플레이 장치의 동작들이 수행되도록 제어할 수 있다. 즉, 프로세서 140는 프로세서 140의 내부에 구비되는 내부 메모리 또는 메모리 130에 저장된 적어도 하나의 인스트럭션 또는 프로그램을 실행하여 소정 동작을 수행할 수 있다.In an embodiment of the present disclosure, the processor 140 can store one or more instructions in an internally provided memory, and control the execution of operations of the display device by executing one or more instructions stored in the internally provided memory. That is, the processor 140 can perform a predetermined operation by executing at least one instruction or program stored in the internal memory or memory 130 provided within the processor 140.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시서에 개시된 전자 장치 100의 동작을 수행할 수 있다. According to one embodiment, the processor 140 may perform operations of the electronic device 100 disclosed in the present disclosure by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 클라우드 게임 컨텐츠의 실행을 위한 유저 인터페이스를 제공하는 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. According to one embodiment, the processor 140 may receive input data while executing a game application that provides a user interface for executing cloud game content by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 활성화된 윈도우에 대응하는 어플리케이션을 식별 할 수 있다. According to one embodiment, the processor 140 may identify an application corresponding to an activated window by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션임을 식별함에 따라 상기 클라우드 게임 컨텐츠의 실행이나 재생을 위한 플레이어의 상태가 플레이 상태 인지 여부를 식별 할 수 있다. According to one embodiment, the processor 140 can identify whether the state of the player for executing or playing the cloud game content is a play state by identifying that the application corresponding to the activated window is the game application by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 플레이어의 상태가 상기 플레이 상태 인지 여부에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the processor 140 may transmit the input data to a server transmitting the cloud game content or provide the input data to the game application, depending on whether the state of the player is the play state, by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 플레이어의 상태가 상기 플레이 상태 인 것으로 식별됨에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송 할 수 있다. According to one embodiment, the processor 140 may transmit the input data to a server transmitting the cloud game content by executing one or more instructions stored in the memory 130, upon identifying the player's state as being in the play state.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 플레이어의 상태가 상기 플레이 상태가 아닌 것으로 식별됨에 따라 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. In one embodiment, the processor 140 may provide the input data to the game application so that the game application can operate based on the user input by executing one or more instructions stored in the memory 130 when the state of the player is identified as not being the play state.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션에 기반한 유저 인터페이스 표시 중임을 나타내는 상태 정보를 수신 할 수 있다. According to one embodiment, the processor 140 may receive state information from the game application indicating that a user interface based on the game application is being displayed while the state of the player is in the play state by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the processor 140 may provide the input data to the game application so that the game application can operate based on the user input based on the state information by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션임을 식별함에 따라, 상기 시스템 유저 인터페이스에 포커스가 위치하는 지 여부에 따라 입력 데이터를 다르게 처리 할 수 있다. According to one embodiment, the processor 140 may process input data differently depending on whether focus is located on the system user interface, by identifying that the application corresponding to the activated window is an application corresponding to the system user interface by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 시스템 유저 인터페이스에 포커스가 위치하는지 여부를 식별 할 수 있다. In one embodiment, the processor 140 may identify whether focus is located on the system user interface by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 시스템 유저 인터페이스에 포커스가 위치되는 것으로 식별됨에 따라, 상기 입력 데이터를 시스템 UI 모듈로 전달할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the system UI module upon identifying that focus is located on the system user interface by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 시스템 유저 인터페이스에 포커스가 위치되지 않는 것으로 식별됨에 따라 상기 입력 데이터를 상기 서버로 전달할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the server by executing one or more instructions stored in the memory 130 when it is determined that the focus is not located on the system user interface.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 윈도우 스택에서 최상단 레이어에 있는 어플리케이션을 상기 활성화된 윈도우에 대응하는 어플리케이션으로 식별할 수 있다. According to one embodiment, the processor 140 may identify an application at the top layer in the window stack as the application corresponding to the activated window by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 클라우드 게임 컨텐츠의 실행을 위한 상기 플레이어를 생성하고, 상기 생성된 플레이어의 오디오 디코더 또는 비디오 디코더 중 적어도 하나의 동작 상태에 기반하여 상기 플레이어의 상태가 상기 플레이 상태인지를 식별할 수 있다. According to one embodiment, the processor 140 may generate the player for executing the cloud game content by executing one or more instructions stored in the memory 130, and identify whether the state of the player is the play state based on the operational state of at least one of an audio decoder or a video decoder of the generated player.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 서버로부터 수신한 상기 클라우드 게임 컨텐츠의 메타데이터에 기반하여 상기 플레이어를 생성할 수 있다. According to one embodiment, the processor 140 may generate the player based on metadata of the cloud game content received from the server by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 입력 데이터를 상기 서버로 전송함에 따라 상기 서버로부터 상기 입력 데이터에 기반하여 상기 클라우드 게임 컨텐츠를 실행한 결과 화면을 수신하고, 상기 입력 데이터를 상기 게임 어플리케이션에 제공함에 따라 상기 게임 어플리케이션이 상기 입력 데이터를 기반으로 동작하도록 제어할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the server by executing one or more instructions stored in the memory 130, thereby receiving a result screen of executing the cloud game content based on the input data from the server, and may control the game application to operate based on the input data by providing the input data to the game application.
전자 장치 100는 프로세서와 메모리를 포함하여 기능을 수행하는 어떠한 형태의 장치도 될 수 있다. 전자 장치 100는 고정형 또는 휴대형 장치가 될 수 있다. 예를 들어, 전자 장치 100는, 전자 장치 100는 디스플레이를 구비하여 영상 컨텐츠, 비디오 컨텐츠, 게임 컨텐츠, 그래픽 컨텐츠 등을 표시할 수 있는 장치를 나타낼 수 있다. 전자 장치 100는 서버 300로부터 수신되는 영상이나 컨텐츠를 출력 또는 표시할 수 있다. 전자 장치 100는 예를 들어, 네트워크 TV, 스마트 TV, 인터넷 TV, 웹 TV, IPTV와 같은 텔레비전, 데스크탑, 랩탑, 태블릿과 같은 컴퓨터, 스마트폰, 셀룰러폰, 게임 플레이어, 음악 플레이어, 비디오 플레이어, 의료 장비, 가전 제품 등 과 같은 다양한 스마트 기기 등과 같이 컨텐츠를 수신하여 출력할 수 있는 다양한 형태의 전자 장치를 포함할 수 있다. 전자 장치 100는 컨텐츠를 수신하여 표시하는 측면이라는 점에서 디스플레이 장치로 언급될 수 있는 것이고, 그 외에도 컨텐츠 수신 장치, 싱크 장치, 전자 장치, 컴퓨팅 장치 등으로 언급될 수도 있다. The electronic device 100 may be any type of device that performs a function, including a processor and memory. The electronic device 100 may be a fixed or portable device. For example, the electronic device 100 may be a device that has a display and can display image content, video content, game content, graphic content, etc. The electronic device 100 may output or display images or content received from the server 300. The electronic device 100 may include various types of electronic devices that can receive and output content, such as televisions such as network TVs, smart TVs, Internet TVs, web TVs, and IPTVs; computers such as desktops, laptops, and tablets; smartphones, cellular phones, game players, music players, video players, medical equipment, home appliances, and various other smart devices. The electronic device 100 may be referred to as a display device in that it receives and displays content, and may also be referred to as a content receiving device, a sync device, an electronic device, a computing device, etc.
도 2에 도시된 전자 장치 100의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 전자 장치 100의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 예를 들어, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분화되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다. The block diagram of the electronic device 100 illustrated in FIG. 2 is a block diagram for one embodiment. Each component of the block diagram may be integrated, added, or omitted depending on the specifications of the electronic device 100 actually implemented. For example, two or more components may be combined into one component, or one component may be subdivided into two or more components, as needed. In addition, the functions performed by each block are for the purpose of explaining embodiments, and the specific operations or devices thereof do not limit the scope of the present invention.
도 2에는 전자 장치 100가 디스플레이를 포함하는 것으로 도시하였으나, 이에 한정되지 않는다. 예를 들어, 전자 장치 100는 디스플레이를 포함하는 외부 디스플레이 장치로 콘텐츠를 제공하는 장치일 수 있다. 콘텐츠는 이미지, 비디오, 오디오, 텍스트, 게임, 어플리케이션 등을 포함할 수 있으나, 이에 한정되지 않는다. 전자 장치 100는 셋탑 박스(Set Top Box, STB), 블루레이 디스크(Blue ray Disk) 플레이어, DVD(Digital Versatile Disk) 플레이어, 게임기기, 디지털 카메라, 캠코더, 스트리밍 장치, 홈 시어터 등을 포함할 수 있다. 이 경우, 전자 장치 100는 외부 디스플레이 장치와 HDMI 포트 등의 입/출력부를 통하여 연결되어, 외부 디스플레이 장치로 비디오/오디오 신호를 전송하도록 구성될 수 있다. 또는, 전자 장치 100는 외부 디스플레이 장치와 유선 통신, 무선랜(W-LAN), 와이-파이(Wi-Fi)) 또는 블루투스 등의 근거리 무선 통신 또는 원거리 무선 통신을 통하여 서로 연결될 수도 있다. Although FIG. 2 illustrates the electronic device 100 as including a display, the present invention is not limited thereto. For example, the electronic device 100 may be a device that provides content to an external display device including a display. The content may include, but is not limited to, images, videos, audio, text, games, applications, etc. The electronic device 100 may include a set-top box (STB), a Blu-ray Disc (Blu-ray Disc) player, a Digital Versatile Disk (DVD) player, a game device, a digital camera, a camcorder, a streaming device, a home theater, etc. In this case, the electronic device 100 may be connected to the external display device through an input/output port such as an HDMI port, and configured to transmit video/audio signals to the external display device. Alternatively, the electronic device 100 may be connected to the external display device through wired communication, short-range wireless communication such as wireless LAN (W-LAN), Wi-Fi, or Bluetooth, or long-range wireless communication.
이제 입력 장치 200를 설명한다. Now let's describe input device 200.
입력 장치 200는 통신부 210, 사용자 입력부 220, 메모리 230, 프로세서 240을 포함할 수 있다. 그러나, 전자 장치 200는, 도시된 구성요소보다 많은 구성요소에 의해 구현될 수 있으며, 전술한 예에 한정되지 않는다.The input device 200 may include a communication unit 210, a user input unit 220, a memory 230, and a processor 240. However, the electronic device 200 may be implemented with more components than the illustrated components and is not limited to the examples described above.
통신부 210는 입력 장치 200과 무선 통신 시스템 사이 또는 입력 장치 200과 다른 장치가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈에 포함된 다양한 통신 회로를 포함할 수 있다. 일 실시예에 따라 통신부 210는 전자 장치 100와 근거리 통신 기술에 따라 통신을 수행할 수 있다. 근거리 통신 기술은, 예를 들어, 블루투스 통신, 와이파이 통신, 적외선 통신 등을 포함할 수 있다. 일 실시예에 따라 통신부 210는 서버 300와 인터넷 프로토콜에 따라 통신을 수행할 수 있다. The communication unit 210 may include various communication circuits included in one or more modules that enable wireless communication between the input device 200 and a wireless communication system or between the input device 200 and a network in which another device is located. In one embodiment, the communication unit 210 may perform communication with the electronic device 100 according to a short-range communication technology. The short-range communication technology may include, for example, Bluetooth communication, Wi-Fi communication, infrared communication, etc. In one embodiment, the communication unit 210 may perform communication with the server 300 according to an Internet protocol.
사용자 입력부 220는 사용자 입력을 수신할 수 있는 어떠한 형태의 인터페이스 수단이 될 수 있다. 예를 들어, 사용자 입력부 220는 입력 장치 200의 일부에 배열되어 사용자의 입력을 수신할 수 있는 조작 버튼, 터치 입력을 감지할 수 있도록 구성된 터치 센서티브 디스플레이, 사용자의 음성 발화 입력을 수신할 수 있는 마이크로폰 등을 포함할 수 있다. The user input unit 220 may be any form of interface means capable of receiving user input. For example, the user input unit 220 may include an operation button arranged on a part of the input device 200 capable of receiving user input, a touch-sensitive display configured to detect touch input, a microphone capable of receiving user voice input, etc.
메모리 230는, 프로세서 240의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 입력 장치 200으로 입력되거나 입력 장치 200로부터 출력되는 데이터를 저장할 수 있다.Memory 230 can store a program for processing and controlling the processor 240, and can store data input to or output from the input device 200.
메모리 230는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The memory 230 may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory), a SRAM (Static Random Access Memory), a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a magnetic memory, a magnetic disk, and an optical disk.
프로세서 240는 입력 장치 200의 전반적인 동작을 제어한다. 프로세서 240는 다양한 프로세싱 회로를 포함할 수 있다. 예를 들어, 프로세서 240는, 메모리 230에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시서에 기재된 입력 장치 200의 기능을 수행할 수 있다.Processor 240 controls the overall operation of input device 200. Processor 240 may include various processing circuits. For example, processor 240 may perform the functions of input device 200 described in this disclosure by executing one or more instructions stored in memory 230.
본 개시의 실시예에서, 프로세서 240는 내부적으로 구비되는 메모리에 하나 이상의 인스트럭션을 저장하고, 내부적으로 구비되는 메모리에 저장된 하나 이상의 인스트럭션을 실행하여 전술한 동작들이 수행되도록 제어할 수 있다. 즉, 프로세서 240는 프로세서 240의 내부에 구비되는 내부 메모리 또는 메모리 230에 저장된 적어도 하나의 인스트럭션 또는 프로그램을 실행하여 소정 동작을 수행할 수 있다.In an embodiment of the present disclosure, the processor 240 can store one or more instructions in an internally provided memory, and control the execution of the one or more instructions stored in the internally provided memory so that the aforementioned operations are performed. That is, the processor 240 can perform a predetermined operation by executing at least one instruction or program stored in an internal memory provided within the processor 240 or in the memory 230.
일 실시예에 따라 프로세서 240는, 메모리 230에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치 100와 근거리 무선 통신 기술을 이용하여 통신 연결을 수행할 수 있다. 근거리 무선 통신 기술은 블루투스 통신 기술 또는 와이파이 다이렉트 기술 등을 포함할 수 있다. According to one embodiment, the processor 240 may perform a communication connection with the electronic device 100 using a short-range wireless communication technology by executing one or more instructions stored in the memory 230. The short-range wireless communication technology may include Bluetooth communication technology or Wi-Fi Direct technology.
일 실시예에 따라 프로세서 240는, 메모리 230에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치 100와 통신 연결을 수립하도록 통신부 210를 제어할 수 있다. According to one embodiment, the processor 240 may control the communication unit 210 to establish a communication connection with the electronic device 100 by executing one or more instructions stored in the memory 230.
일 실시예에 따라 프로세서 240는, 메모리 230에 저장된 하나 이상의 인스트럭션을 실행함으로써, 사용자 입력부 220를 통해 수신된 사용자 입력에 대응하는 입력 신호를 전자 장치 100로 전송할 수 있다. According to one embodiment, the processor 240 may transmit an input signal corresponding to a user input received through the user input unit 220 to the electronic device 100 by executing one or more instructions stored in the memory 230.
입력 장치 200는 프로세서와 메모리를 포함하여 기능을 수행하는 어떠한 형태의 장치도 될 수 있다. 입력 장치 200는 리모트 콘트롤러, 게임 콘트롤러, 스마트폰 등 다양한 전자 장치를 포함할 수 있다. The input device 200 may be any type of device that performs a function, including a processor and memory. The input device 200 may include various electronic devices, such as a remote controller, a game controller, or a smartphone.
한편, 도 2에 도시된 입력 장치 200의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 입력 장치 200의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 예를 들어, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분화되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다. Meanwhile, the block diagram of the input device 200 illustrated in FIG. 2 is a block diagram for one embodiment. Each component of the block diagram may be integrated, added, or omitted depending on the specifications of the input device 200 actually implemented. For example, two or more components may be combined into one component, or one component may be subdivided into two or more components, as needed. In addition, the functions performed by each block are for the purpose of explaining embodiments, and the specific operations or devices thereof do not limit the scope of the present invention.
이제 서버 300를 설명한다. Now let's describe server 300.
서버 300는 통신부 310, 메모리 320, 프로세서 330을 포함할 수 있다. 그러나, 서버 300는, 도시된 구성요소보다 많은 구성요소에 의해 구현될 수 있으며, 전술한 예에 한정되지 않는다. 예를 들어 서버 300는 서버 300에서 실행된 어플리케이션 이미지의 영상 처리를 위한 별도의 영상 처리부를 구비할 수 있다. Server 300 may include a communication unit 310, memory 320, and processor 330. However, server 300 may be implemented with more components than those illustrated, and is not limited to the examples described above. For example, server 300 may include a separate image processing unit for image processing of application images executed on server 300.
통신부 310는 서버 300과 무선 통신 시스템 사이 또는 서버 300과 다른 장치가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈에 포함된 다양한 통신 회로를 포함할 수 있다. 일 실시예에 따라 통신부 310는 전자 장치 100와 인터넷 프로토콜에 따라 통신을 수행할 수 있다. The communication unit 310 may include various communication circuits included in one or more modules that enable wireless communication between the server 300 and a wireless communication system or between the server 300 and a network in which other devices are located. In one embodiment, the communication unit 310 may perform communication with the electronic device 100 according to the Internet Protocol.
메모리 320는, 프로세서 330의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 서버 300으로 입력되거나 서버 300로부터 출력되는 데이터를 저장할 수 있다.Memory 320 can store a program for processing and controlling the processor 330, and can store data input to or output from the server 300.
메모리 320는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The memory 320 may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory), a SRAM (Static Random Access Memory), a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a magnetic memory, a magnetic disk, and an optical disk.
프로세서 330는 서버 300의 전반적인 동작을 제어한다. 프로세서 330는 다양한 프로세싱 회로를 포함할 수 있다. 예를 들어, 프로세서 330는, 메모리 320에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시서에 기재된 서버 300의 기능을 수행할 수 있다.Processor 330 controls the overall operation of server 300. Processor 330 may include various processing circuits. For example, processor 330 may perform the functions of server 300 described in this disclosure by executing one or more instructions stored in memory 320.
본 개시의 실시예에서, 프로세서 330는 내부적으로 구비되는 메모리에 하나 이상의 인스트럭션을 저장하고, 내부적으로 구비되는 메모리에 저장된 하나 이상의 인스트럭션을 실행하여 전술한 동작들이 수행되도록 제어할 수 있다. 즉, 프로세서 330는 프로세서 330의 내부에 구비되는 내부 메모리 또는 메모리 320에 저장된 적어도 하나의 인스트럭션 또는 프로그램을 실행하여 소정 동작을 수행할 수 있다.In an embodiment of the present disclosure, the processor 330 can store one or more instructions in an internally provided memory, and control the execution of the one or more instructions stored in the internally provided memory so that the aforementioned operations are performed. That is, the processor 330 can perform a predetermined operation by executing at least one instruction or program stored in an internal memory provided within the processor 330 or in the memory 320.
일 실시예에 따라 프로세서 330는, 메모리 320에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치 100로부터 게임 컨텐츠의 실행을 요청을 수신하고, 실행 요청된 게임 컨텐츠를 실행한 결과로 나오는 게임 화면을 전자 장치 100로 전송할 수 있다. According to one embodiment, the processor 330 may receive a request to execute game content from the electronic device 100 by executing one or more instructions stored in the memory 320, and transmit a game screen resulting from executing the requested game content to the electronic device 100.
일 실시예에 따라 프로세서 330는 메모리 320에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치 100로부터 입력 신호를 수신함에 따라, 수신된 입력 신호에 기반하여 게임 컨텐츠를 실행하고, 실행 결과로 나오는 게임 화면을 전자 장치 100로 전송할 수 있다. According to one embodiment, the processor 330 may execute one or more instructions stored in the memory 320 to receive an input signal from the electronic device 100, execute game content based on the received input signal, and transmit a game screen resulting from the execution to the electronic device 100.
도 2에 도시된 서버 300의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 서버 300의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 예를 들어, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분화되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다. The block diagram of server 300 illustrated in FIG. 2 is a block diagram for one embodiment. Each component in the block diagram may be integrated, added, or omitted depending on the specifications of the server 300 actually implemented. For example, two or more components may be combined into a single component, or a single component may be subdivided into two or more components, as needed. Furthermore, the functions performed by each block are intended to illustrate embodiments, and their specific operations or devices do not limit the scope of the present invention.
도 3은 일 실시예에 따라 전자 장치의 블록도의 일 예이다. FIG. 3 is an example of a block diagram of an electronic device according to one embodiment.
도 3을 참조하면, 전자 장치 100는 통신부 110, 디스플레이 120, 메모리 130, 프로세서 140 외에, 영상 처리부 150, 오디오 처리부 160, 오디오 출력부 170, 수신부 180, 감지부 190를 포함할 수 있다. Referring to FIG. 3, the electronic device 100 may include a communication unit 110, a display 120, a memory 130, a processor 140, an image processing unit 150, an audio processing unit 160, an audio output unit 170, a receiving unit 180, and a detection unit 190.
통신부 110는 전자 장치 100과 무선 통신 시스템 사이 또는 전자 장치 100과 다른 전자 장치가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈에 포함된 다양한 통신 회로를 포함할 수 있다. 예를 들어, 통신부 110는 이동통신 모듈 111, 무선 인터넷 모듈 112 및 근거리 통신 모듈 113을 포함할 수 있다. The communication unit 110 may include various communication circuits included in one or more modules that enable wireless communication between the electronic device 100 and a wireless communication system or between the electronic device 100 and a network in which another electronic device is located. For example, the communication unit 110 may include a mobile communication module 111, a wireless Internet module 112, and a short-range communication module 113.
이동통신 모듈 111는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 상기 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The mobile communication module 111 transmits and receives wireless signals with at least one of a base station, an external terminal, and a server on a mobile communication network. The wireless signals may include various types of data, such as voice call signals, video call signals, or text/multimedia message transmission and reception.
무선 인터넷 모듈 112은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 디바이스에 내장되거나 외장될 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다. 상기 무선 인터넷 모듈 122을 통해서 상기 디바이스는 다른 디바이스와 와이 파이(Wi-Fi) P2P(Peer to Peer)연결을 할 수 있다. The wireless Internet module 112 refers to a module for wireless Internet access, which may be built into or external to the device. Wireless Internet technologies that may be used include WLAN (Wireless LAN) (Wi-Fi), Wibro (Wireless broadband), Wimax (World Interoperability for Microwave Access), and HSDPA (High Speed Downlink Packet Access). Through the wireless Internet module 122, the device can establish a Wi-Fi P2P (Peer to Peer) connection with other devices.
근거리 통신 모듈 113은 근거리 통신을 위한 모듈을 말한다. 근거리 통신 기술로 블루투스(Bluetooth), BLE(Bluetooth Low Energy), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. Short-range communication module 113 refers to a module for short-range communication. Short-range communication technologies that can be used include Bluetooth, BLE (Bluetooth Low Energy), RFID (Radio Frequency Identification), IrDA (Infrared Data Association), UWB (Ultra Wideband), and ZigBee.
디스플레이 120는 서버 300로부터 수신된 영상 신호를 화면에 표시할 수 있다. Display 120 can display video signals received from server 300 on the screen.
메모리 130는 전자 장치 100의 동작에 관련된 프로그램, 전자 장치 100의 동작 중에 발생하는 각종 데이터를 저장할 수 있다. Memory 130 can store programs related to the operation of the electronic device 100 and various data generated during the operation of the electronic device 100.
메모리 130는 적어도 하나의 인스트럭션을 저장할 수 있다. 또한, 메모리 140는 프로세서 150가 실행하는 적어도 하나의 인스트럭션을 저장하고 있을 수 있다. 또한, 메모리 140는 프로세서 150가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 또한, 메모리 150는 소정 서비스를 제공하기 위한 어플리케이션을 저장하고 있을 수 있다. Memory 130 may store at least one instruction. Furthermore, memory 140 may store at least one instruction to be executed by processor 150. Furthermore, memory 140 may store at least one program to be executed by processor 150. Furthermore, memory 150 may store an application for providing a specific service.
구체적으로, 메모리 130는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.Specifically, the memory 130 may include at least one type of storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), a RAM (Random Access Memory), a SRAM (Static Random Access Memory), a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a magnetic memory, a magnetic disk, and an optical disk.
일 실시예에 따라 메모리 130는 게임 어플리케이션 131과 게임 구동부 132를 저장할 수 있다. In one embodiment, memory 130 may store a game application 131 and a game driver 132.
프로세서 140는 전자 장치 100의 전반적인 동작을 제어한다. 예를 들어, 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시서에 기재된 전자 장치 100의 기능을 수행할 수 있다.The processor 140 controls the overall operation of the electronic device 100. For example, the processor 140 may perform the functions of the electronic device 100 described in the present disclosure by executing one or more instructions stored in the memory 130.
프로세서 140는 다양한 프로세싱 회로 및/또는 복수의 프로세서를 포함할 수 있다. 예를 들어 청구항을 포함하여 여기서 사용된 용어 "프로세서"는 적어도 하나의 프로세서를 포함하여 다양한 프로세싱 회로를 포함할 수 있다. 적어도 하나의 프로세서 에서 하나 이상의 프로세서는 분산 형태로 개별적으로 및/또는 집합적으로, 여기서 설명된 다양한 기능을 수행하도록 구성될 수 있다. 여기서 사용된 것 처럼, "프로세서", "적어도 하나의 프로세서", "하나 이상의 프로세서"는 여러가지 기능들을 수행하도록 구성될 수 있다. 그러나 이러한 용어들은 예를 들어 그러나 제한없이, 하나의 프로세서가 기능들의 일부를 수행하고 다른 프로세서(들)가 기능들의 다른 일부를 수행하는 상황, 그리고, 단일 프로세서가 모든 기능들을 수행할 수 있는 상황을 커버한다. 또한, 적어도 하나의 프로세서는 분산된 방법으로 개시된 기능들의 다양한 기능들을 수행하는 프로세서들의 결합을 포함할 수 있다. 적어도 하나의 프로세서는 다양한 기능들을 달성하거나 수행하기 위해 프로그램 인스트럭션들을 실행할 수 있다.Processor 140 may include various processing circuits and/or multiple processors. For example, the term "processor" as used herein, including in the claims, may include various processing circuits, including at least one processor. At least one processor, one or more processors may be individually and/or collectively configured to perform various functions described herein in a distributed fashion. As used herein, "processor," "at least one processor," and "one or more processors" may be configured to perform multiple functions. However, these terms encompass, for example, but not limited to, situations where one processor performs some of the functions and other processor(s) perform other parts of the functions, and situations where a single processor may perform all of the functions. Furthermore, the at least one processor may include a combination of processors that perform various of the disclosed functions in a distributed manner. At least one processor may execute program instructions to achieve or perform various functions.
본 개시의 실시예에서, 프로세서 140는 내부적으로 구비되는 메모리에 하나 이상의 인스트럭션을 저장하고, 내부적으로 구비되는 메모리에 저장된 하나 이상의 인스트럭션을 실행하여 디스플레이 장치의 동작들이 수행되도록 제어할 수 있다. 즉, 프로세서 140는 프로세서 140의 내부에 구비되는 내부 메모리 또는 메모리 130에 저장된 적어도 하나의 인스트럭션 또는 프로그램을 실행하여 소정 동작을 수행할 수 있다.In an embodiment of the present disclosure, the processor 140 can store one or more instructions in an internally provided memory, and control the execution of operations of the display device by executing one or more instructions stored in the internally provided memory. That is, the processor 140 can perform a predetermined operation by executing at least one instruction or program stored in the internal memory or memory 130 provided within the processor 140.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해 클라우드 게임 컨텐츠의 실행을 위한 유저 인터페이스를 제공하는 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. According to one embodiment, the processor 140 may receive input data while executing a game application that provides a user interface for executing cloud game content by the game driver 132 by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 활성화된 윈도우에 대응하는 어플리케이션을 식별 할 수 있다. According to one embodiment, the processor 140 may identify an application corresponding to an activated window by the game driver 132 by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션임을 식별함에 따라 상기 클라우드 게임 컨텐츠의 재생을 위한 플레이어의 상태가 플레이 상태 인지 여부를 식별 할 수 있다. According to one embodiment, the processor 140 can identify whether the state of the player for playing the cloud game content is a play state by executing one or more instructions stored in the memory 130, thereby identifying, by the game driver 132, that the application corresponding to the activated window is the game application.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 플레이어의 상태가 상기 플레이 상태 인지 여부에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the processor 140 may transmit the input data to a server transmitting the cloud game content or provide the input data to the game application, depending on whether the state of the player is the play state, by executing one or more instructions stored in the memory 130, by the game driver 132.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 플레이어의 상태가 상기 플레이 상태 인 것으로 식별됨에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송 할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the server transmitting the cloud game content by executing one or more instructions stored in the memory 130, as determined by the game driver 132 that the player's state is in the play state.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 플레이어의 상태가 상기 플레이 상태가 아닌 것으로 식별됨에 따라 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the processor 140 may provide the input data to the game application so that the game application can operate based on the user input when the state of the player is identified by the game driver 132 as not being in the play state by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션에 기반한 유저 인터페이스 표시 중임을 나타내는 상태 정보를 수신 할 수 있다. According to one embodiment, the processor 140 may receive, by the game driver 132, status information from the game application indicating that a user interface based on the game application is being displayed while the player's status is in the play state, by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 입력 데이터에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the processor 140 may provide the input data to the game application by executing one or more instructions stored in the memory 130, based on the state information, by the game driver 132, so that the game application may operate based on the input data.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션임을 식별함에 따라, 상기 시스템 유저 인터페이스에 포커스가 위치하는지 여부에 따라 입력 데이터를 다르게 처리 할 수 있다. According to one embodiment, the processor 140 may process input data differently depending on whether focus is located on the system user interface, by executing one or more instructions stored in the memory 130, and by the game driver 132 identifying that the application corresponding to the activated window is an application corresponding to the system user interface.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 시스템 유저 인터페이스에 포커스가 위치하는지 여부를 식별 할 수 있다. According to one embodiment, the processor 140 may, by executing one or more instructions stored in the memory 130, determine, by the game driver 132, whether focus is located on the system user interface.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 시스템 유저 인터페이스에 포커스가 위치하는 것으로 식별됨에 따라, 상기 입력 데이터를 시스템 UI 모듈로 전달할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the system UI module by executing one or more instructions stored in the memory 130, upon the game driver 132 identifying that the system user interface has focus.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 시스템 유저 인터페이스에 포커스가 위치하지 않는 것으로 식별됨에 따라 상기 입력 데이터를 상기 서버로 전달할 수 있다. According to one embodiment, the processor 140 may transmit the input data to the server by executing one or more instructions stored in the memory 130, upon the game driver 132 identifying that the system user interface does not have focus.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 윈도우 스택을 참조하여 최상단 레이어에 있는 어플리케이션을 상기 활성화된 윈도우에 대응하는 어플리케이션으로 식별할 수 있다. According to one embodiment, the processor 140 can, by executing one or more instructions stored in the memory 130, cause the game driver 132 to identify the application in the top layer as the application corresponding to the activated window by referencing the window stack.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 상기 클라우드 게임 컨텐츠의 실행을 위한 상기 플레이어를 생성하고, 상기 생성된 플레이어의 오디오 디코더 또는 비디오 디코더 중 적어도 하나의 동작 상태에 기반하여 상기 플레이어의 상태가 상기 플레이 상태인지를 식별할 수 있다. According to one embodiment, the processor 140 may generate the player for executing the cloud game content by executing one or more instructions stored in the memory 130, and identify whether the state of the player is the play state based on the operational state of at least one of an audio decoder or a video decoder of the generated player.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 서버로부터 수신한 상기 클라우드 게임 컨텐츠의 메타데이터에 기반하여 상기 플레이어를 생성할 수 있다. According to one embodiment, the processor 140 may generate the player based on metadata of the cloud game content received from the server by the game driver 132 by executing one or more instructions stored in the memory 130.
일 실시예에 따라 프로세서 140는, 메모리 130에 저장된 하나 이상의 인스트럭션을 실행함으로써, 게임 구동부 132에 의해, 상기 입력 데이터를 상기 서버로 전송함에 따라 상기 서버로부터 상기 입력 데이터에 기반하여 상기 클라우드 게임 컨텐츠를 실행한 결과 화면을 수신하고, 상기 입력 데이터를 상기 게임 어플리케이션에 제공함에 따라 상기 게임 어플리케이션이 상기 입력 데이터를 기반으로 동작하도록 제어할 수 있다. According to one embodiment, the processor 140 may control the game application to operate based on the input data by transmitting the input data to the server through the game driver 132 by executing one or more instructions stored in the memory 130, thereby receiving a result screen of executing the cloud game content based on the input data from the server, and by providing the input data to the game application.
영상 처리부 150는 프로세서 140의 제어에 따라, 수신부 110 또는 통신부 120로부터 수신되는 영상신호를 처리하여 디스플레이 130로 출력할 수 있다. 영상 처리부 150는 다양한 영상 프로세싱 회로를 포함할 수 있다. The image processing unit 150 can process an image signal received from the receiving unit 110 or the communication unit 120 and output it to the display 130 under the control of the processor 140. The image processing unit 150 can include various image processing circuits.
오디오 처리부 160는 프로세서 140의 제어에 따라, 수신부 110 또는 통신부 120로부터 수신되는 오디오 신호를 아날로그 오디오 신호로 변환하여 오디오 출력부 180로 출력할 수 있다. 오디오 처리부 160는 다양한 오디오 프로세싱 회로를 포함할 수 있다. The audio processing unit 160 may, under the control of the processor 140, convert an audio signal received from the receiving unit 110 or the communication unit 120 into an analog audio signal and output it to the audio output unit 180. The audio processing unit 160 may include various audio processing circuits.
오디오 출력부 170는 통신부110 또는 수신부 180를 통해 입력되는 오디오(예를 들어, 음성, 사운드)를 출력할 수 있다. 또한, 오디오 출력부170는 프로세서 140의 제어에 의해 메모리 130에 저장된 오디오를 출력할 수 있다. 오디오 출력부170는 스피커, 헤드폰 출력 단자 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자 중 적어도 하나 또는 그 조합을 포함할 수 있다. The audio output unit 170 can output audio (e.g., voice, sound) input through the communication unit 110 or the receiver unit 180. In addition, the audio output unit 170 can output audio stored in the memory 130 under the control of the processor 140. The audio output unit 170 can include at least one of a speaker, a headphone output terminal, or an S/PDIF (Sony/Philips Digital Interface:) output terminal, or a combination thereof.
수신부 180는 프로세서 140의 제어에 의해 전자 장치 100의 외부에서부터 비디오(예를 들어, 동영상 등), 오디오(예를 들어, 음성, 음악 등) 및 부가 정보(예를 들어, EPG 등) 등을 수신할 수 있다. 수신부 180는 HDMI 포트(High-Definition Multimedia Interface port, 181, 컴포넌트 잭(component jack, 182), PC 포트(PC port, 183), 및 USB 포트(USB port, 184) 중 하나를 포함하거나, 하나 이상의 조합을 포함할 수 있다. 수신부 180는 HDMI 포트 이외에도 디스플레이 포트 (DisplayPort; DP), 썬더볼트 (Thunderbolt), MHL (Mobile High-Definition Link)를 더 포함할 수 있다. The receiving unit 180 can receive video (e.g., moving images, etc.), audio (e.g., voice, music, etc.), and additional information (e.g., EPG, etc.) from the outside of the electronic device 100 under the control of the processor 140. The receiving unit 180 may include one of an HDMI port (High-Definition Multimedia Interface port, 181), a component jack (component jack, 182), a PC port (PC port, 183), and a USB port (USB port, 184), or a combination of one or more thereof. In addition to the HDMI port, the receiving unit 180 may further include a DisplayPort (DP), Thunderbolt, or MHL (Mobile High-Definition Link).
감지부190는 사용자의 음성, 사용자의 영상 또는 사용자의 인터랙션을 감지하며, 마이크로폰, 카메라부 및 광 수신부를 포함할 수 있다.The detection unit 190 detects the user's voice, the user's image, or the user's interaction, and may include a microphone, a camera unit, and a light receiving unit.
마이크로폰은 사용자의 발화(utterance)된 음성을 수신한다. 마이크로폰은 수신된 음성을 전기 신호로 변환하여 프로세서 140로 출력할 수 있다. 사용자 음성은 예를 들어, 전자 장치 100의 메뉴 또는 기능에 대응되는 음성을 포함할 수 있다. The microphone receives the user's spoken voice. The microphone can convert the received voice into an electrical signal and output it to the processor 140. The user's voice may include, for example, a voice corresponding to a menu or function of the electronic device 100.
카메라는 카메라 인식 범위에서 제스처를 포함하는 사용자의 모션에 대응되는 영상(예를 들어, 연속되는 프레임)을 수신할 수 있다. 프로세서 140는 수신된 모션의 인식 결과를 이용하여 전자 장치 100에 표시되는 메뉴를 선택하거나 모션 인식 결과에 대응되는 제어를 할 수 있다. The camera can receive images (e.g., consecutive frames) corresponding to a user's motion, including a gesture, within the camera's recognition range. The processor 140 can use the recognition results of the received motion to select a menu displayed on the electronic device 100 or perform a control corresponding to the motion recognition results.
광 수신부는 외부의 제어 장치에서부터 수신되는 광 신호(제어 신호를 포함)를 수신한다. 광 수신부는 제어 장치로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서 140의 제어에 의해 제어 신호가 추출될 수 있다. The optical receiver receives an optical signal (including a control signal) from an external control device. The optical receiver can receive an optical signal corresponding to a user input (e.g., touch, press, touch gesture, voice, or motion) from the control device. A control signal can be extracted from the received optical signal under the control of the processor 140.
도 4는 일 실시예에 따라 전자 장치의 동작을 설명하기 위한 전자 장치의 기능적인 블록도의 일 예를 나타낸다. FIG. 4 illustrates an example functional block diagram of an electronic device for explaining the operation of the electronic device according to one embodiment.
도 4를 참조하면, 서버 300는 게임 컨텐츠를 구동하는 게임 서버 301과 게임 컨텐츠의 구동 결과 나오는 게임 화면을 스트리밍 전송하는 미디어 스트리밍 서버 302를 포함할 수 있다. Referring to FIG. 4, server 300 may include a game server 301 that runs game content and a media streaming server 302 that streams a game screen resulting from the running of the game content.
게임 서버 301는 게임 구동부 132로부터 게임 컨텐츠 실행 요청을 수신하고 실행 요청된 게임 컨텐츠를 실행하여 실행 결과로 나오는 오디오 비디오 데이터를 미디어 스트리밍 서버 302로 전송할 수 있다. 또한 게임 서버 301는 게임 실행 이후 게임 제어를 사용자 입력을 게임 구동부 132로부터 수신하고 수신된 사용자 입력에 기반하여 게임 컨텐츠를 실행하여 실행 결과로 나오는 오디오 비디오 데이터를 미디어 스트림 서버 302로 전송할 수 있다. 게임 서버 301가 게임 구동부 132로부터 수신하는 사용자 입력은 입력 장치 200의 어떤 버튼이 눌렸는지에 대한 정보, 입력 장치 200의 특정 버튼을 선택한 시간 정보 또는 특정 버튼을 얼마 동안 누르고 있었는지 등 시간 정보도 포함할 수 있다. 전자 장치 100의 게임 어플리케이션의 코드의 일부 또는 전부는 게임 서버 301에 포함될 수 있다. 도 4에서는 게임 서버 301과 미디어 스트리밍 서버 302가 별도의 서버로 구성된 것으로 도시되었지만 게임 서버 301과 미디어 스트리밍 서버 302는 하나의 서버로 구성될 수도 있다. The game server 301 can receive a game content execution request from the game driver 132, execute the requested game content, and transmit audio/video data resulting from the execution to the media streaming server 302. In addition, the game server 301 can receive a user input for game control from the game driver 132 after the game is executed, execute the game content based on the received user input, and transmit audio/video data resulting from the execution to the media stream server 302. The user input that the game server 301 receives from the game driver 132 can also include time information, such as information on which button of the input device 200 was pressed, time information on selecting a specific button of the input device 200, or time information on how long a specific button was pressed. Part or all of the code of the game application of the electronic device 100 can be included in the game server 301. Although FIG. 4 illustrates that the game server 301 and the media streaming server 302 are configured as separate servers, the game server 301 and the media streaming server 302 may be configured as a single server.
전자 장치 100는 게임 어플리케이션 131, 게임 구동부 132, 출력부 121를 포함할 수 있다. The electronic device 100 may include a game application 131, a game driving unit 132, and an output unit 121.
게임 어플리케이션 131은 게임 컨텐츠의 선택 이나 설정 등을 위한 사용자 인터페이스를 제공하고 서버 300로부터 수신된 게임 화면에 대응하는 비디오를 재생하는 역할을 할 수 있다. Game application 131 may provide a user interface for selecting or setting game content and may play a video corresponding to a game screen received from server 300.
게임 구동부 132는 게임 어플리케이션 131을 실행하는 프로세스로서 일반적으로 서버 300와의 통신, 미디어 처리, 입력 장치의 이벤트 전송, 게임 어플리케이션의 유저 인터페이스 랜더링 등의 처리를 할 수 있다. The game driver 132 is a process that runs the game application 131 and can generally handle communication with the server 300, media processing, event transmission from input devices, and rendering of the user interface of the game application.
출력부 121는 서버 300로부터 수신된 게임 컨텐츠에 대응하는 오디오 데이터와 비디오 데이터를 출력하는 역할을 할 수 있다. The output unit 121 can serve to output audio data and video data corresponding to game content received from the server 300.
일반적으로 입력 장치 200의 입력 데이터를 게임 어플리케이션의 UI를 제어하는데 사용할 지 또는 서버 300로 전송하여 게임 컨텐츠의 플레이에 반영할 지는 게임 어플리케이션 131의 시나리오에 따라 달라지므로 게임 구동부 132는 입력 장치 200로부터 수신되는 입력 데이터를 별다른 판단 없이 게임 어플리케이션 131으로 전달하도록 동작하였다. 즉, 게임 어플리케이션 131에서 UI를 가지고 있고 사용자의 조작을 처리하고 있기 때문에 게임 구동부 132에서는 게임 어플리케이션에서 호출한 함수에 대한 처리만 할 뿐 게임 어플리케이션 131이 갖고 있는 시나리오는 알지 못한다. 따라서 게임 구동부 132는 입력 장치 200로부터 들어오는 입력 데이터를 게임 어플리케이션 131로 전달하여 게임 어플리케이션 131에서 처리하게 끔 할 수 밖에 없다. 그러나 클라우드 게임 어플리케이션의 경우에 입력 데이터는 크게 게임 어플리케이션의 UI 를 조작하는데 이용하거나 또는 서버 300로 전달하여 서버 300로 하여금 게임 컨텐츠의 실행에 이용되거나 하는 두가지 방법 중의 하나에 이용된다. 입력 장치 200로부터의 입력 데이터가 서버 300로 전달될 경우에도, 종래에는 게임 구동부 132가 게임 어플리케이션 131로 전달하고, 게임 어플리케이션 131의 시나리오에 따라 게임 어플리케이션 131로부터 다시 게임 구동부 132로 전달되고 게임 구동부 132는 그제서야 입력 데이터를 서버 300로 전달할 수 있다. 따라서 게임 서버 300로 전달될 입력 데이터가게임 구동부 132에서 바로 서버 300로 전달되는 것이 아니라, 게임 어플리케이션 131로 전달되었다가 다시 게임 구동부 132로 내려온 후에 서버 300로 전달될 수 있으므로 입력 지연을 초래할 수 밖에 없다. In general, whether the input data of the input device 200 is used to control the UI of the game application or transmitted to the server 300 to be reflected in the play of the game content depends on the scenario of the game application 131, so the game driver 132 operates to transmit the input data received from the input device 200 to the game application 131 without any particular judgment. In other words, since the game application 131 has a UI and processes the user's operations, the game driver 132 only processes the functions called by the game application and does not know the scenario of the game application 131. Therefore, the game driver 132 has no choice but to transmit the input data coming from the input device 200 to the game application 131 to be processed by the game application 131. However, in the case of a cloud game application, the input data is largely used in one of two ways: to control the UI of the game application or to transmit it to the server 300 to have the server 300 use it to execute the game content. Even when input data from input device 200 is transmitted to server 300, conventionally, game driver 132 transmits it to game application 131, and then, depending on the scenario of game application 131, it is transmitted from game application 131 to game driver 132 again, and only then can game driver 132 transmit the input data to server 300. Therefore, input data to be transmitted to game server 300 is not transmitted directly from game driver 132 to server 300, but may be transmitted to game application 131 and then to game driver 132 before being transmitted to server 300, which inevitably causes input delay.
이에 따라 개시된 실시예에서는 게임 구동부 132가 입력 장치 200로부터 수신되는 입력 데이터를 어떻게 처리할 지를 판단하게 함으로써, 입력 데이터를 해당 입력 데이터를 소비할 적절한 목적지 즉, 서버 300 또는 게임 어플리케이션 131로 바로 전달하게 함으로써 입력 지연을 감소시킬 수 있다. Accordingly, in the disclosed embodiment, input delay can be reduced by having the game driver 132 determine how to process input data received from the input device 200, thereby directly transmitting the input data to an appropriate destination that will consume the input data, i.e., the server 300 or the game application 131.
게임 구동부 132는 게임 플레이를 위한 입력을 게임 서버 301로 전달할 수 있다. 게임 플레이를 위한 입력은 입력 장치 200의 어떤 버튼이 눌렸는지에 대한 정보, 입력 장치 200의 특정 버튼을 선택한 시간 정보 또는 특정 버튼을 얼마 동안 누르고 있었는지 등 시간 정보도 포함할 수 있다. The game driver 132 can transmit input for game play to the game server 301. The input for game play can also include time information, such as information about which button of the input device 200 was pressed, information about the time a specific button of the input device 200 was selected, or information about how long a specific button was pressed.
일 실시예에 따라 게임 구동부 132는 클라우드 게임 컨텐츠의 실행을 위한 유저 인터페이스를 제공하는 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. In one embodiment, the game driver 132 may receive input data while executing a game application that provides a user interface for executing cloud game content.
일 실시예에 따라 게임 구동부 132는 활성화된 윈도우에 대응하는 어플리케이션을 식별 할 수 있다. In one embodiment, the game driver 132 may identify an application corresponding to an activated window.
일 실시예에 따라 게임 구동부 132는 활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션임을 식별함에 따라 상기 클라우드 게임 컨텐츠의 재생을 위한 플레이어의 상태가 플레이 상태 인지 여부를 식별 할 수 있다. According to one embodiment, the game driver 132 can identify whether the player's status for playing the cloud game content is a play status by identifying that the application corresponding to the activated window is the game application.
일 실시예에 따라 게임 구동부 132는 상기 플레이어의 상태가 상기 플레이 상태 인지 여부에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the game driver 132 may transmit the input data to a server transmitting the cloud game content or provide the input data to the game application depending on whether the player's status is the play status.
일 실시예에 따라 게임 구동부 132는 상기 플레이어의 상태가 상기 플레이 상태 인 것으로 식별됨에 따라 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송 할 수 있다. According to one embodiment, the game driver 132 may transmit the input data to a server transmitting the cloud game content when the player's state is identified as being in the play state.
일 실시예에 따라 게임 구동부 132는 상기 플레이어의 상태가 상기 플레이 상태가 아닌 것으로 식별됨에 따라 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. In one embodiment, the game driver 132 may provide the input data to the game application so that the game application can operate based on the user input when the state of the player is identified as not being the play state.
일 실시예에 따라 게임 구동부 132는 상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션에 기반한 유저 인터페이스 표시 중임을 나타내는 상태 정보를 수신 할 수 있다. According to one embodiment, the game driver 132 may receive status information from the game application indicating that a user interface based on the game application is being displayed while the player's status is in the play state.
일 실시예에 따라 게임 구동부 132는 상기 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 사용자 입력에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공 할 수 있다. According to one embodiment, the game driver 132 may provide the input data to the game application based on the status information so that the game application can operate based on the user input.
일 실시예에 따라 게임 구동부 132는 상기 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션임을 식별함에 따라, 상기 시스템 유저 인터페이스가 포커스를 가지는 지 여부에 따라 입력 데이터를 다르게 처리 할 수 있다. In one embodiment, the game driver 132 may process input data differently depending on whether the system user interface has focus, as the application corresponding to the activated window is identified as an application corresponding to the system user interface.
일 실시예에 따라 게임 구동부 132는 상기 시스템 유저 인터페이스가 상기 포커스를 가지는지 여부를 식별 할 수 있다. In one embodiment, the game driver 132 may identify whether the system user interface has the focus.
일 실시예에 따라 게임 구동부 132는 상기 시스템 유저 인터페이스가 상기 포커스를 가지는 것으로 식별됨에 따라, 상기 입력 데이터를 시스템 UI 모듈로 전달할 수 있다. In one embodiment, the game driver 132 may transmit the input data to the system UI module when the system user interface is identified as having the focus.
일 실시예에 따라 게임 구동부 132는 상기 시스템 유저 인터페이스가 상기 포커스를 가지지 않는 것으로 식별됨에 따라 상기 입력 데이터를 상기 서버로 전달할 수 있다. In one embodiment, the game driver 132 may transmit the input data to the server when the system user interface is identified as not having the focus.
일 실시예에 따라 게임 구동부 132는 윈도우 스택을 참조하여 상기 활성화된 윈도우에 대응하는 어플리케이션을 식별할 수 있다. In one embodiment, the game driver 132 may identify an application corresponding to the activated window by referencing the window stack.
도 5는 일 실시예에 따라 전자 장치를 동작시키는 방법의 일 예에 따른 흐름도이다. FIG. 5 is a flowchart according to an example of a method of operating an electronic device according to one embodiment.
도 5를 참조하면 동작 510에서, 전자 장치 100는 클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신할 수 있다. Referring to FIG. 5, in operation 510, the electronic device 100 may receive input data while executing a game application corresponding to execution of cloud game content.
본 개시의 일 실시예에서 게임 어플리케이션은 하나 이상의 게임 컨텐츠의 실행 및 설정을 위한 유저 인터페이스를 제공하며 또한 게임 컨텐츠에 대응하는 비디오 스트림을 재생하는 미디어 플레이어를 동작시키는 역할을 하는 어플리케이션을 나타낼 수 있다. In one embodiment of the present disclosure, a game application may represent an application that provides a user interface for executing and configuring one or more game contents and also operates a media player that plays a video stream corresponding to the game contents.
도 6은 일 실시예에 따라 게임 어플리케이션을 선택할 수 있는 유저 인터페이스에서 게임 어플리케이션을 선택하는 동작을 설명하기 위한 참고도이다. FIG. 6 is a reference diagram for explaining an operation of selecting a game application in a user interface that allows selection of a game application according to one embodiment.
도 6을 참조하면, 전자 장치 100는 하나 이상의 게임 어플리케이션을 선택할 수 있는 유저 인터페이스 600을 제공할 수 있다. Referring to FIG. 6, the electronic device 100 may provide a user interface 600 for selecting one or more game applications.
유저 인터페이스 600는 예를 들어 제1게임 어플리케이션을 실행할 수 있는 아이템 610, 제2게임 어플리케이션을 실행할 수 있는 아이템 620, 제3게임 어플리케이션을 선택할 수 있는 아이템 630을 포함할 수 있다. 제1게임 어플리케이션은 제1게임 서버에 대응할 수 있다. 제1게임 어플리케이션을 실행할 수 있는 아이템 610을 선택하는 사용자 입력에 따라 전자 장치 100는 제1게임 어플리케이션을 실행할 수 있다. 제2게임 어플리케이션은 제2게임 서버에 대응할 수 있다. 제2게임 어플리케이션을 실행할 수 있는 아이템 620을 선택하는 사용자 입력에 따라 전자 장치 100는 제2게임 어플리케이션을 실행할 수 있다. 제3게임 어플리케이션은 제3게임 서버에 대응할 수 있다. 제3게임 어플리케이션을 실행할 수 있는 아이템 630을 선택하는 사용자 입력에 따라 전자 장치 100는 제3게임 어플리케이션을 실행할 수 있다. The user interface 600 may include, for example, an item 610 for executing a first game application, an item 620 for executing a second game application, and an item 630 for selecting a third game application. The first game application may correspond to a first game server. In response to a user input selecting item 610 for executing the first game application, the electronic device 100 may execute the first game application. The second game application may correspond to a second game server. In response to a user input selecting item 620 for executing the second game application, the electronic device 100 may execute the second game application. The third game application may correspond to a third game server. In response to a user input selecting item 630 for executing the third game application, the electronic device 100 may execute the third game application.
예를 들어 사용자로부터 제1게임 어플리케이션을 실행할 수 있는 아이템 610을 선택하는 사용자 입력을 수신한 경우에 전자 장치 100는 제1게임 어플리케이션을 실행할 수 있다. 그리고 전자 장치 100는 제1게임 어플리케이션의 실행에 따른 유저 인터페이스 700을 제공할 수 있다. 유저 인터페이스 700는 제1게임 서버가 제공하는 하나 이상의 게임 컨텐츠를 선택할 수 있는 아이템들 포함할 수 있다. 도 7에서는 예를 들어 유저 인터페이스 700가 제1게임 서버에 의해 제공될 수 있는 게임 #1 부터 게임 #7 까지의 게임 컨텐츠를 선택할 수 있는 아이템들을 포함할 수 있다. 또한 유저 인터페이스 700은 게임 컨텐츠를 검색할 수 있는 검색 창 720도 포함할 수 있다. For example, when receiving a user input from the user to select an item 610 that can execute a first game application, the electronic device 100 can execute the first game application. In addition, the electronic device 100 can provide a user interface 700 according to the execution of the first game application. The user interface 700 can include items that can select one or more game contents provided by the first game server. In FIG. 7, for example, the user interface 700 can include items that can select game contents from game #1 to game #7 that can be provided by the first game server. In addition, the user interface 700 can also include a search window 720 that can search for game contents.
도 7은 일 실시예에 따라 게임 어플리케이션 유저 인터페이스에서 게임 컨텐츠 아이템을 선택하는 동작을 설명하기 위한 참고도이다. FIG. 7 is a reference diagram for explaining an operation of selecting a game content item in a game application user interface according to one embodiment.
도 7을 참조하면, 게임 어플리케이션 유저 인터페이스 700에서 게임 #1 아이템 710을 선택하는 사용자 입력을 수신한 경우에 전자 장치 100는 제1게임 서버에 게임 #1 에 대응하는 게임 컨텐츠 (이하, 게임 #1 컨텐츠) 의 실행을 요청하고 제1게임 서버로부터 게임 #1 컨텐츠의 실행에 따른 게임 화면 800을 수신하여 표시할 수 있다. Referring to FIG. 7, when a user input for selecting a game #1 item 710 is received in a game application user interface 700, the electronic device 100 may request the first game server to execute game content corresponding to game #1 (hereinafter, game #1 content) and receive and display a game screen 800 according to the execution of the game #1 content from the first game server.
다시 도 5로 돌아가서, 전자 장치 100는 게임 어플리케이션을 실행하는 동안 입력 데이터, 예를 들어 사용자 입력을 수신할 수 있다. 이와 같이 게임 어플리케이션을 실행한다는 것은 도 6에 도시된 바와 같이 게임 어플리케이션 유저 인터페이스 700가 표시된 상태 나 도 7에 도시된 바와 같이 특정 게임 컨텐츠를 선택하여 게임 화면 800이 표시된 상태를 모두 포함할 수 있다. 따라서 전자 장치 100는 게임 어플리케이션 유저 인터페이스 700가 표시된 상태에서 사용자 입력을 수신할 수도 있고 게임 화면 800이 표시된 상태에서 사용자 입력을 수신할 수도 있다. Returning to FIG. 5, the electronic device 100 may receive input data, for example, user input, while executing a game application. Executing the game application may include both a state in which the game application user interface 700 is displayed, as illustrated in FIG. 6, and a state in which a specific game content is selected and a game screen 800 is displayed, as illustrated in FIG. 7. Accordingly, the electronic device 100 may receive user input while the game application user interface 700 is displayed, or while the game screen 800 is displayed.
동작 520에서, 전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션을 식별할 수 있다. 활성화된 윈도우에 대응하는 어플리케이션이라 함은, 전자 장치 100가 실행 중인 어플리케이션들 중에서 최상단 윈도우 레이어에 있는 어플리케이션을 말한다. 최상단 윈도우 레이어에 있는 어플리케이션은 활성화된 윈도우에 대응하는 어플리케이션을 나타낼 수 있다. 전자 장치 100는 윈도우 스택 (window stack)에 관한 정보를 참조하여 최상단 윈도우 레이어에 있는 어플리케이션을 식별할 수 있다. In operation 520, the electronic device 100 can identify an application corresponding to an activated window. The application corresponding to the activated window refers to an application in the topmost window layer among the applications running on the electronic device 100. The application in the topmost window layer can indicate the application corresponding to the activated window. The electronic device 100 can identify the application in the topmost window layer by referencing information about the window stack.
전자 장치 100는 적어도 하나의 윈도우 스택을 이용하여 윈도우들을 관리할 수 있다. 윈도우 스택(window stack)은 멀티 스크린 디바이스에서 활성화되거나 및/또는 비활성화된 윈도우들의 논리적 배열을 의미할 수 있다. 예를 들어 활성화된 윈도우(active window)는 현재 디스플레이에 표시되는 윈도우를 나타낼 수 있다. 비활성화된 윈도우(inactive window)는 활성화되어 디스플레이된 적이 있지만 현재는 활성화된 윈도우의 뒤에 있어서 표시되지 않는 윈도우를 나타낼 수 있다. 비활성화된 윈도우는 서스펜드된 어플리케이션에 관한 것일 수 있다. 도 16을 참조하여 활성화된 윈도우에 대응하는 어플리케이션을 설명한다.The electronic device 100 can manage windows using at least one window stack. A window stack may refer to a logical arrangement of windows that are activated and/or inactive on a multi-screen device. For example, an active window may refer to a window that is currently displayed on the display. An inactive window may refer to a window that was once activated and displayed, but is currently not displayed because it is behind the active window. An inactive window may refer to a suspended application. An application corresponding to an activated window will be described with reference to FIG. 16.
도 16은 일 실시예에 따라 윈도우 스택의 일 예를 나타낸다. Figure 16 illustrates an example of a window stack according to one embodiment.
도 16을 참조하면, 전자 장치 100는 제1어플리케이션 1610, 제2어플리케이션 160, 제3어플리케이션 1630을 실행할 수 있다. 제1어플리케이션 1610, 제2어플리케이션 1620, 제3어플리케이션 1630 모두 실행중인 상태이다. 현재 디스플레이 화면에 표시되는 것은 제3어플리케이션 1630에 대응하는 윈도우를 나타낼 수 있다. 그리고 제1어플리케이션 1610과 제2어플리케이션 1620은 제3어플리케이션 1630의 뒤에 있어서 디스플레이 화면에는 표시되지 않는 윈도우에 대응될 수 있다. 이러한 윈도우 스택 상태에서 수신되는 사용자 입력은 제3어플리케이션에서 이용되는 데이터에 대응될 수 있다. 이와 같이 윈도우 스택에서 최상단 윈도우 레이어에 있는 제3어플리케이션 1630이 활성화된 윈도우에 대응하는 어플리케이션을 나타낼 수 있다. 반면 제1어플리케이션 1610과 제2어플리케이션 1620은 비활성화된 윈도우에 대응하는 어플리케이션으로 언급될 수 있다. Referring to FIG. 16, the electronic device 100 can execute a first application 1610, a second application 160, and a third application 1630. The first application 1610, the second application 1620, and the third application 1630 are all in a running state. What is currently displayed on the display screen may represent a window corresponding to the third application 1630. In addition, the first application 1610 and the second application 1620 may correspond to windows that are behind the third application 1630 and thus are not displayed on the display screen. User input received in this window stack state may correspond to data used in the third application. In this way, the third application 1630 in the topmost window layer in the window stack may represent an application corresponding to an activated window. On the other hand, the first application 1610 and the second application 1620 can be referred to as applications corresponding to the inactive window.
동작 530에서, 전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션이 게임 어플리케이션 임을 식별함에 따라 클라우드 게임 컨텐츠의 재생을 위한 플레이어의 상태가 플레이 상태 인지 여부를 식별할 수 있다. In operation 530, the electronic device 100 can identify whether the state of the player for playing cloud game content is a play state by identifying that the application corresponding to the activated window is a game application.
전자 장치 100는 활성화된 윈도우에 대응하는 어플리케이션이 게임 어플리케이션 임을 식별할 수 있다. 그리고 이러한 식별에 따라 전자 장치 100는 플레이어의 상태가 플레이 상태인지 더 식별할 수 있다. 즉, 앞서 도 6과 도 7을 참조하여 설명한 바와 같이 게임 어플리케이션의 실행 중 이라도, 다양한 상태를 포함할 수 있다. 게임 어플리케이션의 실행에 따라 게임 어플리케이션 유저 인터페이스 700가 표시된 상태에서 입력된 사용자 입력은 이러한 유저 인터페이스 700을 제어하는데 이용되어야 한다. 따라서 이러한 사용자 입력은 게임 어플리케이션을 제공되어야 한다. 반면, 유저 인터페이스 700에서 게임 컨텐츠를 선택하여 실제 게임이 플레이되는 동안에 수신되는 사용자 입력은 게임 서버로 제공하여 게임 서버로 하여금 사용자 입력에 기반하여 게임 컨텐츠의 제어를 하게 해야 한다. 따라서 이와 같이 게임 어플리케이션의 실행 중이라도 그 구체적인 상태 즉 플레이 상태 인지 아닌지 여부에 따라 사용자 입력이 제공될 목적지가 달라지므로 전자 장치 100를 이러한 상태를 확인하기 위해 게임 컨텐츠의 재생 상태가 플레이 상태 인지를 여부를 식별할 수 있다. 플레이어의 플레이 상태를 도 8 및 도 9를 참조하여 구체적으로 설명한다. The electronic device 100 can identify that the application corresponding to the activated window is a game application. Based on this identification, the electronic device 100 can further identify whether the player's state is a play state. That is, as described above with reference to FIGS. 6 and 7, even while the game application is running, it may include various states. User input entered while the game application user interface 700 is displayed while the game application is running should be used to control the user interface 700. Therefore, such user input should be provided to the game application. On the other hand, user input received while selecting game content on the user interface 700 and actually playing the game should be provided to the game server, so that the game server can control the game content based on the user input. Therefore, even while the game application is running, the destination to which the user input is provided varies depending on the specific state, i.e., whether it is in a play state or not. Therefore, the electronic device 100 can identify whether the playback state of the game content is in a play state in order to confirm this state. The player's play state is specifically described with reference to FIGS. 8 and 9.
전자 장치 100가 게임 서버로 특정한 게임 컨텐츠의 실행 요청을 보낸 경우에, 게임 서버는 실행 요청된 게임 컨텐츠에 대응하는 메타데이터를 전자 장치 100로 전송할 수 있다. 이는 게임 컨텐츠의 재생을 위해서 전자 장치 100에서 미리 게임 컨텐츠의 재생을 위한 플레이어의 생성을 준비할 수 있도록 하기 위함이다. 플레이어는 미디어 플레이어로 언급될 수 있다. 전자 장치 100로 전송되는 미디어 컨텐츠에 대응하는 메타데이터는 해상도 정보, 프레임 레이트 정보, 코덱 종류 등의 정보를 포함할 수 있다. 전자 장치 100는 게임 서버로부터 게임 컨텐츠에 대응하는 메타데이터를 수신하고 수신된 메타데이터에 포함된 정보를 이용하여 플레이어를 생성할 수 있다. 다음 전자 장치 100는 게임 서버로부터 실행 요청된 게임 컨텐츠에 대응하는 게임 화면에 대응하는 스트림을 수신하면, 생성해 놓은 플레이어를 이용하여 수신된 스트림을 재생할 수 있다. When an electronic device 100 sends a request to a game server to execute a specific game content, the game server may transmit metadata corresponding to the requested game content to the electronic device 100. This is to enable the electronic device 100 to prepare in advance the creation of a player for playing the game content in order to play the game content. The player may be referred to as a media player. The metadata corresponding to the media content transmitted to the electronic device 100 may include information such as resolution information, frame rate information, and codec type. The electronic device 100 may receive the metadata corresponding to the game content from the game server and create a player using the information included in the received metadata. Next, when the electronic device 100 receives a stream corresponding to a game screen corresponding to the requested game content from the game server, the electronic device 100 may play the received stream using the created player.
도 8은 일 실시예에 따라 플레이어의 일 예인 미디어 플레이어 파이프라인의 예를 나타낸다. FIG. 8 illustrates an example of a media player pipeline, which is an example of a player, according to one embodiment.
도 8을 참조하면, 일 실시예에 따른 미디어 플레이어 파이프라인 800은 파일 소스 810, 디멀티플렉서 820, 비디오 디코더 830, 오디오 디코더 840, 비디오 싱크 850, 오디오 싱크 860을 포함할 수 있다. Referring to FIG. 8, a media player pipeline 800 according to one embodiment may include a file source 810, a demultiplexer 820, a video decoder 830, an audio decoder 840, a video sink 850, and an audio sink 860.
미디어 소스 810는 파이프라인에 데이터를 가져온다. 미디어 소스는 네트워크 스트림으로부터 비디오 파일로부터 데이터를 가져올 수 있다. Media Source 810 brings data into the pipeline. The media source can obtain data from a video file or a network stream.
디멀티플렉서 820는 미디어 컨텐츠 스트림에 인터리빙되어 있는 오디오 패킷과 비디오 패킷을 디멀티플렉싱한다. Demultiplexer 820 demultiplexes audio packets and video packets interleaved in a media content stream.
비디오 디코더 830는 스트림으로부터의 비디오 패킷 데이터를 처리한다. Video decoder 830 processes video packet data from the stream.
오디오 디코더 840는 스트림으로부터의 오디오 패킷 데이터를 처리한다. Audio decoder 840 processes audio packet data from the stream.
비디오 싱크 850는 디코드된 비디오 데이터에 기반하여 디스플레이에 비디오를 보여준다. The Video Sync 850 displays video on the display based on the decoded video data.
오디오 싱크 860는 디코드된 오디오 데이터에 기반하여 오디오를 재생한다. Audio Sync 860 plays audio based on the decoded audio data.
게임 어플리케이션은 이와 같은 미디어 플레이어 파이프라인을 통해 데이터의 흐름을 제어하고, 품질 제어, 오디오/비디오 동기화 및 포맷 변경에 응답과 같은 태스크를 다루는 미디어 세션을 통해 미디어 플레이어 파이프라인을 제어하고 또한 미디어 플레이어 파이프라인으로부터의 이벤트를 수신한다. 따라서 게임 어플리케이션은 이와 같은 미디어 플레이어 파이프라인을 모니터링함으로써 플레이어의 상태가 플레이 상태 또는 재생 상태 인지 여부를 식별할 수 있다. 즉 게임 어플리케이션은 이와 같은 미디어 플레이어 파이프파인 800에 따라 동작이 이루어지는 경우에, 예를 들어 비디오 디코더 830 이나 오디오 디코더 840 중 적어도 하나가 동작하는 경우에, 플레이어의 상태가 플레이 상태 또는 재생 상태라고 판단할 수 있다. 도 7에 도시된 바와 같이 게임 어플리케이션이 실행되어 게임 어플리케이션 유저 인터페이스가 표시된 상태이고 아직 게임 서버로부터 게임 컨텐츠에 대응하는 스트림을 수신하는 상태가 아니면 플레이어는 플레이 상태가 아닌 것으로 식별할 수 있다.The game application controls the flow of data through the media player pipeline, and controls the media player pipeline through a media session that handles tasks such as quality control, audio/video synchronization, and responding to format changes, and also receives events from the media player pipeline. Therefore, the game application can identify whether the player is in the play state or the playback state by monitoring the media player pipeline. That is, the game application can determine that the player is in the play state or the playback state when an operation is performed according to the media player pipeline 800, for example, when at least one of the video decoder 830 and the audio decoder 840 is in operation. As illustrated in FIG. 7, if the game application is running and the game application user interface is displayed and a stream corresponding to game content has not yet been received from the game server, the player can be identified as not being in the play state.
다시 도 5로 돌아가서, 동작 540에서, 전자 장치 100는 플레이어의 상태가 플레이 상태인지 여부에 따라 사용자 입력을 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 게임 어플리케이션에 제공할 수 있다. Returning to FIG. 5 again, at operation 540, the electronic device 100 may transmit user input to a server transmitting cloud gaming content or provide it to a gaming application, depending on whether the player's state is in a play state.
일 실시예에 따라 전자 장치 100는 플레이어의 상태가 플레이 상태라고 판단된 경우에는 입력 데이터를 클라우드 게임 컨텐츠를 전송하는 서버로 전송함으로써 서버 로 하여금 입력 데이터에 기반하여 클라우드 게임 컨텐츠를 진행하게 할 수 있다. 예를 들어 도 7에 도시된 바와 같이 전자 장치 100가 게임 서버로부터 게임 화면 750을 수신하여 미디어 플레이어를 동작시키는 상태라면 이미 게임 컨텐츠의 플레이가 진행되고 있는 상태임을 의미할 수 있다. 따라서 이러한 상태에서 수신한 입력 데이터는 서버에 의해 게임 컨텐츠의 연산에 이용되어야 하므로 전자 장치 100는 입력 데이터를 서버로 전송할 수 있다. According to one embodiment, if the electronic device 100 determines that the player's state is a play state, the electronic device 100 may transmit input data to a server transmitting cloud game content, thereby causing the server to proceed with the cloud game content based on the input data. For example, as illustrated in FIG. 7, if the electronic device 100 receives a game screen 750 from a game server and operates a media player, this may mean that the game content is already being played. Accordingly, since the input data received in this state must be used by the server for calculating the game content, the electronic device 100 may transmit the input data to the server.
일 실시예에 따라 전자 장치 100는 플레이어의 상태가 플레이 상태가 아니라고 판단된 경우에는 입력 데이터를 게임 어플리케이션에 제공함으로써 게임 어플리케이션으로 하여금 입력 데이터에 기반하여 유저 인터페이스 제어를 하게 할 수 있다. 예를 들어 도 7에 도시된 바와 같이 게임 어플리케이션이 실행 중이지만 아직 미디어 플레이어의 상태가 플레이 상태가 아니라는 것은 게임 어플리케이션 유저 인터페이스 700가 출력되는 상태를 의미할 수 있다. 이러한 상태에서 수신된 입력 데이터는 게임 어플리케이션에서 UI제어를 위해 소비해야 하므로 입력 데이터는 게임 어플리케이션으로 제공되도록 할 수 있다. According to one embodiment, if the electronic device 100 determines that the player's state is not a play state, the electronic device 100 may provide input data to the game application, thereby allowing the game application to control the user interface based on the input data. For example, as illustrated in FIG. 7, if the game application is running but the state of the media player is not yet a play state, this may mean that the game application user interface 700 is being output. Since the input data received in this state must be consumed by the game application for UI control, the input data may be provided to the game application.
도 9는 일 실시예에 따라 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다. FIG. 9 illustrates an example of a flowchart of a method of operating an electronic device according to one embodiment.
도 9를 참조하면, 동작 901에서, 전자 장치 100는 입력 장치 200로부터 게임 어플리케이션의 실행 요청을 수신할 수 있다. Referring to FIG. 9, in operation 901, the electronic device 100 may receive a request to execute a game application from the input device 200.
입력 장치 200는 전자 장치 100에 통신 가능하게 연결될 수 있다. 사용자는 입력 장치 200에 마련된 버튼을 누르면 입력 장치 200는 눌러진 버튼에 대응하는 입력 신호를 전자 장치 100로 전송할 수 있다. The input device 200 may be communicatively connected to the electronic device 100. When a user presses a button provided on the input device 200, the input device 200 may transmit an input signal corresponding to the pressed button to the electronic device 100.
일 실시예에 따라 전자 장치 100는 게임 어플리케이션의 실행을 요청할 수 있는 유저 인터페이스를 제공할 수 있다. 게임 어플리케이션의 실행을 요청할 수 있는 유저 인터페이스는 하나 이상의 게임 어플리케이션을 실행할 수 있도록 하는 아이템들을 포함할 수 있다. 입력 장치 200는 이러한 유저 인터페이스에 기반하여 게임 어플리케이션의 실행 요청을 전송할 수 있다. 예를 들어 전자 장치 100는 도 6에 도시된 바와 같은 유저 인터페이스 600을 표시할 수 있다. According to one embodiment, the electronic device 100 may provide a user interface for requesting execution of a game application. The user interface for requesting execution of a game application may include items that enable execution of one or more game applications. The input device 200 may transmit a request for execution of the game application based on this user interface. For example, the electronic device 100 may display a user interface 600 as illustrated in FIG. 6.
사용자는 입력 장치 200를 이용하여 유저 인터페이스 600에서 예를 들어 제1게임 어플리케이션을 실행할 수 있는 아이템 610을 선택하면, 입력 장치 200는 아이템 610이 선택되었음을 나타내는 입력 신호를 전자 장치 100로 전송할 수 있다. 이러한 입력 신호는 제1 게임 어플리케이션의 실행 요청에 대응될 수 있다. When a user selects an item 610 capable of executing, for example, a first game application on a user interface 600 using an input device 200, the input device 200 may transmit an input signal indicating that the item 610 has been selected to the electronic device 100. This input signal may correspond to a request for executing the first game application.
동작 902에서, 전자 장치 100는 입력 장치 200로부터 수신된, 게임 어플리케이션 실행 요청에 따라 대응하는 게임 서버에 관련된 URL을 이용하여 해당 게임 서버에 접속하고 해당 게임 서버에 의해 제공되는 서버 홈 UI 화면을 요청할 수 있다. 예를 들어, 입력 장치 200로부터 제1게임 어플리케이션의 실행을 위한 아이템 610을 선택하는 입력을 수신한 경우에, 전자 장치 100는 제1 게임 서버에 관련된 URL을 이용하여 제1 게임 서버에 접속하고 제1 게임 서버에 의해 제공되는 게임 어플리케이션 UI를 요청할 수 있다. In operation 902, the electronic device 100 may access a game server using a URL related to the corresponding game server in response to a game application execution request received from the input device 200 and request a server home UI screen provided by the game server. For example, when an input for selecting item 610 for execution of a first game application is received from the input device 200, the electronic device 100 may access a first game server using a URL related to the first game server and request a game application UI provided by the first game server.
동작 903에서, 서버 300는 전자 장치 100의 요청에 따라 게임 어플리케이션 UI를 전자 장치 100로 전송할 수 있다. 게임 어플리케이션 UI 화면의 일부는 전자 장치 100가 미리 저장해 놓을 수 있고, 게임 어플리케이션 UI 화면의 일부를 제1게임 서버로부터 수신할 수도 있다. 예를 들어 전자 장치 100는 미리 저장된 게임 어플리케이션 UI 화면의 전체적인 레이아웃 정보를 이용하여 표시할 수 있고 제1게임 서버로부터 게임 어플리케이션 UI 화면에 표시되는 내용중 업데이트 내용만을 수신하여 표시할 수도 있다. In operation 903, the server 300 may transmit the game application UI to the electronic device 100 at the request of the electronic device 100. A portion of the game application UI screen may be pre-saved by the electronic device 100, and a portion of the game application UI screen may be received from the first game server. For example, the electronic device 100 may display the entire layout information of the pre-saved game application UI screen, or may receive and display only the updated contents among the contents displayed on the game application UI screen from the first game server.
동작 904에서, 전자 장치 100는 서버 300로부터 수신된 게임 어플리케이션 UI를 표시할 수 있다. 게임 어플리케이션 UI는 하나 이상의 게임 컨텐츠를 선택할 수 있는 아이템들을 포함하며, 일 예에 따라 도 7에 도시된 바와 같은 유저 인터페이스 700가 될 수 있다. In operation 904, the electronic device 100 may display a game application UI received from the server 300. The game application UI may include items for selecting one or more game contents, and may be a user interface 700 as illustrated in FIG. 7, for example.
동작 905에서, 입력 장치 200는 게임 어플리케이션 UI 화면에 표시된 게임 컨텐츠 실행 아이콘을 선택하는 입력을 전자 장치 100로 전송할 수 있다. 예를 들어 게임 어플리케이션 UI 화면은 하나 이상의 게임 컨텐츠 실행을 위한 아이템들을 포함할 수 있으며 사용자는 표시된 하나 이상의 게임 컨텐츠 실행을 위한 아이템들 중에서 원하는 하나의 게임 컨텐츠 실행을 위한 아이템을 입력 장치 200로 선택할 수 있다. 예를 들어 사용자는 도 7에 도시된 바와 같은 유저 인터페이스 700에서 게임 #1 아이템 710을 선택할 수 있다. 그러면 입력 장치 200는 게임 #1을 선택하는 입력을 전자 장치 100로 전송할 수 있다. In operation 905, the input device 200 may transmit an input for selecting a game content execution icon displayed on a game application UI screen to the electronic device 100. For example, the game application UI screen may include one or more items for executing game content, and the user may select a desired item for executing game content from among the displayed one or more items for executing game content using the input device 200. For example, the user may select the game #1 item 710 on the user interface 700 as illustrated in FIG. 7. Then, the input device 200 may transmit an input for selecting game #1 to the electronic device 100.
동작 906에서, 전자 장치 100는 게임 컨텐츠 실행 아이템을 선택하는 입력을 입력 장치 200로부터 수신하고, 이에 따라 선택된 게임 컨텐츠 실행 아이템에 대응하는 게임 컨텐츠의 실행 요청을 서버 300로 전송할 수 있다. In operation 906, the electronic device 100 may receive an input for selecting a game content execution item from the input device 200, and may transmit a request for executing game content corresponding to the selected game content execution item to the server 300.
동작 907에서, 서버 300는 전자 장치 100로부터 수신된 게임 컨텐츠 실행 요청에 따라 실행 요청된 게임 컨텐츠에 대응하는 메타데이터를 전자 장치 100로 전송할 수 있다. 이는 게임 컨텐츠의 재생을 위해서 전자 장치 100에서 미리 게임 컨텐츠의 재생을 위한 미디어 플레이어의 생성을 준비할 수 있도록 하기 위함이다. 전자 장치 100로 전송되는 미디어 컨텐츠에 대응하는 메타데이터는 인코딩 알고리즘, 비디오 프레임 사이즈, 비디오 프레임 레이트, 오디오 비트 레이트, 오디오 샘플 레이트 와 같은 인코딩 파라미터를 규정하는 미디어 타입 속성 (Media-type attributes), 타이틀, 아티스트, 장르, 인코딩 파라미터와 같이 미디어 컨텐츠의 설명 정보, 사용 제한과 같은 DRM 특성 정보를 포함할 수 있다. In operation 907, the server 300 may transmit metadata corresponding to the requested game content to the electronic device 100 in response to a game content execution request received from the electronic device 100. This is to enable the electronic device 100 to prepare in advance the creation of a media player for playing the game content in order to play the game content. The metadata corresponding to the media content transmitted to the electronic device 100 may include media-type attributes that specify encoding parameters such as an encoding algorithm, a video frame size, a video frame rate, an audio bit rate, and an audio sample rate, descriptive information of the media content such as a title, an artist, a genre, and encoding parameters, and DRM characteristic information such as usage restrictions.
동작 908에서, 전자 장치 100는 서버 300로부터 게임 컨텐츠에 대응하는 메타데이터를 수신하고 수신된 메타데이터에 포함된 정보를 이용하여 미디어 플레이어를 생성할 수 있다. 즉 전자 장치 100는 수신된 메타데이터를 참조하여 서버 300에서 제공하려고 하는 컨텐츠의 스트림을 재생하기에 적합한 미디어 플레이어를 생성할 수 있다. In operation 908, the electronic device 100 may receive metadata corresponding to game content from the server 300 and generate a media player using information included in the received metadata. That is, the electronic device 100 may generate a media player suitable for playing a stream of content to be provided by the server 300 by referring to the received metadata.
동작 909에서, 서버 300는 전자 장치 100에 의해 실행 요청된 게임 컨텐츠를 실행하고, 동작 910에서, 서버 300는 게임 컨텐츠 실행 결과로 나오는 게임 화면에 대응하는 오디오 비디오 스트림을 전자 장치 100로 스트리밍 전송할 수 있다. In operation 909, the server 300 executes the game content requested to be executed by the electronic device 100, and in operation 910, the server 300 can stream audio and video streams corresponding to the game screen resulting from the execution of the game content to the electronic device 100.
동작 911에서, 전자 장치 100는 서버 300로부터 미디어 컨텐츠 실행 결과로 나오는 게임 화면에 대응하는 오디오 비디오 스트림을 수신하고 미디어 플레이어를 이용하여 수신된 오디오 비디오 스트림을 재생할 수 있다. 이러한 오디오 비디오 스트림 재생에 따라 전자 장치 100는 게임 화면을 표시할 수 있다. In operation 911, the electronic device 100 may receive an audio/video stream corresponding to a game screen resulting from the execution of media content from the server 300 and play the received audio/video stream using a media player. Based on the playback of the audio/video stream, the electronic device 100 may display the game screen.
동작 912에서, 입력 장치 200는 게임 플레이를 위한 입력을 전자 장치 100로 전달할 수 있다. 사용자는 전자 장치 100의 디스플레이에 표시된 게임 화면을 보면서 게임 플레이를 위한 입력을 입력 장치 200를 이용하여 할 수 있다. 이에 따라 입력 장치 200는 사용자의 게임 플레이를 위한 입력을 전자 장치 100로 전송할 수 있다. In operation 912, the input device 200 can transmit input for game play to the electronic device 100. The user can use the input device 200 to input for game play while viewing the game screen displayed on the display of the electronic device 100. Accordingly, the input device 200 can transmit the user's input for game play to the electronic device 100.
동작 913에서, 전자 장치 100는 입력 장치 200로부터 수신된 게임 플레이를 위한 입력을 서버 300로 전달할 수 있다. 게임 플레이를 위한 입력은 입력 장치 200의 어떤 버튼이 눌렸는지에 대한 정보, 입력 장치 200의 특정 버튼을 선택한 시간 정보 또는 특정 버튼을 얼마 동안 누르고 있었는지 등 시간 정보도 포함할 수 있다. In operation 913, the electronic device 100 may transmit input for game play received from the input device 200 to the server 300. The input for game play may also include time information, such as information about which button of the input device 200 was pressed, information about the time a specific button of the input device 200 was selected, or information about how long a specific button was pressed.
동작 914에서, 서버 300는 전자 장치 100로부터 수신된 입력에 기반하여 게임 컨텐츠의 플레이를 제어할 수 있다. 즉 서버 300는 사용자의 게임 플레이를 위한 입력에 기반하여 게임 컨텐츠의 플레이를 위한 연산 등을 수행함으로써 게임 컨텐츠를 제어할 수 있다. In operation 914, the server 300 can control the play of the game content based on the input received from the electronic device 100. That is, the server 300 can control the game content by performing operations for the play of the game content based on the user's input for the game play.
동작 915에서, 서버 300는 게임 플레이의 제어 결과로 나온 결과 화면을 전자 장치 100로 전송할 수 있다. 이에 따라 전자 장치 100는 사용자의 게임 플레이 입력에 따라 제어된 게임 화면을 표시할 수 있게 된다. In operation 915, the server 300 can transmit a result screen resulting from the control of the game play to the electronic device 100. Accordingly, the electronic device 100 can display a game screen controlled according to the user's game play input.
도 10은 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다. FIG. 10 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to one embodiment.
도 9에 도시된 바와 같은 게임 어플리케이션의 실행 동작 동안 다양한 시점에서 전자 장치 100는 입력 장치 200로부터 사용자 입력을 수신할 수 있고, 수신된 사용자 입력을 소비할 목적지 즉 게임 어플리케이션이나 서버로 효율적으로 전달하는 것이 필요하다.At various points during the execution of a game application as illustrated in FIG. 9, the electronic device 100 may receive user input from the input device 200, and it is necessary to efficiently transmit the received user input to a destination that will consume the input, i.e., the game application or server.
도 10을 참조하면, 동작 1010에서, 전자 장치 100는 입력 장치 200로부터 입력 데이터를 수신할 수 있다. Referring to FIG. 10, at operation 1010, electronic device 100 may receive input data from input device 200.
일 실시예에 따라 전자 장치 100와 입력 장치 200는 블루투스 통신이나 와이파이 통신 등과 같은 근거리 통신을 이용하여 연결될 수 있다. 전자 장치 100는 입력 장치 200로부터 전달되는 입력 데이터를 통신 인터페이스를 통해서 수신할 수 있으며 통신 인터페이스를 통해서 수신된 입력 데이터는 게임 구동부 132로 전달될 수 있다. According to one embodiment, the electronic device 100 and the input device 200 may be connected using short-range communication, such as Bluetooth communication or Wi-Fi communication. The electronic device 100 may receive input data transmitted from the input device 200 through a communication interface, and the input data received through the communication interface may be transmitted to the game driver 132.
동작 1020에서, 게임 구동부 132는, 입력 데이터를 수신하면, 최상단 윈도우 레이어에 있는 어플리케이션이 게임 어플리케이션인지를 식별할 수 있다. 식별 결과 최상단 윈도우 레이어에 있는 어플리케이션이 게임 어플리케이션 인 경우에는 동작 1030으로 진행하고, 최상단 윈도우 레이어에 있는 어플리케이션이 게임 어플리케이션이 아닌 경우에는 동작 1040으로 진행할 수 있다. At operation 1020, the game driver 132, upon receiving input data, can identify whether the application in the topmost window layer is a game application. If the identification result shows that the application in the topmost window layer is a game application, the process proceeds to operation 1030. If the application in the topmost window layer is not a game application, the process proceeds to operation 1040.
동작 1030에서, 게임 구동부 132는 미디어 플레이어의 상태가 플레이 상태인지를 식별할 수 있다. At operation 1030, the game driver 132 can identify whether the state of the media player is a play state.
동작 1030의 식별 결과, 미디어 플레이어의 상태가 플레이 상태가 아닌 것으로 식별된 경우에 동작 1040으로 진행할 수 있다. If the status of the media player is identified as not being in a play state as a result of the identification of operation 1030, the process can proceed to operation 1040.
동작 1040에서, 게임 구동부 132는 입력 데이터를 게임 어플리케이션 132를 제공할 수 있다. 즉, 게임 어플리케이션이 실행중이면서 미디어 플레이어의 상태가 플레이 상태가 아니라는 것은, 게임 어플리케이션은 실행 시작 되었지만 아직 서버 300로부터 실제 스트림을 수신하여 재생이 시작되기 전이거나 또는 이미 재생이 모두 완료되어, 게임 어플리케이션 유저 인터페이스가 표시된 상태를 의미할 수 있다. 따라서 이러한 상태에서 입력 장치 200로부터 수신되는 입력 데이터는 게임 어플리케이션의 UI 제어에 이용되는 것이므로, 이러한 입력 데이터가 게임 어플리케이션 131에 의해 이용될 수 있도록 게임 어플리케이션 131로 제공할 수 있다. 게임 어플리케이션의 UI는 예를 들어 도 7에 도시된 유저 인터페이스 700 를 포함할 수 있다. In operation 1040, the game driver 132 may provide input data to the game application 132. That is, when the game application is running and the state of the media player is not in the play state, it may mean that the game application has started running but has not yet received an actual stream from the server 300 and has not started playing, or that the playing has already been completed and the game application user interface is displayed. Accordingly, since the input data received from the input device 200 in this state is used to control the UI of the game application, such input data may be provided to the game application 131 so that it can be used by the game application 131. The UI of the game application may include, for example, the user interface 700 illustrated in FIG. 7.
그러면 동작 1050에서 게임 어플리케이션 131는 게임 구동부 132로부터 제공된 입력 데이터에 기반하여 유저 인터페이스를 제어할 수 있다. 예를 들어 사용자가 유저 인터페이스 700에서 게임 컨텐츠 검색을 위한 아이템 720을 선택하는 입력을 한 경우, 이러한 입력에 따라 게임 어플리케이션 131은 게임 컨텐츠 검색 동작을 위해 예를 들어 가상 키보드를 표시하고 사용자에 의해 추후 입력된 키워드에 대응하는 검색 동작 등을 수행할 수 있다. Then, in operation 1050, the game application 131 can control the user interface based on input data provided from the game driver 132. For example, if the user inputs an item 720 for searching game content in the user interface 700, the game application 131 can perform a game content search operation, such as displaying a virtual keyboard and performing a search operation corresponding to a keyword later entered by the user, based on this input.
동작 1030의 식별 결과, 미디어 플레이어의 상태가 플레이 상태인 것으로 식별된 경우에 동작 1060으로 진행할 수 있다. 즉, 게임 어플리케이션이 실행중이면서 미디어 플레이어의 상태가 플레이 상태라는 것은, 전자 장치 100는 서버 300로부터 게임 화면에 대응하는 오디오 비디오 스트림을 수신하여 이를 재생하는 상태를 의미할 수 있다. 따라서 이러한 상태에서 입력 장치 200로부터 수신되는 입력 데이터를 게임 플레이의 제어를 위한 것이므로 이러한 입력 데이터가 서버 300에 의해 이용될 수 있도록 서버 300로 제공하는 것이 바람직하다. If it is determined in operation 1030 that the state of the media player is in a play state, the process may proceed to operation 1060. In other words, when the game application is running and the state of the media player is in a play state, this may mean that the electronic device 100 receives an audio/video stream corresponding to the game screen from the server 300 and plays it. Therefore, since the input data received from the input device 200 in this state is for controlling the game play, it is preferable to provide the input data to the server 300 so that the server 300 can utilize the input data.
동작 1060에서 게임 구동부 132는 입력 데이터를 서버 300로 전달할 수 있다. 종래에는 게임 어플리케이션의 실행 동안 수신되는 입력 데이터를 어떻게 처리할지에 대한 시나리오를 모두 게임 어플리케이션이 갖고 있었다. 따라서, 입력 데이터가 바로 서버 300에서 사용될 데이터인 경우에도 일단 게임 구동부 132는 입력 데이터를 게임 어플리케이션 131로 전달하고 게임 어플리케이션 131이 해당 입력 데이터를 서버 300로 전달해야 할 것이라고 결정하면 그때 다시 게임 구동부 131는 게임 어플리케이션 131로부터 입력 데이터를 수신하고 수신된 입력 데이터를 서버 300로 전달할 수 있었다. 그러나 본 개시의 실시예에 따르면 게임 구동부 132 자체의 판단에 따라 서버 300에서 소비될 입력 데이터임을 판단하고, 게임 어플리케이션 131로 전달할 필요없이 바로 서버 300로 전달함으로써 레이턴시를 현저히 감소시킬 수 있다. In operation 1060, the game driver 132 can transmit input data to the server 300. Conventionally, the game application has all scenarios for how to process input data received while the game application is running. Therefore, even if the input data is data to be used directly in the server 300, the game driver 132 can first transmit the input data to the game application 131, and when the game application 131 determines that the input data should be transmitted to the server 300, the game driver 131 can then receive the input data from the game application 131 and transmit the received input data to the server 300. However, according to the embodiment of the present disclosure, the game driver 132 determines that the input data is to be consumed in the server 300 based on its own judgment, and transmits it directly to the server 300 without having to transmit it to the game application 131, thereby significantly reducing latency.
동작 1070에서, 서버 300는 게임 구동부 132로부터 입력 데이터를 수신하고 입력 데이터에 기반하여 게임 컨텐츠를 실행할 수 있다. In operation 1070, server 300 may receive input data from game driver 132 and execute game content based on the input data.
도 11 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다. FIG. 11 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to an embodiment.
도 11에 도시된 동작은 도 10에 도시된 동작과 대부분 동일하며 다만 동작 1110 과 1120를 더 포함하는 것에 차이점이 있다. 즉, 전자 장치 100가 서버 300로부터 게임 컨텐츠에 대응하는 오디오 비디오 스트림을 수신하여 게임 컨텐츠를 플레이하는 동안에도 게임 어플리케이션의 자체 동작에 의해 유저 인터페이스를 출력하는 상황이 존재할 수 있다. 이와 같은 경우에는 미디어 플레이어의 상태가 재생 상태 인 경우라도 디스플레이 화면에 유저 인터페이스가 표시되는 중이므로 이때의 사용자 입력은 서버 300로 전송되는 것이 아니라 게임 어플리케이션 131에 의해 UI 제어될 수 있도록 게임 어플리케이션 131로 전달되는 것이 바람직하다. The operation illustrated in FIG. 11 is mostly the same as the operation illustrated in FIG. 10, except that it further includes operations 1110 and 1120. That is, there may be a situation in which the electronic device 100 receives an audio/video stream corresponding to the game content from the server 300 and outputs a user interface by the game application's own operation even while playing the game content. In such a case, since the user interface is being displayed on the display screen even when the state of the media player is in the playing state, it is preferable that the user input at this time is not transmitted to the server 300, but rather is transmitted to the game application 131 so that it can be UI controlled by the game application 131.
도 11을 참조하면, 동작 1010 내지 동작 1040은 도 10에서와 동일하므로 설명은 생략하기로 한다. Referring to Fig. 11, operations 1010 to 1040 are the same as in Fig. 10, so their description will be omitted.
동작 1030의 식별 결과, 미디어 플레이어의 상태가 플레이 상태인 것으로 식별된 경우에 동작 1110으로 진행할 수 있다. 즉, 게임 어플리케이션이 실행중이면서 미디어 플레이어의 상태가 플레이 상태라는 것은, 전자 장치 100는 서버 300로부터 게임 화면에 대응하는 오디오 비디오 스트림을 수신하여 이를 재생하는 상태를 의미할 수 있다. 전자 장치 100가 게임 화면을 재생하는 상태에서도 게임 어플리케이션 자체에 의한 UI 가 표시된 상태가 있을 수 있다. 이러한 상황에 서 수신된 입력 데이터는 서버 300 대신에 게임 어플리케이션 131에서 소비되는 것이 바람직하므로 동작 1110에서와 같은 판단 동작을 마련할 수 있다. As a result of the identification of operation 1030, if it is determined that the state of the media player is in a play state, the process may proceed to operation 1110. That is, when the game application is running and the state of the media player is in a play state, it may mean that the electronic device 100 receives an audio/video stream corresponding to the game screen from the server 300 and plays it. Even when the electronic device 100 is playing the game screen, there may be a state in which a UI by the game application itself is displayed. In this situation, it is preferable that the received input data be consumed by the game application 131 instead of the server 300, and therefore, a judgment operation such as in operation 1110 may be provided.
동작 1110에서 게임 구동부 132는 게임 어플리케이션 상태 정보가 UI 표시 중 인지를 식별할 수 있다. 예를 들어 게임 어플리케이션 131은 미디어 플레이어의 상태가 플레이 상태 인 경우라도 자체적인 어떤 원인에 의해 UI 를 표시할 상황이 있을 수 있다. 이러한 경우에 게임 어플리케이션 131는 UI를 표시할 수 있으며 UI 표시 중이라는 상태를 게임 구동부 132에 통지할 수 있다. 따라서 게임 구동부 132는 게임 어플리케이션의 상태 정보가 UI 표시 중임을 식별할 수 있다. In operation 1110, the game driver 132 can identify whether the game application status information is displaying a UI. For example, the game application 131 may display a UI for some reason of its own even when the media player status is in a play state. In such a case, the game application 131 can display the UI and notify the game driver 132 of the UI display status. Therefore, the game driver 132 can identify whether the game application status information is displaying a UI.
도 12는 일 실시예에 따라 게임 플레이 중 UI 를 표시하는 예를 설명하기 위한 참고도이다. FIG. 12 is a reference diagram for explaining an example of displaying a UI during game play according to one embodiment.
예를 들어 전자 장치 100가 서버 300로부터 게임 컨텐츠에 대응하는 오디오 비디오 스트림을 수신하여 재생함으로써 게임 화면 1200을 표시하면서 게임 플레이가 되는 상태에서 사용자로부터 일정한 시간 동안 입력이 수신되지 않는 경우 전자 장치 100는 도 12에 도시된 바와 같은 유저 인터페이스 1210를 표시할 수 있다. 즉, 게임 플레이 되는 상황에서 일정한 시간 동안 사용자 입력이 수신되지 않는 경우 전자 장치 100는 사용자가 계속 게임을 플레이할 의도가 있는지 여부를 확인하기 위해 유저 인터페이스 1210을 출력할 수 있다. 유저 인터페이스 1210는 사용자에게 게임을 그만두기를 원하는지 문의하는 메시지와 함께 QUIT GAME 아이템 1211 및 NEVER MIND 아이템 1212를 포함할 수 있다. 사용자는 게임을 계속 하고 싶은 경우 NEVER MIND 아이템 1212을 선택함으로써 게임 진행을 계속할 수 있다. 사용자는 게임을 중단하고 싶은 경우 QUIT GAME 아이템 1211을 선택함으로써 게임 종료를 할 수 있다. 따라서 이러한 유저 인터페이스 1210가 표시되는 동안에 수신되는 사용자 입력은 게임 어플리케이션 131이 UI 제어를 위해 사용될 필요가 있다. For example, when the electronic device 100 displays a game screen 1200 by receiving and playing an audio/video stream corresponding to game content from the server 300 and no input is received from the user for a certain period of time while the game is being played, the electronic device 100 may display a user interface 1210 as illustrated in FIG. 12. That is, when no user input is received for a certain period of time while the game is being played, the electronic device 100 may output the user interface 1210 to determine whether the user intends to continue playing the game. The user interface 1210 may include a QUIT GAME item 1211 and a NEVER MIND item 1212 along with a message asking the user whether he or she wants to quit the game. If the user wants to continue playing the game, he or she can continue playing the game by selecting the NEVER MIND item 1212. If the user wants to stop playing the game, he or she can exit the game by selecting the QUIT GAME item 1211. Therefore, while this user interface 1210 is displayed, any user input received needs to be used by the game application 131 to control the UI.
다시 도 11로 돌아가서, 동작 1110에서 식별 결과 게임 어플리케이션 상태 정보가 UI 표시 중이라고 식별된 경우 동작 1120을 진행할 수 있다.Returning to Figure 11 again, if it is identified in operation 1110 that the game application status information is being displayed on the UI, operation 1120 can be performed.
동작 1120에서, 게임 구동부 132는 입력 데이터를 게임 어플리케이션 131로 전달할 수 있다. At operation 1120, the game driver 132 may transmit input data to the game application 131.
그러면 동작 1050에서 게임 어플리케이션 131는 수신된 입력 데이터에 기반하여 UI 제어 등의 동작을 수행할 수 있다. Then, in operation 1050, the game application 131 can perform operations such as UI control based on the received input data.
동작 1110의 식별 결과 게임 어플리케이션의 상태 정보가 UI 표시 중이 아니라고 식별된 경우 동작 1060으로 진행할 수 있다. 동작 1060 및 동작 1070의 동작은 도 10에서 설명한 바와 동일하므로 더 이상의 설명은 생략한다.If the identification result of operation 1110 determines that the status information of the game application is not being displayed on the UI, the process can proceed to operation 1060. The operations of operations 1060 and 1070 are the same as those described in Fig. 10, and therefore further description is omitted.
도 13은 일 실시예에 따라 게임 어플리케이션의 실행 동안 전자 장치의 동작 방법의 흐름도의 일 예를 나타낸다. FIG. 13 illustrates an example of a flowchart of a method of operating an electronic device during execution of a game application according to one embodiment.
도 13의 동작은 도 10에서 동작 1020의 판단 결과 최상단 윈도우 레이어에 있는 어플리케이션이 게임 어플리케이션이 아니라고 판단된 경우에 수행될 수 있다. The operation of FIG. 13 can be performed when it is determined in the judgment result of operation 1020 of FIG. 10 that the application in the top window layer is not a game application.
동작 1310에서, 게임 구동부 132는, 최상단 윈도우 레이어에 있는 어플리케이션이 시스템 유저 인터페이스 어플리케이션 임을 식별할 수 있다. 시스템 유저 인터페이스 어플리케이션은 전자 장치 100의 시스템에서 생성된 어플리케이션을 포함할 수 있다. 예를 들어 게임 플레이 도중 사용자는 게임 어플리케이션 내의 설정이나 제어가 아니라 전자 장치 100의 시스템에 의한 제어를 위해 특정한 버튼을 누름으로써 시스템 유저 인터페이스가 출력되게 할 수 있다. 이러한 시스템 유저 인터페이스는 퀵 패널을 포함할 수 있다. In operation 1310, the game driver 132 can identify that the application in the topmost window layer is a system user interface application. The system user interface application may include an application generated by the system of the electronic device 100. For example, during game play, the user may cause the system user interface to be displayed by pressing a specific button for control by the system of the electronic device 100 rather than for settings or controls within the game application. This system user interface may include a quick panel.
도 14는 일 실시예에 따라 퀵 패널의 예를 나타낸다. Figure 14 illustrates an example of a quick panel according to one embodiment.
사용자는 게임 플레이를 하는 동안 퀵 패널을 불러오기 위해 입력 장치 100에 마련된 특정한 버튼을 길게 누르는 롱 프레스 동작을 함으로써 퀵 패널을 표시되게 할 수 있다. 입력 장치 100로부터의 입력 데이터이지만 특정한 버튼을 길게 누르는 롱 프레스에 대응하는 입력 신호를 전자 장치 100가 수신한 경우 이는 게임 어플리케이션의 동작이 아니라 전자 장치 100의 시스템 UI 모듈에 의해서 동작되어야 하므로 이러한 입력 신호는 시스템 UI 모듈 1300로 전달될 수 있고, 시스템 UI 모듈 1300은 도 14에 도시된 바와 같은 퀵 패널 1400을 표시할 수 있다. 이와 같이 시스템 UI 모듈 1300이 트리거되어 동작되므로 최상단 윈도우 레이어에는 시스템 UI 어플리케이션이 위치할 수 있다. A user can display a quick panel by performing a long press action of pressing a specific button provided on an input device 100 while playing a game to call up the quick panel. When an electronic device 100 receives an input signal corresponding to a long press of a specific button, which is input data from the input device 100, this should be operated by the system UI module of the electronic device 100, not by the operation of a game application. Therefore, this input signal can be transmitted to the system UI module 1300, and the system UI module 1300 can display a quick panel 1400 as illustrated in FIG. 14. Since the system UI module 1300 is triggered and operated in this way, a system UI application can be located on the topmost window layer.
도 14를 참조하면, 퀵 패널 1400는 예를 들어, 어플리케이션을 관리할 수 있는 아이템 1410, 음악을 재생할 수 있도록 하는 아이템 1420, 게임 화면을 방송할 수 있도록 하는 아이템 1430, 설정을 변경할 수 있도록 하는 아이템 1440, 최근에 플레이한 게임들의 목록을 나타내는 아이템 1450, 홈 화면으로 갈 수 있는 아이템 1460을 포함할 수 있다. Referring to FIG. 14, the quick panel 1400 may include, for example, an item 1410 for managing applications, an item 1420 for playing music, an item 1430 for broadcasting a game screen, an item 1440 for changing settings, an item 1450 for displaying a list of recently played games, and an item 1460 for going to the home screen.
다시 도 13으로 돌아가서, 동작 1320에서, 게임 구동부 132는 시스템 유저 인터페이스가 포커스를 가지는지 식별할 수 있다. 시스템 유저 인터페이스라도 포커스 된 것이라면 해당 시스템 유저 어플리케이션이 입력 데이터를 기반으로 어떤 동작이나 제어를 하는 것을 의미할 수 있다. 예를 들어 포커스를 가지는 시스템 유저 인터페이스는 퀵 패널을 포함할 수 있다. 시스템 유저 인터페이스라도 포커스가 없다면 이는 시스템 유저 어플리케이션이 어떤 동작을 하는 것이 아니라 단순히 시스템 유저 인터페이스를 표시만 하는 것을 나타낼 수 있다. 예를 들어 포커스를 가지지 않는 시스템 유저 인터페이스는 단순히 알림의 기능만을 가지는 인터페이스로서, 예를 들어 사용자 전자 장치 100의 볼륨을 증가시키는 입력을 하는 경우에 볼륨이 증가되는 것을 나타내는 메시지 등을 포함할 수 있다. 예를 들어 도 15에 도시된 바와 같은 볼륨 메시지 1500는 포커스를 가지지 않으며 단지 정보 표시만을 나타내는 유저 인터페이스를 나타낼 수 있다. Returning to FIG. 13, at operation 1320, the game driver 132 can identify whether the system user interface has focus. If the system user interface has focus, this may indicate that the corresponding system user application is performing some action or control based on input data. For example, a system user interface with focus may include a quick panel. If a system user interface does not have focus, this may indicate that the system user application is not performing any action but is simply displaying the system user interface. For example, a system user interface without focus may be an interface that simply has a notification function, such as a message indicating that the volume of the user electronic device 100 is increasing when an input is made to increase the volume. For example, a volume message 1500 as illustrated in FIG. 15 may indicate a user interface that does not have focus and only displays information.
동작 1320의 판단 결과, 시스템 유저 인터페이스가 포커스를 가지지 않는 것으로 식별된 경우에 동작 1330으로 진행할 수 있다. 이러한 상태에서 입력 장치 200로부터 수신되는 입력 데이터를 게임 플레이의 제어를 위한 것이므로 이러한 입력 데이터가 서버 300에 의해 이용될 수 있도록 서버 300로 제공하는 것이 바람직하다. If it is determined in operation 1320 that the system user interface does not have focus, the process may proceed to operation 1330. In this state, since the input data received from the input device 200 is for controlling game play, it is desirable to provide such input data to the server 300 so that the server 300 can utilize it.
동작 13300에서 게임 구동부 132는 입력 데이터를 서버 300로 전달할 수 있다. 종래에는 게임 어플리케이션의 실행 동안 수신되는 입력 데이터를 어떻게 처리할지에 대한 시나리오를 모두 게임 어플리케이션이 갖고 있었다. 따라서, 입력 데이터가 바로 서버 300에서 사용될 데이터인 경우에도 일단 게임 구동부 132는 입력 데이터를 게임 어플리케이션 131로 전달하고 게임 어플리케이션 131이 해당 입력 데이터를 서버 300로 전달해야 할 것이라고 결정하면 그때 다시 게임 구동부 131는 게임 어플리케이션 131로부터 입력 데이터를 수신하고 수신된 입력 데이터를 서버 300로 전달할 수 있었다. 그러나 본 개시의 실시예에 따르면 게임 구동부 132 자체의 판단에 따라 서버 300에서 소비될 입력 데이터임을 판단하고, 게임 어플리케이션 131로 전달할 필요없이 바로 서버 300로 전달함으로써 레이턴시를 현저히 감소시킬 수 있다. In operation 13300, the game driver 132 can transmit input data to the server 300. Conventionally, the game application has all scenarios for how to process input data received while the game application is running. Therefore, even if the input data is data to be used directly in the server 300, the game driver 132 can first transmit the input data to the game application 131, and when the game application 131 determines that the input data should be transmitted to the server 300, the game driver 131 can then receive the input data from the game application 131 and transmit the received input data to the server 300. However, according to the embodiment of the present disclosure, the game driver 132 determines that the input data is to be consumed in the server 300 based on its own judgment, and transmits it directly to the server 300 without having to transmit it to the game application 131, thereby significantly reducing latency.
동작 1340에서, 서버 300는 게임 구동부 132로부터 입력 데이터를 수신하고 입력 데이터에 기반하여 게임 컨텐츠를 실행할 수 있다. At operation 1340, the server 300 may receive input data from the game driver 132 and execute game content based on the input data.
동작 1320의 판단 결과, 시스템 유저 인터페이스가 포커스를 가지는 것으로 식별된 경우에 동작 1350으로 진행할 수 있다. If the system user interface is identified as having focus as a result of the judgment in operation 1320, the process can proceed to operation 1350.
동작 1350에서 게임 구동부 132는 입력 데이터를 시스템 UI 모듈로 전달할 수 있다. 즉 시스템 유저 인터페이스를 출력한 시스템 UI 모듈로 입력 데이터를 전달함으로써 시스템 UI 모듈로 하여금 입력 데이터에 기반하여 UI를 제어하게끔 할 수 있다. In operation 1350, the game driver 132 can transmit input data to the system UI module. That is, by transmitting the input data to the system UI module that outputs the system user interface, the system UI module can control the UI based on the input data.
동작 1360에서, 시스템 UI 모듈은 게임 구동부 132에 의해 전달된 입력 데이터에 기반하여 UI를 제어할 수 있다. 예를 들어 입력 데이터가 퀵 패널 1400에서 홈 화면으로 갈 수 있는 아이템 1460을 선택하는 입력을 나타내는 경우, 시스템 UI 모듈은 홈 화면을 디스플레이에 표시하기 위한 동작을 수행할 수 있다. At operation 1360, the system UI module may control the UI based on input data transmitted by the game driver 132. For example, if the input data represents an input for selecting an item 1460 that can go to the home screen from the quick panel 1400, the system UI module may perform an operation to display the home screen on the display.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.Some embodiments may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules, executed by a computer. Computer-readable media may be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Computer-readable media may also include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
개시된 실시예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다. The disclosed embodiments can be implemented as a S/W program including commands stored in a computer-readable storage media.
컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치를 포함할 수 있다.A computer may include an electronic device according to the disclosed embodiments, as a device capable of calling a command stored from a storage medium and performing an operation according to the called command according to the disclosed embodiments.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서,‘비일시적’은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Computer-readable storage media may be provided in the form of non-transitory storage media. Here, "non-transitory" simply means that the storage medium does not contain signals and is tangible, but does not distinguish between whether data is stored semi-permanently or temporarily on the storage medium.
또한, 개시된 실시예들에 따른 제어 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Additionally, the control method according to the disclosed embodiments may be provided as a computer program product. The computer program product may be traded as a product between a seller and a buyer.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, the computer program product may include a product in the form of a software program (e.g., a downloadable app) distributed electronically by a device manufacturer or through an electronic marketplace (e.g., Google Play Store, App Store). For electronic distribution, at least a portion of the software program may be stored on a storage medium or temporarily created. In this case, the storage medium may be a storage medium of a manufacturer's server, an electronic marketplace server, or a relay server that temporarily stores the software program.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제 3 장치로 전송되거나, 제 3 장치로부터 디바이스로 전송되는 S/W 프로그램 자체를 포함할 수 있다.In a system comprising a server and a device, the computer program product may include a storage medium of the server or a storage medium of the device. Alternatively, if a third device (e.g., a smartphone) exists that is communicatively connected to the server or device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include a software program itself that is transmitted from the server to the device or the third device, or from the third device to the device.
이 경우, 서버, 디바이스 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments in a distributed manner.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (e.g., a cloud server or an artificial intelligence server, etc.) may execute a computer program product stored on the server to control a device in communication with the server to perform a method according to the disclosed embodiments.
또 다른 예로, 제 3 장치가 컴퓨터 프로그램 제품을 실행하여, 제 3 장치와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제 3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제 3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드 된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제 3 장치는 프리로드 된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.As another example, a third device may execute a computer program product to control a device in communication with the third device to perform a method according to the disclosed embodiments. When the third device executes the computer program product, the third device may download the computer program product from a server and execute the downloaded computer program product. Alternatively, the third device may execute a computer program product provided in a preloaded state to perform the method according to the disclosed embodiments.
또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.Additionally, in this specification, a “part” may be a hardware component such as a processor or circuit, and/or a software component executed by a hardware component such as a processor.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present disclosure is provided for illustrative purposes only, and those skilled in the art will readily appreciate that modifications to other specific forms can be made without altering the technical spirit or essential features of the present disclosure. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. For example, components described as being single may be implemented in a distributed manner, and similarly, components described as being distributed may be implemented in a combined manner.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the claims described below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present disclosure.
Claims (20)
통신 인터페이스 110,
클라우드 게임 컨텐츠의 실행에 대응하는 게임 어플리케이션 및 상기 게임 어플리케이션의 실행을 위한 게임 구동부를 저장하는 메모리 130, 및
상기 메모리에 저장된 하나 이상의 인스트럭션을 실행하는 프로세서 140를 포함하고,
상기 프로세서 140는 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하고,
활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하도록 제어하는, 전자 장치. In electronic device 100,
Communication interface 110,
Memory 130 for storing a game application corresponding to the execution of cloud game content and a game driving unit for executing the game application, and
A processor 140 comprising one or more instructions stored in the memory,
The above processor 140 executes one or more of the instructions,
By the above game driver, input data is received while executing the game application,
An electronic device that controls whether the application corresponding to the activated window corresponds to the game application, and transmits the received input data to a server transmitting the cloud game content or provides the received input data to the game application, depending on whether the player's status for executing the cloud game content is a play status.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 플레이어의 상태가 상기 플레이 상태이면, 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하고,
상기 플레이어의 상태가 상기 플레이 상태가 아니면, 상기 게임 어플리케이션이 상기 입력 데이터에 기반하여 동작하도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공하도록 제어하는, 전자 장치. In the first paragraph,
The above processor 140 executes one or more instructions,
If the state of the player is the play state, the input data is transmitted to the server transmitting the cloud game content,
An electronic device that controls the input data to be provided to the game application so that the game application operates based on the input data when the state of the player is not the play state.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션과 관련된 유저 인터페이스 출력에 대응하는 상태 정보를 수신하고,
상기 수신한 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 입력 데이터에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공하도록 제어하는, 전자 장치. In claim 1 or 2,
The above processor 140 executes one or more instructions,
While the state of the above player is the above play state, receiving state information corresponding to a user interface output related to the above game application from the above game application,
An electronic device that controls, based on the received status information, to provide the input data to the game application so that the game application can operate based on the input data.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션이면, 상기 시스템 유저 인터페이스내에 포커스가 위치하는지 여부에 따라 상기 입력 데이터를 다르게 처리하도록 제어하는, 전자 장치. In any one of the first to third paragraphs,
The above processor 140 executes one or more instructions,
An electronic device that controls the processing of input data differently depending on whether the focus is located within the system user interface, if the application corresponding to the activated window is an application corresponding to the system user interface.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 시스템 유저 인터페이스내에 상기 포커스가 위치하면, 상기 입력 데이터를 시스템 UI 모듈로 전달하고,
상기 시스템 유저 인터페이스내에 상기 포커스가 위치하지 않으면 상기 입력 데이터를 상기 서버로 전송하도록 제어하는, 전자 장치.In any one of the first to fourth paragraphs,
The above processor 140 executes one or more instructions,
When the focus is located within the above system user interface, the input data is transmitted to the system UI module,
An electronic device that controls the transmission of the input data to the server when the focus is not located within the system user interface.
상기 포커스가 위치하는 상기 시스템 유저 인터페이스는 퀵 패널에 대응하는 유저 인터페이스를 포함하는, 전자 장치. In any one of the first to fifth paragraphs,
An electronic device, wherein the system user interface on which the focus is located includes a user interface corresponding to a quick panel.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
윈도우 스택에서 최상단 레이어에 있는 어플리케이션을상기 활성화된 윈도우에 대응하는 어플리케이션으로 식별하도록 제어하는, 전자 장치. In any one of claims 1 to 6,
The above processor 140 executes one or more instructions,
An electronic device that controls the identification of an application at the top layer in a window stack as the application corresponding to the activated window.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 클라우드 게임 컨텐츠의 실행을 위한 상기 플레이어를 생성하고,
상기 생성된 플레이어의 오디오 디코더 또는 비디오 디코더 중 적어도 하나의 동작 상태에 기반하여 상기 플레이어의 상태가 상기 플레이 상태인지를 식별하는, 전자 장치. In any one of the first to seventh paragraphs,
The above processor 140 executes one or more instructions,
Create the player for executing the above cloud game content,
An electronic device that identifies whether the state of the player is the play state based on the operational state of at least one of the audio decoder or video decoder of the generated player.
상기 프로세서 140는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 서버로부터 수신한 상기 클라우드 게임 컨텐츠의 메타데이터에 기반하여 상기 플레이어를 생성하는, 전자 장치.In any one of claims 1 to 8,
The above processor 140 executes one or more instructions,
An electronic device that creates the player based on metadata of the cloud game content received from the server.
상기 입력 데이터를 상기 서버로 전송함에 따라 상기 서버로부터 상기 입력 데이터에 기반하여 상기 클라우드 게임 컨텐츠를 실행한 결과 화면을 수신하고,
상기 입력 데이터를 상기 게임 어플리케이션에 제공함에 따라 상기 게임 어플리케이션이 상기 입력 데이터를 기반으로 동작하도록 제어하는, 전자 장치. In any one of claims 1 to 9,
By transmitting the above input data to the server, a result screen for executing the cloud game content based on the above input data is received from the server,
An electronic device that controls the game application to operate based on the input data by providing the input data to the game application.
상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하는 동작, 및
활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하는 동작을 포함하는, 방법. A method for operating an electronic device 100 including a game application corresponding to the execution of cloud game content and a game driving unit for executing the game application,
An operation of receiving input data while executing the game application by the above game driving unit, and
A method comprising an operation of transmitting the received input data to a server transmitting the cloud game content or providing the received input data to the game application, depending on whether the state of the player for executing the cloud game content is a play state, when the application corresponding to the activated window corresponds to the game application.
상기 플레이어의 상태가 상기 플레이 상태이면, 상기 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하는 동작, 및
상기 플레이어의 상태가 상기 플레이 상태가 아니면, 상기 게임 어플리케이션이 상기 입력 데이터에 기반하여 동작하도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공하는 동작을 포함하는, 방법. In Article 11,
If the state of the player is the play state, an operation of transmitting the input data to a server transmitting the cloud game content, and
A method comprising an action of providing the input data to the game application so that the game application operates based on the input data if the state of the player is not the play state.
상기 플레이어의 상태가 상기 플레이 상태 인 동안, 상기 게임 어플리케이션으로부터 상기 게임 어플리케이션과 관련된 유저 인터페이스 출력에 대응하는 상태 정보를 수신하는 동작, 및
상기 수신한 상태 정보에 기반하여, 상기 게임 어플리케이션이 상기 입력 데이터에 기반하여 동작할 수 있도록 상기 입력 데이터를 상기 게임 어플리케이션에 제공하는 동작을 포함하는, 방법. In claim 11 or 12,
An operation of receiving status information corresponding to a user interface output related to the game application from the game application while the state of the player is the play state, and
A method comprising an action of providing the input data to the game application so that the game application can operate based on the input data, based on the received status information.
상기 활성화된 윈도우에 대응하는 어플리케이션이 시스템 유저 인터페이스에 대응하는 어플리케이션이면, 상기 시스템 유저 인터페이스내에 포커스가 위치하는지 여부에 따라 상기 입력 데이터를 다르게 처리하도록 제어하는 동작을 포함하는, 방법. In any one of Articles 11 to 13,
A method comprising an operation for controlling the processing of the input data differently depending on whether the focus is located within the system user interface, if the application corresponding to the activated window is an application corresponding to the system user interface.
상기 시스템 유저 인터페이스내에 상기 포커스가 위치하면, 상기 입력 데이터를 시스템 UI 모듈로 전달하는 동작, 및
상기 시스템 유저 인터페이스내에 상기 포커스가 위치하지 않으면 상기 입력 데이터를 상기 서버로 전송하는 동작을 포함하는, 방법.In any one of Articles 11 to 14,
When the focus is located within the above system user interface, an operation of transmitting the input data to the system UI module, and
A method comprising an action of transmitting the input data to the server when the focus is not located within the system user interface.
상기 포커스가 위치하는 상기 시스템 유저 인터페이스는 퀵 패널에 대응하는 유저 인터페이스를 포함하는, 방법.In any one of Articles 11 to 15,
A method wherein the system user interface on which the focus is located includes a user interface corresponding to a quick panel.
윈도우 스택에 기초하여 상기 활성화된 윈도우에 대응하는 어플리케이션을 식별하는 동작을 포함하는, 방법.In any one of Articles 11 to 16,
A method comprising an operation of identifying an application corresponding to the activated window based on a window stack.
상기 클라우드 게임 컨텐츠의 실행을 위한 상기 플레이어를 생성하는 동작, 및
상기 생성된 플레이어의 오디오 디코더 또는 비디오 디코더 중 적어도 하나의 동작 상태에 기반하여 상기 플레이어의 상태가 상기 플레이 상태인지를 식별하는 동작을 포함하는, 방법. In any one of Articles 11 to 17,
An action to create the player for executing the cloud game content, and
A method comprising an operation of identifying whether the state of the player is the play state based on the operational state of at least one of an audio decoder or a video decoder of the generated player.
상기 입력 데이터를 상기 서버로 전송함에 따라 상기 서버로부터 상기 입력 데이터에 기반하여 상기 클라우드 게임 컨텐츠를 실행한 결과 화면을 수신하는 동작, 및
상기 입력 데이터를 상기 게임 어플리케이션에 제공함에 따라 상기 게임 어플리케이션이 상기 입력 데이터를 기반으로 동작하도록 제어하는 동작을 포함하는, 방법. In any one of Articles 11 to 18,
An operation of receiving a result screen of executing the cloud game content based on the input data from the server by transmitting the input data to the server, and
A method comprising an action of controlling the game application to operate based on the input data by providing the input data to the game application.
상기 게임 구동부에 의해, 상기 게임 어플리케이션을 실행하는 동안 입력 데이터를 수신하고,
활성화된 윈도우에 대응하는 어플리케이션이 상기 게임 어플리케이션에 대응하면, 상기 클라우드 게임 컨텐츠의 실행을 위한 플레이어의 상태가 플레이 상태 인지 여부에 따라 상기 수신한 입력 데이터를 상기 클라우드 게임 컨텐츠를 전송하는 서버로 전송하거나 또는 상기 게임 어플리케이션에 제공하는, 비일시적 컴퓨터 판독가능 기록 매체.
In a non-transitory computer-readable recording medium having one or more instructions stored thereon, the one or more instructions are executed by a processor of an electronic device 100 including a game application corresponding to the execution of cloud game content and a game driving unit for executing the game application, so that the electronic device 100,
By the above game driver, input data is received while executing the game application,
A non-transitory computer-readable recording medium that transmits the received input data to a server transmitting the cloud game content or provides the received input data to the game application, depending on whether the state of the player for executing the cloud game content is a play state when the application corresponding to the activated window corresponds to the game application.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020240049400A KR20250150917A (en) | 2024-04-12 | 2024-04-12 | An electronic apparatus and a method of operating the electronic apparatus |
| PCT/KR2025/004486 WO2025216481A1 (en) | 2024-04-12 | 2025-04-03 | Electronic device and operation method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020240049400A KR20250150917A (en) | 2024-04-12 | 2024-04-12 | An electronic apparatus and a method of operating the electronic apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20250150917A true KR20250150917A (en) | 2025-10-21 |
Family
ID=97350584
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020240049400A Pending KR20250150917A (en) | 2024-04-12 | 2024-04-12 | An electronic apparatus and a method of operating the electronic apparatus |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20250150917A (en) |
| WO (1) | WO2025216481A1 (en) |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113448468B (en) * | 2014-09-23 | 2024-04-09 | 北京三星通信技术研究有限公司 | Electronic device and method for processing information executed by the electronic device |
| KR102390647B1 (en) * | 2014-11-25 | 2022-04-26 | 삼성전자주식회사 | Electronic device and method for controlling object in electronic device |
| US11833419B2 (en) * | 2020-03-16 | 2023-12-05 | Tencent America LLC | Method and apparatus for cloud gaming |
| JP7415168B2 (en) * | 2020-04-07 | 2024-01-17 | 株式会社Mixi | Information processing device, computer program and information processing method |
| KR20230108961A (en) * | 2022-01-12 | 2023-07-19 | 삼성전자주식회사 | Electronic device and method |
-
2024
- 2024-04-12 KR KR1020240049400A patent/KR20250150917A/en active Pending
-
2025
- 2025-04-03 WO PCT/KR2025/004486 patent/WO2025216481A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025216481A1 (en) | 2025-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230403425A1 (en) | Systems, methods, and media for presenting media content | |
| CN114302190B (en) | A display device and image quality adjustment method | |
| EP3384379B1 (en) | Methods, systems and media for presenting a virtual operating system user interface on a display device | |
| US11711589B2 (en) | Method and apparatus for peripheral context management | |
| WO2017075956A1 (en) | Content projection method and mobile terminal | |
| KR20210073280A (en) | Electronic apparatus and method of controlling the same | |
| KR102633594B1 (en) | Display apparatus, method for controlling display apparatus and recording media thereof | |
| KR20210025812A (en) | Electronic apparatus, display apparatus and method for controlling thereof | |
| KR102741019B1 (en) | Display apparatus and the control method thereof | |
| CN116489438A (en) | Display device and mirror projection data display method | |
| US11302282B2 (en) | Display apparatus and the control method thereof | |
| WO2025200549A1 (en) | Display device, and mode switching method for display device | |
| US12314619B2 (en) | Display apparatus and operating method of the display apparatus | |
| KR20250150917A (en) | An electronic apparatus and a method of operating the electronic apparatus | |
| CN111147879B (en) | Live program caching method, system, equipment and computer storage medium | |
| US20240278117A1 (en) | Display apparatus and method of operating the same | |
| KR20220030011A (en) | An electronic apparatus and a method of operating the electronic apparatus | |
| WO2022033153A1 (en) | Display method and display device | |
| US12621534B2 (en) | Picture mode refreshing method and display apparatus | |
| US20230412890A1 (en) | Refreshing method and display apparatus | |
| US20240427583A1 (en) | Display apparatus and processing method for display apparatus | |
| KR20250144766A (en) | An electronic apparatus and a method of operating the electronic apparatus | |
| KR20240129922A (en) | A display apparatus and a method of operating the display apparatus | |
| KR20240002126A (en) | A display apparatus and a method of operating the display apparatus | |
| KR20240002136A (en) | A display apparatus and a method of operating the display apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| Q12 | Application published |
Free format text: ST27 STATUS EVENT CODE: A-1-1-Q10-Q12-NAP-PG1501 (AS PROVIDED BY THE NATIONAL OFFICE) |