KR101944460B1 - 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램 - Google Patents

정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램 Download PDF

Info

Publication number
KR101944460B1
KR101944460B1 KR1020177025244A KR20177025244A KR101944460B1 KR 101944460 B1 KR101944460 B1 KR 101944460B1 KR 1020177025244 A KR1020177025244 A KR 1020177025244A KR 20177025244 A KR20177025244 A KR 20177025244A KR 101944460 B1 KR101944460 B1 KR 101944460B1
Authority
KR
South Korea
Prior art keywords
waiting time
command
request
server
terminal
Prior art date
Application number
KR1020177025244A
Other languages
English (en)
Other versions
KR20170115094A (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 KR20170115094A publication Critical patent/KR20170115094A/ko
Application granted granted Critical
Publication of KR101944460B1 publication Critical patent/KR101944460B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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
    • 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/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling 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 using indicators, e.g. showing the condition of a game character on screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features 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 details of game servers
    • A63F2300/51Server architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

서버에서의 폭주를 방지함과 함께, 단말측의 유저에게 스트레스를 주지 않고 또한 싫증나지 않도록 하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 정보 처리 시스템에 적용하여 호적한 기술을 확립하는 것이다. 서버(2)의 부하 감시부(102)는, 리퀘스트의 처리에 관한 소정 조건을 만족시키는지 여부를 감시한다. 대기 시간 연산부(103)는, 소정 조건을 만족시키지 않는 경우, 플레이어 단말(1)측에서의 시간의 흐름의 속도를 제어하는 시간 파라미터로서 대기 시간을 연산한다. 리퀘스트 실행부(104)는, 리퀘스트를 도달 순으로 실행하여, 리스판스를 생성한다. 리스판스 송신 제어부(105)는, 리스판스를, 대응하는 리퀘스트를 송신한 플레이어 단말(1)에 송신함과 함께, 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 플레이어 단말(1)에 송신하는 제어를 실행한다.

Description

정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램
본 발명은, 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램에 관한 것이다.
종래로부터, 스마트폰 등의 단말에서 실행 가능한 게임으로서, 멀티 배틀 등 복수의 플레이어가 참가 가능한 게임이 존재한다(예를 들어 특허문헌 1 참조).
이러한 게임에서는, 다음과 같은 리퀘스트 & 리스판스 방식이 채용되어 있는 경우가 많다. 즉, 플레이어가 단말을 조작하여 커맨드를 입력하면, 단말은, 해당 커맨드를 리퀘스트로서 서버에 송신한다. 서버는, 리퀘스트를 실행하고, 그 실행 결과 등을 리스판스로서 단말에 송신한다.
특허 문헌 1: WO2014/098237 팜플렛
최근의 모바일 컴퓨팅의 발달에 따라, 게임의 클라이언트(단말)의 수는 가속도적으로 증가하고 있다. 이에 따라, 방대한 수의 단말에 의해 게임이 동시에 실행되게 되어, 다수의 단말로부터의 리퀘스트가 서버에 집중되어, 서버가 폭주 상태에 빠질 우려가 있다.
따라서, 리퀘스트 & 리스판스 방식이 채용된 게임에서는, 서버에서의 폭주를 방지하는 기술이 필요하게 된다.
그러나, 이러한 기술로서 호적한 기술을 발견하지 못한 상황이다.
구체적으로는 예를 들어, 특허문헌 1에 기재된 기술은, 리퀘스트 & 리스판스 방식과는 다른 방식을 채용한 기술이다.
또한 예를 들어, 서버의 부하를 저감하는 종래의 기술로는, 병렬화와, 비동기 I/O가 존재한다. 그러나, 이들 기술은, 리퀘스트 & 리스판스 방식이 채용된 게임에 대해서는 부적합하다.
즉, 병렬화란, 서버
Figure 112017087047570-pct00001
인프라 내의 계산기 자원(노드)을 증가시키는 기술이며, 클라이언트의 증대에 따라 서버를 증설하고, 서버
Figure 112017087047570-pct00002
인프라 전체의 처리 능력을 높여, 보다 많은 리퀘스트를 처리 가능하게 하는 기술이다.
따라서, 병렬화를 적용하는 경우, 서버 부하의 상승에 맞추어 특별히 서버를 증설하게 된다.
그러나, 서버의 증설은, 클라이언트수(단말수)의 증가가 매우 빠른 게임 분야에서는, 현실적이지 않다.
또한, 병렬화를 적용하는 경우, 서버
Figure 112017087047570-pct00003
인프라 내부에 방대한 수의 계산 노드를 미리 준비할 필요가 있다.
이것은, 인프라의 유지 비용의 대폭증으로 이어지므로, 경제적이지 않다.
비동기 I/O는, I/O에 수반하는 대기 시간을 이용하여, 1개의 스레드/프로세스가 복수의 클라이언트와 통신을 행하는 기술이며, 서버의 CPU의 이용 효율을 향상시킬 수 있다.
그러나, 비동기 I/O는, 클라이언트수(단말수)가 급격히 증가한 경우의 폭주를 방지하는 기능을 갖고 있지 않다.
이와 같이, 서버에서의 폭주를 방지하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 게임에 적용하여 호적한 기술을 발견하지 못한 상황이다.
또한, 리퀘스트 & 리스판스 방식은 게임에 특별히 한정되지 않는다. 즉, 상기 상황을 환언하면, 서버에서의 폭주를 방지하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 정보 처리 시스템에 적용하여 호적한 기술을 발견하지 못한 상황이다.
또한, 비록 서버에서의 폭주의 방지 자체가 실현되었다고 하더라도, 그 결과로서, 단말을 조작하는 유저(게임의 경우 플레이어)에게 불필요한 스트레스를 주거나 싫증나게 하는 사태가 되는 것은 피해야 한다.
본 발명은, 이러한 상황을 감안하여 이루어진 것으로, 서버측에서의 폭주를 방지함과 함께, 단말측의 유저(게임의 경우 플레이어)에게 스트레스를 주지 않고 또한 싫증나지 않도록 하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 정보 처리 시스템에 적용하여 호적한 기술을 확립하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명의 일태양의 정보 처리 시스템은,
서버와, 해당 서버에 소정의 리퀘스트를 송신하는 복수의 단말을 포함하는 정보 처리 시스템에 있어서,
상기 서버는,
리퀘스트의 처리에 관한 소정 조건을 만족시키는지 여부를 감시하는 감시 수단과,
상기 소정 조건을 만족시키지 않는 경우, 단말측에서의 리퀘스트의 송신까지의 대기 시간을 연산하는 대기 시간 연산 수단과,
리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 수단과,
상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 제1 송신 제어 수단,
을 구비하고,
상기 단말은,
소정의 커맨드를 접수하는 커맨드 접수 수단과,
상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 수단과,
설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 화상의 표시를 제어하는 표시 제어 수단과,
설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 제2 송신 제어 수단,
을 구비한다.
본 발명의 일태양의 서버는,
소정의 리퀘스트를 송신하는 복수의 단말과 통신을 하는 서버에 있어서,
리퀘스트의 처리에 관한 소정 조건을 만족시키는지 여부를 감시하는 제1 감시 수단과,
상기 소정 조건을 만족시키지 않는 경우, 단말측에서의 시간의 흐름의 속도를 제어하는 시간 파라미터로서 대기 시간을 연산하는 대기 시간 연산 수단과,
리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 수단과,
상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 송신 제어 수단,
을 구비한다.
본 발명의 일태양의 제1 프로그램은, 상기 서술한 본 발명의 일태양의 서버에 대응하는 프로그램이다.
본 발명의 일태양의 단말은,
리퀘스트에 대한 리스판스를, 해당 리퀘스트를 송신한 단말에 송신함과 함께, 소정 조건을 만족시키는 경우에는 다음의 리퀘스트의 송신까지의 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 서버와의 사이에서 통신을 하는 단말에 있어서,
소정의 커맨드를 접수하는 커맨드 접수 수단과,
상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 수단과,
설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 화상의 표시를 제어하는 표시 제어 수단과,
설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 송신 제어 수단,
을 구비한다.
본 발명의 일태양의 제2 프로그램은, 상기 서술한 본 발명의 일태양의 단말에 대응하는 프로그램이다.
본 발명에 따르면, 서버측에서의 폭주를 방지함과 함께, 단말측의 유저(게임의 경우 플레이어)에게 스트레스를 주지 않고 또한 싫증나지 않도록 하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 정보 처리 시스템에 적용하여 호적한 기술을 확립할 수 있다.
도 1은 본 발명의 일 실시형태에 따른 정보 처리 시스템의 구성을 나타내는 블록도이다.
도 2는, 도 1의 정보 처리 시스템 중, 본 발명의 단말의 일 실시형태로서의 플레이어 단말의 하드웨어 구성을 나타내는 블록도이다.
도 3은 도 1의 정보 처리 시스템 중, 본 발명의 일 실시형태에 따른 서버의 하드웨어 구성을 나타내는 블록도이다.
도 4는 도 2의 플레이어 단말과 도 3의 서버의 기능적 구성예를 나타내는 기능 블록도이다.
도 5는 도 4의 기능적 구성을 갖는 서버가 실행하는 예방적 부하 분산 처리의 개요 설명하기 위한 모식도이다.
도 6은 도 5의 대기 시간 DB에 저장되어 있는 리스트의 일례를 나타내는 도면이다.
도 7은 본 실시형태의 게임 화면의 일례를 나타내는 도면이다.
도 8은 커맨드의 편집을 설명하기 위한 모식도이다.
도 9는 커맨드의 비동기 입력의 구체예를 나타내는 게임 화면의 천이도이다.
도 10은 도 4의 기능적 구성을 갖는 서버측의 처리의 흐름의 일례를 설명하는 플로우 차트이다.
도 11은 도 4의 기능적 구성을 갖는 플레이어 단말측의 처리의 흐름의 일례를 설명하는 플로우 차트이다.
이하, 본 발명의 실시형태에 대하여, 도면을 이용하여 설명한다.
또한, 이하에 있어서, 간단히 '화상'이라 부르는 경우에는, '동영상'과 '정지화상'의 양방을 포함하는 것으로 한다.
또한, '동영상'에는, 다음의 제1 처리 내지 제3 처리의 각각에 의해 표시되는 화상을 포함하는 것으로 한다.
제1 처리란, 평면 화상(2D 화상)에 있어서의 오브젝트(예를 들어 게임 캐릭터)의 각각의 동작에 대하여, 복수매로 이루어진 일련의 정지화상을 시간 경과와 함께 연속적으로 전환하여 표시시키는 처리를 말한다. 구체적으로는 예를 들어, 2차원 애니메이션, 이른바 플립북과 같은 처리가 제1 처리에 해당한다.
제2 처리란, 입체 화상(3D 모델의 화상)에 있어서의 오브젝트(예를 들어 게임 캐릭터)의 각각의 동작에 대응하는 모션을 설정해 두고, 시간 경과와 함께 해당 모션을 변화시켜 표시시키는 처리를 말한다. 구체적으로는 예를 들어, 3차원 애니메이션이 제2 처리에 해당한다.
제3 처리란, 오브젝트(예를 들어 게임 캐릭터)의 각각의 동작에 대응한 영상(즉 동영상)을 준비해두고, 시간 경과와 함께 해당 영상을 흘려보내는 처리를 말한다.
도 1은, 본 발명의 일 실시형태에 따른 정보 처리 시스템의 구성을 나타내고 있다.
도 1에 나타낸 정보 처리 시스템은, m인(m은 1 이상의 임의의 정수값)의 플레이어의 각각에 의해 사용되는 플레이어 단말(1-1 내지 1-m)과, 서버(2)를 포함하는 시스템이다. 플레이어 단말(1-1 내지 1-m)의 각각과, 서버(2)는, 인터넷 등의 소정의 네트워크(N)를 개재하여 상호 접속되어 있다.
서버(2)는, 플레이어 단말(1-1 내지 1-m)의 각각에 대하여 게임의 실행 환경을 제공하고, 플레이어 단말(1-1 내지 1-m)의 각각에 있어서 실행되는 게임에 관한 각종 각양의 서비스를 제공한다.
또한, 이하, 플레이어 단말(1-1 내지 1-m)의 각각을 개개로 구별할 필요가 없는 경우, 이들을 합하여 '플레이어 단말(1)'이라고 부른다.
도 2는, 도 1의 정보 처리 시스템 중, 본 발명의 단말의 일 실시형태로서의 플레이어 단말(1)의 하드웨어 구성을 나타내는 블록도이다.
플레이어 단말(1)은, 스마트폰 등으로 구성된다.
플레이어 단말(1)은, CPU(Central Processing Unit)(21)와, ROM(Read Only Memory)(22)과, RAM(Random Access Memory)(23)과, 버스(24)와, 입출력 인터페이스(25)와, 터치 조작 입력부(26)와, 표시부(27)와, 입력부(28)와, 기억부(29)와, 통신부(30)와, 드라이브(31)를 구비하고 있다.
CPU(21)는, ROM(22)에 기록되어 있는 프로그램, 또는, 기억부(29)로부터 RAM(23)에 로드된 프로그램에 따라서 각종의 처리를 실행한다.
RAM(23)에는, CPU(21)가 각종의 처리를 실행함에 있어서 필요한 데이터 등도 적당히 기억된다.
CPU(21), ROM(22) 및 RAM(23)은, 버스(24)를 개재하여 상호 접속되어 있다. 이 버스(24)에는 또한, 입출력 인터페이스(25)도 접속되어 있다. 입출력 인터페이스(25)에는, 터치 조작 입력부(26), 표시부(27), 입력부(28), 기억부(29), 통신부(30) 및 드라이브(31)가 접속되어 있다.
터치 조작 입력부(26)는, 예를 들어 표시부(27)의 표시면에 적층되는 정전용량식 또는 저항막식(감압식)의 위치 입력 센서에 의해 구성되고, 터치 조작이 이루어진 위치의 좌표를 검출한다.
여기서, 터치 조작이란, 터치 조작 입력부(26)에 대한 물체의 접촉 또는 근접한 조작을 말한다. 터치 조작 입력부(26)에 대하여 접촉 또는 근접한 물체는, 예를 들어 플레이어의 손가락이나 터치펜 등이다. 또한, 이하, 터치 조작이 이루어진 위치를 '터치 위치'라고 하고, 터치 위치의 좌표를 '터치 좌표'라고 한다.
표시부(17)는, 액정 등의 디스플레이에 의해 구성되고, 게임에 관한 화상 등, 각종 화상을 표시한다.
이와 같이, 본 실시형태에서는, 터치 조작 입력부(26)와 표시부(27)에 의해, 터치 패널이 구성되어 있다.
입력부(28)는, 각종 하드웨어 버튼 등으로 구성되고, 플레이어의 지시 조작에 따라 각종 정보를 입력한다.
기억부(29)는, DRAM(Dynamic Random Access Memory) 등으로 구성되고, 각종 데이터를 기억한다.
통신부(30)는, 인터넷을 포함하는 네트워크(N)를 개재하여 다른 장치(도 1의 예에서는 서버(2)나 다른 플레이어 단말(1))와의 사이에서 행하는 통신을 제어한다.
드라이브(31)는, 필요에 따라 마련된다. 드라이브(31)에는, 자기 디스크, 광 디스크, 광자기 디스크, 혹은 반도체 메모리 등으로 이루어진, 리무버블 미디어(41)가 적당히 장착된다. 드라이브(31)에 의해 리무버블 미디어(41)로부터 독출된 프로그램은, 필요에 따라 기억부(29)에 인스톨된다. 또한, 리무버블 미디어(41)는, 기억부(29)에 기억되어 있는 각종 데이터도, 기억부(29)와 마찬가지로 기억할 수 있다.
도 3은, 도 1의 정보 처리 시스템 중, 본 발명의 일 실시형태에 따른 서버(2)의 하드웨어 구성을 나타내는 블록도이다.
서버(2)는, CPU(51)와, ROM(52)과, RAM(53)과, 버스(54)와, 입출력 인터페이스(55)와, 출력부(56)와, 입력부(57)와, 기억부(58)와, 통신부(59)와, 드라이브(60)를 구비하고 있다.
서버(2)의 구성은, 플레이어 단말(1)의 터치 패널을 제외한 구성과 기본적으로 동일하므로, 여기서는 그 설명은 생략한다.
이러한 도 2의 플레이어 단말(1) 및 도 3의 서버(2)의 각종 하드웨어와 각종 소프트웨어의 협동에 의해, 플레이어 단말(1)에서 게임의 실행이 가능해진다.
본 실시형태에서는, 멀티 배틀 등의 복수의 플레이어가 참가하는 게임이 대상이며, 리퀘스트 & 리스판스 방식이 채용되어 있다.
즉 본 실시형태에서는, 복수의 플레이어 단말(1)의 각각은, 게임을 동시에 실행하고 있으며, 해당 게임의 커맨드를 리퀘스트로서 서버(2)에 순차 송신한다. 서버(2)는, 복수의 플레이어 단말(1)의 각각으로부터의 리퀘스트를 수신하고, 각각의 리퀘스트를 순차 실행하여, 각각의 실행결과 등을 리스판스로서 복수의 플레이어 단말(1)의 각각에 대하여 송신한다. 복수의 플레이어 단말(1)의 각각은, 리스판스를 수신하면, 커맨드를 실행한다.
여기서, 다수의 플레이어 단말(1)로부터 리퀘스트가 송신되어, 서버(2)가 소정의 단위 시간당 실행가능한 처리량(피크)을 초과하면, 서버(2)에서 제어 불가능한 폭주가 발생한다.
이 경우, 플레이어 단말(1)에 따라서는, 리퀘스트에 대한 리스판스의 도달이 지연된다. 이 지연은 예기치 않은 것이므로, 유저로서는, 게임의 커맨드가 실행되지 않거나 혹은 실행되는 것이 매우 느리다고 느끼고, 싫증나거나 스트레스를 느끼거나 하는 경우가 있다.
이에, 본 실시형태의 플레이어 단말(1)과 서버(2)는, 서버측에서의 폭주를 방지함과 함께, 단말측의 플레이어에게 스트레스를 주지 않고 또한 싫증나지 않도록 하기 위한 기능을 갖고 있다.
도 4는, 이러한 기능을 발휘하기 위한 플레이어 단말(1)과 서버(2)의 기능적 구성예를 나타내는 기능 블록도이다.
도 4에 나타낸 바와 같이, 서버(2)의 CPU(51)에 있어서는, 리퀘스트 수신 제어부(101)와, 부하 감시부(102)와, 대기 시간 연산부(103)와, 리퀘스트 실행부(104)와, 리스판스 송신 제어부(105)와, 부정 감시부(106)가 기능한다.
서버(2)의 기억부(58)의 일영역에는, 대기 시간 DB(111)가 마련된다.
리퀘스트 수신 제어부(101)는, 플레이어 단말(1)로부터 송신되어 온 리퀘스트를 통신부(59)로 수신하는 것을 제어한다.
부하 감시부(102)는, 리퀘스트의 처리에 관한 소정 조건을 만족시키는지 여부를 감시한다.
소정 조건은, 리퀘스트에 관한 조건이면 충분하고, 예를 들어, 현재의 리퀘스트의 수가 소정의 임계치를 초과하지 않는다는 조건을 채용할 수 있다. 소정의 임계치나 소정 조건 등의 구체예에 대해서는 후술한다.
대기 시간 연산부(103)는, 소정 조건을 만족시키지 않는 경우(예를 들어 단위시간당 처리 가능한 임계치수를 초과한 경우), 플레이어 단말(1)측에서의 리퀘스트의 송신까지의 대기 시간을 연산하고, 그 연산 결과를 대기 시간 DB(111)에 기억시킨다.
여기서, '대기 시간'이란, 다음의 리퀘스트의 송신을 허가할 때까지의 시간 파라미터로서, 플레이어 단말(1)측에서 실행 중인 게임의 시간 경과(시간의 흐름의 속도)를 제어하기 위한 파라미터를 말하고, 예를 들어 '현재 시각으로부터 플러스 몇초'와 같은 상대적인 값으로서 연산된다.
즉, 대기 시간 DB(111)는, 복수의 플레이어 단말(1)(본 실시형태에서는 플레이어 단말(1-1 내지 1-m))마다, 대기 시간 등의 정보를 리스트화하여 기억하고 있다. 또한, 대기 시간 DB(111)에 기억되어 있는 리스트의 구체예에 대해서는, 도 6을 참조하여 후술한다.
리퀘스트 실행부(104)는, 리퀘스트를 도달 순으로 실행하여, 리스판스를 생성한다. 리스판스 송신 제어부(105)는, 리스판스를, 대응하는 리퀘스트를 송신한 플레이어 단말(1)에 송신함과 함께, 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 플레이어 단말(1)에 송신하는 제어를 실행한다.
상세에 대해서는 후술하나, 복수의 플레이어 단말(1)의 각각은, 리스판스와 함께 대기 시간을 나타내는 정보를 수신한 경우에는, 차회의 리퀘스트에 대해서는, 커맨드 등을 접수한 타이밍으로부터 해당 대기 시간이 경과한 후에, 서버(2)에 송신한다.
이와 같이 하여, 서버(2)는, 제어 불가능한 폭주가 발생하기 전에(소정의 조건을 만족시키지 않게 됨으로써), 복수의 플레이어 단말(1)의 각각에 대하여 대기 시간을 설정한다. 즉, 서버(2)는, 복수의 플레이어 단말(1)의 각각에 대하여 리퀘스트를 송신하는 빈도를 제어한다.
이에 의해, 복수의 플레이어 단말(1)의 각각이 조금씩 대기 시간을 공유하는 것과 같은, 시간축 방향의 예방적인 부하 분산 처리(이하, '예방적 부하 분산 처리'라고 함)가 실현된다.
나아가 이하, 도 5를 참조하여, 예방적 부하 분산 처리에 대하여 설명한다.
도 5는, 예방적 부하 분산 처리의 개요를 설명하기 위한 모식도이다.
도 5의 좌측의 리퀘스트 버퍼(201)는, 리퀘스트 처리용 버퍼이며, 서버(2)에 실재한다. 예를 들어 도 4 등에는 도시하지 않으나, 본 실시형태에서는 기억부(58)에 리퀘스트 버퍼(201)가 존재하는 것으로 한다.
리퀘스트 버퍼(201)내의 검은 동그라미 표시가, 소정의 플레이어 단말(1)로부터 송신된 서버(2)에서 수신 완료된 리퀘스트를 나타내고 있다. 즉, 서버(2)측의 리퀘스트 실행부(104)에 의해 실행 중 또는 실행 대기인 리퀘스트를 나타내고 있다. 여기서, 검은 동그라미 표시 내의 부호는, 리퀘스트를 송신한 플레이어 단말(1)을 나타내고 있다. 즉, 1A의 검은 동그라미 표시는, 플레이어 단말(1-A)로부터 송신된 리퀘스트를 나타내고 있다. 1B의 검은 동그라미 표시는, 플레이어 단말(1-B)로부터 송신된 리퀘스트를 나타내고 있다. 1C의 검은 동그라미 표시는, 플레이어 단말(1-C)로부터 송신된 리퀘스트를 나타내고 있다.
리퀘스트 버퍼(201)는, 서버(2)에 도달한 순으로 리퀘스트를 저장하고, 도달한 순으로 리퀘스트 실행부(104)에 출력하여 실행시키는 FIFO 큐이다.
도 5의 좌측의 가상 대기 행렬(202)은, 서버(2)로부터 복수의 플레이어 단말(1)(도 5의 예에서는 설명의 편의상 플레이어 단말(1-A, 1-B, 1-C))의 각각에 대기 시간이 통지됨으로써, 가상적으로 구성되는 대기 행렬이다.
가상 대기 행렬(202)내의 하얀 동그라미 표시가, 소정의 플레이어 단말(1)로부터 미송신의 리퀘스트를 나타내고 있다. 즉, 플레이어 단말(1)측에서는 커맨드가 입력되고 나서, 대기 시간분만큼 송신이 지연되고 있는 리퀘스트가, 하얀 동그라미 표시이다. 대기 시간이 경과하여 송신가능하게 된 리퀘스트에는, 'Delay-time expired'라는 기술이 실시되어 있다.
즉, 이 가상 대기 행렬(202)은, 서버(2) 상의 메모리 영역이나 디스크 영역을 소비하여 구축되는 것이 아니고, 플레이어 단말(1)의 각각이, 서버(2)로부터 통지된 대기 시간이 경과할 때까지, 다음의 리퀘스트의 송신을 기다리는 동작에 의해, 실질적으로, 마치 플레이어 단말(1)의 각각이 1개의 행렬 내에 배열되도록 작용함으로써 구성된다.
도 5의 예에서는, 복수의 플레이어 단말(1-A, 1-B, 1-C)의 각각에 대하여, 대기 시간 3000msec가 설정되어 있다.
리퀘스트의 실행은, 리퀘스트 버퍼(201)의 저장순이다. 환언하면, 소정의 1타이밍에는, 적어도 1개의 리퀘스트가 실행된다. 또한, 각 리퀘스트끼리 의존 관계가 없는 경우는, 서버(2)는, 리퀘스트 버퍼(201)로부터의 복수의 리퀘스트를 일시에 취출하고, 병렬로 실행할 수도 있다.
예를 들어, 가상 대기 행렬(202)의 위에서 2번째의 리퀘스트는, 플레이어 단말(1-B)에 있어서 대기 시간이 경과한 리퀘스트이다. 따라서, 해당 리퀘스트는, 플레이어 단말(1-B)로부터 서버(2)에 송신되고, 서버(2)의 리퀘스트 버퍼(201)에 저장되고, 그보다 전에 저장된 리퀘스트가 리퀘스트 버퍼(201)에 존재하지 않게 된 단계에서, 리퀘스트 실행부(104)에 의해 실행된다.
이와 같이 하여 리퀘스트 실행부(104)에 의해 해당 리퀘스트(리퀘스트 버퍼(201)의 위에서 2번째의 리퀘스트)가 실행되면, 리스판스 송신 제어부(105)는, 리스판스를, 플레이어 단말(1-B)에 송신함과 함께, 대기 시간의 값 '3000msec'도 함께 플레이어 단말(1-B)에 통지한다.
이와 같이 하여 플레이어 단말(1-B)에 통지된 대기 시간의 값은, 리퀘스트가 송신 가능해질 때까지의 남은 시간이라는 관점에서, 모든 플레이어 단말(1)(도 5의 예에서는 플레이어 단말(1-A, 1-B, 1-C)의 중에서 최대값이 된다. 따라서, 가상 대기 행렬(202)의 최후미(도 5의 예에서는 위에서 5번째의 하얀 동그라미 표시)에 추가되게 된다.
여기서 주목해야 할 점은, 도 5를 이용하여 설명한 예방적 부하 분산 처리에서는, 플레이어 단말(1)끼리의 P2P 통신은 행하지 않고, 서버(2)에 대한 액세스 빈도가 복수의 플레이어 단말(1)마다 서버(2)측에서 자율 분산적으로 결정되어 있는 점이다.
이에 따라, 서버(2)에 도착하는 리퀘스트의 단위시간 내의 총수가 제어되고, 서버(2)에서의 폭주가 방지된다.
구체적으로는 본 실시형태에서는, 서버(2)에 도착하는 리퀘스트의 단위시간 내의 총수를 제어하는 것을 목적으로 하여, 서버(2)의 단위시간 내의 처리 가능 리퀘스트수(이하 '캐파시티수'라고 함)가 사전에 예정되어 있다.
그리고, 이 캐파시티수에 기초하여 소정의 임계치(예를 들어 캐파시티수의 80%의 값)도 미리 정의되고, 현재의 리퀘스트수가 해당 임계치를 초과하지 않는다는 조건도 미리 설정되어 있다.
즉, 부하 감시부(102)는, 해당 조건을 만족시키는지 여부를 감시함으로써, 서버(2)의 부하 상태를 관련하고 있다.
대기 시간 연산부(103)는, 상기 조건을 만족시키지 않는 경우, 즉, 현재의 리퀘스트수가 해당 임계치를 초과한 경우(이하, 이러한 경우를 '부하가 큼'인 경우라고 함), 예를 들어 다음의 식(1)에 따라서 대기 시간을 연산한다.
[식 1]
Figure 112017087047570-pct00004
...(1)
식(1)에 있어서, delay_sec는 대기 시간을 나타내고 있다. request_per_sec는, 1초간에 서버(2)에 도달하는 리퀘스트수를 나타내고 있다. capacity_per_sec는, 서버(2)에 1초간에 처리 가능한 리퀘스트수를 나타내고 있다.
즉, 본 실시형태에서는, 대기 시간(delay_sec)으로서, 현재의 리퀘스트수(request_per_sec)를 캐파시티수(capacity_per_sec)로 나눈 값이 채용되어 있다.
이러한 값을 채용함으로써, 단위시간내에 캐파시티수를 초과하는 리퀘스트가 도달하는 것이 예상되는 경우(부하가 큼이 되는 경우), 초과분의 리퀘스트는 도 5의 가상 대기 행렬(202)에 저장되므로, 도 5를 이용하여 상기 서술한 바와 같이, 단위시간내에 처리 가능한 리퀘스트만이 서버에 도달한다는 제어가 실현된다.
또한, 대기 시간의 연산 수법은, 특히 식(1)에 따른 본 실시형태의 수법으로 한정되지 않고, 예를 들어, 네트워크(N)의 성능이나 DB의 기입 성능 등을 고려하고, 리퀘스트마다 상이한 대기 시간을 연산하는 수법을 채용할 수도 있다.
리퀘스트 실행부(104)는, 도 5의 리퀘스트 버퍼(201)의 저장순(도달순)으로 리퀘스트를 실행하여, 리스판스를 생성한다.
리스판스 송신 제어부(105)는, 리스판스를, 대응하는 리퀘스트를 송신한 플레이어 단말(1)에 송신함과 함께, 상기 서술한 대기 시간을 해당 플레이어 단말(1)에 통지한다.
복수의 플레이어 단말(1)(도 5의 예에서는 플레이어 단말(1-A, 1-B, 1-C)의 각각은, 다음의 리퀘스트를 송신할 때에는, 통지된 대기 시간의 경과 후에, 서버(2)에 액세스한다.
이와 같이 하여, 복수의 플레이어 단말(1)의 각각에 대하여, 리스판스가 송신될 때에 대기 시간이 설정된다.
여기서, 리스판스의 송신 타이밍은, 복수의 플레이어 단말(1)마다 조금씩 어긋나 있다. 그 결과, 상기 서술한 도 5에 나타낸 바와 같이, 복수의 플레이어 단말(1)의 각각이 조금씩 상이한 대기 시간(다음의 리퀘스트를 송신할 때까지의 남은 시간)을 가지게 된다. 즉, 방대한 수의 플레이어 단말(1)(송신 예정의 리퀘스트)이, 마치 거대한 가상 대기 행렬(202)에 저장되게 된다.
이에 따라, 서버(2)에 있어서의 폭주가 방지된다.
또한, 가상 대기 행렬(202)내의 위치는 엄밀한 것이 아니고, 대기 시간의 통지나 리퀘스트의 송신에 이용하는 네트워크(N)의 성능에 따라, 다소 전후할 가능성이 있으나, 게임 분야에 적용하는 경우에는 특별히 문제가 되지 않는다.
또한, 이 가상 대기 행렬(202)로부터 서버(2) 상의 리퀘스트 버퍼(201)에 대하여 리퀘스트를 송출하기 위한 큐잉의 연산은, 플레이어 단말(1)간의 비교 조작을 수반하지 않고, 대기 시간의 설정만으로 실현된다. 따라서, 이 큐잉은 항상 0(n)의 비용으로 실시가 가능하다.
단, 이러한 대기 시간을 복수의 플레이어 단말(1)에 통지하는 것만으로는, 해당 대기 시간을 지키지 않는 부정한 플레이어 단말(1)이 나올 우려가 있다.
이에, 본 실시형태의 서버(2)에 있어서는, 도 4에 나타낸 바와 같이 부정 감시부(106)도 기능한다.
부정 감시부(106)는, 리퀘스트 수신 제어부(101)의 제어에 의해 수신된 리퀘스트가, 대기 시간을 지켜서 플레이어 단말(1)로부터 송신된 것인지 여부를 감시하고 있다.
구체적으로는 예를 들어 본 실시형태에서는, 도 6에 나타낸 리스트가 대기 시간 DB(111)에 저장되어 있다.
도 6의 리스트의 소정의 1행은, 소정의 1개의 플레이어 단말(1)에 대응하고 있다. 즉, 소정의 1행에는, 대응하는 플레이어 단말(1)에 대한, 클라이언트 ID, 최후의 리퀘스트가 도달한 시간, 및, 할당된 대기 시간이 저장되어 있다. 환언하면, 대기 시간 DB(111)는, 직전의 리퀘스트의 도달 시각(최후의 리퀘스트가 도달한 시간), 및 대기 시간을 대응지어 관리하고 있다.
이에, 부정 감시부(106)는, 리퀘스트에 포함되는 클라이언트 ID를 이용하여, 대기 시간 DB(111)를 검색하고, '최후의 리퀘스트가 도달한 시간' + '할당된 대기 시간'과, 해당 리퀘스트가 실제로 도달한 시간을 조합한다.
그리고, 부정 감시부(106)는, 그 조합 결과에 기초하여, 해당 리퀘스트를 송신한 플레이어 단말(1)이 부정인지 여부를 판정한다.
부정이라고 판정된 플레이어 단말(1)에 대해서는, 소정의 패널티 처리가 실행된다.
패널티 처리의 내용은, 특별히 한정되지 않으나, 예를 들어 본 실시형태에서는, 부정한 플레이어 단말(1)로부터의 리퀘스트를 파기하고, 리스판스를 돌려보내지 않는다는 처리가 채용되어 있다.
또한, 모든 리퀘스트의 정당성을 확인하면 비용이 큰 등의 관점에서, 부정 감시부(106)는, 예를 들어 일부의 리퀘스트, 보다 구체적으로는 무작위로 추출한 전체의 10% 정도의 리퀘스트만을 확인할 수도 있다. 이 경우, 패널티 처리로는 예를 들어, 소정 시간(예를 들어 5분간), 부정이 인정된 플레이어 단말(1)로부터의 리퀘스트를 파기하는 등의 처리를 채용할 수 있다.
이상, 예방적 부하 분산 처리(도 5 참조)를 실현하기 위한 서버(2)의 기능적 구성에 대하여 설명한다.
이어서, 예방적 부하 분산 처리가 실행될 때의 플레이어 단말(1)의 기능적 구성에 대하여 설명한다.
도 4에 나타낸 바와 같이, 플레이어 단말(1)의 CPU(21)에 있어서는, 커맨드 접수부(121)와, 대기 시간 설정부(122)와, 리퀘스트 송신 제어부(123)와, 표시 제어부(124)와, 리스판스 수신 제어부(125)와, 커맨드 실행부(126)가 기능한다.
플레이어는, 게임 실행 중에 있어서, 커맨드의 입력이 가능한 화면(도 7 내지 도 9를 참조하여 후술함)이 표시부(27)에 표시되어 있는 상태에서, 터치 조작 입력부(26)에 대하여 소정의 터치 조작(예를 들어 탭 조작 등)을 함으로써, 소정의 커맨드를 입력한다.
커맨드 접수부(121)는, 이러한 소정의 커맨드를 접수한다.
대기 시간 설정부(122)는, 서버(2)로부터 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 대기 시간을 설정한다. 이에 반해, 대기 시간 설정부(122)는, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정한다. 여기서, 소정 시간은, 특별히 한정되지 않고, 미리 설정된 고정 시간일 수도 있고, 가변 시간일 수도 있다. 또한, 소정 시간에는 0도 포함하는 것으로 한다. 여기서, 대기 시간이 0이란, 커맨드가 접수되면 즉시 해당 커맨드가 리퀘스트로서 송신되는 것을 의미한다.
리퀘스트 송신 제어부(123)는, 대기 시간 설정부(122)에 의해 설정된 대기 시간의 경과 후에, 커맨드를 리퀘스트로서, 통신부(30)를 개재하여 서버(2)에 송신한다.
이와 같이 하여, 플레이어 단말(1)측에서, 커맨드 접수부(121), 대기 시간 설정부(122), 및 리퀘스트 송신 제어부(123)가 기능함으로써, 예방적 부하 분산 처리가 실현된다.
단, 플레이어로서는, 소정의 커맨드를 입력한 후, 해당 소정의 커맨드가 실행되기까지, 대기 시간분만큼 기다리게 하는 것에는 변함이 없다. 이 경우, 플레이어 단말(1)측에서 아무런 조치를 실시하지 않으면, 플레이어는 싫증나거나 어떠한 스트레스를 느낄 우려가 있다.
여기서 중요한 점은, 종래에 있어서는, 플레이어의 단말측에서는, 커맨드 입력과, 해당 커맨드의 실행과는 동기하는 것이 전제가 되어 있었던 점이다. 즉, 종래의 플레이어는, 커맨드를 입력하면, 즉시 해당 커맨드가 실행될 것이라는 의식을 갖고 있었다.
이 때문에, 단말이나 플레이어로서는, 커맨드 입력 후, 해당 커맨드에 대응하는 리퀘스트가 서버에 송신되고, 그 리스판스가 서버로부터 도달하고, 해당 리스판스에 기초하여 커맨드가 실행될 때까지의 시간이 길어지면, 그것은 '예기치 않은 대기 시간'으로서 파악된다.
즉, 종래의 서버에 있어서 폭주가 발생함으로써, 이 '예기치 않은 대기 시간'이 발생하는 것은, 단말이나 플레이어로서 상정외의 것이다.
이러한 '예기치 않은 대기 시간'에 대하여 단말측에 어떠한 조치를 사전에 실시하는 것은 곤란하다. 이 때문에, 어떠한 조치를 실시하지 않은 종래의 단말측에서는, '예기치 않은 대기 시간'이 경과할 때까지, 대기 상태가 된다. 즉, 플레이어나 단말로서는, 커맨드 입력 후, 즉시 커맨드가 실행되지 않고 대기 상태가 계속되는 시간이, '예기치 않은 대기 시간'이다. 게다가, 이 '예기치 않은 대기 시간'의 길이는, 플레이어나 단말의 전혀 모르는 서버측의 폭주의 상태에 따라 변화된다. 따라서, '예기치 않은 대기 시간'이 발생하여 단말측에서 대기 상태가 되면, 플레이어는, 언제가 되어야 커맨드가 실행되는지를 예측할 수 없게 된다. 이에 따라, 플레이어는, 싫증나거나 어떠한 스트레스를 느끼게 된다.
이에 반해, 본 실시형태에 있어서의 '대기 시간'이란, 서버(2)측에서 의도적으로 발생시킨 시간 파라미터이며, 종래의 '예기치 않은 대기 시간'과는 본질적으로 상이한 개념이다.
즉, 플레이어 단말(1)은, 이러한 '대기 시간(시간 파라미터)'이 도달하는 것은 예측 완료이다. 따라서, 플레이어 단말(1)측에서, '대기 시간(시간 파라미터)'을 이용하여, 플레이어를 싫증나게 하지 않고 또한 스트레스를 주지 않도록 하기 위한 조치를 실시하는 것이 가능해진다.
구체적으로는 본 실시형태에서는, 플레이어 단말(1)은, 커맨드의 입력과, 커맨드의 실행을 비동기로 하여, 커맨드의 입력으로부터 해당 커맨드의 실행까지의 시간의 흐름의 속도를, '대기 시간(시간 파라미터)'에 따라 제어한다. 그리고, 플레이어 단말(1)은, 이 시간의 흐름의 속도를 플레이어에게 시각적으로 제시한다. 이러한 조치에 의해, 플레이어를 싫증나게 하지 않고 또한 스트레스를 주지 않도록 하는 것이 가능해진다.
보다 구체적으로는 본 실시형태에서는, 표시 제어부(124)는, 도 7 내지 도 9에 나타낸 바와 같은 게임 화면을 표시부(27)에 표시하는 제어를 실행함으로써, 플레이어를 싫증나게 하지 않고 또한 스트레스를 주지 않도록 하고 있다.
도 7은, 본 실시형태의 게임 화면의 일례를 나타내는 도면이다.
도 7의 게임 화면(210)의 상방에는, 예를 들어 RPG(Role Playing Game)에 있어서의 전투 화면(221)이 표시된다.
이 전투 화면(221)의 하방에, 플레이어가 커맨드를 선택하기 위한 버튼(이하, '커맨드 선택 버튼'이라고 함)이 배치된 버튼군 영역(222)이 표시된다. 나아가 그 하방에, 커맨드를 나타내는 아이콘(이하, '커맨드 아이콘'이라고 함)이 마침 일정 방향으로 흐르는 커맨드 큐(223)가 표시된다.
플레이어는, 버튼군 영역(222)에 배치된 1 이상의 커맨드 선택 버튼 중, 원하는 커맨드 선택 버튼에 대하여 탭 조작을 함으로써, 대응하는 커맨드를 입력한다.
커맨드 큐(223)는, FIFO(First-in, First-out)의 큐로서 실장되어 있다. 따라서, 플레이어에 의해 입력된 커맨드(탭 조작된 커맨드 선택 버튼)에 대응하는 커맨드 아이콘은, 커맨드 큐(223)의 최후미(도 7의 예에서는 최우측)에 추가된다.
즉, 플레이어에 의해 복수 종류의 커맨드 선택 버튼이 탭 조작되면, 탭 조작이 이루어진 순번으로, 복수 종류의 커맨드 아이콘의 각각이 커맨드 큐(223)에 순차 저장되어, 해당 커맨드 큐(223)내를 순차 좌방으로 이동해간다.
그리고, 좌단(도 7의 예에서는 '발동'이라는 문자열이 기재된 단)에 도달한 커맨드 아이콘으로부터, 대응하는 커맨드가 실행되도록 되어 있다.
여기서, 커맨드 큐(223)내의 커맨드 아이콘의 이동 속도는, 일정하지 않고, 대기 시간에 따라 가변한다. 즉, 서버(2)로부터 설정된 대기 시간이 길어질수록, 커맨드 아이콘의 이동 속도는 느려진다. 환언하면, 서버(2)로부터의 대기 시간의 통지를 서버(2)로부터의 지시라고 파악하면, 서버(2)로부터의 지시에 따라, 커맨드 큐(223) 중의 커맨드 아이콘의 이동 속도가 조절된다.
이와 같이, 커맨드 큐(223)내의 커맨드 아이콘의 이동 속도가, 플레이어 단말(1)측에서의 시간의 흐름의 속도에 해당하고, 서버(2)에 의해 설정된 '대기 시간(시간 파라미터)'에 따라 제어된다.
따라서, 플레이어로서는, 커맨드가 발동(실행)될 때까지의 시간의 흐름의 속도가 가시화된다. 즉, 플레이어는, 앞으로 어느 정도 기다리면 커맨드가 발동되는지를 용이하게 시인할 수 있다. 이에 따라, 플레이어는, 스트레스도 그다지 받지 않고, 커맨드가 발동될 때까지 싫증나지 않고 기다릴 수 있다.
환언하면, 이러한 커맨드 큐(223)를 도입한 것으로, 커맨드의 비동기 입력과 플레이어 단말(1)측에서의 시간의 흐름의 속도제어와 그 가시화가 실현되고, 그 결과로서, 플레이어에게 스트레스를 주지 않고 또한 싫증나지 않는 상태로, 예방적 부하 분산 처리를 실현하는 것이 가능해진다.
이하, 커맨드의 비동기 입력에 대하여 설명한다.
즉, 버튼군 영역(222)에 배치되는 커맨드 선택 버튼 자체는, 일반적인 RPG 등의 게임에 있어서 종래로부터 이용되고 있는 것이다.
종래에 있어서는, 클라이언트(본 실시형태의 플레이어 단말(1)에 상당하는 종래의 단말)에 있어서 커맨드 선택 버튼이 압하되면, 종래의 서버에 리퀘스트가 송신되고, 해당 서버로부터 리스판스가 수신된 후, 커맨드가 실행된다. 이 리퀘스트의 송신으로부터 리스판스의 수신까지 필요한 시간은 통상 단시간이므로, 플레이어로서는, 커맨드 선택 버튼의 압하와 커맨드의 실행은 동기되어 있는 것처럼 느낀다. 그러므로, 서버가 부하가 큰 상태가 되고, 커맨드 선택 버튼의 압하로부터 커맨드의 실행까지의 사이에 타임 러그가 발생하면, 플레이어는, 스트레스를 받거나, 싫증나게 된다.
이에 반해, 본 실시형태에서는, 커맨드 선택 버튼의 압하 타이밍과, 커맨드의 실행에는 타임 러그가 있는 것이 전제가 되어 있는 UI(User Interface)가 채용되어 있다. 이러한 UI가, 커맨드의 비동기 입력이다. 그리고, 이 타임 러그의 시간 길이가, 서버(2)로부터 부여된 대기 시간(시간 파라미터)에 의해 가변 제어되고, 그 가변 제어의 결과의 시각화, 즉 시간의 흐름의 속도의 시각화가 행해진다.
즉, 커맨드 선택 버튼이 압하되면, 대응하는 커맨드 아이콘이 커맨드 큐(223)에 저장되어, 좌방으로의 이동을 개시한다. 이 커맨드 아이콘의 이동 속도가, 단말(1)측에서의 시간의 흐름의 속도에 해당하고, 서버(2)로부터 지정된 대기 시간에 따라 가변 제어된다. 그리고, 서버(2)로부터 지정된 대기 시간이 경과하면, 리퀘스트가 서버(2)에 송신된다. 서버(2)측에서는 예방적 부하 분산 처리가 실행되어 있으므로, 부하가 커지지 않고, 단시간에 리스판스가 송신되어 온다.
그러면, 도 4의 리스판스 수신 제어부(125)는, 해당 리스판스를 수신하는 제어를 실행한다. 여기서, 대기 시간을 나타내는 정보도 송신되어 오는 경우, 리스판스 수신 제어부(125)는, 해당 정보도 수신하여, 대기 시간 설정부(122)에 제공한다. 커맨드 실행부(126)는, 리스판스가 수신되면, 커맨드를 실행한다.
이러한 일련의 처리에 대하여 지금 현재 어느 정도까지 진행되어 있는지, 즉, 앞으로 어느 정도 시간이 흐르면 커맨드가 실행되는지에 대해서는, 대응하는 커맨드 아이콘의 커맨드 큐(223)의 이동 상황을 시인함으로써, 플레이어는 용이하게 파악할 수 있다. 이에 따라, 플레이어는, 스트레스를 받거나, 싫증나는 일 없이, 커맨드의 실행을 기다릴 수 있다.
또한, 이러한 커맨드의 비동기 입력을 채용함으로써, 커맨드의 편집도 가능해진다.
즉, 커맨드의 비동기 입력을 채용하면, 플레이어는, 소정의 제1 커맨드를 입력한 후, 해당 제1 커맨드가 실행될 때까지의 동안에, 다시 제2 커맨드를 입력할 수 있다. 즉, 1종류의 커맨드가 실행되기 전에, 복수 종류의 커맨드의 입력이 가능해진다.
따라서, 커맨드를 리퀘스트로서 송신하기 전의 단계이면, 해당 커맨드의 편집도 가능해진다.
도 8은, 커맨드의 편집을 설명하기 위한 모식도이다.
도 8의 예에서는, 6종류의 제1 커맨드 내지 제6 커맨드가 그 순번으로 순차 입력되고, 제1 커맨드 내지 제6 커맨드의 각각에 대응하는 커맨드 아이콘(C1 내지 C6)의 각각이, 그 순번으로 커맨드 큐(223)에 저장되어 있다. 여기서, 커맨드 입력시에 커맨드 아이콘이 저장되는 위치를 이하 '제1 위치'라고 한다. 커맨드 아이콘(C1 내지 C6)의 각각은, 그 순번으로 순차, 대기 시간(시간 파라미터)에 따른 이동 속도로 제1 위치에서부터 좌방으로 이동한다.
여기서, 커맨드 아이콘의 이동 속도(플레이어 단말(1)측에서의 시간의 흐름의 속도)는 대기 시간에 따라 변경되므로, 커맨드 큐(223)내의 소정 위치에 커맨드 아이콘이 도달했을 때에, 리퀘스트의 송신을 행하는 것이 가능해진다. 이와 같이, 리퀘스트가 송신될 때에 커맨드 아이콘이 도달하는 소정 위치를, 이하 '제2 위치'라고 한다.
커맨드 큐(223) 중, 제1 위치에서부터 제2 위치까지의 좌측의 범위(R)에 존재하는 커맨드 아이콘은, 리퀘스트 송신 전의 단계의 커맨드에 대응하는 것이다. 따라서, 플레이어는, 이들의 커맨드를 자유롭게 편집할 수 있다. 즉, 도 8의 예에서는, 커맨드 아이콘(C2 내지 C6)에 대응하는 제2 커맨드 내지 제6 커맨드가 편집 가능하다.
이에 반해, 제2 위치에서부터, 커맨드가 실행되는 위치(도 8의 예에서는 '발동'의 문자열이 표시되는 위치이며, 이하 '제3 위치'라고 함)까지의 좌측의 범위(L)에 존재하는 커맨드 아이콘은, 리퀘스트가 이미 송신되어 리스판스의 수신을 기다리고 있는 단계의 커맨드에 대응하는 것이다. 따라서, 플레이어는, 이들 커맨드를 편집할 수 없다. 즉, 도 8의 예에서는, 커맨드 아이콘(C1)에 대응하는 제1 커맨드는 편집 불가능하다.
커맨드의 편집의 조작 등은, 특별히 한정되지 않는다. 예를 들어 본 실시형태에서는 도 8에 나타낸 바와 같이, 플레이어는, 편집 대상인 커맨드 아이콘에 대하여 소정의 터치 조작을 함으로써, 해당 커맨드 아이콘에 대응하는 커맨드의 편집을 할 수 있다.
구체적으로는 예를 들어, 플레이어는, 드래그 조작으로, 커맨드 아이콘(C5)을 커맨드 큐(223)의 외측으로 이동시킴으로써, 해당 커맨드 아이콘(C5)에 대응하는 제5 커맨드를 캔슬할 수 있다.
또한 예를 들어, 플레이어는, 드래그 조작으로, 커맨드 아이콘(C2, C4)의 순번(배치 위치)을 바꿈으로써, 해당 커맨드 아이콘(C2, C4)의 각각에 대응하는 제2 커맨드, 제4 커맨드의 실행(발동)의 순번을 변경할 수 있다.
이와 같이, 커맨드 큐(223)내의 커맨드 아이콘의 이동 속도가 저하될 때, 즉, 서버(2)로부터 대기 시간이 설정되었을 때, 플레이어는, 버튼군 영역(222)에 배치된 커맨드 선택 버튼에 대하여 탭 조작하거나, 커맨드 큐(223)내의 커맨드 아이콘에 대하여 드래그 조작을 함으로써, 대응하는 커맨드의 추가나 편집을 행할 수 있다. 여기서, 커맨드의 편집의 종류는, 특별히 한정되지 않고, 상기 서술한 캔슬이나, 순서를 바꾸는 등 임의의 종류를 채용할 수 있다.
이에 따라, 커맨드의 비동기 입력을 채용하지 않은 종래의 방식과 비교하여, 플레이어는, 복수 종류의 커맨드를 고속으로 입력하고, 또한, 이들을 게임의 상황 등에 따라 적당히 변경하면서, 보다 깊이 해당 게임의 전술을 구성할 수 있게 된다.
도 9는, 커맨드의 비동기 입력의 구체예를 나타내는 게임 화면의 천이도이다.
도 9의 좌측의 게임 화면이 표시된 상태에서, 플레이어는, 전투 화면(221)에 표시된 캐릭터 중, 테두리(251)(실제로는 테두리(251)는 표시되지 않아도 됨)내의 제1 캐릭터를 탭 조작함으로써, 해당 제1 캐릭터를 선택할 수 있다.
그러면, 제1 캐릭터가 보유하는 복수의 커맨드의 일람으로서, 복수의 커맨드 선택 버튼이 배치된 버튼군 영역(222)이 표시된다.
여기서, 플레이어는, 커맨드 선택 버튼(B7)에 대하여 탭 조작을 한 것으로 한다. 그러면, 커맨드 선택 버튼(B7)에 대응하는 커맨드 아이콘(C7)이, 커맨드 큐(223)의 최후미의 제1 위치에 추가되고, 좌방으로의 이동이 개시된다.
이어서, 도 9의 중앙의 게임 화면으로서 나타낸 바와 같이, 플레이어는, 전투 화면(221)에 표시된 캐릭터 중, 테두리(252)(실제로는 테두리(252)는 표시되지 않아도 됨)내의 제2 캐릭터를 탭 조작함으로써, 해당 제2 캐릭터를 선택할 수 있다.
그러면, 제2 캐릭터가 보유하는 복수의 커맨드의 일람으로서, 복수의 커맨드 선택 버튼이 배치된 버튼군 영역(222)이 표시된다.
여기서, 플레이어는, 커맨드 선택 버튼(B8)에 대하여 탭 조작을 한 것으로 한다. 그러면, 커맨드 선택 버튼(B8)에 대응하는 커맨드 아이콘(C8)이, 커맨드 큐(223)의 최후미의 제1 위치에 추가되고, 좌방으로의 이동이 개시된다. 그동안, 커맨드 아이콘(C7)은 더욱 좌방으로 이동하고 있다.
이와 같이, 커맨드의 비동기 입력을 채용함으로써, 앞서 입력한 커맨드가 서버(2)에 대하여 리퀘스트로서 송신되기 전이라도, 다음의 커맨드의 입력이 가능해진다.
이어서, 도 9의 우측의 게임 화면으로서 나타낸 바와 같이, 플레이어는, 전투 화면(221)에 표시된 캐릭터 중, 테두리(253)(실제로는 테두리(253)는 표시되지 않아도 됨)내의 제3 캐릭터를 탭 조작함으로써, 해당 제3 캐릭터를 선택할 수 있다.
그러면, 제3 캐릭터가 보유하는 복수의 커맨드의 일람으로서, 복수의 커맨드 선택 버튼이 배치된 버튼군 영역(222)이 표시된다.
여기서, 플레이어는, 커맨드 선택 버튼(B9)에 대하여 탭 조작을 한 것으로 한다. 그러면, 커맨드 선택 버튼(B9)에 대응하는 커맨드 아이콘(C9)이, 커맨드 큐(223)의 최후미의 제1 위치에 추가되고, 좌방으로의 이동이 개시된다. 그 동안, 커맨드 아이콘(C8)은 더욱 좌방으로 이동하고 있다.
커맨드 아이콘(C7)은, 더욱더 좌방의 제2 위치를 통과하여(그 결과, 대응하는 커맨드가 서버(2)에 대하여 리퀘스트로서 송신되고, 서버(2)로부터의 리스판스가 수신되어), 제3 위치까지 도달하고 있다. 따라서, 이 시점에서 도 8의 좌측의 게임 화면에 있어서 입력된 커맨드, 즉 커맨드 아이콘(C7)(커맨드 선택 버튼(B7))에 대응하는 커맨드가 실행된다.
이상, 도 4 내지 도 9를 참조하여, 예방적 부하 분산 처리 및 커맨드의 비동기 입력을 실현가능하게 하기 위한 플레이어 단말(1) 및 서버(2)의 기능적 구성에 대하여 설명하였다.
이어서, 도 10 및 도 11을 참조하여, 이러한 기능적 구성을 갖는 플레이어 단말(1) 및 서버(2)의 처리의 흐름을 설명한다.
도 10은, 서버(2)측의 처리의 흐름을 설명하는 플로우 차트이다.
단계 S1에 있어서, 부하 감시부(102)는, 부하가 큰지 여부를 판정한다.
즉, 부하 감시부(102)는, 서버(2)의 리소스의 사용 상황으로부터, 현재의 리퀘스트수가, 캐파시티수에 기초한 소정의 임계치를 초과하지 않는다는 조건을 만족시키는지 여부를 감시한다.
상기 조건을 만족시키는 경우, 즉, 현재의 리퀘스트수가 해당 임계치를 초과하지 않는 경우, 단계 S1에 있어서 NO라고 판정되고, 처리는 단계 S3으로 진행된다.
단계 S3에 있어서, 대기 시간 연산부(103)는, 대기 시간을 0으로서 연산한다.
이에 반해, 상기 조건을 만족시키지 않는 경우, 즉, 현재의 리퀘스트수가 해당 임계치를 초과하는 경우, 부하가 큰 것으로서 단계 S1에 있어서 YES라고 판정되고, 처리는 단계 S2로 진행된다. 단계 S2에 있어서, 대기 시간 연산부(103)는, 예를 들어 상기 서술한 식(1)에 따라서 대기 시간을 연산한다.
단계 S4에 있어서, 리퀘스트 수신 제어부(101)는, 리퀘스트가 있는지 여부를 판정한다.
리퀘스트가 없는 경우에는, 단계 S4에 있어서 NO라고 판정되고, 처리는 단계 S9로 진행된다.
단계 S9에 있어서, 서버(2)의 CPU(51)는, 처리의 종료 지시가 있는지 여부를 판정한다. 여기서, 처리의 종료 지시는, 특별히 한정되지 않으나, 본 실시형태에서는 서버(2)의 전원 차단이 채용되어 있다. 즉, 서버(2)에 있어서 전원이 차단되면, 단계 S9에 있어서 YES라고 판정되고, 서버(2)측의 처리는 종료가 된다.
이에 반해, 서버(2)에 있어서 전원이 차단되지 않는 한, 단계 S9에 있어서 NO라고 판정되어 처리는 단계 S1로 되돌아가고, 그 이후의 처리가 반복된다.
여기서, 복수의 플레이어 단말(1)(도 1의 예에서는 플레이어 단말(1-1 내지 1-m)) 중 소정의 1대로부터 리퀘스트가 송신되면, 단계 S4에 있어서 YES라고 판정되고, 처리는 단계 S5로 진행된다.
단계 S5에 있어서, 부정 감시부(106)는, 리퀘스트의 대기 시간이 적당한지 여부를 판정한다.
즉, 부정 감시부(106)는, 대기 시간 DB(111)에 저장된 리스트(도 9 참조)로부터, 리퀘스트에 포함되는 클라이언트 ID와 대응된 대기 시간 등을 검색한다.
그 검색 결과에 기초하여 특정되는 적당한 시간보다 빠른 타이밍에 리퀘스트가 송신되어 온 경우, 부정으로서 단계 S5에 있어서 NO라고 판정되고 처리는 단계 S6으로 진행된다.
단계 S6에 있어서, 부정 감시부(106)는, 리퀘스트를 송신해온 부정한 플레이어 단말(1)에 대하여, 패널티 처리를 실행한다. 이에 따라, 처리는 단계 S9로 진행되고, 그 이후의 처리가 반복된다.
이에 반해, 리퀘스트의 대기 시간이 적정하면, 단계 S5에 있어서 YES라고 판정되고, 처리는 단계 S7로 진행된다.
단계 S7에 있어서, 리퀘스트 실행부(104)는, 리퀘스트를 실행하고, 리스판스를 생성한다.
단계 S8에 있어서, 리스판스 송신 제어부(105)는, 리스판스와 대기 시간을 플레이어 단말(1)에 송신한다.
그 후 처리는 단계 S9로 진행되고, 그 이후의 처리가 반복된다.
이러한 서버(2)측의 처리에 대하여, 플레이어 단말(1)측의 처리의 흐름은, 도 11에 나타낸 바와 같이 된다.
즉, 도 11은, 플레이어 단말(1)측의 처리의 흐름을 설명하는 플로우 차트이다.
도 11의 플레이어 단말(1)측의 처리는, 게임 실행 중의 소정의 이벤트, 예를 들어 RPG에 있어서의 전투의 이벤트 등에 의해 개시된다.
단계 S21에 있어서, 표시 제어부(124)는, 커맨드 선택용 UI, 큐를 포함하는 게임 화면을 표시부(27)에 표시시킨다.
여기서, 커맨드 선택용 UI란, 예를 들어 상기 서술한 도 7 내지 도 9에서 설명한 커맨드 선택 버튼이 배치된 버튼군 영역(222)이 해당한다. 큐란, 예를 들어 커맨드 큐(223)가 해당한다.
단계 S22에 있어서, 커맨드 접수부(121)는, 커맨드가 입력되었는지 여부를 판정한다.
커맨드가 입력되지 않은 경우, 단계 S22에 있어서 NO라고 판정되고, 처리는 단계 S34로 진행된다.
단계 S34에 있어서, 플레이어 단말(1)의 CPU(21)는, 처리의 종료 지시가 있는지 여부를 판정한다. 여기서, 처리의 종료 지시는, 특별히 한정되지 않으나, 본 실시형태에서는 상기 소정의 이벤트(예를 들어 전투의 이벤트 등)의 종료의 지시가 채용되어 있다. 즉, 소정의 이벤트가 종료되면, 단계 S34에 있어서 YES라고 판정되고, 플레이어 단말(1)측의 처리는 종료가 된다.
이에 반해, 소정의 이벤트가 계속 중인 경우, 단계 S34에 있어서 NO라고 판정되고 처리는 단계 S21로 되돌아가고, 그 이후의 처리가 반복된다.
소정의 커맨드 선택 버튼이 탭 조작되어, 대응하는 커맨드가 커맨드 접수부(121)에 의해 접수되면, 단계 S22에 있어서 YES라고 판정되고 처리는 단계 S23으로 진행된다.
단계 S23에 있어서, 대기 시간 설정부(122)는, 서버(2)로부터 대기 시간이 통지 완료되었는지 여부를 판정한다.
서버(2)로부터 대기 시간이 미통지인 경우(도 10의 단계 S3에서 대기 시간이 0으로 설정된 경우도 포함함), 단계 S23에 있어서 NO라고 판정되고, 처리는 단계 S24로 진행된다.
단계 S24에 있어서, 대기 시간 설정부(122)는, 규정의 대기 시간을 설정한다. 여기서, 규정의 대기 시간이란, 플레이어 단말(1)측에서의 시간의 흐름의 속도에 대한 '기준 속도'를 나타내는 시간 파라미터이다. 이러한 단계 S24의 처리가 종료되면, 처리는 단계 S26으로 진행된다.
이에 반해, 대기 시간이 통지 완료된 경우(전회의 단계 S32에 있어서 수신된 리스판스에 대하여, 대기 시간을 나타내는 정보가 부가되어 있는 경우), 단계 S23에 있어서 YES라고 판정되고, 처리는 단계 S25로 진행된다.
단계 S25에 있어서, 대기 시간 설정부(122)는, 서버(2)로부터의 대기 시간을 설정한다. 여기서, 서버(2)로부터의 대기 시간이란, 상기 서술한 바와 같이, 플레이어 단말(1)측에서의 시간의 흐름의 속도를 기준 속도에 대하여 변경하기 위한 시간 파라미터로서, 서버(2)에 의해 설정되는 시간 파라미터이다. 이러한 단계 S25의 처리가 종료되면, 처리는 단계 S26으로 진행된다.
단계 S26에 있어서, 표시 제어부(124)는, 단계 S24 또는 S25에 있어서 설정된 대기 시간을 이용하여, 커맨드 아이콘의 이동 속도(플레이어 단말(1)측에서의 시간의 흐름의 속도)를 연산한다.
구체적으로는 예를 들어, 커맨드 아이콘의 묘화 방식으로서, 많은 게임 시스템에서 채용되어 있는 프레임 묘화 방식이 채용되어 있는 경우, 표시 제어부(124)는, 1프레임당 이동 픽셀량을, 이동 속도로서 연산한다.
보다 구체적으로는 예를 들어, 50msec마다 화면이 갱신되는 게임 시스템에 있어서, 서버(2)로부터 '1000msec'라는 대기 시간을 나타내는 정보가 통지되는 것으로 한다. 이 경우, 표시 제어부(124)는, 상기 서술한 예의 커맨드 큐(223)내의 최후미의 제1 위치에서부터, 리퀘스트가 송신되는 제2 위치까지 1초간 커맨드 아이콘이 도달하도록, 이동 속도를 연산한다. 즉, 표시 제어부(124)는, 커맨드 아이콘을 제1 위치에 배치한 경우에 있어서의, 해당 아이콘으로부터 제2 위치까지의 픽셀수를 (1000/50)으로 나눗셈한 값을, 1프레임당 이동 픽셀량(이동 속도)으로서 연산한다.
단계 S27에 있어서, 표시 제어부(124)는, 커맨드 아이콘의 이동 표시를 개시시킨다.
즉, 상기 서술한 예에서 말하면, 커맨드 아이콘은, 커맨드 큐(223)내의 최후미의 제1 위치에 배치되고, 좌방으로 이동을 개시한다.
단계 S28에 있어서, 커맨드 접수부(121)는, 커맨드 아이콘의 조작이 있는지 여부를 판정한다.
커맨드 아이콘에 대한 드래그 조작 등이 있는 경우, 단계 S28에 있어서 YES라고 판정되고, 처리는 단계 S29로 진행된다.
단계 S29에 있어서, 표시 제어부(124)는, 커맨드를 삭제하거나 순번을 변경하는 등 편집 처리를 실행한다. 이에 따라, 처리는 단계 S30으로 진행된다.
이에 반해, 커맨드 아이콘에 대한 드래그 조작 등이 없는 경우, 단계 S28에 있어서 NO라고 판정되고, 커맨드의 편집 처리(단계 S29의 처리)는 실행되지 않고, 처리는 단계 S30으로 진행된다.
단계 S30에 있어서, 표시 제어부(124)는, 대기 시간이 경과했는지 여부를 판정한다.
대기 시간이 경과하지 않은 경우, 리퀘스트를 송신하는 타이밍이 아니므로, 처리는 단계 S28로 되돌아가고, 그 이후의 처리가 반복된다. 즉, 리퀘스트가 송신되기까지의 동안에, 커맨드 아이콘의 조작에 의한, 커맨드의 편집 처리의 실행이 가능해진다
대기 시간이 경과하면, 단계 S30에 있어서 YES라고 판정되고, 처리는 단계 S31로 진행된다.
단계 S31에 있어서, 리퀘스트 송신 제어부(123)는, 커맨드를 리퀘스트로서 서버(2)에 송신한다.
이에 따라, 도 10의 단계 S4에 있어서 YES라고 판정되고, 부정한 리퀘스트가 아닌 한, 단계 S8에 있어서 리스판스와 대기 시간이 플레이어 단말(1)에 송신되어 온다.
단계 S32에 있어서, 리스판스 수신 제어부(125)는, 리스판스와 대기 시간을 수신한다.
단계 S33에 있어서, 커맨드 실행부(126)는, 커맨드를 실행한다.
이에 따라, 처리는 단계 S34로 진행되고, 그 이후의 처리가 반복된다.
또한, 설명의 편의상, 도 11의 플로우 차트에서는, 단계 S27 내지 S33의 처리는, 단계 S21 내지 S34 내의 일환의 처리로서 기재되어 있다.
단, 실제로는 상기 서술한 바와 같이, 본 실시형태에서는 커맨드의 비동기 입력이 실현되어 있으므로, 단계 S27 내지 S33의 처리는, 복수의 커맨드가 입력될 때마다, 복수의 커맨드의 각각에 대한 처리로서 병행하여 실행된다.
이상 본 발명의 일 실시형태에 대하여 설명하였으나, 본 발명은, 상기 서술한 실시형태로 한정되는 것이 아니고, 본 발명의 목적을 달성할 수 있는 범위에서의 변형, 개량 등은 본 발명에 포함되는 것이다.
예를 들어, 도 4의 기능적 구성은 예시에 불과하고, 특별히 한정되지 않는다. 즉, 상기 서술한 일련의 처리를 전체로서 실행 가능한 기능이 정보 처리 시스템에 구비되어 있으면 충분하고, 이 기능을 실현하기 위하여 어떠한 기능 블록을 이용할 것인지는 특별히 도 4의 예로 한정되지 않는다. 또한, 기능 블록의 존재 장소도, 도 4에 특별히 한정되지 않고, 임의여도 된다. 예를 들어, 서버(2)의 기능 블록을 플레이어 단말(1) 등으로 이양시킬 수도 있고, 반대로 단말(1)의 기능 블록을 서버(2) 등으로 이양시킬 수도 있다.
또한, 1개의 기능 블록은, 하드웨어 단체로 구성할 수도 있고, 소프트웨어 단체로 구성할 수도 있고, 이들 조합으로 구성할 수도 있다.
각 기능 블록의 처리를 소프트웨어에 의해 실행시키는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 컴퓨터 등에 네트워크나 기록 매체로부터 인스톨된다.
컴퓨터는, 전용의 하드웨어에 탑재되어 있는 컴퓨터일 수도 있다. 또한, 컴퓨터는, 각종의 프로그램을 인스톨함으로써, 각종의 기능을 실행하는 것이 가능한 컴퓨터, 예를 들어 서버의 다른 범용의 스마트폰이나 퍼스널 컴퓨터일 수도 있다.
이러한 프로그램을 포함하는 기록 매체는, 플레이어에게 프로그램을 제공하기 위하여 장치 본체와는 별도로 배포되는 도시하지 않은 리무버블 미디어에 의해 구성될 뿐만 아니라, 장치 본체에 미리 탑재된 상태로 플레이어에게 제공되는 기록 매체 등으로 구성된다.
또한, 본 명세서에 있어서, 기록 매체에 기록되는 프로그램을 기술하는 단계는, 그 순서에 따라 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않아도, 병렬적 혹은 개별로 실행되는 처리도 포함하는 것이다.
또한, 본 명세서에 있어서, 시스템의 용어는, 복수의 장치나 복수의 수단 등으로 구성되는 전체적인 장치를 의미하는 것으로 한다.
환언하면, 본 발명이 적용되는 정보 처리 시스템은, 상기 서술한 도 1의 실시형태로서의 정보 처리 시스템을 포함하고, 다음과 같은 구성을 갖는 각종 각양의 실시형태를 취할 수 있다.
즉, 본 발명이 적용되는 정보 처리 시스템은,
서버(예를 들어 도 1 등의 서버(2)와, 해당 서버에 소정의 리퀘스트를 송신하는 복수의 단말(예를 들어 도 1 등 플레이어 단말(1-1 내지 1-m))을 포함한다.
상기 서버는,
리퀘스트의 처리에 관한 소정 조건을 만족시키는지 여부를 감시하는 감시 수단(예를 들어 도 4의 부하 감시부(102))과,
상기 소정 조건을 만족시키지 않는 경우, 단말측에서의 리퀘스트의 송신까지의 대기 시간을 연산하는 대기 시간 연산 수단(예를 들어 도 4의 대기 시간 연산부(103))과,
리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 수단(예를 들어 도 4의 리퀘스트 실행부(104))과,
상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 제1 송신 제어 수단(예를 들어 도 4의 리스판스 송신 제어부(105)),
을 구비한다.
상기 단말은,
소정의 커맨드를 접수하는 커맨드 접수 수단(예를 들어 도 4의 커맨드 접수부(121))과,
상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 수단(예를 들어 도 4의 대기 시간 설정부(122))과,
설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 화상의 표시를 제어하는 표시 제어 수단(예를 들어 도 4의 표시 제어부(124))과,
설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 제2 송신 제어 수단(예를 들어 도 4의 리퀘스트 송신 제어부(123)),
을 구비한다.
여기서, 예를 들어 서버측의 유한의 계산기 자원의 처리 능력을 미리 파악하고, 해당 처리 능력 내의 리퀘스트가 도달하는 것을 전제로 하여 '소정의 조건'을 설정할 수 있다. 이에 따라, 해당 처리 능력을 초과하는 리퀘스트가 도달하여, 서버 부하가 피크에 도달하기 전에, 각 단말로부터의 리퀘스트의 도달을 시간 방향으로 분산시키는 것이 가능해진다. 즉, 예방적 부하 분산 처리가 실현 가능해진다.
즉, 서버
Figure 112017087047570-pct00005
인프라의 처리 능력을 초과하는 리퀘스트가 올 때에는, 각 단말에 대하여 대기 시간이 각각 설정되어, 해당 대기 시간이 도달한 순으로 리퀘스트가 순차 서버에 송신되어 온다. 이에 따라, 서버는, 치명적인 폭주를 일으키는 일 없이, 이들 리퀘스트를 처리할 수 있다.
이와 같이 하여, 서버에서의 폭주를 방지하는 기술로서, 리퀘스트 & 리스판스 방식이 채용된 정보 처리 시스템에 적용하여 호적한 기술이 확립된다.
또한, 단말측에서는, 소정의 커맨드가 접수되고 나서, 해당 커맨드의 리퀘스트가 송신될 때까지는 타임 러그가 있는 것이 전제가 되어 있으므로, 상기 서술한 커맨드 비동기 입력이 실현된다.
그리고, 서버에 의해 시간 파라미터로서 설정되는 '대기 시간', 또는 기준이 되는 '소정 시간'에 따라, 단말측에서의 시간의 흐름의 속도가 제어되고, 그 시간의 흐름의 속도가 시각화되어 유저(게임의 경우 플레이어)에게 제시된다.
이에 따라, 유저는, 커맨드 입력 후 해당 커맨드의 실행까지의 동안에, 싫증나지 않고 또한 스트레스를 느끼지 않게 된다.
또한, 본 발명이 적용되는 정보 처리 시스템에서는, 부하 분산을 할 때에 추가의 서버 하드웨어나 네트워크 설비를 특별히 필요로 하지 않으므로, 종래보다 매우 실시 비용으로 실현 가능하다. 또한, 본 발명이 적용되는 정보 처리 시스템은, 기존의 어플리케이션
Figure 112017087047570-pct00006
프로토콜(http나 https, Web Socket 등)을 이용하여 실장할 수 있으므로, 기존의 로드 밸란서를 그대로 병용할 수 있다.
여기서, 서버의 상기 대기 시간 연산 수단은, 단위 시간당 도달하는 리퀘스트의 수와, 해당 단위 시간당 처리 가능한 리퀘스트의 수에 기초하여, 상기 대기 시간을 연산할 수 있다.
이에 따라, 단위 시간당 처리 가능한 리퀘스트의 수(캐파시티)와, 단위 시간당 도달하는 리퀘스트의 수(실적)에 기초한 적절한 시간이, 대기 시간으로서 설정된다. 그 결과, 예방적 부하 분산 처리가 보다 효율적으로 실현 가능해진다.
또한, 서버는,
상기 복수의 단말마다, 직전의 리퀘스트의 도달 시각, 및 상기 대기 시간을 대응지어 관리하는 관리 수단(예를 들어 도 4의 대기 시간 DB(111) 및 CPU(51))과,
리퀘스트가 도달했을 때에, 상기 관리 수단의 관리 내용에 기초하여, 해당 리퀘스트를 송신한 상기 단말이 상기 대기 시간을 지켰는지 여부를 감시하는 제2 감시 수단(예를 들어 도 4의 부정 감시부(106)),
을 더 구비하도록 할 수 있다.
이에 따라, 대기 시간을 지키지 않는 부정한 단말(유저이며, 게임의 경우 플레이어)에 대하여 각종 패널티 처리를 실행하는 것을 용이하게 가능하게 된다.
여기서, 단말의 표시 제어 수단은, 상기 서술한 바와 같이, 설정된 대기 시간에 따라, 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 화상의 표시를 제어한다.
또한, 송신 제어 수단은, 설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행한다.
여기서, '해당 시간의 흐름의 속도로 변화하는 화상'은, 상기 서술한 실시형태로 한정되지 않고, 임의의 동영상, 예를 들어 게임이 채용되어 있는 경우에는 해당 게임 내의 캐릭터가 움직이는 애니메이션 등을 채용할 수도 있다.
이 경우, 단말측에서 설정되는 '대기 시간'이란, 단말측에서의 시간의 흐름의 속도를 제어하는 파라미터이며, 다음의 2가지 방법으로 사용된다.
1번째 방법은, 동영상의 재생 시간을 제어하는 파라미터로서 이용하는 방법이다. 이에 따라, '해당 시간의 흐름의 속도로 변화하는 화상'이 실현 가능해진다.
2번째 방법은, 단말로부터 다음의 리퀘스트가 서버에 송신되는 타이밍을 제어하는 파라미터로서 이용하는 방법이다. 이에 따라, 송신 제어 수단의 제어가 실현 가능해진다.
이와 같이 '해당 시간의 흐름의 속도로 변화하는 화상'은, 임의의 동영상으로 충분하나, 상기 서술한 실시형태와 같이, 커맨드를 나타내는 심볼을, 제1 위치에서부터 제2 위치까지 이동시키는 모습을 나타내는 화상이면 호적하다.
이 경우, 심볼의 이동 속도가, 단말측에서의 시간의 흐름의 속도에 해당한다. 즉, 해당 시간의 흐름의 속도로 변화하는 화상이란, 해당 이동 속도로 상기 심볼을 상기 제2 위치를 향하여 이동시키는 모습을 나타내는 화상이다.
유저(게임의 경우 플레이어)는, 이러한 화상을 시인함으로써, 그 시간의 흐름의 속도를 즉시 또한 명확히 인식할 수 있게 된다. 즉, 유저는, 앞으로 어느 정도로 커맨드가 실행되는지를 즉시 또한 명확히 시인할 수 있다. 그 결과, 유저는, 보다 더욱, 싫증나지 않고 또한 스트레스를 느끼지 않아도 되게 된다.
구체적으로는, 단말의 상기 표시 제어 수단은,
커맨드를 나타내는 심볼을, 제1 위치에서부터 제2 위치까지 이동시키는 모습을 나타내는 화상을 표시하는 제어로서,
상기 커맨드가 접수되었을 때에는 상기 심볼을 제1 위치에 배치시키고,
설정된 상기 대기 시간에 상기 심볼이 상기 제1 위치에서부터 상기 제2 위치까지 이동하도록, 상기 심볼의 이동 속도를 결정하고,
해당 이동 속도로 상기 심볼을 상기 제2 위치를 향하여 이동시키는,
모습을 나타내는 화상을 표시시키는 제어를 실행하고,
상기 송신 제어 수단은, 상기 심볼이 상기 제2 위치에 도달했을 때에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신할 수 있다.
여기서, 심볼이 제2 위치에 도달했을 때에 리퀘스트가 단말로부터 서버에 송신된다. 예방적 부하 분산 처리가 실행되었다고 하더라도, 리퀘스트의 송신으로부터 리스판스의 수신까지는 단시간이지만, 일정한 타임 러그는 발생한다. 즉, 심볼이 제2 위치에 도달하고 나서, 커맨드가 실행(발동)될 때까지, 일정한 타임 러그가 발생한다.
이에, 상기 표시 제어 수단은, 상기 심볼을, 상기 제1 위치에서부터 상기 제2 위치를 경유하여 제3 위치까지 이동시키는 모습을 나타내는 화상의 표시를 제어하고,
상기 심볼이 상기 제3 위치에 도달했을 때에, 상기 커맨드에 대응하는 상기 서버로부터의 상기 리스판스에 기초하여, 해당 커맨드에 대응하는 처리를 실행하는 커맨드 실행 수단을 더 구비하도록,
할 수 있다.
상기 커맨드 접수 수단은, 복수의 커맨드를 순차 접수하고,
상기 표시 제어 수단은, 상기 복수의 커맨드의 각각에 대응하는 복수의 심볼을, 커맨드의 접수 순으로, 상기 제1 위치에서부터 제2 위치까지 각각 이동시키는 모습을 나타내는 화상을 표시시키고,
상기 제2 위치에 도달하기 전의 심볼에 대해서는, 다른 심볼과의 순번을 바꾸는 조작을, 해당 심볼에 대응하는 커맨드의 실행 순번의 변경 지시로서 접수하는 커맨드 순번 변경 수단을 더 구비하도록,
할 수도 있다.
또한, 상기 제2 위치에 도달하기 전의 심볼에 대하여 상기 화상으로부터 삭제하는 조작을, 해당 심볼에 대응하는 커맨드의 취소 지시로서 접수하는 커맨드 취소 수단을 더 구비하도록,
할 수도 있다.
이에 따라, 유저(게임의 경우 플레이어)는, 커맨드를 입력한 후에, 다른 커맨드를 입력하여 커맨드의 실행(발동) 순번을 변경하거나, 커맨드를 삭제하는 등의 편집 조작이 용이하게 가능해진다. 그 결과로서, 유저에게 보다 더욱 스트레스를 주지 않고 또한 싫증나는 일 없이, 예방적 부하 분산 처리를 실현하는 것이 가능해진다.
1, 1-1 내지 1-m: 플레이어 단말, 2: 서버, 21: CPU, 51: CPU, 101: 리퀘스트 수신 제어부, 102: 부하 감시부, 103: 대기 시간 연산부, 104: 리퀘스트 실행부, 105: 리스판스 송신 제어부, 106: 부정 감시부, 111: 대기 시간 DB, 121: 커맨드 접수부, 122: 대기 시간 설정부, 123: 리퀘스트 송신 제어부, 124: 표시 제어부, 125: 리스판스 수신 제어부, 126: 커맨드 실행부

Claims (14)

  1. 서버와, 해당 서버에 소정의 리퀘스트를 송신하는 복수의 단말을 포함하는 정보 처리 시스템에 있어서,
    상기 서버는,
    상기 서버에 단위 시간 내에 도달하는 리퀘스트의 수가 해당 서버에서의 해당 단위 시간 내에 처리 가능한 리퀘스트 수를 초과하지 않는 범위 내에서 미리 설정된 임계치를 초과하는지 여부를 감시하는 감시 수단과,
    상기 임계치를 초과한 경우, 단말에 대하여 다음의 리퀘스트의 송신을 허가하기까지의 대기 시간으로서, 상기 단말측에서의 시간의 흐름의 속도를 제어하는 대기 시간을 상기 복수의 단말마다 연산하는 대기 시간 연산 수단과,
    리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 수단과,
    상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 제1 송신 제어 수단,
    을 구비하고,
    상기 단말은,
    소정의 커맨드를 접수하는 커맨드 접수 수단과,
    상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 수단과,
    접수된 커맨드를 나타내는 심볼을, 해당 커맨드를 리퀘스트로 하여 상기 서버에 송신되기까지 표시하는 표시 제어 수단으로서, 설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 상기 심볼의 표시를 제어하는 표시 제어 수단과,
    설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 제2 송신 제어 수단,
    을 구비하는,
    정보 처리 시스템.
  2. 접수된 커맨드를 나타내는 심볼을, 해당 커맨드가 리퀘스트로서 송신되기까지 표시하는 표시 제어로 하여, 미리 설정된 대기 시간에 따라, 자기(自幾)측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 해당 심볼의 표시를 제어하고, 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로 하여 송신하는 복수의 단말과 통신을 하는 서버에 있어서,
    해당 서버에 단위 시간 내에 도달하는 리퀘스트 수가 해당 서버에서의 해당 단위 시간 내에 처리 가능한 리퀘스트 수를 초과하지 않는 범위 내에서 미리 설정된 임계치를 초과하는지 여부를 감시하는 제1 감시 수단과,
    상기 임계치를 초과한 경우, 단말에 대하여 다음의 리퀘스트의 송신을 허가하기까지의 대기 시간으로서, 해당 단말측에서 설정하는 것에 의해 해당 단말측에서의 시간의 흐름의 속도를 제어하는 대기 시간을 상기 복수의 단말 마다 연산하는 대기 시간 연산 수단과,
    리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 수단과,
    상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 송신 제어 수단
    을 구비하는 서버.
  3. 제2항에 있어서,
    상기 대기 시간 연산 수단은, 단위 시간당 도달하는 리퀘스트의 수와, 해당 단위 시간당 처리 가능한 리퀘스트의 수에 기초하여, 상기 대기 시간을 연산하는, 서버.
  4. 제2항 또는 제3항에 있어서,
    상기 복수의 단말마다, 직전의 리퀘스트의 도달 시각, 및 상기 대기 시간을 대응지어 관리하는 관리 수단과,
    리퀘스트가 도달했을 때에, 상기 관리 수단의 관리 내용에 기초하여, 해당 리퀘스트를 송신한 상기 단말이 상기 대기 시간을 지켰는지 여부를 감시하는 제2 감시 수단
    을 구비하는 서버.
  5. 삭제
  6. 리퀘스트에 대한 리스판스를, 해당 리퀘스트를 송신한 단말에 송신하는 서버로서, 해당 서버에 단위 시간 내에 도달하는 리퀘스트 수가, 해당 서버에서의 해당 단위 시간 내에 처리 가능한 리퀘스트 수를 초과하지 않는 범위 내에서 미리 설정된 임계치를 초과한 경우에는 해당 단말에 대하여 다음의 리퀘스트의 송신을 허가하기까지의 대기시간으로서, 해당 단말측에서의 시간의 흐름의 속도를 제어하는 대기 시간을 나타내는 정보도 상기 리스판스와 함께 해당 단말에 송신하는 상기 서버에 대하여, 상기 리퀘스트를 송신하여 상기 리스판스를 수신하는 단말에 있어서,
    소정의 커맨드를 접수하는 커맨드 접수 수단과,
    상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 수단과,
    접수된 커맨드를 나타내는 심볼을, 해당 커맨드가 리퀘스트로서 상기 서버에 송신되기까지 표시하는 표시 제어 수단으로서, 설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 해당 심볼의 표시를 제어하는 표시 제어 수단과,
    설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 송신 제어 수단
    을 구비하는 단말.
  7. 제6항에 있어서,
    상기 표시 제어 수단은,
    상기 심볼을 제1 위치에서부터 제2 위치까지 이동시키는 모습을 나타내는 화상을 표시하는 제어로서,
    상기 커맨드가 접수되었을 때에는 상기 심볼을 제1 위치에 배치시키고,
    설정된 상기 대기 시간에 상기 심볼이 상기 제1 위치에서부터 상기 제2 위치까지 이동하도록, 상기 심볼의 이동 속도를 결정하고,
    해당 이동 속도로 상기 심볼을 상기 제2 위치를 향하여 이동시키는,
    모습을 나타내는 화상을 표시시키는 제어를 실행하고,
    상기 송신 제어 수단은, 상기 심볼이 상기 제2 위치에 도달했을 때에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는,
    단말.
  8. 제7항에 있어서,
    상기 표시 제어 수단은, 상기 심볼을, 상기 제1 위치에서부터 상기 제2 위치를 경유하여 제3 위치까지 이동시키는 모습을 나타내는 화상의 표시를 제어하고,
    상기 심볼이 상기 제3 위치에 도달했을 때에, 상기 커맨드에 대응하는 상기 서버로부터의 상기 리스판스에 기초하여, 해당 커맨드에 대응하는 처리를 실행하는 커맨드 실행 수단을 더 구비하는,
    단말.
  9. 제7항 또는 제8항에 있어서,
    상기 커맨드 접수 수단은, 복수의 커맨드를 순차 접수하고,
    상기 표시 제어 수단은, 상기 복수의 커맨드의 각각에 대응하는 복수의 심볼을, 커맨드의 접수 순으로, 상기 제1 위치에서부터 제2 위치까지 각각 이동시키는 모습을 나타내는 화상을 표시시키고,
    상기 제2 위치에 도달하기 전의 심볼에 대해서는, 다른 심볼과의 순번을 바꾸는 조작을, 해당 심볼에 대응하는 커맨드의 실행 순번의 변경 지시로서 접수하는 커맨드 순번 변경 수단을 더 구비하는,
    단말.
  10. 제7항 또는 제8항에 있어서,
    상기 제2 위치에 도달하기 전의 심볼에 대하여 상기 화상으로부터 삭제하는 조작을, 해당 심볼에 대응하는 커맨드의 취소 지시로서 접수하는 커맨드 취소 수단
    을 더 구비하는 단말.
  11. 삭제
  12. 접수된 커맨드를 나타내는 심볼을, 해당 커맨드가 리퀘스트로서 송신되기까지 표시하는 표시 제어로 하여, 미리 설정된 대기 시간에 따라, 자기(自幾)측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 해당 심볼의 표시를 제어하고, 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로 하여 송신하는 복수의 단말과 통신을 하는 서버에,
    해당 서버에 단위 시간 내에 도달하는 리퀘스트 수가 해당 서버에서의 해당 단위 시간 내에 처리 가능한 리퀘스트 수를 초과하지 않는 범위 내에서 미리 설정된 임계치를 초과하는지 여부를 감시하는 감시 단계와,
    상기 임계치를 초과하는 경우, 단말에 대하여 다음의 리퀘스트의 송신을 허가하기까지의 대기 시간으로서, 해당 단말측에서 설정하는 것에 의해 해당 단말의 시간의 흐름의 속도를 제어하는 대기 시간을 상기 복수의 단말마다 연산하는 대기 시간 연산 단계와,
    리퀘스트를 도달 순으로 실행하여, 리스판스를 생성하는 리퀘스트 실행 단계와,
    상기 리스판스를, 대응하는 리퀘스트를 송신한 단말에 송신함과 함께, 상기 대기 시간이 연산되어 있는 경우에는 해당 대기 시간을 나타내는 정보도 함께 해당 단말에 송신하는 제어를 실행하는 송신 제어 단계
    를 포함하는 제어 처리를 실행시키는 프로그램을 저장하는 컴퓨터 판독가능 저장 매체.
  13. 리퀘스트에 대한 리스판스를, 해당 리퀘스트를 송신한 단말에 송신하는 서버로서, 해당 서버에 단위 시간 내에 도달하는 리퀘스트 수가 해당 서버에서의 해당 단위 시간 내에 처리 가능한 리퀘스트 수를 초과하지 않는 범위 내에서 미리 설정된 임계치를 초과한 경우에는 해당 단말에 대하여 다음의 리퀘스트의 송신을 허가하기까지의 대기 시간으로서 해당 단말측에서의 시간의 흐름의 속도를 제어하는 대기 시간을 나타내는 정보도 상기 리스판스와 함께 해당 단말에 송신하는 상기 서버에 대하여 상기 리퀘스트를 송신하여 상기 리스판스를 수신하는 단말에,
    소정의 커맨드를 접수하는 커맨드 접수 단계와,
    상기 서버로부터 상기 대기 시간을 나타내는 정보가 송신되어 온 경우에는, 해당 정보로 특정되는 해당 대기 시간을 설정하고, 해당 정보가 송신되어 오지 않은 경우에는, 소정 시간을 대기 시간으로서 설정하는 대기 시간 설정 단계와,
    접수된 커맨드를 나타내는 심볼을, 해당 커맨드가 리퀘스트로서 상기 서버에 송신되기까지 표시하는 표시 제어 단계로서, 설정된 상기 대기 시간에 따라, 상기 단말측에서의 시간의 흐름의 속도를 제어하고, 해당 시간의 흐름의 속도로 변화하는 해당 심볼의 표시를 제어하는 표시 제어 단계와,
    설정된 상기 대기 시간의 경과 후에, 상기 커맨드를 리퀘스트로서 상기 서버에 송신하는 제어를 실행하는 송신 제어 단계
    를 포함하는 제어 처리를 실행시키는 프로그램을 저장하는 컴퓨터 판독가능 저장 매체.
  14. 제1항에 있어서,
    상기 복수의 단말의 각각은, 소정의 게임을 실행하는 게임 실행 수단을 더 구비하고, 상기 커맨드 접수 수단은, 상기 게임에 대한 커맨드를 접수하고,
    상기 서버의 리퀘스트 실행 수단은, 상기 커맨드를 실행하여, 상기 게임에 관한 상기 리스판스를 생성하는, 정보 처리 시스템.
KR1020177025244A 2015-05-22 2016-05-17 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램 KR101944460B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2015-104218 2015-05-22
JP2015104218A JP5933076B1 (ja) 2015-05-22 2015-05-22 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム
PCT/JP2016/064611 WO2016190169A1 (ja) 2015-05-22 2016-05-17 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム

Publications (2)

Publication Number Publication Date
KR20170115094A KR20170115094A (ko) 2017-10-16
KR101944460B1 true KR101944460B1 (ko) 2019-01-31

Family

ID=56102954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177025244A KR101944460B1 (ko) 2015-05-22 2016-05-17 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램

Country Status (6)

Country Link
US (1) US10708186B2 (ko)
JP (1) JP5933076B1 (ko)
KR (1) KR101944460B1 (ko)
CN (1) CN107614073B (ko)
HK (1) HK1244743A1 (ko)
WO (1) WO2016190169A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107422938A (zh) * 2017-06-21 2017-12-01 网易(杭州)网络有限公司 信息处理方法、装置、电子设备及存储介质
JP6979292B2 (ja) * 2017-06-28 2021-12-08 株式会社タイトー ゲーム機
JP6546676B1 (ja) * 2018-03-26 2019-07-17 株式会社リクルート 順番管理システム、順番管理サーバ、およびプログラム
CN108970115A (zh) * 2018-07-13 2018-12-11 腾讯科技(深圳)有限公司 对战游戏中的信息显示方法、装置、设备及存储介质
JP6595737B1 (ja) * 2019-04-12 2019-10-23 株式会社Cygames 情報処理システムおよび情報処理方法
JP7346203B2 (ja) * 2019-04-12 2023-09-19 株式会社Cygames 情報処理システムおよび情報処理方法
JP7377770B2 (ja) * 2020-06-10 2023-11-10 株式会社ポケモン ゲームプログラム、方法、情報処理装置
US20220014884A1 (en) * 2020-07-07 2022-01-13 Metrolla Inc. Method For Wireless Event-Driven Everything-to-Everything (X2X) Payload Delivery

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115095A (ja) * 1998-10-02 2000-04-21 Matsushita Electric Ind Co Ltd 放送データ送信装置及び受信装置
JP2008204268A (ja) * 2007-02-21 2008-09-04 Nippon Telegr & Teleph Corp <Ntt> サーバ装置およびリクエスト整理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001307285A (ja) * 2000-04-26 2001-11-02 Hankyu Corp タクシー予約システム、適切交通手段教示システム、タクシー予約方法、適切交通手段教示方法および記録媒体
JP3548729B2 (ja) * 2001-03-29 2004-07-28 株式会社スクウェア・エニックス ビデオゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲームのプログラム及びビデオゲーム処理方法及びビデオゲーム処理装置
US7594022B2 (en) * 2004-04-21 2009-09-22 Microsoft Corporation Regulating client requests in an electronic messaging environment
US8032799B2 (en) * 2008-09-17 2011-10-04 International Business Machines Corporation System and method for managing server performance degradation in a virtual universe
BR112012003117A2 (pt) * 2009-08-12 2016-02-23 Nortel Networks Ltd fornecimento de uma resposta de negação que especifica um tempo de atraso
US9009253B2 (en) * 2011-02-16 2015-04-14 Yahoo! Inc. Optimizing server resources using multiple retry for high traffic websites
JP5701708B2 (ja) * 2011-07-26 2015-04-15 株式会社日立製作所 通信システム
CN103096377A (zh) * 2011-11-07 2013-05-08 中兴通讯股份有限公司 网络拥塞状态下控制终端响应触发的方法及系统
WO2014098237A1 (ja) 2012-12-21 2014-06-26 グリー株式会社 ゲーム制御方法、サーバ装置、及び情報記録媒体
JP5648041B2 (ja) * 2012-12-25 2015-01-07 楽天株式会社 申込受付システム、申込受付システムの制御方法、及びプログラム
JP5770782B2 (ja) * 2013-05-23 2015-08-26 株式会社オプティム オペレータ端末、ユーザ端末、所要時間通知方法、及びオペレータ端末用プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115095A (ja) * 1998-10-02 2000-04-21 Matsushita Electric Ind Co Ltd 放送データ送信装置及び受信装置
JP2008204268A (ja) * 2007-02-21 2008-09-04 Nippon Telegr & Teleph Corp <Ntt> サーバ装置およびリクエスト整理方法

Also Published As

Publication number Publication date
US10708186B2 (en) 2020-07-07
CN107614073A (zh) 2018-01-19
JP2016214639A (ja) 2016-12-22
JP5933076B1 (ja) 2016-06-08
WO2016190169A1 (ja) 2016-12-01
HK1244743A1 (zh) 2018-08-17
US20180077063A1 (en) 2018-03-15
CN107614073B (zh) 2020-11-13
KR20170115094A (ko) 2017-10-16

Similar Documents

Publication Publication Date Title
KR101944460B1 (ko) 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램
JP7259033B2 (ja) 機械学習によって推進されるリソース配分
EP2629858B1 (en) Resource management of server hosts in online game environment
US9455931B2 (en) Load balancing between processors
EP2999527B1 (en) Game availability in a remote gaming environment
KR101993953B1 (ko) 게임을 이주시키는 기법
Suresh et al. Distributed resource management across process boundaries
EP3161636B1 (en) Data center management of multimode servers
KR20140084190A (ko) 클라우드 기반 게임 시스템에서의 부하 균형
WO2014015207A1 (en) Game browsing
TW201720115A (zh) 個體網站的功耗估計
JP2018110387A (ja) リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム
CN114972594B (zh) 一种用于元宇宙的数据处理方法、装置、设备及介质
CN103714569B (zh) 一种渲染指令的处理方法、装置和系统
JP2023548708A (ja) 画面表示方法、装置、端末機器及びコンピュータプログラム
JP2008289030A (ja) 画面描画転送システム
JP2023041591A (ja) 情報処理システム、情報処理方法およびコンピュータプログラム
JP2016033790A (ja) 画面転送サーバ装置、および画面転送方法
US20240187323A1 (en) Guard time calculation apparatus, guard time calculation method and program
US11838453B2 (en) Systems and methods for efficient management of resources for streaming interactive multimedia content
JP2004334566A (ja) 情報処理方法及び情報処理装置
Nan et al. vPresent: A cloud based 3D virtual presentation environment for interactive product customization
CN118170293A (zh) 指令响应方法、装置、介质及设备

Legal Events

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