KR20200127926A - Method and apparatus providing game based on streaming - Google Patents

Method and apparatus providing game based on streaming Download PDF

Info

Publication number
KR20200127926A
KR20200127926A KR1020200140253A KR20200140253A KR20200127926A KR 20200127926 A KR20200127926 A KR 20200127926A KR 1020200140253 A KR1020200140253 A KR 1020200140253A KR 20200140253 A KR20200140253 A KR 20200140253A KR 20200127926 A KR20200127926 A KR 20200127926A
Authority
KR
South Korea
Prior art keywords
game
user terminal
input
server
target
Prior art date
Application number
KR1020200140253A
Other languages
Korean (ko)
Inventor
김용완
박선영
서일환
심선근
Original Assignee
넷마블 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷마블 주식회사 filed Critical 넷마블 주식회사
Priority to KR1020200140253A priority Critical patent/KR20200127926A/en
Publication of KR20200127926A publication Critical patent/KR20200127926A/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means

Abstract

According to an embodiment of the present invention, provided are a method and an apparatus for providing a game to a user terminal. In order to provide content to a user terminal, a method for providing a game performed by a server determines whether a condition for planning time is satisfied during the progress of content, provides a planning time to a plurality of users by stopping the progress of the content when the condition is satisfied, provides the plurality of users with at least one function for a planning time, and resumes the progress of the content when the planning time is over.

Description

스트리밍에 기초한 게임 제공 방법 및 장치{METHOD AND APPARATUS PROVIDING GAME BASED ON STREAMING}Game provision method and apparatus based on streaming {METHOD AND APPARATUS PROVIDING GAME BASED ON STREAMING}

아래의 실시예들은 사용자 단말로 게임을 제공하는 기술에 관한 것이다.The following embodiments relate to a technology for providing a game to a user terminal.

일반적으로, 많은 연산량을 요구하는 게임을 플레이하기 위해 높은 사용자 단말의 사양이 요구된다. 그러나, 빠른 속도로 사용자 단말로 영상을 스트리밍할 수 있는 통신 기술을 이용할 수 있는 환경에서는 비교적 낮은 사용자 단말을 통해 게임이 제공될 수 있다. 근래에, 게임을 플레이하기 위해 요구되는 많은 연산 처리는 연산 능력이 좋은 서버 측에게 맡기고, 서버에 의해 처리된 결과만을 영상으로 스트리밍하는 방법이 나타나고 있다.In general, high user terminal specifications are required to play games that require a large amount of computation. However, in an environment in which a communication technology capable of streaming an image to a user terminal at a high speed can be used, a game can be provided through a relatively low user terminal. In recent years, a method of leaving a lot of computational processing required to play a game to a server with good computational power and streaming only the result processed by the server as an image has emerged.

일 실시예는 사용자 단말로 게임을 제공하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for providing a game to a user terminal.

다른 일 실시예는 가상화된 시스템을 이용하여 사용자 단말로 게임을 제공하는 방법 및 장치를 제공할 수 있다.Another embodiment may provide a method and apparatus for providing a game to a user terminal using a virtualized system.

일 측면에 따른, 서버에 의해 수행되는, 게임 제공 방법은, 사용자 단말로부터 타겟 게임에 대한 입력을 수신하는 단계, 상기 입력에 기초하여 제어 신호를 생성하는 단계, 상기 제어 신호에 기초하여 상기 타겟 게임을 제어함으로 출력 영상을 생성하는 단계, 및 상기 출력 영상을 상기 사용자 단말로 전송하는 단계를 포함하고, 상기 서버는 임베디드 아키텍쳐(embedded architecture)를 갖는 복수의 프로세서들을 포함하고, 상기 타겟 게임은 상기 복수의 프로세서들을 가상화한 시스템에 의해 실행될 수 있다.According to an aspect, a game providing method performed by a server includes receiving an input for a target game from a user terminal, generating a control signal based on the input, and the target game based on the control signal And generating an output image by controlling the output image, and transmitting the output image to the user terminal, wherein the server includes a plurality of processors having an embedded architecture, and the target game includes the plurality of It can be executed by a system that virtualizes its processors.

상기 게임 제공 방법은, 상기 사용자 단말로부터 상기 타겟 게임의 실행 요청을 수신하는 단계, 및 상기 타겟 게임을 실행하는 단계를 더 포함할 수 있다.The game providing method may further include receiving a request to execute the target game from the user terminal, and executing the target game.

상기 타겟 게임을 실행하는 단계는, 상기 실행 요청에 기초하여 상기 타겟 게임을 실행하기 위한 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계, 및 상기 타겟 운영 체제 및 상기 타겟 프로세서를 이용하여 상기 타겟 게임을 실행하는 단계를 포함할 수 있다.The executing of the target game may include determining a target operating system and a target processor for executing the target game based on the execution request, and executing the target game using the target operating system and the target processor. It may include the step of.

상기 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계는, 상기 타겟 게임에 미리 설정된 사양에 기초하여 상기 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계를 포함할 수 있다.The determining of the target operating system and the target processor may include determining the target operating system and the target processor based on specifications preset for the target game.

상기 임베디드 아키텍쳐를 갖는 복수의 프로세서들의 각각은, ARM 모바일 프로세서일 수 있다.Each of the plurality of processors having the embedded architecture may be an ARM mobile processor.

상기 사용자 단말의 프로세서는 x86 프로세서일 수 있다.The processor of the user terminal may be an x86 processor.

상기 입력에 기초하여 제어 신호를 생성하는 단계는, 상기 사용자 단말의 종류에 기초하여 상기 입력에 대한 동작을 결정하는 단계, 및 상기 동작이 상기 타겟 게임 내에서 발생하도록 상기 제어 신호를 생성하는 단계를 포함할 수 있다.Generating a control signal based on the input includes determining an operation for the input based on the type of the user terminal, and generating the control signal so that the operation occurs in the target game. Can include.

상기 입력은 상기 사용자 단말의 키보드 또는 마우스의 입력이고, 상기 제어 신호는 터치 입력 신호일 수 있다.The input may be an input of a keyboard or a mouse of the user terminal, and the control signal may be a touch input signal.

