KR101595105B1 - 게임을 제공하는 서버 및 방법 - Google Patents

게임을 제공하는 서버 및 방법 Download PDF

Info

Publication number
KR101595105B1
KR101595105B1 KR1020140103219A KR20140103219A KR101595105B1 KR 101595105 B1 KR101595105 B1 KR 101595105B1 KR 1020140103219 A KR1020140103219 A KR 1020140103219A KR 20140103219 A KR20140103219 A KR 20140103219A KR 101595105 B1 KR101595105 B1 KR 101595105B1
Authority
KR
South Korea
Prior art keywords
game
terminal device
information
frame
frame information
Prior art date
Application number
KR1020140103219A
Other languages
English (en)
Other versions
KR20150020999A (ko
Inventor
가즈호 오쿠
Original Assignee
가부시키가이샤 디에누에
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 디에누에 filed Critical 가부시키가이샤 디에누에
Publication of KR20150020999A publication Critical patent/KR20150020999A/ko
Application granted granted Critical
Publication of KR101595105B1 publication Critical patent/KR101595105B1/ko

Links

Images

Classifications

    • A63F13/12
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 목적은 유저 단말의 처리능력에 따라 보다 적절하게 게임용 화면을 송신하는 온라인 게임을 제공하는 것으로, 그 해결수단으로서 일 실시형태에 관한 서버는, 게임을 진행시키는 게임 진행 모듈과, 제1 시간 간격으로 게임용 화면의 1 프레임을 표시시키기 위해 단말장치에서 실행되는 복수의 렌더링 명령어가 기술된 프레임 정보를 게임의 진행에 따라 생성하는 생성 모듈과, 생성된 프레임 정보를 단말장치에 대해 송신할지 말지를 판단하는 판단 모듈과, 생성된 프레임 정보를 압축하는 압축 모듈과, 송신한다고 판단된 압축된 프레임 정보를 단말장치에 대해 송신하는 송신 모듈과, 제2 시간 간격으로 단말장치에 대해 렌더링 실행시간 정보를 요청하는 요청 모듈을 구비한 게임 프로그램을 실행 가능하도록 구성되어 있다.

Description

게임을 제공하는 서버 및 방법 {SERVER AND METHOD FOR PROVIDING A GAME}
본 발명은, 게임을 제공하는 서버 및 방법에 관한 것으로, 상세하게는, 통신 가능하게 접속된 복수의 단말 장치에 대해 게임을 제공하는 서버 및 방법에 관한 것이다.
종래부터, 인터넷 등의 통신 회선을 통해 접속된 퍼스널 컴퓨터, 스마트폰 또는 게임 전용 단말 등의 유저 단말에 대해 온라인 게임을 제공하는 시스템이 알려져 있다 (예컨대, 특허문헌 1 참조). 예를 들면, 일반적으로 클라우드 게이밍이라 불리는 서비스를 제공하는 시스템에서는, 유저 단말로부터 송신되는 입력 정보에 기초하여, 게임의 진행에 따른 연산 처리나 화상 처리를 서버측에서 수행하고, 연산 결과를 동영상으로서 유저 단말로 송신하고 있다. 또한, 예를 들면, 일반적으로 멀티 플레이어 온라인 게임이라고 불리는 서비스를 제공하는 시스템에서는, 게임 전용 단말이나 전용 소프트웨어를 인스톨한 유저 단말과 서버간에 전용 프로토콜을 이용한 통신을 수행하는 것에 의해, 많은 유저가 동시에 플레이하는 게임의 제공을 실현하고 있다. 한편, 스마트폰의 보급에 따라, 모바일 네트워크 등 통신상황이 변화하기 쉬운 네트워크를 통해 접속되고, 다양하면서도 변화하는 처리능력을 갖는 유저 단말에 의해, 이러한 온라인 게임을 즐길 수 있는 기회가 늘고 있다.
일본특허공개 2013-066524호 공보
하지만, 상술한 클라우드 게이밍에서는, 게임용 화면을 동영상으로서 송신하므로, 유저 단말의 다양하면서도 변화하는 처리능력에 대응하는 것이 곤란하고, 예를 들면, 유저 단말의 처리능력의 저하에 따라, 게임용 화면의 품질이 악화되고, 경우에 따라서는 멈추게(freeze) 되버릴 우려가 있다. 또한, 상술한 멀티 플레이어 온라인 게임에서는, 유저 단말의 처리능력에 따라 송신하는 게임용 화면을 최적화되도록 하는 구조를 탑재하는 것은 가능하다고 생각되고 있으나, 전용 프로토콜의 개발에는 막대한 비용을 요한다. 따라서, 유저 단말의 처리 능력에 따라 게임용 화면을 보다 적절히 송신하는 구조를 보다 간편하게 실현하는 것이 요망되고 있다.
본 발명의 실시형태는, 유저 단말의 처리능력에 따라 보다 적절하게 게임용 화면을 송신하는 온라인 게임을 제공하는 것을 목적의 하나로 한다. 본 발명의 다른 목적은, 본 명세서 전체를 참조하는 것에 의해 명확해 진다.
본 발명의 일 실시형태에 관한 서버는, 통신 가능하도록 접속된 복수의 단말장치에 대해 게임을 제공하는 서버로서, 소정 프로그램을 실행 가능한 하나 또는 복수의 프로세서를 구비하고, 상기 소정 프로그램은, 상기 단말장치로부터 송신되는 입력정보에 따라 상기 게임을 진행시키는 게임 진행 모듈, 제1 시간 간격으로, 상기 단말장치에 상기 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 해당 게임의 진행에 따라 생성하는 생성 모듈, 제2 시간 간격으로, 상기 단말장치의 처리 능력을 특정하기 위해 소정 정보의 송신을 상기 단말장치에 대해 요청하는 요청 모듈, 상기 단말장치로부터의 상기 소정 정보의 송신에 따라 특정된 해당 단말장치의 처리능력에 기초하여, 상기 생성된 프레임 정보를 상기 단말장치에 대해 송신할지 말지를 판단하는 판단 모듈, 및 상기 단말장치에 대해 송신한다고 판단된 상기 프레임 정보를 해당 단말장치에 대해 송신하는 송신 모듈을 구비한다.
본 발명의 일 실시형태에 관한 방법은, 통신 가능하도록 접속된 복수의 단말장치에 대해 게임을 제공하는 방법으로서, 상기 단말장치로부터 송신되는 입력정보에 따라 상기 게임을 진행시키고, 제1 시간 간격으로, 상기 단말장치에 상기 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 해당 게임의 진행에 따라 생성하고, 제2 시간 간격으로, 상기 단말장치의 처리 능력을 특정하기 위해 소정 정보의 송신을 상기 단말장치에 대해 요청하고, 상기 단말장치로부터의 상기 소정 정보의 송신에 따라 특정된 해당 단말장치의 처리능력에 기초하여, 상기 생성된 프레임 정보를 상기 단말장치에 대해 송신하고, 상기 단말장치에 대해 송신한다고 판단된 상기 프레임 정보를 해당 단말장치에 대해 송신한다.
본 발명의 다양한 실시형태에 의해, 유저 단말의 처리능력에 따라 보다 적절하게 게임용 화면을 송신하는 온라인 게임을 제공하는 것이 가능하다.
도 1은 본 발명의 일 실시형태에 관한 서버(10)를 포함하는 시스템(1)의 네트워크 구성을 개략적으로 도시한 블럭도이다.
도 2는 일 실시형태에서의 게임 프로그램(50)의 모듈 구성을 개략적으로 도시한 블럭도이다.
도 3은 일 실시형태에서의 통계정보 관리 테이블의 일 예를 도시한 설명도이다.
도 4는 일 실시형태에서의 프레임 정보 생성 및 송신 처리의 일 예를 도시한 흐름도이다.
도 5는 일 실시형태에서의 게임용 화면(60)의 일 예를 도시한 설명도이다.
도 6은 일 실시형태에서의 프레임 정보의 일 예를 도시한 설명도이다.
도 7은 일 실시형태에서의 프레임 정보의 다른 예를 도시한 설명도이다.
도 8은 일 실시형태에서의 통계정보 취득 처리의 일 예를 도시한 흐름도이다.
도 1은 본 발명의 일 실시형태에 관한 서버(10)를 포함하는 시스템(1)의 네트워크 구성을 개략적으로 도시한 블럭도이다. 도 1에서 도시하는 바와 같이, 일 실시형태에서의 서버(10)는, 일반적인 컴퓨터로서 구성되는 단말장치(30)와 인터넷 등의 통신망(20)을 통해 통신 가능하도록 접속되어 있어, 이 단말장치(30)를 조작하는 유저에 대해 여러가지 게임을 제공하는 것이 가능하다. 또한, 서버(10)에는 단말장치(30) 이외의 도시하지 않은 단말장치도 통신 가능하도록 접속된다. 또한, 서버(10)는, 단말장치(30)를 조작하는 유저에 대해 게임 이외의 다양한 디지털 콘텐츠를 제공하는 것이 가능하고, 디지털 콘텐츠의 제공 이외의 다양한 인터넷 서비스를 제공하는 것이 가능하며, 그 밖에도, 복수의 단말장치(30)를 조작하는 복수의 유저간에 다양한 커뮤니케이션을 실현하는 플랫폼을 제공하는 것이 가능하다.
서버(10)는, 도시한 바와 같이, CPU(프로세서)(11)와, 메인 메모리(12)와, 유저 I/F(13)와, 통신 I/F(14)와, 외부 메모리(15)와, 디스크 드라이브(16)를 포함하고, 이들 각 구성요소가 버스(17)를 통해 서로 전기적으로 접속되어 있다. CPU(11)는, 외부 메모리(15)로부터 오퍼레이팅 시스템이나 온라인 게임의 진행을 제어하기 위한 제어용 프로그램 등의 다양한 프로그램을 메인 메모리(12)에 로드하고, 로드한 프로그램에 포함되는 명령을 실행한다. 메인 메모리(12)는, CPU(11)가 실행하는 프로그램을 저장하기 위해 이용되며, 예컨대, DRAM에 의해 구성된다.
유저 I/F(13)는, 예컨대, 오퍼레이터의 입력을 받아들이는 키보드나 마우스 등의 정보입력 장치와, CPU(11)의 연산결과를 출력하는 액정 디스플레이 등의 정보출력 장치를 포함한다. 통신 I/F(14)는, 하드웨어, 펌웨어, 또는 TCP/IP 드라이버나 PPP 드라이버 등의 통신용 소프트웨어 또는 이들의 조합으로서 탑재되어, 통신망(20)을 통해 단말장치(30)와 통신 가능하도록 구성된다.
외부 메모리(15)는, 예컨대 자기 디스크 드라이브로 구성되고, 온라인 게임의 진행을 제어하기 위한 제어용 프로그램 등 다양한 프로그램이 저장된다. 또한, 외부 메모리(15)에는, 게임에서 이용되는 각종 데이터도 저장될 수 있다. 외부 메모리(15)에 저장될 수 있는 각종 데이터는, 서버(10)와 통신 가능하게 접속되고 서버(10)와 물리적으로는 별개의 데이터베이스 서버에 저장되어도 좋다. 디스크 드라이브(16)는, CD-ROM, DVD-ROM, DVD-R 등 각종 기억 미디어에 저장된 데이터를 읽어들이거나, 또는 이들 기억 미디어에 데이터를 기록한다. 예를 들어, 기억 미디어에 저장된 게임 애플리케이션이나 게임 데이터 등의 데이터는 디스크 드라이브(16)로부터 읽어들이고, 외부 메모리(15)에 인스톨된다.
일 실시형태에서, 서버(10)는 계층구조를 갖는 복수의 웹페이지로 구성된 웹사이트를 관리하는 웹서버이며, 단말장치(30)에 대해 게임 서비스를 제공하는 것이 가능하다. 단말장치(30)는, 웹페이지를 표시하기 위한 HTML 데이터를 서버(10)로부터 취득하고, 취득한 HTML 데이터를 해석하여, 해당 웹페이지를 단말장치(30)의 유저(게임 유저)에게 제시하는 것이 가능하다. 이러한 웹페이지를 통해 제공되는 게임은, 브라우저 게임이라고 불린다. 외부 메모리(15)에는, 이 웹페이지를 표시하기 위한 HTML 데이터도 저장된다. HTML 데이터는, HTML 등의 마크업 언어로 기술된 HTML문서로 구성되고, 이 HTML문서에는 다양한 화상이 관련지어진다. 또한, HTML문서에는 ActionScript나 JavaScript(등록상표) 등의 스크립트 언어 등으로 기술된 프로그램이 내장될 수 있다.
외부 메모리(15)에는, 단말장치(30)에서 브라우저 소프트웨어 이외의 실행환경 상에서 실행되는 게임 애플리케이션도 저장될 수 있다. 이 게임 애플리케이션에는, 게임을 실행하기 위한 게임 프로그램이나 해당 게임 프로그램 실행시에 참조되는 화상 데이터 등 각종 데이터를 포함할 수 있다. 게임 프로그램은, 예컨대, Object-C, Java(등록상표) 등의 오브젝트 지향 프로그래밍 언어로 작성된다. 작성된 게임 프로그램은, 각종 데이터와 함께 애플리케이션 소프트웨어로서 외부 메모리(15)에 저장된다. 외부 메모리(15)에 저장된 애플리케이션 소프트웨어는 전송 요청에 따라 단말장치(30)로 전송된다. 서버(10)로부터 전송된 애플리케이션 소프트웨어는, 단말장치(30)에서 CPU(31)의 제어에 따라 통신 I/F(34)를 통해 수신되고, 수신된 게임 프로그램이 외부 메모리(35)로 송신되어 저장된다. 이 애플리케이션 소프트웨어는 유저에 의한 단말장치(30)의 조작에 따라 동작이 시작(기동)되고, 단말장치(30)에 탑재된 NgCore(상표)나 Android(상표) 등의 플랫폼 상에서 실행된다. 서버(10)는, 단말장치(30)에서 실행되고 있는 게임 애플리케이션에 대해 게임의 진행에 필요한 각종 데이터를 제공한다. 또한, 서버(10)는 단말장치(30)로부터 송신되는 각종 데이터를 유저마다 저장하는 것으로, 유저마다 게임의 진행을 관리하는 것이 가능하다.
이와 같이, 서버(10)는 게임 서비스를 제공하는 웹사이트를 관리하고, 해당 웹사이트를 구성하는 웹페이지를 단말장치(30)로부터의 요청에 따라 전송하는 것에 의해, 게임을 진행시키는 것이 가능하다. 또한, 서버(10)는, 이러한 브라우저 게임과는 대체적으로, 또는, 브라우저 게임에 더하여 단말장치(30)에서 실행되는 게임 애플리케이션과의 통신에 기초하여 게임을 진행시키는 것이 가능하다. 서버(10)는, 어떠한 양태로 게임을 제공하는 경우에도, 각 유저를 식별하는 식별정보마다 게임의 진행에 필요한 데이터를 저장하는 것이 가능하다. 상세한 설명은 생략하나, 서버(10)는 게임의 개시시 유저의 인증처리나 게임의 진행에 따라 발생하는 과금처리를 수행하는 기능을 갖는 것도 가능하다. 서버(10)에 의해 제공되는 게임에는 액션 게임, 롤플레잉 게임, 스포츠 대전 게임, 카드 게임 등의 임의의 게임이 포함된다. 서버(10)의 웹사이트 또는 게임 애플리케이션에 의해 실현되는 게임의 종류는, 본 명세서에서 명시된 것에 한정되지 않는다.
단말장치(30)는, 일 실시형태에서 서버(10)로부터 취득한 게임용 웹사이트의 웹페이지를 웹브라우저 상에서 표시하는 한편 게임 애플리케이션을 실행하기 위한 애플리케이션 실행 환경을 탑재한 임의의 정보처리 장치로서, 스마트폰, 태블릿 단말 및 게임 전용 단말 등이 포함될 수 있다.
단말장치(30)는, 도시한 바와 같이, CPU(프로세서)(31)와, 메인 메모리(32)와, 유저 I/F(33)와, 통신 I/F(34)와, 외부 메모리(35)를 포함하고, 이들 각 구성요소가 버스(36)를 통해 서로 전기적으로 접속되어 있다.
CPU(31)는, 외부 메모리(35)로부터 오퍼레이팅 시스템 등의 다양한 프로그램을 메인 메모리(32)로 로드하고, 로드한 프로그램에 포함되는 명령을 실행한다. 메인 메모리(32)는, CPU(31)가 실행하는 프로그램을 저장하기 위해 이용되고, 예컨대, DRAM으로 구성된다.
유저 I/F(33)는, 유저의 입력을 받아들이는 정보입력 장치와, CPU(31)의 연산결과를 출력하는 정보출력 장치로서, 터치패널을 구비한 액정 디스플레이 등의 표시장치를 포함한다.
통신 I/F(34)는, 하드웨어, 펌웨어, 또는 TCP/IP 드라이버나 PPP 드라이버 등의 통신용 소프트웨어 또는 이들의 조합으로서 탑재되고, 통신망(20)을 통해 서버(10)와 통신 가능하도록 구성된다.
외부 메모리(35)는, 예컨대 자기 디스크 드라이브나 플래시 메모리 등으로 구성되고, 오퍼레이팅 시스템 등의 다양한 프로그램을 저장한다. 또한, 외부 메모리(35)는, 서버(10)로부터 통신 I/F(34)를 통해 게임 애플리케이션을 수신한 경우에는, 그 수신한 게임 애플리케이션을 저장한다.
이러한 구조(architecture)를 갖는 단말장치(30)는, 예컨대, HTML 형식의 파일(HTML 데이터)를 해석하여 화면 표시하기 위한 브라우저 소프트웨어를 구비하고 있으며, 이러한 브라우저 소프트웨어의 기능으로 서버(10)로부터 취득한 HTML 데이터를 해석하고, 수신한 HTML 데이터에 대응하는 웹페이지를 표시하는 것이 가능하다. 또한, 단말장치(30)는, 브라우저 소프트웨어에 삽입되는 플러그인 소프트웨어(예를 들면, 어도비 시스템즈 사로부터 제공되고 있는 Flash Player)를 구비하고 있어, HTML 데이터에 내장된 SWF 형식의 파일을 서버(10)로부터 취득하고, 해당 SWF 형식의 파일을 브라우저 소프트웨어 및 플러그인 소프트웨어를 이용하여 실행하는 것이 가능하다.
단말장치(30)에서 게임이 실행되면, 예를 들어, 프로그램에 의해 지시된 애니메이션이나 조작용 아이콘이 단말장치(30)의 화면에 표시된다. 유저는, 단말장치(30)의 입력 인터페이스를 이용하여 게임을 진행시키기 위한 지시를 입력하는 것이 가능하다. 유저로부터 입력된 지시는, 단말장치(30)의 브라우저나 NgCore(상표) 등의 플랫폼의 기능을 통해 서버(10)로 전달된다.
다음으로, 일 실시형태에서 서버(10)의 CPU(11)에 의해 실행되는 게임 프로그램(50)에 대해 설명한다. 도 2는, 일 실시형태에서 게임 프로그램(50) 모듈 구성을 도시하는 블록도이다. 게임 프로그램(50)은, 도시하는 바와 같이, 단말장치(30)로부터 송신되는 입력정보에 따라 게임을 진행시키는 게임 진행 모듈(51)과, 제1 시간 간격으로, 단말장치(30)에 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 게임의 진행에 따라 생성하는 생성 모듈(52)과, 단말장치(30)의 처리능력에 기초하여, 생성된 프레임 정보를 단말장치(30)에 대해 송신할지 말지를 판단하는 판단 모듈(53)과, 생성된 프레임 정보를 압축하는 압축 모듈(54)과, 단말장치(30)에 대해 송신한다고 판단된 압축된 프레임 정보를 단말장치(30)에 대해 송신하는 송신모듈(55)과, 제2 시간 간격으로, 단말장치(30)의 처리능력을 특정하기 위해 렌더링 실행 시간 정보 (프레임 표시 시간 정보/소정 정보)의 송신을 단말장치(30)에 대해 요청하는 요청 모듈(56)을 구비한다.
도 3은, 서버(10)의 외부 메모리(15) 등으로 구성되는 통계정보 관리 테이블에서 관리되는 정보의 일 예를 도시한 설명도이다. 일 실시형태에서 통계정보 관리 테이블은, 도시하는 바와 같이 단말장치(30)를 식별하는 "단말 ID"와 대응짓고, 이러한 단말장치(30)에 대해 렌더링 실행 시간 정보를 요청한 시각을 나타내는 "송신시각", 이러한 요청에 따라 단말장치(30)로부터 송신된 "렌더링 실행 시간 정보", 이러한 요청에 따라 단말장치(30)로부터 송신된 렌더링 실행 시간 정보를 서버(10)에서 수신한 시각을 나타내는 "수신시각", 이러한 단말장치(30)에 대한 프레임 레이트(단위시간당 프레임 수)의 상한치를 나타내는 "프레임 레이트 상한치" 등의 정보가 관리되고 있다. 여기에서, "렌더링 실행 시간 정보"는, 일 실시형태에서는, 단말장치(30)에서 게임용 화면의 1 프레임에 대응하는 프레임 정보로 기술된 복수의 렌더링 명령어의 실행에 필요한 시간의 평균치(1프레임을 렌더링(표시)하는데 필요한 시간의 평균치)로서, 예를 들면, 단말장치(30)에서 가장 가까운 소정의 수(예컨대, 10)의 프레임에 대응하는 프레임 정보로 기술된 복수의 렌더링 명령어의 실행에 필요한 시간의 이동 평균치이다. 이러한 통계정보 관리 테이블에서 관리되는 정보를 설정하는 동작에 대해서는 후술한다.
다음으로, 이와 같이 구성된 일 실시형태에서 서버(10)의 동작에 대해 설명한다. 전술한 바와 같이, 일 실시형태에서 서버(10)는 다양한 게임의 제공이 가능하나, 본 발명의 일 실시형태를 설명하기 위해 적절한 예로서, 복수의 유저에 의해 동시에 플레이되는 멀티유저 온라인 게임의 제공에 관계되는 동작에 대해 설명한다.
여기에서, 먼저 일 실시형태에서의 멀티 유저 온라인 게임의 개요를 설명한다. 일 실시형태에서의 멀티 유저 온라인 게임에서는, 복수의 유저가 자기 캐릭터 등을 공통의 게임 공간 내를 이동시켜 게임을 진행시킨다. 멀티 유저 온라인 게임의 보다 구체적인 예로서는, 롤 플레잉 게임, 슈팅 게임 및 액션 게임 등의 다양한 게임을 예시하는 것이 가능하다. 이러한 게임을 진행시키는 처리는, 주로 게임 진행 모듈(51)을 실행하는 것에 의해 수행된다. 구체적으로는, 예를 들면, 단말장치(30)로부터의 입력 정보로서 캐릭터 등의 이동 조작에 관한 정보나 소정 액션(예컨대, 공격, 대화, 아이템 취득 등)의 실행 지시에 관한 정보 등 다양한 정보를 수신하고, 이렇게 수신한 입력 정보에 따라 단말장치(30)를 조작하는 유저에 대응하는 캐릭터 등의 게임 공간 내에서의 현재 위치를 연산한다거나, 지시된 액션에 따른 처리(예컨대, 다른 유저에 대응하는 캐릭터나 논플레이어 캐릭터(Non-player character)와의 대전 처리, 대화 처리 및 아이템 취득 처리 등)를 수행한다거나, 유저가 획득한 득점을 계산한다.
다음으로, 상술한 게임의 진행에 따른 게임용 화면의 단말장치(30)로의 표시에 관한 동작에 대해 설명한다. 도 4는, 멀티 유저 온라인 게임의 진행에 따른 게임용 화면을 단말장치(30)에 표시시키기 위한 프레임 정보 생성 및 송신 처리의 일 예를 도시한 흐름도이다. 이러한 처리는, 서버(10)에 의해 소정 시간 간격으로(예컨대, 40밀리초마다) 반복하여 실행된다. 프레임 정보 생성 및 송신 처리에서는 먼저 도시하는 바와 같이 게임용 화면의 1 프레임에 대응하는 프레임 정보를 생성한다 (단계 S110). 이러한 프레임 정보는, 멀티 유저 온라인 게임을 플레이하는 복수의 유저마다 (즉, 단말장치(30)마다) 생성된다. 단말장치(30)에 표시되는 게임용 화면(60)의 1 프레임의 일 예를 도 5에 도시한다. 일 실시형태에서의 게임용 화면(60)은, 유저가 조작하는 유저 캐릭터의 게임 공간 내에서의 현재 위치에 따른 화면이 표시되고, 도시하는 바와 같이, 배경(62)상에 유저가 조작하는 유저 캐릭터(70), 다른 유저가 조작하는 유저 캐릭터(72), 아이템(74) 및 유저가 획득한 스코어 등을 텍스트 표시하는 스코어 표시 오브젝트(76) 등 다양한 오브젝트가 중첩하여 표시된다. 도시하는 바와 같이, 배경(62)은 가로세로로 소정 길이(예컨대, 세로 16픽셀X가로 16픽셀 등)를 갖는 동일 형상(이러한 예로서는 직사각형)의 복수의 타일 이미지(단위 오브젝트)가 세로방향 및 가로방향으로 연속하여 배치되는 영역으로서 구성되어 있고, 예를 들면, 배경(62)의 좌측 상부 모퉁이 영역은 가로방향으로 연속하여 배치되는 이미지 파일(I1-I3)과, 그 아래쪽에서 가로방향으로 연속하여 배치되는 이미지 파일(I4-I6)로 구성되어 있다. 또한, 유저 캐릭터(70)는 이미지 파일(I7, I8 및 I9)로 구성되고, 유저 캐릭터(72)는 이미지 파일(I10, I11 및 I12)로 구성되며, 아이템(74)은 이미지 파일(I13)으로 구성되어 있다.
이와 같이 구성되는 게임용 화면(60)의 1 프레임을 표시시키기 위해 단말장치(30)에서 실행되는 복수의 렌더링 명령어가 프레임 정보로 기술된다. 렌더링 명령어는, 예컨대, 단말장치(30)의 브라우저에 의해 실행 가능한 명령어이다. 도 6은 도 5에 예시한 게임용 화면(60)의 1 프레임을 단말장치(30)에 표시시키기 위한 렌더링 명령어가 기술된 프레임 정보(80)의 일 예이다. 도시하는 바와 같이, 프레임 정보(80)의 상단 영역(82)에는 배경(62)을 렌더링하기 위한 렌더링 명령어가 기술되어 있고, 그 상단 영역(82) 아래쪽의 하단 영역(84)에는 배경(62)에 중첩하여 배치하는 각 오브젝트(구체적으로는, 유저 캐릭터(70), 유저 캐릭터(72), 아이템(74) 및 스코어 표시 오브젝트(76))를 렌더링하기 위한 렌더링 명령어가 기술되어 있다. 렌더링 명령어에는 복수의 종류가 존재하며, 예를 들면, 이미지 파일을 렌더링하기 위한 "drawImage" 명령어, 텍스트를 렌더링하기 위한 "fillText" 명령어, 렌더링하는 오브젝트의 회전각도를 설정하는 "rotate" 명령어 등의 렌더링 명령어가 존재한다. 일 실시형태에서, 렌더링 명령어 "drawImage"는, 인수로서 이미지 파일을 특정하는 파일명, 및 이러한 이미지 파일을 렌더링하는 좌표를 특정하는 좌표정보를 포함하고, 이러한 좌표정보에 의해 특정되는 좌표에 파일명에 의해 특정되는 이미지 파일을 렌더링하기 위한 명령어이다. 또한, 렌더링 명령어 "fillText"는, 인수로서 렌더링하는 텍스트, 및 이러한 텍스트를 렌더링하는 좌표를 특정하는 좌표정보를 포함하고, 좌표정보에 의해 특정되는 좌표에 텍스트를 렌더링하기 위한 명령어이다. 게다가, 렌더링 명령어 "rotate"는 인수로서 오브젝트의 회전각도를 포함하고, 상술한 "drawImage"나 "fillText" 등의 오브젝트를 렌더링하는 렌더링 명령어와 조합하여 이용되며(예컨대, 오브젝트를 렌더링하는 렌더링 명령어의 직전에 기술되고), 조합하여 이용된 렌더링 명령어에 의해 렌더링하는 오브젝트의 회전각도를 설정하기 위한 명령어이다. 또한, 이러한 렌더링 명령어의 종류 및 용법은 예시적인 것으로, 그 밖의 종류의 렌더링 명령어를 적용하는 것도 가능하다. 예를 들어, HTML5의 canvas 요소에 준한 그 밖의 렌더링 명령어 종류 및 용법이나, 다른 규격에 준한 렌더링 명령어 종류 및 용법을 적용하는 것도 가능하다.
프레임 정보의 다른 예인 프레임 정보(90)를 도 7에 도시한다. 이 프레임 정보(90)는 상술한 프레임 정보(80)에 기초하여 생성된다. 프레임 정보(90)는, 구체적으로는 렌더링 명령어 "drawImage"에 포함되는 좌표정보가, 직전에 기술된 동일한 종류의 렌더링 명령어 "drawImage"에 포함되는 좌표정보로 특정되는 좌표와의 차이를 좌표정보로서 포함하도록 변환되어 있다. 예를 들면, 도시하는 바와 같이, "drawImage("I2", 13, -4)"라고 하는 렌더링 명령어는, 직전에 기술된 렌더링 이미지 "drawImage("I1", -3, -4)"의 좌표정보로 특정되는 좌표와의 차이를 좌표정보로서 포함하도록, "drawImage("I2", 16, 0)"으로 변환된다. 마찬가지로, "drawImage("I3", 29, -4)"라고 하는 렌더링 명령어는 "drawImage("I3", 16, 0)"으로 변환된다. 여기에서, 배경(62)을 구성하는 복수의 타일 이미지는, 가로세로로 소정의 길이를 갖는 동일 형상이므로, 세로 또는 가로로 연속하는 2개의 타일 이미지의 좌표 차이는 어느 쪽의 조합에서도 동일한 값이 된다 (도 7의 예에서는, 가로로 연속하는 타일 이미지의 좌표 차이는 "16, 0"이 된다). 또한, 프레임 정보(90)는, 렌더링 명령어 "rotate"에 포함되는 회전각도 정보가, 직전에 기술된 동일한 종류의 렌더링 명령어 "rotate"의 회전각도 정보로 특정되는 회전각도와의 차이를 회전각도 정보로서 포함하도록 변환되어 있다. 예를 들면, 도시하는 바와 같이 이미지 파일 "I8"의 회전각도를 설정하는 렌더링 명령어 "rotate(45)" 및 이미지 파일 "I9"의 회전각도를 설정하는 렌더링 명령어 "rotate(45)"는 각각 "rotate(0)"으로 변환된다. 여기에서, 예컨대 유저 캐릭터(70)를 구성하는 이미지 파일(I7-I9)와 같이, 하나의 오브젝트를 구성하는 복수의 이미지 파일은 프레임 내에서 동일한 회전 각도가 설정되는 경향이 있으므로, 그 결과, 직전에 기술된 렌더링 명령어 "rotate"의 회전각도 정보에 의해 특정되는 회전각도와의 차이는 연속하여 값 "0"이 되는 경향이 된다. 프레임 정보(80) 및 프레임 정보(90)는 어느 것이라도, 직전 프레임의 프레임 정보에 의존하지 않고, 프레임 정보 내에서 하나의 프레임을 렌더링하기 위해 필요한 정보가 포함되어 있다.
이와 같이 프레임 정보를 생성하면, 다음으로 생성한 프레임 정보를 단말장치(30)로 송신할지 말지를 판단한다(단계 S112). 일 실시형태에서는, 상술한 통계정보 관리 테이블에서 관리되고 있는 단말장치(30)마다의 "프레임 레이트 상한치"의 범위 내에서 프레임 정보가 송신되도록 프레임 정보의 송신 여부가 판단된다. 예컨대, 이러한 프레임 정보 생성 및 송신 처리가 40밀리초마다 반복하여 실행되는 경우에는, 프레임 정보를 그대로 송신하면 프레임 레이트는 25fps (1000/40밀리초)가 되므로, 설정되어 있는 상한치가 예를 들어 25fps보다 적은 20fps인 경우에는 이 상한치인 20fps의 범위 내가 되도록, 25 프레임 중 5프레임은 (프레임 정보 생성 및 송신 처리를 25회 실행하는 동안의 5회는) 프레임 정보를 송신하지 않는 것으로 판단된다. 또한, 예를 들어, 단말장치(30)마다 가장 가까운 실제 프레임 레이트를 연산하여 통계정보 관리 테이블 등의 테이블을 이용하여 관리하고, 이러한 실제 프레임 레이트가 상한치의 범위 내로 될 때 까지는 프레임 정보를 송신하지 않는다고 판단하도록 해도 좋다. 또한, 프레임 레이트의 상한치 범위 내에서 프레임 정보가 송신되도록 하는 방법은, 이들에 한정되지 않는다. 또한, 통계정보 관리 테이블의 "프레임 레이트 상한치"에서 값 "0"이 설정되어 있는 경우에는, 항상 프레임 정보를 송신하지 않는다고 판단된다. "프레임 레이트 상한치"의 설정 방법에 대해서는 후술한다.
그리고, 프레임 정보를 송신하는 것으로 판단된 경우에는, 이러한 프레임 정보를 압축하여 단말장치(30)로 송신하고(단계 S114), 프레임 정보를 송신하지 않는 것으로 판단된 경우에는, 이러한 프레임 정보의 송신을 스킵하고(단계 S116), 프레임 정보 생성 및 송신 처리를 종료한다. 프레임 정보의 압축은, 다양한 압축 알고리즘을 이용하여 수행하는 것이 가능하며, 예컨대, "deflate" 등의 가역 압축 알고리즘을 이용하여 수행하는 것이 가능하다. 여기서, 도 7에 예시한 프레임 정보(90)와 같이, 좌표 정보나 회전 각도 정보가 직전의 좌표나 회전각도와의 차이가 되도록 변환된 프레임 정보를 이용하는 경우에는, 상술한 바와 같이, 좌표정보나 회전각도정보(렌더링 명령어의 인수)에 동일한 값이 많이 포함되므로, 프레임 정보를 압축할 때의 압축율이 보다 높아진다. 또한, 프레임 정보의 압축은 복수의 프레임에 걸쳐 수행되는 것이 가능하고, 예컨대 프레임에 걸쳐 사전을 이용한 압축을 수행하는 것도 가능하다. 이와 같은 프레임 정보 생성 및 송신 처리가 반복하여 실행되면, 단말장치(30)는, 수신한 프레임 정보를 복호화하는 한편 프레임 정보에 기술되어 있는 렌더링 명령어를 예컨대 브라우저 상에서 실행하고, 게임용 화면(60)의 프레임이 순서대로 반복하여 표시된다. 또한, 상술한 프레임 정보(90)와 같이, 좌표정보나 회전각도 정보가 직전의 좌표나 회전각도와의 차이가 되도록 변환된 프레임 정보인 경우에는, 단말장치(30)에서 좌표정보나 회전각도 정보를 좌표나 회전각도를 직접 특정하는 정보로 역변환한 후에 렌더링 명령어가 실행된다.
이상으로 게임의 진행에 따른 게임용 화면의 단말장치(30)로의 표시에 관한 동작에 대해 설명하였다. 다음으로, 단말장치(30)의 처리능력에 관한 통계정보의 취득에 관한 동작에 대해 설명한다. 도 8은, 단말장치(30)의 처리능력을 특정하기 위해 통계정보를 취득하는 통계정보 취득처리의 일 예를 도시하는 흐름도이다. 이러한 처리는, 서버(10)에 의해 소정 시간 간격으로(예컨대, 100밀리초마다) 반복하여 실행된다. 통계정보 취득처리에서는, 먼저, 도시하는 바와 같이 단말장치(30)에 대해 렌더링 실행시간 정보를 요청한다(단계 S200). 이러한 요청은, 멀티유저 온라인 게임을 플레이하는 복수의 유저가 조작하는 단말장치(30)마다 수행된다. 렌더링 실행시간 정보의 요청은, 일 실시형태에서는, 서버(10)에 의해 관리되고 있는 현재 시각과, 렌더링 실행시간 정보의 송신을 지시하는 정보를 단말장치(30)에 대해 송신하는 것에 의해 수행된다. 이들 정보를 수신한 단말장치(30)에서는, 수신한 현재 시각(서버(10)가 렌더링 실행시간 정보를 요청한 시각)과 단말장치(30)에서의 렌더링 실행시간 정보를 서버(10)에 대해 송신한다. 여기에서, 일 실시형태에서는, 단말장치(30)에서의 렌더링 실행시간 정보(예컨대, 1 프레임을 렌더링하는데 필요한 시간의 평균치)를 관리하는 처리를 수행하도록 기술된 프로그램이 실행되고, 이러한 프로그램의 실행에 의해 관리되고 있는 렌더링 실행시간 정보가 서버(10)에 대해 송신된다.
이어서, 단말장치(30)로부터 수신한 정보를 통계정보 관리 테이블에 등록한다(단계 S210). 구체적으로는, 수신한 현재 시각이 "송신시각"으로 설정되고, 수신한 렌더링 실행시간 정보가 "렌더링 실행시간 정보"로 설정되며, 이들 정보를 수신한 시각이 "수신시각"으로 설정된다.
그리고, 단말장치(30)에 대한 프레임 레이트의 상한치를 설정하고(단계 S220), 이러한 통계정보 취득 처리를 종료한다. 프레임 레이트의 상한치 설정은 다양한 방법으로 수행하는 것이 가능하다. 예를 들어, 렌더링 실행시간 정보에 기초하여 단말장치(30)에 의해 처리가능한 프레임 레이트를 상한치로서 설정하는 것이 가능하다. 구체적으로는, 예컨대, 단말장치(30)에서의 1 프레임의 렌더링 시간(의 평균치)가 50밀리초인 경우에는, 1초당 렌더링 가능한 프레임 수는 20이 되므로, 프레임 레이트의 상한치를 20fps(Frames Per Second) 또는 그것보다 작은 값(예를 들면20fpsX0.8=16fps)로 하는 것이 가능하다. 또한, 프레임 레이트의 상한치를 설정하는 다른 방법으로서, 예컨대, 단말장치(30)에 대해 렌더링 실행시간 정보를 요청할 때부터 단말장치(30)로부터 렌더링 실행시간 정보를 수신할 때까지의 경과시간(라운드 트립 타임(RTT), 통계정보 관리 테이블의 송신시각과 수신시각에 기초하여 계산하는 것이 가능하다)에 기초하여, 단말장치(30)에 의해 처리가능한 프레임 레이트를 상한치로서 설정하는 것이 가능하다. 구체적으로는, 예를 들어, 프레임 레이트의 상한치를 실험치에 기초하여 "3000/RTT(밀리초)"로 설정하는 것이 가능하다. 이 경우, 예컨대, RTT가 100밀리초가 되는 경우에는, 프레임 레이트의 상한치는 30fps가 되고, RTT가 150밀리초가 되는 경우에는, 프레임 레이트의 상한치는 20fps가 된다. 이와 같이 RTT에 기초하여 프레임 레이트의 상한치를 설정하는 것에 의해, 예를 들면, 모바일 네트워크에서 기지국의 바뀜(핸드오버)가 생기는 경우 등, 일시적으로 RTT가 증대한 경우에 프레임 레이트의 상한치가 적어져서 단말장치(30)에 대해 송신되는 프레임 정보가 감소하므로, 단말장치(30)에서의 통신상황이 회복한 후에 처리해야 할 프레임 정보가 감소하고, 통상의 처리로의 조기 복구를 도모하는 것이 가능하다. 또한, RTT가 소정 역치(예컨대, 500밀리초)를 초과하는 경우에는, 프레임 레이트의 상한치로 값 "0"을 설정하도록 해도 좋다. 이렇게 하면, 단말장치(30)에서의 통신상황이 극단적으로 나쁜 경우에, 프레임 정보의 송신을 정지하는 것이 가능하므로, 통상의 처리로의 더욱 더 빠른 복구를 도모하는 것이 가능하다. 또한, 단계 S220에서의 프레임 레이트의 상한치 설정은 통계정보 취득처리와는 다른 타이밍에서 수행하도록 해도 좋다.
여기에서, 예를 들어, 프레임 레이트의 상한치로 값 "0"이 설정되고, 도 4에 예시한 프레임 정보 생성 및 송신 처리에 있어서, 프레임 정보의 송신이 연속하여 스킵되는 경우를 생각한다. 이러한 경우에, 프레임 정보 생성 및 송신 처리에서는 서버(10)로부터 단말장치(30)로의 프레임 정보의 송신은 수행되지 않으므로, 예컨대, TCP 통신에서의 패킷 로스가 생기고 있는 경우라 하더라도, 단말장치(30)로부터 확인응답이 송신되지 않는 상태인 채로 일정 시간(예를 들어, 3초)가 경과하는 것을 기다려 패킷의 재전송이 수행되는 것으로 될 수 있다. 하지만, 일 실시형태에서는, 단말장치(30)로의 프레임 정보의 송신이 수행되지 않는 동안에도, 전술한 통계정보 취득처리에 의해 단말장치(30)에 대한 데이터 통신(렌더링 실행시간 정보의 요청)이 발생하므로, TCP 통신에서의 "TCP fast retransmit" 기능에 의해, 상술한 일정 시간이 경과하는 것을 기다리는 것 없이 패킷의 재전송이 수행되고, 더욱 빠르게 패킷 로스를 회복하는 것이 가능하다.
이상 설명한 일 실시형태에서의 서버(10)에서는, 제1 시간 간격으로, 단말장치(30)에 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 생성하고, 제2 시간 간격으로, 렌더링 실행시간 정보(프레임 표시시간 정보/소정 정보)의 송신을 단말장치(30)에 대해 요청하고, 단말장치(30)로부터의 렌더링 실행시간 정보의 송신에 따라 특정된 단말장치(30)의 렌더링 시간이나 RTT(처리능력)에 기초하여 프레임 정보를 단말장치(30)에 대해 송신할지 말지를 판단하고, 송신한다고 판단된 프레임 정보를 단말장치(30)에 대해 송신한다. 따라서, 단말장치(30)의 처리능력에 따라, 프레임 정보의 송신 유무를 제어하므로, 단말장치(30)의 처리능력에 따른 보다 적절한 프레임 레이트로 게임용 화면을 송신하는 것이 가능하다.
일 실시형태에서는, 단말장치(30)의 처리능력으로서 렌더링 시간이나 RTT를 예시하였으나, 이들에 한정되지 않고, 그 밖의 정보를 단말장치(30)의 처리능력으로서 이용하는 것도 가능하다. 또한, 일 실시형태에서는 렌더링 시간이나 RTT에 기초하여 프레임 레이트의 상한치를 설정하고, 그 상한치 범위 내에서 프레임 정보가 송신되도록 하였으나, 반드시 프레임 레이트의 상한치를 이용하여 제어할 필요가 있는 것은 아니다. 렌더링 시간이나 RTT 등 단말정보(30)의 처리 능력에 기초하여 프레임 정보의 송신 유무를 판단하는 다른 다양한 방법을 적용할 수 있다. 더욱이, 일 실시형태에서는, 프레임 정보는, 게임용 화면(60)의 1 프레임을 표시시키기 위해 단말장치(30)에서 실행되는 복수의 렌더링 명령어가 기술되고 있는 것으로 하였으나, 프레임 정보의 형식은 이것에 한정되지 않고, 단말장치(30)에 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키는 다른 다양한 형식을 적용할 수 있다.
본 명세서에서 설명된 처리 및 절차는 실시형태 중에서 명시적으로 설명된 것 이외에도, 소프트웨어, 하드웨어 또는 이들의 임의 조합에 의해 실현된다. 보다 구체적으로는, 본 명세서에서 설명되는 처리 및 절차는 집적회로, 휘발성 메모리, 불휘발성 메모리, 자기 디스크, 광스토리지 등의 매체로, 해당 처리에 상응하는 로직을 탑재하는 것에 의해 실현된다. 또한, 본 명세서에서 설명되는 처리 및 절차는 그들 처리 및 절차를 컴퓨터 프로그램으로서 탑재하고, 각종 컴퓨터에서 실행시키는 것이 가능하다.
본 명세서중에서 설명되는 처리 및 절차가 단일 장치, 소프트웨어, 컴포넌트, 모듈에 의해 실행되는 것으로 설명되어 있어도, 그러한 처리 또는 절차는 복수의 장치, 복수의 소프트웨어, 복수의 컴포넌트, 및/또는 복수의 모듈에 의해 실행될 수 있다. 또한, 본 명세서중에서 설명되는 데이터, 테이블 또는 데이터베이스가 단일 메모리에 저장되는 것으로 설명되어 있어도, 그러한 데이터, 테이블 또는 데이터베이스는 단일 장치에 구비된 복수의 메모리 또는 복수의 장치로 분산하여 배치된 복수의 메모리에 분산하여 저장될 수 있다. 더욱이, 본 명세서에서 설명되는 소프트웨어 및 하드웨어의 요소는 그들을 보다 작은 구성요소로 분해하거나 또는 보다 큰 구성요소로 통합하는 것에 의해 실현하는 것도 가능하다.
본 명세서에서, 발명의 구성요소가 단수 또는 복수의 어느 한 쪽으로 설명된 경우, 또는 단수 또는 복수의 어느 것으로도 한정하지 않고 설명된 경우에도 문맥상 다르게 해석해야 하는 경우를 제외하고는, 해당 구성요소는 단수 또는 복수의 어느 것으로 해도 좋다.
1: 시스템 10: 서버
20: 통신망 30: 단말장치
51: 게임 진행 모듈 52: 생성 모듈
53: 판단 모듈 54: 압축 모듈
55: 송신 모듈 56: 요청 모듈
60: 게임용 화면 80, 90: 프레임 정보

Claims (9)

  1. 통신 가능하도록 접속된 복수의 단말장치에 대해 게임을 제공하는 서버로서,
    상기 단말장치로부터 송신되는 입력정보에 따라 상기 게임을 진행시키는 게임 진행 모듈,
    제1 시간 간격으로, 상기 단말장치에 상기 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 해당 게임의 진행에 따라 생성하는 생성 모듈,
    제2 시간 간격으로, 상기 단말장치의 처리 능력을 특정하기 위해 소정 정보의 송신을 상기 단말장치에 대해 요청하는 요청 모듈,
    상기 단말장치로부터의 상기 소정 정보의 송신에 따라 특정된 해당 단말장치의 처리능력에 기초하여, 상기 생성된 프레임 정보를 상기 단말장치에 대해 송신할지 말지를 판단하고, 송신하지 않는다고 판단된 상기 프레임 정보의 송신을 스킵하는 판단 모듈, 및
    상기 단말장치에 대해 송신한다고 판단된 상기 프레임 정보를 해당 단말장치에 대해 송신하는 송신 모듈을 구비한, 게임 제공 서버.
  2. 청구항 1에 있어서,
    상기 소정 정보는, 상기 단말장치에서의 상기 1 프레임의 표시에 필요한 시간에 관계되는 프레임 표시시간 정보를 포함하고,
    상기 판단 모듈은, 상기 단말장치의 처리능력으로서의 상기 프레임 표시시간 정보에 기초하여 상기 생성된 프레임 정보를 송신할지 말지를 판단하는, 게임 제공 서버.
  3. 청구항 1에 있어서,
    상기 판단 모듈은, 상기 단말장치의 처리능력으로서의, 상기 단말장치에 대해 상기 소정 정보의 송신을 요청하고부터 해당 소정 정보를 수신할 때까지의 경과시간에 기초하여 상기 생성된 프레임 정보를 송신할지 말지를 판단하는, 게임 제공 서버.
  4. 청구항 3에 있어서,
    상기 판단 모듈은, 상기 경과시간이 소정 역치 이상인 경우에는, 상기 생성된 프레임 정보를 송신하지 않는다고 판단하는, 게임 제공 서버.
  5. 청구항 1 내지 4 중 어느 항에 있어서,
    상기 판단 모듈은, 상기 단말장치의 처리능력에 기초하여, 해당 단말장치에 대해 단위시간당 송신하는 프레임 수의 상한치를 설정하고, 해당 상한치의 범위내가 되도록, 상기 생성된 프레임 정보를 송신할지 말지를 판단하는, 게임 제공 서버.
  6. 청구항 1에 있어서,
    상기 단말장치에 대해 TCP에 의한 통신을 이용하여 상기 게임을 제공하는, 게임 제공 서버.
  7. 청구항 1에 있어서,
    상기 프레임 정보는, 상기 게임용 화면의 1 프레임을 표시시키기 위해 해당 단말장치에서 실행되는 적어도 복수의 렌더링 명령어가 기술되어 있는, 게임 제공 서버.
  8. 청구항 1에 있어서,
    상기 게임은, 상기 복수의 단말장치를 각각 조작하는 복수의 유저에 의해 동시에 플레이되고,
    상기 생성 모듈은, 상기 복수의 단말장치마다 상기 프레임 정보를 생성하고,
    상기 요청 모듈은, 상기 소정 정보의 송신을 상기 복수의 단말장치마다 요청하고,
    상기 판단 모듈은, 상기 생성된 프레임 정보를 상기 단말장치에 대해 송신할지 말지를 상기 복수의 단말장치마다 판단하고,
    상기 송신 모듈은, 상기 프레임 정보를 상기 복수의 단말장치마다 송신하는, 게임 제공 서버.
  9. 게임 제공 서버에서 통신 가능하도록 접속된 복수의 단말장치로 게임을 제공하는 방법에 있어서, 상기 게임 제공 서버가,
    상기 단말장치로부터 송신되는 입력정보에 따라 상기 게임을 진행시키고,
    제1 시간 간격으로, 상기 단말장치에 상기 게임의 진행에 따른 게임용 화면의 1 프레임을 표시시키기 위한 프레임 정보를 해당 게임의 진행에 따라 생성하고,
    제2 시간 간격으로, 상기 단말장치의 처리 능력을 특정하기 위해 소정 정보의 송신을 상기 단말장치에 대해 요청하고,
    상기 단말장치로부터의 상기 소정 정보의 송신에 따라 특정된 해당 단말장치의 처리능력에 기초하여, 상기 생성된 프레임 정보를 상기 단말장치에 대해 송신할지 말지를 판단하고 송신하지 않는다고 판단된 상기 프레임 정보의 송신을 스킵하며,
    상기 단말장치에 대해 송신한다고 판단된 상기 프레임 정보를 해당 단말장치에 대해 송신하는, 게임 제공 방법.
KR1020140103219A 2013-08-12 2014-08-11 게임을 제공하는 서버 및 방법 KR101595105B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013167267A JP5411386B1 (ja) 2013-08-12 2013-08-12 ゲームを提供するサーバ及び方法
JPJP-P-2013-167267 2013-08-12

Publications (2)

Publication Number Publication Date
KR20150020999A KR20150020999A (ko) 2015-02-27
KR101595105B1 true KR101595105B1 (ko) 2016-02-18

Family

ID=50202714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140103219A KR101595105B1 (ko) 2013-08-12 2014-08-11 게임을 제공하는 서버 및 방법

Country Status (5)

Country Link
US (1) US9174130B2 (ko)
EP (1) EP2837418A1 (ko)
JP (1) JP5411386B1 (ko)
KR (1) KR101595105B1 (ko)
CN (1) CN104378407B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5411385B1 (ja) * 2013-08-12 2014-02-12 株式会社 ディー・エヌ・エー ゲームを提供するサーバ及び方法
KR20160144939A (ko) 2016-03-18 2016-12-19 (주)라이징게임즈 경쟁게임 제공 시스템 및 방법과 그 프로그램 및 기록매체
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
US10388054B2 (en) 2016-06-03 2019-08-20 Apple Inc. Controlling display performance using animation based refresh rates
JP6377289B1 (ja) * 2018-01-31 2018-08-22 株式会社Cygames 情報処理プログラム、情報処理サーバ、及び情報処理システム
KR20200126628A (ko) 2019-04-30 2020-11-09 주식회사 제이에스 플레이 실시간 전략전투게임 제공장치 및 방법과 그 프로그램 및 기록매체
CN111632382B (zh) * 2020-05-25 2021-06-25 腾讯科技(深圳)有限公司 游戏数据同步方法、装置、计算机及可读存储介质
CN112316424B (zh) * 2021-01-06 2021-03-26 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
JP2023049982A (ja) * 2021-09-29 2023-04-10 株式会社バンダイナムコエンターテインメント サーバシステム、プログラム、プレーヤ端末、及び提供方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090080523A1 (en) 2007-09-24 2009-03-26 Microsoft Corporation Remote user interface updates using difference and motion encoding
JP2009245471A (ja) 2008-03-28 2009-10-22 Sony Corp 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312260A (ja) * 2000-04-28 2001-11-09 Konami Computer Entertainment Japan Inc 画像表示方法、ゲームシステム及び画像表示プログラムを記録したコンピュータ読み取り可能な記録媒体
JPWO2006025255A1 (ja) * 2004-08-30 2008-05-08 松下電器産業株式会社 多人数参加型アプリケーションを実行するクライアント端末装置、グループ形成方法及びグループ形成プログラム
US8754904B2 (en) * 2011-04-03 2014-06-17 Lucidlogix Software Solutions, Ltd. Virtualization method of vertical-synchronization in graphics systems
JP5616307B2 (ja) 2011-09-21 2014-10-29 株式会社スクウェア・エニックス オンラインゲームシステム、及びサーバ装置群
JP5622704B2 (ja) * 2011-10-21 2014-11-12 株式会社リアルスタイル プログラム、情報記憶媒体、画像生成システム、サーバ及びゲーム提供方法
TWI584221B (zh) * 2012-09-28 2017-05-21 輝達公司 適應性調整圖形處理單元之圖框率的方法及使用該方法的電腦系統
US10616086B2 (en) * 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US20090080523A1 (en) 2007-09-24 2009-03-26 Microsoft Corporation Remote user interface updates using difference and motion encoding
JP2009245471A (ja) 2008-03-28 2009-10-22 Sony Corp 情報処理装置および方法、プログラム、記録媒体、並びに情報処理システム

Also Published As

Publication number Publication date
JP2015035997A (ja) 2015-02-23
JP5411386B1 (ja) 2014-02-12
CN104378407B (zh) 2018-01-05
US9174130B2 (en) 2015-11-03
US20150045119A1 (en) 2015-02-12
CN104378407A (zh) 2015-02-25
EP2837418A1 (en) 2015-02-18
KR20150020999A (ko) 2015-02-27

Similar Documents

Publication Publication Date Title
KR101595105B1 (ko) 게임을 제공하는 서버 및 방법
KR101595103B1 (ko) 게임을 제공하는 서버 및 방법
US11752429B2 (en) Multi-user demo streaming service for cloud gaming
US9873045B2 (en) Systems and methods for a unified game experience
CN109091861B (zh) 游戏中的交互控制方法、电子设备及存储介质
EP2731077A1 (en) Image display system, information processing device, server, and image processing method
JPWO2013128709A1 (ja) 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、情報処理装置
CN111672132A (zh) 游戏的控制方法、控制装置、服务器和存储介质
JP5545687B1 (ja) ゲームを提供するサーバ及び方法
JP5504370B1 (ja) 動画をクライアント端末に表示させるサーバ及び方法
JP6360711B2 (ja) ゲームを提供するサーバ及び方法
JP2015088156A (ja) 動画をクライアント端末に表示させるサーバ及び方法
US9465738B2 (en) Information processing system, control method, program, and recording medium
JP2015036112A (ja) ゲームを提供するサーバ及び方法
JP2015036111A (ja) ゲームを提供するサーバ及び方法
JP6475923B2 (ja) ゲームシステム及びこれに用いられるゲームサーバ
JP6688366B2 (ja) オンラインゲームを提供するサーバ装置及びゲームアプリケーションプログラム

Legal Events

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

Payment date: 20190201

Year of fee payment: 4