상기 입력에 기초하여 제어 신호를 생성하는 단계는, 상기 입력이 발생한 상기 사용자 단말의 디스플레이 상의 제1 좌표를 결정하는 단계, 상기 제1 좌표 및 상기 타겟 게임에 설정된 해상도에 기초하여 제2 좌표를 결정하는 단계, 및 상기 제2 좌표에 기초하여 상기 제어 신호를 생성하는 단계를 포함할 수 있다.The generating of the control signal based on the input may include determining a first coordinate on a display of the user terminal where the input has occurred, and determining a second coordinate based on the first coordinate and a resolution set in the target game And generating the control signal based on the second coordinate.

다른 일 측면에 따른, 게임을 제공하는 프로그램이 기록된 메모리, 및 임베디드 아키텍쳐(embedded architecture)를 갖는 복수의 프로세서들 - 상기 복수의 프로세서들 중 적어도 하나에 의해 상기 프로그램이 수행됨 -을 포함하고, 상기 프로그램은, 사용자 단말로부터 타겟 게임에 대한 입력을 수신하는 단계, 상기 입력에 기초하여 제어 신호를 생성하는 단계, 상기 제어 신호에 기초하여 상기 타겟 게임을 제어함으로 출력 영상을 생성하는 단계, 및 상기 출력 영상을 상기 사용자 단말로 전송하는 단계를 수행하고, 상기 타겟 게임은 상기 복수의 프로세서들을 가상화한 시스템에 의해 실행된다.According to another aspect, including a memory in which a program providing a game is recorded, and a plurality of processors having an embedded architecture-the program is executed by at least one of the plurality of processors, wherein the The program comprises: receiving an input for a target game from a user terminal, generating a control signal based on the input, generating an output image by controlling the target game based on the control signal, and the output The step of transmitting an image to the user terminal is performed, and the target game is executed by a system in which the plurality of processors are virtualized.

상기 프로그램은, 상기 사용자 단말로부터 상기 타겟 게임의 실행 요청을 수신하는 단계, 및 상기 타겟 게임을 실행하는 단계를 더 수행할 수 있다.The program may further perform the step of receiving a request to execute the target game from the user terminal and executing the target game.

상기 타겟 게임을 실행하는 단계는, 상기 실행 요청에 기초하여 상기 타겟 게임을 실행하기 위한 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계, 및 상기 타겟 운영 체제 및 상기 타겟 프로세서를 이용하여 상기 타겟 게임을 실행하는 단계를 포함할 수 있다.The executing of the target game may include determining a target operating system and a target processor for executing the target game based on the execution request, and executing the target game using the target operating system and the target processor. It may include the step of.

상기 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계는, 상기 타겟 게임에 미리 설정된 사양에 기초하여 상기 타겟 운영 체제 및 타겟 프로세서를 결정하는 단계를 포함할 수 있다.The determining of the target operating system and the target processor may include determining the target operating system and the target processor based on specifications preset for the target game.

상기 임베디드 아키텍쳐를 갖는 복수의 프로세서들의 각각은, ARM 모바일 프로세서일 수 있다.Each of the plurality of processors having the embedded architecture may be an ARM mobile processor.

상기 사용자 단말의 프로세서는 x86 프로세서일 수 있다.The processor of the user terminal may be an x86 processor.

상기 입력에 기초하여 제어 신호를 생성하는 단계는, 상기 사용자 단말의 종류에 기초하여 상기 입력에 대한 동작을 결정하는 단계, 및 상기 동작이 상기 타겟 게임 내에서 발생하도록 상기 제어 신호를 생성하는 단계를 포함할 수 있다.Generating a control signal based on the input includes determining an operation for the input based on the type of the user terminal, and generating the control signal so that the operation occurs in the target game. Can include.

상기 입력은 상기 사용자 단말의 키보드 또는 마우스의 입력이고, 상기 제어 신호는 터치 입력 신호일 수 있다.The input may be an input of a keyboard or a mouse of the user terminal, and the control signal may be a touch input signal.

상기 입력에 기초하여 제어 신호를 생성하는 단계는, 상기 입력이 발생한 상기 사용자 단말의 디스플레이 상의 제1 좌표를 결정하는 단계, 상기 제1 좌표 및 상기 타겟 시스템에 설정된 해상도에 기초하여 제2 좌표를 결정하는 단계, 및 상기 제2 좌표에 기초하여 상기 제어 신호를 생성하는 단계를 포함할 수 있다.The generating of the control signal based on the input may include determining a first coordinate on a display of the user terminal where the input has occurred, and determining a second coordinate based on the first coordinate and a resolution set in the target system And generating the control signal based on the second coordinate.

사용자 단말로 게임을 제공하는 방법 및 장치가 제공될 수 있다.A method and apparatus for providing a game to a user terminal may be provided.

가상화된 시스템을 이용하여 사용자 단말로 게임을 제공하는 방법 및 장치가 제공할 수 있다.A method and apparatus for providing a game to a user terminal using a virtualized system may provide.

도 1은 일 예에 따른 게임 제공 시스템의 구성도이다.
도 2는 일 예에 따른 서버의 복수의 프로세서들을 이용하여 게임을 제공하는 방법의 개략도이다.
도 3은 일 실시예에 따른 게임 제공 서버의 구성도이다.
도 4는 일 실시예에 따른 게임 제공 방법의 흐름도이다.
도 5는 일 예에 따른 타겟 게임을 실행하는 방법의 흐름도이다.
도 6은 일 예에 따른 입력 분석기를 포함하는 게임 제공 시스템의 구성도이다.
도 7은 일 예에 따른 입력에 기초하여 제어 신호를 생성하는 방법의 흐름도이다.
도 8은 다른 일 예에 따른 입력에 기초하여 제어 신호를 생성하는 방법의 흐름도이다.
1 is a configuration diagram of a game providing system according to an example.
2 is a schematic diagram of a method of providing a game using a plurality of processors of a server according to an example.
3 is a block diagram of a game providing server according to an embodiment.
4 is a flowchart of a method for providing a game according to an exemplary embodiment.
5 is a flowchart of a method of executing a target game according to an example.
6 is a block diagram of a game providing system including an input analyzer according to an example.
7 is a flowchart of a method of generating a control signal based on an input according to an example.
8 is a flowchart of a method of generating a control signal based on an input according to another example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the rights of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be interpreted as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

도 1은 일 예에 따른 게임 제공 시스템의 구성도이다.1 is a configuration diagram of a game providing system according to an example.

게임의 진행에 필요한 모든 연산 처리가 사용자 단말(다른 말로, 클라이언트 단말)에 의해 수행되지 않는 한, 온라인 게임과 같은 게임을 사용자에게 제공하기 위해서는 사용자 단말 및 사용자 단말과 네트워크를 통해 연결된 서버 간의 데이터 교환이 요구된다.Data exchange between the user terminal and the server connected through the network with the user terminal and the user terminal in order to provide a game such as an online game to the user, unless all computational processing necessary for the game progress is performed by the user terminal (in other words, the client terminal). Is required.

예를 들어, 게임을 제공하기 위해서는 영상을 렌더링(rendering)하는 연산이 필요한데, 이러한 렌더링 연산은 실시간적으로 수행되어야 하며, 딜레이에 민감하다. 일반적으로, 게임을 위한 프로그램의 실행은 사용자 단말과 서버의 양자 간에 분산되었다. 예를 들어, 다수의 사용자 단말들에서 수신된 정보에 기초한 게임의 전체 상황(global state)은 서버에서 처리되고, 각 사용자 단말에서는 게임 규칙과 전체 상황의 일부에 응답하는 게임 영상이 렌더링된다.For example, in order to provide a game, an operation of rendering an image is required. This rendering operation must be performed in real time and is sensitive to delay. In general, the execution of programs for games was distributed between both the user terminal and the server. For example, a global state of a game based on information received from a plurality of user terminals is processed by a server, and a game image responsive to a game rule and a part of the entire situation is rendered at each user terminal.

상기와 같은 게임 제공 방식에서 사용자 단말의 성능이 높지 않은 경우, 게임 영상을 렌더링하는 과정에서 딜레이가 발생할 수 있고, 사용자는 딜레이로 인하여 게임을 정상적으로 진행할 수 없다. 이에 따라, 많은 연산량이 요구되는 게임을 플레이하기 위해서는, 높은 성능의 사용자 단말이 필요하다.If the performance of the user terminal is not high in the game providing method as described above, a delay may occur in the process of rendering a game image, and the user cannot normally play the game due to the delay. Accordingly, in order to play a game that requires a large amount of computation, a user terminal with high performance is required.

그러나, 최근에는 전송 딜레이가 매우 작은 데이터 통신 기술을 이용하여 새로운 게임 제공 시스템(100)이 나타나고 있다. 예를 들어, 시스템(100)의 서버(120) 측에서 영상을 렌더링한 뒤, 렌더링된 영상을 사용자 단말(110)로 스트리밍하는 방식이 이용되고 있다. 이러한 시스템(100)을 이용하는 경우, 사용자는 사용자 단말(110)을 통해 게임 진행을 위한 입력 만을 서버(120)로 전송하고, 서버(120) 측에서 빠른 속도로 렌더링 연산을 처리하고, 거의 딜레이 없이 영상을 사용자 단말(110)로 제공하므로, 사용자 단말(110)의 성능이 낮더라도 사용자는 게임을 정상적으로 플레이할 수 있다.However, recently, a new game providing system 100 has appeared using a data communication technology having a very small transmission delay. For example, after rendering an image on the server 120 side of the system 100, a method of streaming the rendered image to the user terminal 110 is used. In the case of using such a system 100, the user transmits only the input for game progress to the server 120 through the user terminal 110, and the server 120 processes the rendering operation at a high speed, and almost without delay. Since the image is provided to the user terminal 110, the user can normally play the game even if the performance of the user terminal 110 is low.

나아가, 기존에는 게임을 제작한 방식과 동일한 방식으로 데이터를 처리하는 사용자 단말만이 게임을 실행시킬 수 있었으나, 상기와 같은 영상 스트리밍 방식을 통해 이러한 제한도 사라졌다. 기존에는 예를 들어, 개인용 컴퓨터(personal computer: PC)에 주로 이용되는, x86 아키텍쳐(architecture)에 기반한 게임은, ARM 아키텍쳐를 이용하여 동작하는 모바일 장치에서 바로 실행되지 않는다. 모바일 장치에서 상기의 게임을 실행하기 위해서는 에뮬레이션과 같은 추가의 처리가 요구되었다. 그러나, 게임 제공 시스템(100)을 이용하면, 사용자 단말(110)이 x86 아키텍쳐의 프로세서를 갖고 있더라도, 서버(120)가 ARM 아키텍쳐 프로세서를 이용하여 모바일 게임을 실행시키고, 게임 영상을 사용자 단말(110)로 제공할 수 있으므로, 사용자는 모바일 게임을 플레이할 수 있다.Furthermore, in the past, only a user terminal that processes data in the same manner as the game production method could execute the game, but this limitation has also disappeared through the video streaming method described above. Conventionally, games based on the x86 architecture, which are mainly used for, for example, a personal computer (PC), are not directly executed on a mobile device operating using the ARM architecture. In order to execute the above game on a mobile device, additional processing such as emulation was required. However, if the game providing system 100 is used, even if the user terminal 110 has an x86 architecture processor, the server 120 executes a mobile game using the ARM architecture processor, and the game image is displayed on the user terminal 110. ), the user can play a mobile game.

아래에서 도 2 내지 도 8을 참조하여 영상 스트리밍을 통해 게임을 제공하는 방법이 상세히 설명된다.A method of providing a game through video streaming will be described in detail below with reference to FIGS. 2 to 8.

도 2는 일 예에 따른 서버의 복수의 프로세서들을 이용하여 게임을 제공하는 방법의 개략도이다.2 is a schematic diagram of a method of providing a game using a plurality of processors of a server according to an example.

일 측면에 따르면, 도 1을 참조하여 전술된 서버(120)는 복수의 프로세서들(201 내지 209)을 포함하는 프로세서 보드(200)를 포함할 수 있다. 예를 들어, 프로세서들(201 내지 209)은 서로 다른 성능 또는 구조를 가질 수 있다. 프로세서들(201 내지 209)가 서로 다른 성능 또는 구조를 가지고 있으므로, 다양한 게임들이 실행될 수 있다. 프로세서들(201 내지 209)의 각각은 메모리 등을 포함하는 포함하는 보드 형태일 수 있다.According to one aspect, the server 120 described above with reference to FIG. 1 may include a processor board 200 including a plurality of processors 201 to 209. For example, the processors 201 to 209 may have different capabilities or structures. Since the processors 201 to 209 have different capabilities or structures, various games can be executed. Each of the processors 201 to 209 may be in the form of a board including a memory or the like.

프로세서 보드(200)가 클라우드(cloud) 형태로 가상화될 수 있다. 예를 들어, XEM 또는 KVM와 같은 가상화 솔루션을 이용하여 프로세서 보드(200)가 가상화될 수 있다. 프로세서 보드(200)가 가상화됨으로써 복수의 프로세서들(201 내지 209)이 유기적으로 동작할 수 있다.The processor board 200 may be virtualized in a cloud form. For example, the processor board 200 may be virtualized using a virtualization solution such as XEM or KVM. Since the processor board 200 is virtualized, the plurality of processors 201 to 209 may organically operate.

예를 들어, 제1 게임이 실행되는 경우, 제1 게임을 위해 제1 게스트 운영체제(Operation System: OS)가 시스템(210) 상에서 실행되고, 제2 게임이 실행되는 경우, 제2 게임을 위해 제2 게스트 운영체제(OS)가 시스템(210) 상에서 실행되고, 제2 게임이 실행되는 경우, 제2 게임을 위해 제2 게스트 운영체제(OS)가 시스템(210) 상에서 실행될 수 있다. 시스템(210) 상에는 시스템(210)을 관리하는 가상 머신(Virtual Machine: VM)이 구현되어 있을 수 있고, VM을 통해 타겟 게임을 위한 자원이 할당될 수 있다. 자원은 프로세서, 및 메모리 등을 포함할 수 있다.For example, when a first game is executed, a first guest operating system (OS) is executed on the system 210 for a first game, and a second game is executed, 2 When the guest operating system (OS) is executed on the system 210 and the second game is executed, the second guest operating system (OS) may be executed on the system 210 for the second game. A virtual machine (VM) that manages the system 210 may be implemented on the system 210, and resources for a target game may be allocated through the VM. Resources may include a processor, and a memory.

아래에서 도 3 내지 도 8을 참조하여 복수의 프로세서들을 이용하여 사용자에게 게임을 제공하는 방법이 상세히 설명된다.A method of providing a game to a user using a plurality of processors will be described in detail below with reference to FIGS. 3 to 8.

도 3은 일 실시예에 따른 게임 제공 서버의 구성도이다.3 is a block diagram of a game providing server according to an embodiment.

게임을 제공하는 서버(300)는 통신부(310), 복수의 프로세서들(320) 및 메모리(330)를 포함한다. 예를 들어, 서버(300)는 도 1을 참조하여 전술된 서버(120)에 대응할 수 있고, 복수의 프로세서들(320)은 도 2를 참조하여 전술된 복수의 프로세서들(201 내지 209)에 대응할 수 있다.The server 300 providing a game includes a communication unit 310, a plurality of processors 320, and a memory 330. For example, the server 300 may correspond to the server 120 described above with reference to FIG. 1, and the plurality of processors 320 may correspond to the plurality of processors 201 to 209 described above with reference to FIG. 2. Can respond.

통신부(310)는 복수의 프로세서들(320) 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit 310 is connected to the plurality of processors 320 and the memory 330 to transmit and receive data. The communication unit 310 may be connected to other external devices to transmit and receive data. Hereinafter, the expression "transmitting/receiving A" may indicate transmitting/receiving "information or data representing A".

통신부(310)는 서버(300) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(310)는 서버(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스(interface)일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 복수의 프로세서들(320) 및 메모리(330)에 데이터를 전송할 수 있다.The communication unit 310 may be implemented as a circuitry in the server 300. For example, the communication unit 310 may include an internal bus and an external bus. As another example, the communication unit 310 may be an element that connects the server 300 and an external device. The communication unit 310 may be an interface. The communication unit 310 may receive data from an external device and transmit the data to the plurality of processors 320 and the memory 330.

복수의 프로세서들(320)의 각각은 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.Each of the plurality of processors 320 processes data received by the communication unit 310 and data stored in the memory 330. The “processor” may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program. For example, a data processing device implemented in hardware is a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

복수의 프로세서들(320)은 임베디드 아키텍쳐를 갖는 복수의 프로세서들을 포함할 수 있다. 임베디드 아키텍쳐를 갖는 프로세서는 ARM 모바일 프로세서일 수 있다.The plurality of processors 320 may include a plurality of processors having an embedded architecture. A processor having an embedded architecture may be an ARM mobile processor.

복수의 프로세서들(320)의 각각은 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 복수의 프로세서들의 각각에 의해 유발된 인스트럭션들을 실행한다.Each of the plurality of processors 320 executes computer-readable code (eg, software) stored in a memory (eg, memory 330) and instructions induced by each of the plurality of processors. .

메모리(330)는 통신부(310)가 수신한 데이터 및 복수의 프로세서들이 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 게임을 제공할 수 있도록 코딩되어 복수의 프로세서들(320)의 각각에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 330 stores data received by the communication unit 310 and data processed by a plurality of processors. For example, the memory 330 may store a program (or application or software). The stored program may be a set of syntaxes that are coded to provide a game and executed by each of the plurality of processors 320.

일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to an aspect, the memory 330 may include one or more volatile memories, nonvolatile memories and random access memories (RAM), flash memories, hard disk drives, and optical disk drives.

메모리(330)는 서버(300)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 서버(300)를 동작 시키는 명령어 세트는 복수의 프로세서들(320)의 각각에 의해 실행된다.The memory 330 stores an instruction set (eg, software) for operating the server 300. The instruction set for operating the server 300 is executed by each of the plurality of processors 320.

예를 들어, 메모리(330)는 복수의 프로세서들(320)의 각각과 연결된 물리적으로 하나인 메모리일 수 있다. 다른 예로, 메모리(330)는 복수의 프로세서들(320)의 각각과 하나 이상씩 연결된 복수의 메모리들로 구성될 수 있다.For example, the memory 330 may be a physical memory connected to each of the plurality of processors 320. As another example, the memory 330 may include a plurality of memories connected to each of the plurality of processors 320 by one or more.

통신부(310), 복수의 프로세서들(320) 및 메모리(330)에 대해, 아래에서 도 4 내지 8을 참조하여 상세히 설명된다.The communication unit 310, the plurality of processors 320, and the memory 330 will be described in detail with reference to FIGS. 4 to 8 below.

도 4는 일 실시예에 따른 게임 제공 방법의 흐름도이다.4 is a flowchart of a method for providing a game according to an exemplary embodiment.

아래의 단계들(410 내지 460)은 도 3을 참조하여 전술된 서버(300)에 의해 수행될 수 있다.The steps 410 to 460 below may be performed by the server 300 described above with reference to FIG. 3.

단계(410)에서, 서버(300)는 사용자 단말로부터 타겟 게임의 실행 요청을 수신한다. 예를 들어, 사용자 단말의 사용자는 웹(Web)을 통해 서버(300)에 접속할 수 있다. 사용자는 서버(300)가 제공하는 복수의 게임들 중 플레이하고 싶은 타겟 게임을 선택함으로써 실행 요청을 전송한다.In step 410, the server 300 receives a request to execute the target game from the user terminal. For example, a user of the user terminal may access the server 300 through the web. The user transmits an execution request by selecting a target game to be played from among a plurality of games provided by the server 300.

단계(420)에서, 서버(300)는 사용자가 요청한 타겟 게임을 실행한다. 예를 들어, 서버(300)는 복수의 프로세서들(320)들 중 적어도 하나를 이용하여 타겟 게임을 실행한다. 복수의 프로세서들은 도 2를 참조한 설명과 같이 가상화된 시스템을 구성할 수 있다. 즉, 타겟 게임은 복수의 프로세서들을 가상화한 시스템에 의해 실행될 수 있다. 복수의 프로세서들(320)들 중 적어도 하나를 이용하여 타겟 게임을 실행하는 방법에 대해, 아래에서 도 5를 참조하여 상세히 설명된다.In step 420, the server 300 executes the target game requested by the user. For example, the server 300 executes a target game using at least one of the plurality of processors 320. A plurality of processors may constitute a virtualized system as described with reference to FIG. 2. That is, the target game may be executed by a system in which a plurality of processors are virtualized. A method of executing a target game using at least one of the plurality of processors 320 will be described in detail below with reference to FIG. 5.

단계(430)에서, 서버(300)는 사용자 단말로부터 타겟 게임에 대한 입력을 수신한다. 예를 들어, 사용자는 현재 사용자 단말에 출력되고 있는 영상에 대한 입력을 사용자 단말을 통해 전송할 수 있다. 예를 들어, 사용자는 사용자 캐릭터를 조작하기 위한 입력을 전송할 수 있다.In step 430, the server 300 receives an input for the target game from the user terminal. For example, the user may transmit an input for an image currently being output to the user terminal through the user terminal. For example, the user may transmit an input for manipulating a user character.

예를 들어, 사용자 단말이 PC인 경우, 입력은 키보드 입력, 조이스틱 입력, 및 마우스 입력 등을 포함할 수 있다.For example, when the user terminal is a PC, input may include keyboard input, joystick input, and mouse input.

다른 예로, 사용자 단말이 모바일 장치인 경우, 입력은 터치 입력 일 수 있다. 터치 입력은 단순 터치, 클릭, 멀티 터치, 및 스와이프(swipe) 등을 포함할 수 있다.As another example, when the user terminal is a mobile device, the input may be a touch input. The touch input may include simple touch, click, multi-touch, and swipe.

단계(440)에서, 서버(300)는 입력 신호에 기초하여 제어 신호를 생성한다. 제어 신호는 실행되고 있는 타겟 게임을 제어하기 위한 신호일 수 있다. 제어 신호를 생성하는 방법에 대해, 아래에서 도 6 내지 8을 참조하여 상세히 설명된다.In step 440, the server 300 generates a control signal based on the input signal. The control signal may be a signal for controlling the target game being executed. A method of generating a control signal will be described in detail with reference to FIGS. 6 to 8 below.

단계(450)에서, 서버(300)는 제어 신호에 기초하여 타겟 게임을 제어함으로써 출력 영상을 생성한다. 예를 들어, 제어 신호에 기초하여 사용자 캐릭터가 제어될 수 있고, 제어된 결과로서 출력 영상이 생성될 수 있다. 서버(300)는 제어 결과를 렌더링함으로써 출력 영상을 생성할 수 있다. 서버(300)의 프로세서는 높은 성능을 가지므로, 빠른 속도로 출력 영상이 생성될 수 있다.In step 450, the server 300 generates an output image by controlling the target game based on the control signal. For example, a user character may be controlled based on a control signal, and an output image may be generated as a result of the control. The server 300 may generate an output image by rendering the control result. Since the processor of the server 300 has high performance, an output image can be generated at a high speed.

단계(460)에서, 서버(300)는 출력 영상을 사용자 단말로 전송한다. 서버(300)와 사용자 단말은 네트워크를 통해 연결되고, 적은 딜레이(거의 실시간)로 출력 영상이 사용자 단말로 전송될 수 있다.In step 460, the server 300 transmits the output image to the user terminal. The server 300 and the user terminal are connected through a network, and an output image may be transmitted to the user terminal with a small delay (near real time).

사용자는 출력 영상에 대한 입력을 다시 전송함으로써 게임을 플레이할 수 있다. 즉, 상기의 단계들(430 내지 460)이 반복적으로 수행될 수 있다.The user can play the game by transmitting the input for the output image again. That is, the above steps 430 to 460 may be repeatedly performed.

타겟 게임이 ARM 아키텍쳐에서 동작해야하는 경우, 사용자 단말이 x86 아키텍쳐에 기반한 경우라도 타겟 게임이 서버(300)에 의해 실행됨으로써 사용자 단말은 추가의 처리 또는 에뮬레이터 없이 타겟 게임을 사용자에게 제공할 수 있다.When the target game is to be operated on the ARM architecture, even if the user terminal is based on the x86 architecture, the target game is executed by the server 300, so that the user terminal can provide the target game to the user without additional processing or emulator.

도 5는 일 예에 따른 타겟 게임을 실행하는 방법의 흐름도이다.5 is a flowchart of a method of executing a target game according to an example.

일 측면에 따르면, 도 4를 참조하여 전술된 단계(420)는 아래의 단계들(510 내지 520)을 포함할 수 있다.According to an aspect, the step 420 described above with reference to FIG. 4 may include the following steps 510 to 520.

단계(510)에서, 서버(300)는 수신한 실행 요청에 기초하여 타겟 게임을 실행하기 위한 타겟 OS 및 타겟 프로세서를 결정한다. 예를 들어, 타겟 게임이 x86 아키텍쳐에서 동작하는지 ARM 아키텍쳐에서 동작하는지에 따라 OS 및 타겟 프로세서가 결정될 수 있다. 다른 예로, 타겟 게임에 미리 설정된 사양에 기초하여 타겟 OS 및 타겟 프로세서가 결정될 수 있다.In step 510, the server 300 determines a target OS and a target processor for executing the target game based on the received execution request. For example, the OS and the target processor may be determined according to whether the target game operates on an x86 architecture or an ARM architecture. As another example, a target OS and a target processor may be determined based on specifications preset in the target game.

예를 들어, 결정된 타겟 프로세서의 동작 방식과 사용자 단말의 프로세서의 동작 방식은 상이할 수 있으나, 사용자 단말은 직접적으로 타겟 게임을 실행하지 않으므로, 사용자 단말의 프로세서의 동작 방식은 관계가 없다. 예를 들어, 사용자 단말의 프로세서는 x86 프로세서이고, 타겟 프로세서는 ARM 모바일 프로세서일 수 있다.For example, the determined operation method of the target processor and the operation method of the processor of the user terminal may be different, but since the user terminal does not directly execute the target game, the operation method of the processor of the user terminal is irrelevant. For example, the processor of the user terminal may be an x86 processor, and the target processor may be an ARM mobile processor.

일 측면에 따르면, 서버(300)는 VM을 통해 타겟 OS 및 타겟 프로세서를 결정한다. 하나의 프로세서에서 복수의 게임들이 실행될 수 있다. 예를 들어, 타겟 프로세서에서 이미 다른 게임이 실행 중인 경우에도, 타겟 프로세서의 처리 능력에 여유가 있는 경우에는 타겟 프로세서가 타겟 게임의 실행을 위해 결정될 수 있다.According to one aspect, the server 300 determines a target OS and a target processor through the VM. A plurality of games can be executed on one processor. For example, even when another game is already running in the target processor, if there is a margin in the processing power of the target processor, the target processor may be determined to execute the target game.

예를 들어, 복수의 프로세서들이 x86 아키텍쳐의 프로세서 및 ARM 아키텍쳐의 프로세서를 모두 포함하는 경우, 타겟 게임의 동작 방식에 기초하여 x86 아키텍쳐의 프로세서 또는 ARM 아키텍쳐의 프로세서가 타겟 프로세서로서 결정될 수 있다.For example, when the plurality of processors includes both a processor of an x86 architecture and a processor of an ARM architecture, a processor of the x86 architecture or a processor of the ARM architecture may be determined as the target processor based on the operation method of the target game.

단계(520)에서, 서버(300)는 타겟 OS 및 타겟 프로세서를 이용하여 타겟 게임을 실행한다.In step 520, the server 300 executes the target game using the target OS and the target processor.

도 6은 일 예에 따른 입력 분석기를 포함하는 게임 제공 시스템의 구성도이다.6 is a block diagram of a game providing system including an input analyzer according to an example.

다른 일 측면에 따르면, 게임 제공 시스템(600)은 입력 분석기(630)를 더 포함할 수 있다. 타겟 게임은 다양한 사용자 단말의 환경에서 제공되므로, 타겟 게임을 제어하기 위한 입력의 형태도 다양하다. 예를 들어, 사용자 단말이 PC인 경우 입력은 키보드 입력, 조이스틱 입력, 및 마우스 입력 등을 포함할 수 있고, 사용자 단말이 모바일 장치인 경우 입력은 단순 터치, 클릭, 멀티 터치, 및 스와이프(swipe) 등을 포함할 수 있다.According to another aspect, the game providing system 600 may further include an input analyzer 630. Since the target game is provided in the environment of various user terminals, input types for controlling the target game are also various. For example, when the user terminal is a PC, input may include keyboard input, joystick input, and mouse input, and when the user terminal is a mobile device, input is simple touch, click, multi-touch, and swipe. ), etc.

예를 들어, 사용자 캐릭터의 방향을 제어하기 위한 입력은, 키보드 입력 또는 터치 입력일 수 있다. 상기와 같은 다른 형태의 입력들을 동일한 제어 신호로 변환해야 한다.For example, the input for controlling the direction of the user character may be a keyboard input or a touch input. Different types of inputs as described above must be converted into the same control signal.

또한, 다른 예로, 서버(300)에서 실행되는 타겟 게임의 좌표계(또는 해상도)와 사용자 단말의 디스플레이 상의 좌표계가 상이할 수 있으므로, 입력의 좌표계를 변환해야 한다.In addition, as another example, since the coordinate system (or resolution) of the target game executed in the server 300 and the coordinate system on the display of the user terminal may be different, the coordinate system of the input must be converted.

아래에서 도 7 및 8을 참조하여 입력에 기초하여 제어 신호를 생성하는 방법이 상세히 설명된다.A method of generating a control signal based on an input is described in detail below with reference to FIGS. 7 and 8.

도 7은 일 예에 따른 입력에 기초하여 제어 신호를 생성하는 방법의 흐름도이다.7 is a flowchart of a method of generating a control signal based on an input according to an example.

일 측면에 따르면, 도 4를 참조하여 전술된 단계(440)는 아래의 단계들(710 및 720)을 포함할 수 있다. 서버(300)는 입력 분석기(630)를 더 포함할 수 있다.According to one aspect, the step 440 described above with reference to FIG. 4 may include the following steps 710 and 720. The server 300 may further include an input analyzer 630.

단계(710)에서, 서버(300)는 사용자 단말의 종류 또는 입력 장치의 종류에 기초하여 입력에 대한 동작을 결정한다. 예를 들어, 서버(300)는 입력 분석기(630)를 통해 입력에 대한 동작을 결정할 수 있다.In step 710, the server 300 determines an operation for the input based on the type of the user terminal or the type of the input device. For example, the server 300 may determine an operation for an input through the input analyzer 630.

입력 분석기(630)는 사용자 단말의 종류에 따른 다양한 입력들을 특정한 동작으로 결정할 수 있다. 예를 들어, 키보드의 'W'키 입력, 디스플레이의 특정 좌표의 터치 입력이 사용자 캐릭터를 위로 이동하는 동작으로 결정될 수 있다.The input analyzer 630 may determine various inputs according to the type of the user terminal as a specific operation. For example, an input of the'W' key on a keyboard and a touch input of a specific coordinate on the display may be determined as an operation of moving the user character upward.

추가적으로, 입력 분석기(630)는 사용자 단말이 전송한 입력의 데이터를 해석할 수 있는 드라이버를 포함할 수도 있다.Additionally, the input analyzer 630 may include a driver capable of interpreting the data of the input transmitted from the user terminal.

단계(720)에서, 서버(300)는 동작이 타겟 게임 내에서 발생하도록 제어 신호를 생성한다. 생성된 제어 신호에 기초하여 타겟 게임이 제어될 수 있다.In step 720, the server 300 generates a control signal so that the operation occurs within the target game. The target game may be controlled based on the generated control signal.

예를 들어, 입력이 사용자 단말의 키보드 또는 마우스의 입력일 수 있고, 생성된 제어 신호는 터치 입력 신호를 나타낼 수 있다.For example, the input may be an input of a keyboard or a mouse of the user terminal, and the generated control signal may represent a touch input signal.

도 8은 다른 일 예에 따른 입력에 기초하여 제어 신호를 생성하는 방법의 흐름도이다.8 is a flowchart of a method of generating a control signal based on an input according to another example.

다른 일 측면에 따르면, 도 4를 참조하여 전술된 단계들(810 내지 830)을 포함할 수 있다. 아래의 단계들(810 내지 830)은 사용자 단말의 좌표계(또는 해상도)와 타겟 게임의 좌표계가 상이함으로써 발생하는 문제를 해결하기 위해 수행될 수 있다.According to another aspect, the steps 810 to 830 described above with reference to FIG. 4 may be included. The following steps 810 to 830 may be performed to solve a problem that occurs when the coordinate system (or resolution) of the user terminal and the coordinate system of the target game are different.

단계(810)에서, 서버(300)의 입력 분석기(630)는 입력이 발생한 사용자 단말의 디스플레이 상의 제1 좌표를 결정한다. 제1 좌표는 디스플레이 내의 상대 좌표 또는, 출력 영상이 디스플레이되는 해상도 내의 상대 좌표일 수 있다.In step 810, the input analyzer 630 of the server 300 determines the first coordinate on the display of the user terminal where the input has occurred. The first coordinate may be a relative coordinate within the display or a relative coordinate within a resolution at which the output image is displayed.

사용자 단말의 종류가 다양하므로, 출력 영상이 디스플레이되는 양상도 다양하다. 예를 들어, 사용자 단말의 디스플레이의 크기 등에 따라 출력 영상이 출력되는 양상도 달라질 수 있다. 예를 들어, 출력 영상이 전체 화면으로 출력되는지, 또는 일부 화면에서 출력되는지에 따라 제1 좌표가 달라질 수 있다. 또 다른 예로, 출력 영상이 디스플레이의 가로 방향으로 출력되는지 또는 세로 방향으로 출력되는지에 따라 제1 좌표가 달라질 수 있다.Since the types of user terminals are various, the aspect in which the output image is displayed also varies. For example, the aspect in which the output image is output may vary depending on the size of the display of the user terminal, etc. For example, the first coordinates may vary depending on whether the output image is output on a full screen or a partial screen. As another example, the first coordinate may vary depending on whether the output image is output in the horizontal direction or the vertical direction of the display.

단계(820)에서, 서버(300)의 입력 분석기(630)는 제1 좌표 및 타겟 게임에 설정된 해상도에 기초하여 제2 좌표를 결정한다. 예를 들어, 사용자가 사용자 단말에 디스플레이된 출력 영상 내의 특정 캐릭터를 제1 좌표로 터치한 경우, 서버(300)에서 실행되는 타겟 게임 내의 특정 캐릭터가 터치될 수 있는 제2 좌표가 결정될 수 있다.In step 820, the input analyzer 630 of the server 300 determines the second coordinate based on the first coordinate and the resolution set in the target game. For example, when a user touches a specific character in the output image displayed on the user terminal as the first coordinate, the second coordinate to which the specific character in the target game executed in the server 300 can be touched may be determined.

단계(830)에서, 서버(300)는 제2 좌표에 기초하여 제어 신호를 생성한다.In step 830, the server 300 generates a control signal based on the second coordinate.

서버 측 모드는 서버(300)가 영상을 렌더링하고, 렌더링된 영성을 지리적으로 떨어져 있는 사용자 단말에 제공하는 것을 특징으로 한다. 이 모드에서, 영상은 통신 네트워크를 통해 사용자 단말로부터 수신한 입력에 응답한다. 사용자 단말 측 모드는, 영상의 렌더링이 사용자 단말에 국지적으로(로컬에서) 입력된 입력에 응답하여 사용자 단말에서 이루어지는 것을 특징으로 한다. The server-side mode is characterized in that the server 300 renders an image and provides the rendered spirituality to a geographically separated user terminal. In this mode, the video responds to an input received from a user terminal via a communication network. The user terminal-side mode is characterized in that the rendering of the image is performed at the user terminal in response to an input locally (locally) input to the user terminal.

서버 측 모드와 사용자 측 모드가 상호 배타적인 것은 아니다. 선택에 따라서는, 서버(300)와 사용자 단말 모두가 영상을 렌더링하고, 이를 병행적으로 또는 순차적으로 사용자 단말에 제공할 수 있다. 서버 측 모드와 사용자 단말 측 모드 사이의 전환을 관리하도록 구성된 전환 로직은, 선택에 따라서 이들 장치 사이에 분산 배치될 수 있다.Server-side mode and user-side mode are not mutually exclusive. Optionally, both the server 300 and the user terminal may render an image and provide it to the user terminal in parallel or sequentially. Switching logic, configured to manage switching between the server-side mode and the user terminal-side mode, may optionally be distributed distributed among these devices.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments and claims and equivalents fall within the scope of the following claims.

100: 컨텐츠 제공 시스템
110: 사용자 단말
120: 컨텐츠 제공 서버
200: 복수의 프로세서들
300: 컨텐츠 제공 서버
310: 통신부
320: 복수의 프로세서들
330: 메모리
630: 입력 분석기
100: content providing system
110: user terminal
120: content providing server
200: multiple processors
300: content providing server
310: Ministry of Communications
320: multiple processors
330: memory
630: input analyzer

Claims (1)

서버에 의해 수행되는, 게임 제공 방법은,
사용자 단말로부터 타겟 게임에 대한 입력을 수신하는 단계;
상기 입력에 기초하여 제어 신호를 생성하는 단계;
상기 제어 신호에 기초하여 상기 타겟 게임을 제어함으로 출력 영상을 생성하는 단계; 및
상기 출력 영상을 상기 사용자 단말로 전송하는 단계
를 포함하고,
상기 서버는 임베디드 아키텍쳐(embedded architecture)를 갖는 복수의 프로세서들을 포함하고,
상기 타겟 게임은 상기 복수의 프로세서들을 가상화한 시스템에 의해 실행되는,
게임 제공 방법.
The game providing method performed by the server,
Receiving an input for a target game from a user terminal;
Generating a control signal based on the input;
Generating an output image by controlling the target game based on the control signal; And
Transmitting the output image to the user terminal
Including,
The server includes a plurality of processors having an embedded architecture,
The target game is executed by a system that virtualizes the plurality of processors,
How to provide the game.
KR1020200140253A 2020-10-27 2020-10-27 Method and apparatus providing game based on streaming KR20200127926A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200140253A KR20200127926A (en) 2020-10-27 2020-10-27 Method and apparatus providing game based on streaming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200140253A KR20200127926A (en) 2020-10-27 2020-10-27 Method and apparatus providing game based on streaming

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190047144A Division KR102173672B1 (en) 2019-04-23 2019-04-23 Method and apparatus providing game based on streaming

Publications (1)

Publication Number Publication Date
KR20200127926A true KR20200127926A (en) 2020-11-11

Family

ID=73451354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200140253A KR20200127926A (en) 2020-10-27 2020-10-27 Method and apparatus providing game based on streaming

Country Status (1)

Country Link
KR (1) KR20200127926A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023195806A1 (en) * 2022-04-06 2023-10-12 삼성전자 주식회사 Electronic device and operation method therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023195806A1 (en) * 2022-04-06 2023-10-12 삼성전자 주식회사 Electronic device and operation method therefor

Similar Documents

Publication Publication Date Title
EP4122568A1 (en) Data processing method and device and storage medium
US20170296915A1 (en) Pre-loading translated code in cloud based emulated applications
CN113821348B (en) Efficient live migration of remotely accessed data
US10668390B2 (en) Suspending state of cloud-based legacy applications
EP2840497B1 (en) Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system
US9135024B2 (en) Playing multimedia content at remote graphics display client
CN102402462B (en) Techniques for load balancing GPU enabled virtual machines
CN102207886B (en) Virtual machine high-speed simulation is assisted
US9623327B2 (en) Determining triggers for cloud-based emulated games
US10417026B2 (en) Binary editing of applications executed by virtual machines
US11660534B2 (en) Pre-loading translated code in cloud based emulated applications
US9656163B2 (en) Haptic enhancements for emulated video game not originally designed with haptic capabilities
US10118095B2 (en) Implementing a remote gaming server on a desktop computer
US20050108440A1 (en) Method and system for coalescing input output accesses to a virtual device
CN112221127A (en) Multi-point control method and device for cloud games
KR20200127926A (en) Method and apparatus providing game based on streaming
Song et al. FastDesk: A remote desktop virtualization system for multi-tenant
TWI742706B (en) Apparatus and method for on-line service access control
KR102173672B1 (en) Method and apparatus providing game based on streaming
US20150381766A1 (en) Application transfer system, application transfer method, terminal, and program
KR101744684B1 (en) Apparatus and method for providing cloud game service
CN114028814A (en) Virtual building upgrading method and device, computer storage medium and electronic equipment
Liu et al. A VM-shared desktop virtualization system based on OpenStack
Li et al. Graphic acceleration mechanism for multiple desktop system based on virtualization technology
KR20160121008A (en) Resource Extension Cloud Server and Method thereof

Legal Events

Date Code Title Description
A107 Divisional application of patent