KR100781201B1 - 네트워크 게임 시스템, 클라이언트 기기, 서버 기기 - Google Patents

네트워크 게임 시스템, 클라이언트 기기, 서버 기기 Download PDF

Info

Publication number
KR100781201B1
KR100781201B1 KR1020060017201A KR20060017201A KR100781201B1 KR 100781201 B1 KR100781201 B1 KR 100781201B1 KR 1020060017201 A KR1020060017201 A KR 1020060017201A KR 20060017201 A KR20060017201 A KR 20060017201A KR 100781201 B1 KR100781201 B1 KR 100781201B1
Authority
KR
South Korea
Prior art keywords
character
management
characters
managed
client device
Prior art date
Application number
KR1020060017201A
Other languages
English (en)
Other versions
KR20070029038A (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 KR20070029038A publication Critical patent/KR20070029038A/ko
Application granted granted Critical
Publication of KR100781201B1 publication Critical patent/KR100781201B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • 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
    • A63F13/35Details of 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • 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/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6623Methods for processing data by generating or executing the game program for rendering three dimensional images for animating a group of characters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Child & Adolescent Psychology (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 네트워크 게임 시스템, 클라이언트 기기 및 서버 기기에 관한 것으로서, 복수개의 캐릭터가 등장하는 네트워크 게임 시스템에서, 게임에 등장하는 캐릭터에 관한 처리를 복수개의 기기에 분산시키는 방법에 관한 것이다.
네트워크 게임 시스템에 접속된 각 게임기는, 캐릭터 정보와 관리 캐릭터의 정보를 기억부에 기억한다. 연산부는, 기억부에 기억된 캐릭터 정보를 사용하여, 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화 및 동작의 변화를 관리 캐릭터마다 연산한다. 통신부는, 연산된 변화 후의 각 관리 캐릭터의 캐릭터 정보 패킷을 게임 서버에 송신한다. 게임 서버는, 수신한 캐릭터 정보 패킷을 상기 게임에 참가하고 있는 타 게임기에 송신한다. 다른 게임기는, 수신한 캐릭터 정보를 기억하는 동시에 변화 후의 각 관리 캐릭터에 대한 화상을 생성한다. 따라서, 게임에 등장하는 각 캐릭터의 처리 및 관리를 분산시켜서 실행하는 네트워크 게임 시스템을 제공할 수 있다.
게임, 네트워크, 서버, 클라이언트, 캐릭터, 인터넷, 분산, 프로그램, 마진

Description

네트워크 게임 시스템, 클라이언트 기기, 서버 기기{NETWORK GAME SYSTEM, CLIENT DEVICE AND SERVER DEVICE}
도 1은 본 발명의 각 실시예에 따른 네트워크 게임 시스템의 전체 구성도이다.
도 2는 각 실시예에 따른 게임기의 일례를 나타낸 도면이다.
도 3은 각 실시예에 따른 게임 서버의 하드웨어 구성도이다.
도 4는 각 실시예에 따른 게임기의 하드웨어 구성도이다.
도 5는 실시예 1 및 실시예 2에 따른 게임 서버의 기능 구성도이다.
도 6각 실시예에 따른 게임기의 기능 구성도이다.
도 7은 각 실시예에 따른 RAM에 기억되는 캐릭터 정보의 일례를 나타낸 도면이다.
도 8은 실시예 1 및 실시예 2에 따라서 게임기가 실행하는 클라이언트 측 관리 처리 루틴을 나타낸 흐름도이다.
도 9는 실시예 1에 따라서 게임기가 실행하는 캐릭터 관리 처리 루틴을 나타낸 흐름도이다.
도 10은 실시예 1 및 실시예 2에 따라서 게임기 또는 게임 서버가 실행하는 캐릭터 변경 판정 처리 루틴을 나타낸 흐름도이다.
도 11은 전투 태세로 이행하기 전의 게임 상태를 설명하기 위한 도면이다.
도 12는 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 13은 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 14는 실시예 1 및 실시예 2에 따라서 게임기 또는 게임 서버가 실행하는 아군 PC 관리 변경 처리 루틴을 나타낸 흐름도이다.
도 15는 전투 태세에 있는 게임 상태를 설명하기 위한 도면이다.
도 16은 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 17은 실시예 1 및 실시예 2에 따라서 게임기 또는 게임 서버가 실행하는 적군 PC 관리 변경 처리 루틴을 나타낸 흐름도이다.
도 18은 아군 소대가 적군 소대로부터 후퇴하는 게임 상태를 설명하기 위한 도면이다.
도 19는 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 20는 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 21은 NPC와 각 PC의 상대 위치 관계의 일례를 설명하기 위한 도면이다.
도 22는 실시예 1에 따라서 게임 서버가 실행하는 서버 측 관리 처리 루틴을 나타낸 흐름도이다.
도 23은 실시예 2에 따라서 게임기가 실행하는 캐릭터 관리 처리 루틴을 나타낸 흐름도이다.
도 24는 실시예 2에 따라서 게임 서버가 실행하는 서버 측 관리 처리 루틴을 나타낸 흐름도이다.
도 25는 실시예 3에 따른 게임 서버의 기능 구성도이다.
도 26은 실시예 3에 따라서 게임 서버가 실행하는 서버 측 관리 처리 루틴을 시한 흐름도이다.
도 27은 실시예 3에 따라서 게임기가 실행하는 캐릭터 관리 처리 루틴을 나타낸 흐름도이다.
도 28은 실시예 3에 따라서 게임기 또는 게임 서버가 실행하는 캐릭터 변경 판정 처리 루틴을 나타낸 흐름도이다.
도 29는 실시예 3에 따라서 게임기 또는 게임 서버가 실행하는 아군 MC관리 변경 처리 루틴을 나타낸 흐름도이다.
도 30은 실시예 3에 따라서 게임기 또는 게임 서버가 실행하는 적군 MC 관리 변경 처리 루틴을 나타낸 흐름도이다.
[부호의 설명]
10: 네트워크 게임 시스템 100: 게임 서버
110: 하드 디스크 120: RAM
140: 입력부 145: 통신부
150: 기억부 155: 관리부
160: 화상 처리부 165: 화상 생성부
170: 액션 처리 실행부 170a: 연산부
170b: 화상 처리부 175: 판정부
200: 게임기 210: 하드 디스크
220: RAM 240: 리더
245: 매체 리드부 250: 입력부
255: 기억부 260: 액션 처리 실행부
260a: 연산부 260b: 화상 처리부
260c: 음향 처리부 265: 화상 생성부
270: 음향 재생부 275: 판정부
280: 통신부 300: 네트워크
PC: 플레이어 캐릭터 NPC: 논플레이어 캐릭터
SC: 서버 캐릭터 MC: 메인 캐릭터
CL: 게임기 SV: 게임 서버
일본국 특개 2001-353375호 공보
본 발명은 복수개의 캐릭터가 등장하는 네트워크 게임 시스템에서, 게임에 등장하는 캐릭터에 관한 처리를 복수개의 기기에 분산시키는 방법에 관한 것이다.
특히, 복수개의 캐릭터가 피아간에 집단을 형성하여 서로 전투하는 네트워크 게임 시스템에서 그 집단 전투를 순조롭게 실현시키기 위하여, 등장하는 각 캐릭터의 처리 및 관리를 분산시켜서 처리하는 방법에 관한 것이다.
최근, 브로드 밴드(broadband)의 보급에 의해, 인터넷을 이용하는 인구의 확대와 통신 기술의 진보가 이루어짐에 따라 네트워크를 통하여 복수 플레이어가 동시에 참가하는 네트워크 게임의 인기가 높아지고 있다. 이와 같은 네트워크 게임으로서 예를 들어, 네트워크를 통하여 참가하는 복수 게임 플레이어를 복수개의 팀으로 배분하고, 복수개의 팀끼리 네트워크를 통해 실시간으로 게임 대전하는 시스템이 제안되고 있다(예를 들어, 일본국 특개 2001-353375호 공보).
상기 네트워크 게임 시스템에서는, 게임 내의 모든 캐릭터를 서버 측에서 일괄 관리하는 「서버·클라이언트 방식」이 채용되고 있다. 즉, 상기 네트워크 시스템에서는, 센터의 호스트 머신으로서 사용되는 전용 서버가, 실제 게임 프로그램의 주된 실행과 모든 게임 데이터, 및 각 클라이언트 기기가 공유하는 가상 공간을 일괄 관리하고, 각 클라이언트 기기와 게임 명령 등을 송수신함으로써 게임이 진행된다.
따라서, 상기 네트워크 시스템에서는, 게임 플레이어가 클라이언트 기기에 키 입력하면, 서버가 키 입력에 따른 데이터를 받아, 모든 처리를 실행하고, 화상 정보만을 클라이언트 기기에 송신한 후에, 비로소 게임 플레이어의 조작에 대한 액션이 화면에 반영된다.
이와 같이, 플레이어의 조작에 대해서 화면상의 캐릭터가 곧바로 반응하지 않으면 게임으로서의 재미와 즐거움이 반감되고, 게임 플레이어는 나쁜 조작성에 의해 게임에 몰두할 수 없는 문제점이 생긴다.
이에 비해, 「P2P(피어 투 피어)호스트 방식」은, 임의의 클라이언트 기기를 호스트 머신으로 하고, 네트워크에 접속된 다른 클라이언트 기기와 직접 통신하여 게임을 진행시킨다. 그러므로, 호스트 머신인 클라이언트 기기의 처리의 부하가 높아지고, 게임 플레이어의 조작에 대해서 화면상의 캐릭터의 액션이 지연되게 된다. 따라서, P2P 호스트 방식에 의해도 상기 문제점을 해결할 수 없다.
특히, 현재, 스탠드 얼론(stand-alone)으로 동작하고 있는 100개 이상의 캐릭터가 동시에 집단적으로 전투하는 복잡한 액션 게임을 네트워크 게임으로서 동작시킬 경우, 100개 이상의 캐릭터를 한꺼번에 동작시킬 필요가 있다. 그러나, 상기 종래의 방식에 의한 게임 관리에서는, 캐릭터 데이터나 모션 데이터 등의 통신량이 매우 많아지므로, 액션 처리의 지연이 생겨서, 게임으로서 성립시키기 곤란하게 된다.
따라서 본 발명은, 복수 캐릭터가 등장하는 네트워크 게임 시스템에서 이들 캐릭터를 순조롭게 동작시키기 위해, 등장하는 각 캐릭터의 처리 및 관리를 분산시켜서 실행하는 네트워크 게임 시스템, 클라이언트 기기 및 서버 기기를 제공한다.
즉, 본 발명의 관점에 의하면, 네트워크를 통하여 서버 기기에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써, 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와 자동적으로 동작하는 복수개의 논플레이어 캐릭터(non player character)를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임 시스템이 제공된다.
상기 네트워크 게임 시스템에서는, 각각의 상기 클라이언트 기기는 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록시키는 기억부와, 상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따른 각각의 관리 캐릭터 위치의 변화 정도 및 동작의 변화 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와, 연산된 변화 후의 각각의 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 서버 기기에 송신하는 통신부를 구비한다.
또, 상기 서버 기기는, 송신된 상기 캐릭터 정보 패킷을 수신하고, 수신한 캐릭터 정보 패킷을 상기 게임에 참가하고 있는 다른 클라이언트 기기에 송신한다. 이에 비해, 다른 클라이언트 기기는, 상기 송신된 캐릭터 정보 패킷을 수신하고, 수신한 캐릭터 정보에 기초하여 변화 후의 캐릭터 정보를 기억한다.
이에 따르면, 클라이언트 기기가, 게임의 전개에 따른 각 관리 캐릭터의 위치 변화 및 동작 변화의 정도를 연산한다. 이로써, 서버 기기에 부하가 집중되어 있던, 게임을 진행시키기 위한 주요 처리를 게임에 참가하고 있는 복수개의 클라이언트 기기에 분담시킬 수 있고, 서버 기기와 클라이언트 기기의 통신량을 저감시킬 수 있다. 이 결과, 플레이어의 조작에 따라 화면상의 복수개의 캐릭터를 즉시 동작시킬 수 있게 된다. 그러므로, 플레이어는, 네트워크를 통하여 접속된 다른 플레이어와 함께, 양호한 조작성에 의해 현장감 넘치는 게임에 몰두할 수 있다.
상기 각 클라이언트 기기는, 상기 연산된 각 관리 캐릭터의 위치 변화의 정 도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는지의 여부를 판정하는 판정부를 더 구비하고 있어도 된다. 이 때, 상기 각 클라이언트 기기의 기억부는, 상기 판정부에 의해 관리하지 않는 것으로 판정된 관리 캐릭터의 등록을 삭제하고, 상기 각 클라이언트 기기의 통신부는, 상기 판정부에 의해 상기 관리 캐릭터가 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 상기 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 서버 기기에 송신하여도 된다.
이에 비해, 상기 서버 기기는, 상기 캐릭터 관리 변경 패킷을 수신하고, 수신한 캐릭터 관리 변경 패킷을 상기 다른 클라이언트 기기에 송신하고, 상기 다른 클라이언트 기기는, 상기 송신된 캐릭터 관리 변경 패킷을 수신하고, 수신된 캐릭터 정보를 기억하는 동시에 상기 수신된 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하여도 된다.
이에 따르면, 관리 캐릭터의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계로부터, 게임의 진행 상황에 따라 논플레이어 캐릭터를 관리하는 클라이언트 기기가 적절하게 특정된다. 이같이 하여, 게임의 상황에 따라 논플레이어 캐릭터를 관리하는 클라이언트 기기를 적절하게 전환시킴으로써, 시스템 전체의 처리 분산을 최적화하여, 보다 순조롭게 게임을 진행시킬 수 있다. 그리고, 여기서 「 관리」하 함은, 예를 들어 공격 및 방어 시의 논 쌍방의 플레이어 캐릭터의 좌표 계산이나 모션 재생 등의 처리를 각 클라이언트 기기 측에서 행하는 것을 말한다.
특히, 상기 네트워크 게임 시스템은, 상기 복수개의 클라이언트 기기에 의해 관리되는 복수개의 플레이어 캐릭터와 상기 복수개의 플레이어 캐릭터를 호위하는 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 피아간에 집단을 형성하여 서로 전투하는 게임을 제공하는 시스템인 경우에 유리하다. 이와 같은 집단 전투 게임에서는, 예를 들어 80개 ~ 128대 정도의 매우 많은 캐릭터가 동시에 화면상에 등장한다. 그러므로, 게임의 지연을 피하기 위해서는, 분산 처리의 최적화가 불가피하다.
또, 상기 네트워크 게임 시스템은, 상기 전투 게임 외에, 상기 복수개의 클라이언트 기기에 의해 관리되는 복수개의 플레이어 캐릭터와 상기 복수개의 논플레이어 캐릭터가 집단을 형성하여 서로 협력하는 게임을 제공하는 시스템일 수도 있다. 이 시스템의 구체예로서는, 자신의 플레이어 캐릭터를 조작하여 복수개의 논플레이어 캐릭터와 함께 게임 등을 함으로써 플레이어 캐릭터의 레벨이나 능력 등의 파라미터를 상승시켜, 네트워크를 통하여 접속된 다른 클라이언트 기기를 조작하는 다른 플레이어 캐릭터와 입신 출세를 경쟁하는 게임 시스템을 들 수 있다. 또는, 플레이어가 조작하는 플레이어 캐릭터가, 복수개의 논플레이어 캐릭터의 협력을 얻으면서, 네트워크를 통하여 다른 플레이어 캐릭터와 채팅을 하여, 커뮤니케이션을 즐기는 게임을 들 수 있다.
또, 본 발명의 다른 관점에 의하면, 네트워크에 접속된 복수개의 클라이언트 기기에 의해 각각 관리되는 복수개의 플레이어 캐릭터와 상기 복수개의 플레이어 캐릭터의 조역이 되는 복수개의 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 등장하는 네트워크 게임에 참가하는 클라이언트 기기가 제공된다. 구체적으로는, 상기 클라이언트 기기는, 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와, 상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부를 구비한다.
상기 클라이언트 기기는, 생성된 상기 캐릭터 정보에 기초하여 상기 캐릭터 정보에 의해 특정되는 캐릭터에 관한 화상을 생성하는 화상 생성부를 더 구비하고 있어도 된다.
이에 따르면, 게임의 전개에 따른 각 관리 캐릭터의 위치 변화 및 동작 변화의 정도는 클라이언트 기기 측에서 연산된다. 이로써, 종래, 서버 기기에 부하가 집중하고 있던 주요 처리를 게임에 참가하고 있는 복수개의 클라이언트 기기에 분담시킬 수 있다. 따라서, 서버 기기와 클라이언트 기기 사이의 통신량도 많이 저감시킬 수 있다. 결과적으로, 플레이어는, 플레이어의 조작에 따라 즉시 동작하는 화면상의 복수개의 캐릭터를 보면서, 현장감 넘치는 게임을 즐길 수 있다.
상기 클라이언트 기기는, 연산된 각각의 상기 관리 캐릭터의 위치 변화의 정도에 기초하여, 각각의 상기 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기 기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치 사이의 상대관계를 구하고, 상기 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는지의 여부를 판정하는 판정부를 더 구비하고 있어도 된다.
이에 따르면, 관리 캐릭터의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치 사이의 상대 관계로부터, 게임의 진행 상황에 따라 논플레이어 캐릭터를 관리하는 클라이언트 기기가 적절하게 특정된다. 또, 이에 따르면, 상기 각 논플레이어 캐릭터는, 상기 네트워크 게임에 참가하고 있는 어느 하나의 클라이언트 기기에 분산되어 관리된다. 이와 같이 하여, 게임 상황에 따라 논플레이어 캐릭터를 관리하는 클라이언트 기기를 적절하게 전환함으로써, 시스템 전체의 처리 분산을 최적화하여, 보다 순조롭게 게임을 진행시킬 수 있다.
이 때, 상기 판정부는, 상기 구해진 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터로부터 소정 범위 내에 위치하는 플레이어 캐릭터를 관리하는 클라이언트 기기에 관리 되도록 상기 각 관리 캐릭터를 관리하는지의 여부를 판정하도록 해도 된다.
또, 상기 판정부는, 상기 구해진 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터가, 상기 각 관리 캐릭터의 적군 플레이어 캐릭터를 관리하는 클라이언트 기기에 우선하여 관리되도록 상기 각 관리 캐릭터를 관리하는지의 여부를 판정하도록 해도 된다.
상기 네트워크 게임 시스템이 집단 전투 게임인 경우, 플레이어 캐릭터는 아군의 논플레이어 캐릭터를 공격하지 않는다. 환언하면, 플레이어의 입력 조작에 따라 플레이어 캐릭터를 동작시킬 때, 이 플레이어 캐릭터의 동작(공격)에 대응하여, 클라이언트 기기가, 플레이어의 입력 조작에 따르지 않고 자동적으로 동작시키는(즉, 공격에 대응하여 동작하기 위해 연산이 필요한) 캐릭터는 플레이어 캐릭터 근방의 적군 논플레이어 캐릭터로 한정된다. 이에 따라, 본 발명에서는, 공격하는 플레이어 캐릭터를 관리하는 클라이언트 기기 자신이 플레이어 캐릭터 근방의 적군 논플레이어 캐릭터를 우선적으로 관리하도록 한다. 이 결과, 플레이어의 조작에 따라, 자기 클라이언트 기기가, 자기 플레이어 캐릭터와 함께 적군 논플레이어 캐릭터의 동작의 변화치를 순간적으로 연산하고, 그 결과를 즉시 화면상에 반영시킴으로써, 공격 시에 처리가 빠지는 것을 방지하여, 플레이어에게 현장감 넘치는 게임 전개를 제공하는 것이 가능하다.
또, 상기 판정부는, 구해진 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터에 가장 가까운 플레이어 캐릭터를 관리하는 클라이언트 기기에 관리 되도록 상기 각 관리 캐릭터를 관리하는지의 여부를 판정해도 된다.
플레이어의 조작에 따라 동작하는 플레이어 캐릭터에 대해서 게임 진행을 위한 처리가 필요해지는 논플레이어 캐릭터는, 플레이어 캐릭터 근방의 논플레이어 캐릭터일 경우가 많다. 이에 따라, 본 발명에서는, 플레이어 캐릭터를 관리하는 클라이언트 기기와 동일한 기기가 플레이어 캐릭터 근방의 논플레이어 캐릭터를 피아간에 관계하지 않고 우선적으로 관리한다. 이로써, 게임을 순조롭게 진행시킬 수 있다.
상기 판정부는, 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치가, 상기 각 관리 캐릭터에 가장 가까운 경우라도, 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치로부터 소정 거리 이상 상기 각 관리 캐릭터의 가까이에 위치하지 않는 한, 자기 클라이언트 기기가 상기 각 관리 캐릭터를 관리하는 것으로 판정해도 된다.
이와 같이, 관리 캐릭터의 관리의 전환에 따라서, 소정의 마진(소정 거리)을 둠으로써, 각 관리 캐릭터의 관리의 전환이 빈번하게 발생하는 것을 방지할 수 있다. 이 때, 상기 소정 거리는, 각 관리 캐릭터의 관리를 전환하는 판정이 빈번하게 생기지 않도록 설정되는 것이 바람직하다. 또, 상기 소정 거리는, 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터와 상기 각 관리 캐릭터와의 관계가 피아간일 경우에, 그 관계가 아군일 경우에 비하여 짧은 값으로 설정되는 편이 좋다. 또, 판정부는, 거리 이외의 요소에 의해 각 관리 캐릭터의 관리 전환을 판정해도 된다. 예를 들어, 논플레이어 캐릭터가 특정한 클라이언트 기기에 미리 할당되어 있는 경우에는, 그 결정에 따라 관리를 전환해도 된다.
또, 상기 판정부는, 상기 각 관리 캐릭터가, 자기 클라이언트 기기에 의해 관리되는 플레이어 캐릭터가 적군 캐릭터인지 아군 캐릭터인지를 구별하지 않고, 상기 연산된 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터를 관리할지의 여부를 판정하도록 해도 된다.
또, 상기 판정부는, 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터 가, 상기 각 관리 캐릭터 및 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 적군으로서, 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터가 상기 각 관리 캐릭터의 일정 범위 내에 위치하는 경우에는, 상기 구해진 위치의 상대 관계에 관계없이, 상기 다른 클라이언트 기기가 상기 각 관리 캐릭터를 관리하도록 판정해도 된다.
상기 클라이언트 기기이면서 상기 판정부에 의해 상기 각 관리 캐릭터가 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 상기 판정된 관리 캐릭터의 캐릭터 정보를 포함하는 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 통신부를 구비하고, 상기 기억부는 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 삭제하도록 해도 된다.
또, 상기 통신부는 상기 네트워크를 통하여 서버 기기에 접속된 다른 클라이언트 기기로부터 송신된 캐릭터 관리 변경 패킷을 수신하고, 상기 기억부는 상기 수신한 캐릭터 관리 변경 패킷에 포함되는 캐릭터 정보를 기억하고, 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하도록 해도 된다.
이에 따르면, 각 클라이언트 기기가 연산한 변화 후의 캐릭터 정보를, 서버 기기를 통하여 다른 클라이언트 기기에 송신하고, 이에 따라 다른 클라이언트 기기가, 기억부의 데이터를 송신된 캐릭터 정보로 갱신함으로써, 모든 클라이언트 기기에서 모든 캐릭터 정보에 관한 데이터의 정합성을 유지할 수 있다.
또, 상기 다른 클라이언트 기기가 네트워크를 통하여 복수개 접속되고, 상기 다른 클라이언트 기기 중, 제1의 다른 클라이언트 기기가 관리하는 플레이어 캐릭 터가 적군이며, 제2의 다른 클라이언트 기기가 관리하는 플레이어 캐릭터가 아군인 경우, 상기 판정부는 상기 구해진 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터가 제2의 다른 클라이언트 기기로부터도 제1의 다른 클라이언트 기기보다 우선적으로 관리되도록 상기 각 관리 캐릭터를 관리할 지의 여부를 판정하도록 해도 된다.
또, 상기 판정부는 소정 주기마다 상기 각 관리 캐릭터를 관리할지의 여부를 판정해도 된다. 상기 판정부는, 게임을 표시하는 표시 화면을 주사하는 타이밍과 연동하여, 상기 판정을 행해도 된다. 여기서, 상기 화면의 주사 타이밍은 수직 귀선 인터럽트가 발생하는 타이밍이다. 또, 소정 주기의 일례로서는, 모니터의 수직귀선주기와 일치하는 1/60초(16.6ms)에 한 번의 주기를 들 수 있지만, 반드시, 소정 주기는 화면 주사의 타이밍일 필요는 없고, 판정부에서의 처리의 부하에 따라 적절하게 소정 주기, 예를 들면 1/30초 또는 1/20초로 설정해도 된다. 그리고, 상기 판정부는, 소정 주기마다 모든 관리 캐릭터에 대하여 한번에 판정하는 것은 아니고, 모든 관리 캐릭터를 소정의 개수로 나누어서 소정 주기마다 수 단계씩 판정하도록 해도 된다.
또, 본 발명의 다른 관점에 의하면, 복수개의 플레이어 캐릭터와 상기 복수개의 플레이어 캐릭터를 상기 복수개의 플레이어 캐릭터의 조역이 되는 복수개의 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 등장하는 네트워크 게임을 관리하는 서버 기기가 제공된다.
구체적으로는, 상기 서버 기기는 네트워크에 접속된 복수개의 클라이언트 기 기에 의해 관리되는 상기 복수개의 캐릭터의 위치 정보와 상기 복수개의 캐릭터를 관리하는 클라이언트 기기의 식별 정보를 기억하는 기억부와, 상기 캐릭터 정보에 포함되는 위치 정보와 상기 각 논플레이어 캐릭터를 각각 관리하는 클라이언트 기기의 식별 정보에 기초하여, 각 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 각 클라이언트 기기가 관리하는 논플레이어 캐릭터의 위치의 상대 관계를 구하고, 상기 구해진 위치의 상대 관계에 기초하여 상기 논플레이어 캐릭터를 관리하는 클라이언트 기기를 판정하는 판정부와, 상기 각 논플레이어 캐릭터를 관리하는 것으로 판정된 클라이언트 기기에 캐릭터 관리 변경 패킷을 송신하는 통신부를 구비한다.
이에 따르면, 서버 기기에서 모든 캐릭터의 관리 전환 처리가 실행되고, 그 결과가 각 클라이언트 기기에 한꺼번에 송신된다. 이로써, 서버 기기로부터 모든 클라이언트 기기까지의 거리나 각 클라이언트 기기의 성능 및 그 외 통신 환경이 동일한 경우나 통신 장애가 발생하지 않는 경우, 각 클라이언트 기기에서 생기는 관리 전환 처리의 지연은, 이론상 대략 동시에 일어나는 것으로 생각할 수 있다. 그러므로, 화면상의 다수의 캐릭터를 보다 자연스럽게 동작시키는 것이 가능하다. 또, 모든 캐릭터의 관리 전환을 서버 측에서 행하기 위해, 정확, 간단, 및 용이하게 데이터의 정합성을 유지할 수 있다. 또, 이 경우, 캐릭터 관리의 전환을 위한 지연 시간은, 서버 기기로부터 클라이언트 기기에의 통신 시간만 걸린다. 그러므로, 캐릭터의 관리 전환 처리를 클라이언트 기기에서 행하는 경우에 비해 통신 지연(캐릭터의 관리 전환 처리를 클라이언트 기기에서 행하는 경우, 변경원 클라이언 트 기기로부터 서버를 경유하여 변경처 클라이언트 기기로 통신하기 위한 통신 시간이 걸린다. 즉, 이 경우는, 서버 측에서 관리 전환 처리를 행하는 경우에 비해, 대략 2배의 통신 시간이 걸린다.)이 적어지는 이점이 있다. 그리고, 캐릭터를 관리하는 클라이언트 기기의 식별 정보의 일례로서는, 사전에 등록되어 있는 관리원의 클라이언트 번호를 들 수 있다.
또, 본 발명의 다른 관점에 의하면, 네트워크에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함한 복수개의 캐릭터가 등장하는 네트워크 게임을 컴퓨터에 실행시키는 캐릭터 관리 프로그램이 제공된다.
구체적으로는, 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억시키는 처리와, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록시키는 처리와, 상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 각 클라이언트 기기에 대해서 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는 캐릭터 관리 프로그램이 제공된다.
상기 캐릭터 관리 프로그램에서는, 상기 연산된 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기 기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 상기 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는 클라이언트 기기를 판정하는 처리와, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기 클라이언트 기기의 기억부로부터 삭제하는 처리와, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 처리를 추가로 컴퓨터에 실행시킬 수도 있다.
또, 본 발명의 다른 관점에 의하면, 네트워크에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써, 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터 을 포함한 복수개의 캐릭터가 등장하는 네트워크 게임을 컴퓨터에 실행시키기 위한 캐릭터 관리 프로그램을 기억한 컴퓨터가 읽어들일 수 있는 기억 매체가 제공된다.
구체적으로는, 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억시키는 처리와, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록시키는 처리와, 상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 각 클라이언트 기기에 대해서 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 컴퓨터로 하여금 실행하게 하는 것을 특징으로 하는 캐릭터 관리 프로그램을 기억한 컴퓨터가 읽어들 일 수 있는 기억 매체가 제공된다.
상기 캐릭터 관리 프로그램을 기억한 컴퓨터가 읽어들일 수 있는 기억 매체로서는, 상기 연산된 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 상기 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는 클라이언트 기기를 판정하는 처리와, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기 클라이언트 기기의 기억부로부터 삭제하는 처리와, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 처리를 컴퓨터에 실행시키는 캐릭터 관리 프로그램을 기억한 컴퓨터가 읽어들일 수 있는 기억 매체라도 된다.
이에 따르면, 클라이언트 기기가 게임의 전개에 따른 각 관리 캐릭터의 위치 변화 및 동작의 변화를 연산한다. 이로써, 게임을 진행시키기 위해 발생하는 주 처리를 게임에 참가하고 있는 복수개의 클라이언트 기기에 분담시킬 수 있고, 서버 기기와 클라이언트 기기의 통신량을 줄일 수 있다. 이 결과, 플레이어에 의한 조작에 따라 즉시 동작하는 화면상의 복수개의 캐릭터를 보면서, 플레이어는 현장감 넘치는 게임을 즐길 수 있다.
또, 본 발명의 다른 관점에 의하면, 네트워크를 통하여 서버 기기에 접속된 하나 또는 복수개의 클라이언트 기기를 사용자가 조작함으로써, 입력된 정보에 따 라 동작하는 하나 또는 복수개의 플레이어 캐릭터와 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함한 복수개의 캐릭터가 등장하는 네트워크 게임 시스템이 제공된다.
상기 네트워크 게임 시스템에서는, 상기 각 클라이언트 기기는 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와, 상기 기억부에 기억된 캐릭터 정보를 사용하여 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와, 연산된 변화 후의 각 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 서버 기기에 송신하는 통신부를 구비하고, 상기 서버 기기는 상기 송신된 캐릭터 정보 패킷을 수신하고, 수신한 캐릭터 정보 패킷을 상기 게임에 참가하고 있는 다른 클라이언트 기기에 송신하고, 상기 게임에 참가하고 있는 다른 클라이언트 기기는 송신된 캐릭터 정보 패킷을 수신하고, 수신된 캐릭터 정보에 기초하여 변화 후의 캐릭터 정보를 기억한다.
이 때, 상기 서버 기기는 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기의 서버 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와, 상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와, 상기 연산된 변화 후의 각 관리 캐릭터의 캐릭터 정보를 캐릭 터 정보 패킷으로서 상기 게임에 참가하고 있는 모든 클라이언트 기기에 송신하는 통신부를 더 구비하고 있어도 된다.
이에 따르면, 게임에 참가하는 사용자가 모자라는 경우라도(예를 들어, 게임에 참가하는 사용자가 한 명이라 하더라도), 조작하는 사용자가 없는 플레이어 캐릭터 및 이 플레이어 캐릭터에 부수되는 논플레이어 캐릭터에 대해서는, 서버 기기가 이들 캐릭터를 자동적으로 조작한다. 따라서, 참가자가 모자라더라도, 사용자는 게임을 마음껏 즐길 수가 있다. 또, 클라이언트 기기에 의해 관리되는 캐릭터와 서버 기기에 의해 관리되는 캐릭터를 나눔으로써, 시스템 전체의 처리를 분산시킬 수 있어서, 게임을 순조롭게 진행시킬 수가 있다. 그리고, 서버 기기가 자동적으로 조작하는 플레이어 캐릭터는 복수개라도 된다.
상기 게임에 등장하는 상기 복수개의 캐릭터는, 상기 서버 기기의 제어에 의해 자동적으로 동작하는 하나 또는 복수개의 서버 캐릭터를 포함하고, 상기 서버 기기는, 또한, 상기 연산된 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기의 서버 기기가 관리하는 어느 하나의 상기 서버 캐릭터의 위치와 상기 클라이언트 기기가 관리하는 플레이어 캐릭터 또는 다른 서버 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는지의 여부를 상기 서버 캐릭터마다 판정하는 판정부를 더 구비하고 있어도 된다.
이 때, 상기 서버 기기의 기억부는 상기 서버 기기의 판정부에 의해 관리하지 않는 것으로 판정된 관리 캐릭터의 등록을 삭제하고, 상기 서버 기기의 통신부 는 상기 서버 기기의 판정부에 의해 상기 관리 캐릭터가 상기 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 상기 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 상기 클라이언트 기기에 송신하고, 상기 클라이언트 기기는 상기 송신된 캐릭터 관리 변경 패킷을 수신하고, 수신된 캐릭터 정보를 기억하는 동시에 상기 수신된 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하도록 해도 된다.
이에 따르면, 서버 기기가 관리하고 있는 관리 캐릭터에 대해서는, 서버 기기가 그 관리를 다른 기기로 전환할지의 여부를 서버 캐릭터마다 판정한다. 여기서, 서버 기기가 복수개의 서버 캐릭터를 관리하는 경우, 기억부에는 서버 캐릭터마다 그 서버 캐릭터의 정보 및 각 서버 캐릭터의 소대에 포함되는 관리 캐릭터(논플레이어 캐릭터)의 정보가 기억되고, 수시로 갱신된다.
또, 상기 네트워크 게임 시스템은, 상기 하나 또는 복수개의 클라이언트 기기에 의해 관리되는 하나 또는 복수개의 플레이어 캐릭터와 상기 하나 또는 복수개의 플레이어 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 아군 집단을 형성하고, 또한 상기 서버 기기에 의해 관리되는 하나 또는 복수개의 서버 캐릭터와 상기 서버 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 적군 집단 또는 아군 집단 중 적어도 어느 하나를 형성하여 서로 전투하는 게임을 제공하는 시스템일 수도 있다.
또, 본 발명의 다른 관점에 의하면, 네트워크를 통하여 서버 기기에 접속된 하나 또는 복수개의 클라이언트 기기를 사용자가 조작함으로써, 입력된 정보에 따 라 동작하는 하나 또는 복수개의 플레이어 캐릭터와 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함한 복수개의 캐릭터가 등장하는 네트워크 게임을 컴퓨터 실행시키기 위한 캐릭터 관리 프로그램이 제공된다.
상기 캐릭터 관리 프로그램은, 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억시키는 처리와, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록시키는 처리와, 상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여 각 클라이언트 기기에 대해서 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 추가로 컴퓨터에 실행시킬 수도 있다.
상기 캐릭터 관리 프로그램은, 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 상기 서버 기기의 기억부에 기억시키는 처리와, 상기 논플레이어 캐릭터 중 자기의 서버 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 상기 서버 기기의 기억부에 등록시키는 처리와, 상기 서버 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 상기 서버 기기에 대해서 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 추가로 컴퓨터에 실행시킬 수도 있다.
이 때, 상기 게임에서 등장하는 상기 복수개의 캐릭터는, 상기 서버 기기의 제어에 의해 자동적으로 동작하는 하나 또는 복수개의 서버 캐릭터를 포함해도 된 다. 또, 상기 캐릭터 관리 프로그램은, 또한 상기 연산된 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기의 서버 기기가 관리하는 어느 하나의 서버 캐릭터의 위치와 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 상기 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 상기 서버 캐릭터마다 관리하는 서버 기기 또는 클라이언트 기기를 판정하는 처리와, 상기 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기의 서버 기기의 기억부로부터 삭제하는 처리와, 상기 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 상기 클라이언트 기기에 송신하는 처리를 추가로 컴퓨터에 실행시킬 수도 있다.
상기 캐릭터 관리 프로그램은, 상기 하나 또는 복수개의 클라이언트 기기에 의해 관리되는 하나 또는 복수개의 플레이어 캐릭터와 상기 하나 또는 복수개의 플레이어 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 아군 집단을 형성하고, 또한 상기 서버 기기에 의해 관리되는 하나 또는 복수개의 서버 캐릭터와 상기 서버 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 적군 집단 또는 아군 집단 중 적어도 어느 하나를 형성하여 서로 전투하는 게임을 제공하는 프로그램일 수도 있다.
이에 따르면, 게임에 참가하는 사용자가 모자라는 경우라도(예를 들어, 게임에 참가하는 사용자가 한 명이라 하더라도), 조작하는 사용자가 없는 플레이어 캐릭터 및 자기의 서버 기기가 관리하는 논플레이어 캐릭터에 대해서는, 서버 기기가 그들의 캐릭터를 자동적으로 조작한다. 이로써, 참가자가 모자라더라도, 사용자는 게임을 마음껏 즐길 수가 있다. 또, 클라이언트 기기에 의해 관리되는 캐릭터와 서버 기기에 의해 관리되는 캐릭터를 나눔으로써, 시스템 전체의 처리를 분산시키셔, 게임을 순조롭게 진행시킬 수 있다.
이상 설명한 바와 같이 본 발명에 의하면, 복수개의 캐릭터가 등장하는 네트워크 게임 시스템에 있어서 그들의 캐릭터를 순조롭게 동작시키기 위하여, 등장하는 각 캐릭터의 처리 및 관리를 분산시켜서 실행하는 네트워크 게임 시스템, 클라이언트 기기, 서버 기기 및 이들을 제어하는 프로그램을 제공할 수 있다.
이하에서 첨부 도면을 참조하면서, 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다. 이하의 설명 및 첨부 도면에서, 동일한 구성 및 기능을 가지는 구성 요소에 대하여서는 동일한 부호를 부여함으로써, 중복 설명을 생략한다.
(실시예 1)
(네트워크 게임 시스템의 전체 구성)
먼저, 본 발명의 실시예 1에 따른 네트워크 게임 시스템의 전체 구성 및 이 시스템에서 실행되는 게임의 개요에 대하여 도 1을 참조하면서 설명한다.
네트워크 게임 시스템(10)은, 네트워크 게임 서버(이하, 게임 서버라 한다)(100)과 복수개의 게임기(200)(200a, 200b, 200c)을 포함하여 구성되어 있다. 여기서는, PC(200a)도 게임기(200)의 기능을 가지므로, 이하의 설명에서는 게임기(200)에 포함시켜서 설명한다. 게임 서버(100)와 복수개의 게임기(200)는 인터넷 등의 네트워크(통신 회선)(300)를 통하여 접속되어 있다.
게임 서버(100)는 네트워크 게임의 진행 및 관리를 제어한다. 구체적으로는, 게임 서버(100)는 주로 치트(cheat) 대책, 즉, 부정 행위의 유무의 판정과 그 배제나 송수신 데이터의 정합성을 체크한다. 또, 게임 서버(100)는 각 게임기(200)로부터 각종 데이터를 수신하거나, 타 게임기(200)에 각종 데이터를 일제히 송신한다. 게임 서버(100)는 그 외에도 아이템 정보의 관리(어느 플레이어가 무엇을 소유하고 있는지)나 플레이어에 의해 조작되는 플레이어 캐릭터의 체력 정보 등을 기억 및 관리하고 있다. 게임 서버(100)는 네트워크 게임 제공 측의 컴퓨터(서버 기기)의 일례이며, 네트워크(300)에 접속된 클라이언트 기기(게임 기기) 중 하나가 게임 서버(100)의 역할을 할 수도 있다.
게임기(200)는 플레이어의 조작에 따라 네트워크 게임을 수행한다. 게임기(200)은 네트워크 게임에 등장하는 캐릭터 중, 후술하는 관리 캐릭터를 관리한다. 네트워크 게임에 등장하는 캐릭터는 임의의 게임기(200)에 의하여 관리되고, 동일한 캐릭터가 복수개의 게임기(200)에 의해 관리되지 않는다.
또, 각 게임기(200)는 자신이 관리하고 있는 캐릭터의 캐릭터 정보를, 게임 서버(100)를 통하여 타 게임기(200)에 계속적으로 송신한다. 여기서, 캐릭터 정보는 캐릭터의 모션 등 해당 캐릭터의 상태를 나타내는 정보이다. 또, 각 게임기(200)는 타 게임기(200)로부터 송신된 캐릭터 정보를 받은 시점에서 그 모션 처리(게임상의 캐릭터의 동작 처리)를 개시한다.
또, 게임기(200)는 모션과 동일한 타이밍에서 collision 판정(부딪힘 판정, 충돌 판정)을 행한다. 게임기(200)는 게임 서버(100)로부터 서비스를 받는 측의 컴퓨터(클라이언트 기기)의 일례로서, 가정용 게임기나 휴대용 게임기일 수도 있다. 클라이언트 기기의 다른 예로서는, 퍼스널 컴퓨터(PC) 외에 휴대 기기(예를 들어, 휴대폰, PDA(Personal Digital Assistants)) 등의 사용자 단말기일 수도 있다. 그리고, 각 게임기(200)는 TCP/IP 등의 통신 프로토콜(protocol)에 의해 네트워크(300)에 접속되고, 각각 상이한 IP 어드레스가 할당되므로, 각 플레이어(게임기)는 각종 데이터를 송수신한 게임기(200)를 각각 식별할 수 있다.
또, 게임기(200)는, 예를 들어 도 2에 나타낸 바와 같이, 게임기 본체(200a1)과 컨트롤러 패드(200a2)(입력 장치)와 텔레비전 모니터(200a3)로 구성될 수도 있다. 게임기(200a)에서 사용되는 프로그램, 화상, 음악 등의 각종 데이터가 CD-ROM(400) 또는, DVD 등의 기록 매체에 기록되어 있는 경우에는, 플레이어(사용자)는, CD-ROM(400) 등의 기록 매체를 게임기 본체(200a1)에 삽입하여 게임을 시작할 수 있다.
(네트워크 게임 시스템의 개요)
이와 같이 구성된 네트워크 게임 시스템(10)에서는, 복수개의 게임기(200)에 의해 각각 관리되는 복수개의 플레이어 캐릭터, 및, 이들 복수개의 플레이어 캐릭터의 조역이 되는 복수개의 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 등장하는 네트워크 게임이 제공된다. 그리고, 각 게임기(200)의 플레이어가 각 플레이어 캐릭터를 각각 조작함으로써, 복수개의 캐릭터가 게임상에서 동작되면서 게임이 진행된다. 이하의 실시예에서는, 상기 네트워크 게임 시스템(10)에 의해 제공되는 네트워크 게임으로서 복수개의 플레이어 캐릭터와 이들 복수개의 플레이어 캐 릭터를 호위하는 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 피아간의 집단을 형성하여 서로 전투하는 게임의 예를 설명한다.
(집단 전투 네트워크 게임)
먼저, 본 게임의 개요를 설명한다.
임의의 플레이어가 네트워크(300)에 접속된 자기 게임기(200)을 사용하여 자기 플레이어 캐릭터를 조작하면, 상기 플레이어 캐릭터를 소대장으로 하는 복수개의 아군 컴퓨터 캐릭터(논플레이어 캐릭터)로 구성되는 자기 소대가 플레이어의 조작에 따라 화면 상을 이동하고, 무기를 사용하여 싸운다. 동시에, 다른 플레이어가 네트워크(300)에 접속된 타 게임기(200)를 사용하여 적군 플레이어 캐릭터를 조작하면, 상기 적군 플레이어 캐릭터를 소대장으로 하는 적군 소대가 화면 상을 이동하고, 무기를 사용하여 싸운다. 플레이어는, 자기 플레이어 캐릭터를 조작하여 전투함으로써 자기 플레이어 캐릭터의 레벨이나 능력 등의 파라미터를 상승시키거나 네트워크(300)를 통하여 접속된 다른 플레이어의 영토를 점령할 수 있다. 그리고, 상기 게임에 등장하는 캐릭터는, 전술한 바와 같이 플레이어가 조작 가능한 플레이어 캐릭터에 한정되지 않고, 각 게임기(200)의 자동 연산에 의해 동작하는 논플레이어 캐릭터도 존재하고, 플레이어 캐릭터와 논플레이어 캐릭터가 디스플레이 상에 소대를 편성하여 표시된다. 본 실시예에 따른 집단 전투 네트워크 게임은, 이같이 하여 네트워크(300)를 통하여 자기 소대와 아군 소대와 적군 소대가 집단적으로 대전하는 게임이다.
집단 전투 네트워크 게임에는, 8대의 게임기(200)가 4대씩 적군과 아군으로 나누어져 참가하는 것으로 가정한다. 참가하는 8명의 플레이어 중, 예를 들어 4명을 도쿠가와군, 나머지 4명을 도요토미군으로 명명하고, 각 군은 4소대로 구성되며, 각 소대는 1개의 플레이어 캐릭터와 최대 79개의 논플레이어 캐릭터로 구성되는 것으로 가정한다. 그리고, 이하의 설명에서는, 편의상 각 플레이어가 조작하는 플레이어 캐릭터를 PC(Player Character)라 하고, 이 중 자기 플레이어가 조작하는 플레이어 캐릭터를 자기 PC, 다른 플레이어가 조작하는 아군의 플레이어 캐릭터를 아군 PC, 다른 플레이어가 조작하는 적군 플레이어 캐릭터를 적군 PC라 한다.
또, 8개의 PC를 각각 호위하는 컴퓨터 캐릭터를 NPC(Non Player Character, 논플레이어 캐릭터)라고 하고, 이 중 자기 플레이어 또는 아군 플레이어를 호위하는 논플레이어 캐릭터를 아군 NPC라고 하고, 적군 플레이어를 호위하는 논플레이어 캐릭터를 적군 NPC라 한다.
예를 들어, 도 11에서는, PC1이 자기 PC, PC2 및 PC4가 아군 PC, PC3가 적군 PC이다. 또, PC1, PC2 및 PC4의 주위에서 각각의 소대 경계선 내에 위치하는 NPC(NPC11을 포함한다)가 아군 NPC, PC3의 주위에서 소대 경계선 내에 위치하는 NPC(NPC31를 포함한다)가 적군 NPC이다.
(논플레이어 캐릭터의 관리의 원칙)
다음에, 각 캐릭터가 어느 기기에 의해 관리되는지에 대한 원칙을 설명한다. 먼저, 전술한 복수개의 소대 중, 자기 소대에 속하는 자기 PC 및 NPC는, 원칙적으로 자기의 게임기(200)에 의하여 관리된다. 아군 PC의 다른 소대에 속하는 아군 PC 및 NPC는, 원칙으로서 아군 PC를 조작하는 게임기(200)에 의하여 관리된다. 마 찬가지로, 적군 PC의 다른 소대에 속하는 적군 PC 및 NPC는, 원칙적으로 적군 PC를 조작하는 게임기(200)에 의하여 관리된다. 그리고, PC를 게임 서버(100)에서 자동적으로 관리하는 경우(예를 들어, 게임에 참가하는 플레이어가 부족하여, 하나 또는 둘 이상의 적군 PC 또는 아군 PC를 게임 서버(100)에서 자동 관리할 경우)에는, 상기 PC의 소대에 속하는 NPC도 게임 서버(100)에 의해 자동적으로 관리되도록 제어할 수 있다. 이에 대해서는 실시예 3에서 상세하게 설명한다. 그리고, 이하의 실시예 1 및 실시예 2의 설명에서는, 모든 NPC는 어느 하나의 게임기(200)에 의해 관리되는 것으로 가정한다.
그리고, 본 실시예에서는, 네트워크 가상 공간상에 존재하는 모든 캐릭터는, 어느 하나의 게임기(200)에 의하여 관리된다. 즉, 각 게임기(200)는, 자신이 관리하는 캐릭터의 위치, 모션 정보(재생 중의 모션 번호, 현재의 프레임 번호) 등을 소정 주기마다 연산하고, 연산된 정보에 기초하여 캐릭터의 동작을 디스플레이에 나타내는 동시에 연산된 데이터를 캐릭터 정보로서 게임 서버(100)를 통하여 타 게임기(200)에 송신한다. 타 게임기(200)는, 송신된 캐릭터 정보(상세한 설명은 후술한다)를 수신하고, 수신한 정보 데이터에 따라 캐릭터의 동작을 디스플레이에 나타내는 동시에 기억 영역에 기억되어 있는 캐릭터 정보를 갱신한다.
이와 같이, 본 실시예의 네트워크 게임 시스템(10)은 완전 비동기형(동일 프레임에서 각 게임기의 캐릭터 정보가 상이하여도, 그대로 게임을 진행하는 타입)을 채용한다. 이에 따르면, 자기 게임기(200)가 조작하는 자기 PC가, 자기 게임기(200)에 의해 관리되는 관리 캐릭터를 공격할 경우에는, 자기 게임기(200)에 의해 관리 캐릭터의 공격 후의 모션이 연산되고, 이 연산 결과에 따라 자기 게임기(200)에서는, 관리 캐릭터의 피해 모션이 즉시 재생된다. 그러나, 자기 게임기(200)가 조작하는 자기 PC가, 타 게임기(200)가 관리하는 캐릭터를 공격한 경우에는, 왕복(자기 게임기(200) → 게임 서버(100) → 타 게임기(200) → 게임 서버(100) → 자기 게임기(200)) 통신 시간이 경과한 후에, 자기 게임기(200)에서 공격받은 캐릭터의 손상 모션이 재생된다.
이러한 성질을 이용하여, PC와 각 NPC의 거리에 따라 각 NPC를 관리하는 게임기(200)를 전환함으로써, 각 캐릭터의 모션 지연을 느낄 기회를 적게 할 수 있고, 결과적으로 플레이어의 조작감을 양호하게 할 수 있다. 그래서, NPC는 적군과 아군에 관계없이 그 좌표로부터 가장 가까운 PC를 관리하는 게임기(200)에 의해 관리되게 한다. 이하에서, 본 전투 게임을 관리하는 게임 서버(100)에 대하여 설명하고, 그 다음에 게임기(200)가 각 NPC의 관리를 어떻게 전환하는지에 대하여 설명한다.
(게임 서버 및 게임기의 내부 구성)
먼저, 게임 서버(100) 및 게임기(200)의 하드웨어 구성에 대하여, 도 3 및 도 4를 참조하면서 설명한다. 도 3은 게임 서버(100)의 하드웨어 구성을 나타내고, 도 4는 게임기(200)의 하드웨어 구성을 나타낸 것이다.
도 3의 게임 서버(100)는 ROM(105), 하드 디스크(HDD)(110), CPU(115), RAM(120), 버스(125), 화상 생성 회로(127), 내부 인터페이스(내부 I/F)(130) 및 외부 인터페이스(외부 I/F)(135)를 포함하여 구성되어 있다.
ROM(105)에는, 게임 서버(100)을 동작시키기 위한 기본적인 프로그램이나, 게임 서버(100)가 비정상적일 때에 기동하는 프로그램 등이 기록되어 있다. 하드 디스크(110)에는 각종 프로그램이나 데이터가 축적되어 있다. 하드 디스크(110)는 기억 장치의 일례이며, 광디스크나 광자기 디스크 등의 기억 장치일 수도 있다.
CPU(115)는, 게임 서버(100) 전체를 제어한다. CPU(115)는 하드 디스크(110) 등에 기억된 프로그램을 워크용 RAM(120)에 로드 한 후, 상기 프로그램을 실행시킨다. 버스(125)는 ROM(105), 하드 디스크(110), CPU(115), RAM(120), 화상 생성 회로(127), 내부 인터페이스(130) 및 외부 인터페이스(135)의 각 디바이스 사이에서 정보가 교환되는 경로이다.
화상 생성 회로(127)는 그래픽 칩과 VRAM으로 구성되어 있고, CPU(115)로부터 화상을 생성할 것을 지시받으면, 그 지시에 따라 CPU(115)와 별도 시계열에 따라 화상을 생성한다.
내부 인터페이스(130)는 키보드(405)나 마우스(410)로부터 네트워크 게임에 관한 데이터를 입력하고, 필요한 데이터를 모니터(415)에 출력하도록 되어 있다. 외부 인터페이스(135)는, 네트워크(300)를 통하여 게임에 참가하고 있는 타 게임기(200)와 각종 데이터를 송수신하도록 되어 있다.
도 4의 게임기(200)는 ROM(205), 하드 디스크(HDD)(210), CPU(215), RAM(220), 버스(225), 화상 생성 회로(227), 음악 재생 회로(229), 내부 인터페이스(230), 외부 인터페이스(235) 및 리더(240)를 포함하여 구성되어 있다.
ROM(205)에는, 게임을 실행시키기 위한 프로그램 등이 기록되어 있다. 하드 디스크(210)에는 각종 프로그램이나 각종 데이터가 축적되어 있다. 하드 디스크(210)는 기억 장치의 일례이며, 광디스크나 광자기 디스크 등의 기억 장치일 수도 있다.
CPU(215)는 게임기(200)전체를 제어한다. CPU(215)는 하드 디스크(210)에 기억된 프로그램을 게임기(200) 내의 워크용의 RAM(220)에 로드시킨다. 또는, CPU(215)는 리더(240)가 읽어들인 CD-ROM(400) 내의 프로그램을 RAM(220)에 로드시킨다. CPU(215)는 이같이 하여 RAM(220)에 로드된 프로그램을 실행함으로써 게임을 시작시키고, 게임 서버(100)와 순서대로 통신하면서 게임을 진행하도록 되어 있다.
그리고, 일단 CPU(215)가 기록 매체 상의 프로그램 등을 RAM(220) 상에 복사하면, 다음 회로부터는 RAM(220) 상의 프로그램 등을 실행함으로써 게임을 시작할 수 있다. 또, 일단 CPU(215)가 게임기(200) 내의 하드 디스크(210)에, CD-ROM(400) 상의 프로그램 등을 복사하면, 다음 회 이후는, 하드 디스크(210) 상의 프로그램을 실행함으로써 게임을 시작할 수도 있다. 또, 네트워크(300) 상에 이들 프로그램 등이 업로드되어 있는 경우에는, CPU(215)가 일단 이들 프로그램을 게임기(200)의 RAM(220)에 다운로드한 후에, 그 프로그램을 시작시켜도 되고, 일단 게임기(200)의 하드 디스크(210)에 이것을 다운로드하고, 다음 회 이후부터 하드 디스크(210)에 기억된 프로그램을 기동시킴으로써 게임을 시작시킬 수도 있다.
버스(225)는 ROM(205), 하드 디스크(210), CPU(215), RAM(220), 화상 생성 회로(227), 음악 재생 회로(229), 내부 인터페이스(230), 외부 인터페이스(235) 및 리더(240)의 각 디바이스 사이에서 정보가 교환되는 경로이다.
화상 생성 회로(227)는 그래픽 칩과 VRAM으로 구성되어 있고, CPU(215)로부터 화상을 생성할 것을 지시받으면, 그 지시에 따라 화상을 생성한다. 음악 재생 회로(229)는 사운드 칩과 사운드 RAM으로 구성되어 있고, CPU(215)로부터 사운드의 생성을 지시받으면, 그 지시에 따라 각 관리 캐릭터의 전투 동작에 대응한 백 뮤직이나 전투음 등의 음향 처리를 행한다.
내부 인터페이스(230)는 컨트롤러 패드(430), 키보드(435) 및 마우스(440) 등을 사용하여 플레이어의 게임 조작을 입력하는 동시에 적군과 아군이 집단을 형성하여 서로 전투하는 복수개의 캐릭터의 영상 및 음악을 모니터(445) 및 스피커(450)에 각각 출력하도록 되어 있다. 외부 인터페이스(235)는, 네트워크(300)를 통하여, 플레이어의 조작에 따라 명령이나 메시지 등의 각종 데이터를 게임 서버(100)에 송수신하도록 되어 있다. 리더(240)는 CD-ROM(400)으로부터 데이터를 읽어들인다.
다음에, 게임 서버(100) 및 게임기(200)의 기능 구성에 대하여, 도 5 및 도 6을 참조하면서 설명한다.
(게임 서버의 기능 구성)
도 5에 나타낸 바와 같이, 게임 서버(100)는 입력부(140), 통신부(145), 기억부(150), 관리부(155), 화상 처리부(160) 및 화상 생성부(165)의 기능 블록에서 나타내는 각 기능을 가지고 있다.
입력부(140)는 네트워크 게임을 관리하는 관리자가 키보드(405) 또는 마우스 (410)를 조작하여 데이터를 입력한다. 통신부(145)는 게임에 참가하고 있는 복수개의 게임기(200)에 필요한 정보를 송수신한다.
기억부(150)는 복수개의 캐릭터(플레이어 캐릭터 PC 및 논플레이어 캐릭터 NPC)의 위치 정보와 논플레이어 캐릭터 NPC를 각각 관리하는 게임기(200)의 식별 정보를 포함한 캐릭터 정보를 기억한다.
관리부(155)는, 게임 중의 데이터의 정합성을 유지시키고, 게임을 모순없이 진행시키기 위하여, 입력부(140)에 의해 입력되는 데이터, 통신부(145)에 의해 송수신 되는 데이터, 기억부(150)의 각 기억 영역(ROM(105), RAM(120), 하드 디스크(110))에 기억된 데이터를 관리하거나, 게임 중의 각 처리의 타이밍을 관리한다.
화상 처리부(160)는 게임의 진행에 맞추어서 필요한 파라미터와 명령을 생성하고, 이들을 화상 생성부(165)에 출력함으로써, 화상 생성부(165)에 화상의 생성을 지시하도록 되어 있다. 화상 생성부(165)는 화상 처리부(160)로부터의 화상 생성의 지시를 받아서, 광원 처리 등을 행하고, 캐릭터 정보에 따른 각 관리 캐릭터의 전투 동작을 3차원 필드에서 모니터(445)에 나타낸다.
(게임기의 기능 구성)
도 6에 나타낸 바와 같이, 게임기(200)는 매체 판독부(245), 입력부(250), 기억부(255), 액션 처리 실행부(260), 화상 생성부(265), 음향 재생부(270), 판정부(275) 및 통신부(280)의 기능 블록에서 나타내는 각 기능을 가지고 있다.
매체 판독부(245)는 CD-ROM(400) 등의 기록 매체에 기억된 데이터를 읽어들인다. 예를 들어, 플레이어가 CD-ROM(400)을 게임기(200)에 삽입하여 게임을 시작 하면, 매체 판독부(245)는 자동적으로 그 프로그램 등의 데이터를 읽어들여서, RAM(220)에 전송하도록 되어 있다.
입력부(250)는, 플레이어가 모니터(445)에 표시되는 네트워크 게임의 화면을 보면서, 게임기(200)에 접속된 게임 컨트롤러 패드(430), 키보드(435), 마우스(440) 등의 입력 장치를 조작하면, 이 조작에 따라 데이터를 입력한다.
기억부(255)는 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 RAM(220)에 기억하는 동시에 논플레이어 캐릭터 중 자기의 게임기(200)가 관리하는 캐릭터를 관리 캐릭터로서 RAM(220)에 등록한다.
여기서, RAM(220)에 기억되는 각 정보에 대하여 도 7을 참조하면서 설명한다. 도 7은 RAM(220)에 기억된 캐릭터 정보의 데이터 구조의 일례를 나타낸다.
RAM(220)에는, 먼저 플레이어 캐릭터 중, 자기 게임 기기(200)에 의해 관리되는 자기 플레이어 캐릭터(자기 PC0)의 PC 데이터가 기억된다. RAM(220)에는 자기 PC0의 캐릭터 정보로서, PC 번호, 좌표(x, y, z), 캐릭터의 보디의 방향(각도), 모션 번호, 재생 프레임 위치, 진행 방향, 소속군, 및 관리 중인 캐릭터 개수가 유지된다.
PC 번호에는, 자기 PC0를 관리하는 게임기(CL, 클라이언트 기기)의 식별 번호를 부여되어 있다. 여기서는, PC 번호로서 「0」가 등록되어 있지만, 이 번호는 그 PC를 관리하는 게임기를 식별할 수 있는 정보라면 이에 한정되지 않는다.
좌표(x, y, z)는 가상 공간 상에서의 캐릭터의 위치를 나타낸다. 모션 번호는 미리 작성된 캐릭터의 동작(모션)을 나타낸 모션 데이터의 번호를 나타낸다. 각 모션 데이터에는, 고유의 모션 번호가 부여되고, 그 데이터 자체는 각 게임기(200)의 하드 디스크(210) 등의 기록 매체 상에 기록되어 있다.
캐릭터의 동작은 프레임(화상 처리의 시간 목표 단위)마다 나타나므로, 재생 프레임 위치는 모션 번호에 나타내는 모션이 재생되는 프레임의 위치를 나타낸다. 진행 방향은, 캐릭터가 진행할 방향을 벡터로 나타낸 것이다. 소속군은 자기 PC0가 속하는 군이며, 현재는 아군의 「도쿠가와」이지만, 적군에 소속되는 경우도 있다. 관리 중의 캐릭터 개수는, 자기 게임기(200)에서 관리되는 관리 캐릭터(논플레이어 캐릭터 NPC)의 개수를 나타내고 있고, 79 이하의 수치를 취하게 되어 있다.
또, RAM(220)에는, 자기 플레이어 캐릭터(자기 PC0)를 호위하는 79개의 자기 논플레이어 캐릭터(자기 NPC1 ~ 자기 NPC79)의 캐릭터 정보가 기억된다. 논플레이어 캐릭터(NPC)의 캐릭터 정보가 플레이어 캐릭터(PC)의 캐릭터 정보와 다른 점은, 플레이어 캐릭터(PC)에서는, 마지막에 「캐릭터 정보에 관리 중인 캐릭터 개수」가 포함되는 데 비해, 논플레이어 캐릭터(NPC)에서는, 마지막에 「캐릭터 정보에 관리원 PC 번호」가 포함되어 있는 것이다. 예를 들어, 자기 논플레이어 캐릭터(1)(자기 NPC1)의 관리 원래의 PC번호는, 「0」으로 설정되어 있다. 이것은, 자기 NPC1가, 자기 PC0의 관리 캐릭터로서 RAM(220)에 등록되어 있는 것을 나타내고 있다.
또, RAM(220)에는, 7개의 타 플레이어 캐릭터(타 PC1 ~ 타 PC7)의 캐릭터 정보가 기억되는 동시에, 각각의 타 플레이어 캐릭터를 각각 호위하는 타 논플레이어 캐릭터(타 NPC1-1 ~ 타 NPC1-79, 타 NPC2-1 ~ 타 NPC2-79, 타 NPC3-1 ~ 타 NPC3-79, 타 NPC4-1 ~ 타 NPC4-79, 타 NPC5-1 ~ 타 NPC5-79, 타 NPC6-1 ~ 타 NPC6-79, 타 NPC7-1 ~ 타 NPC7-79)의 캐릭터 정보가 기억되어 있다. 이같이 하여, RAM(220)에는, 게임에 등장하는 모든(= 640개) 캐릭터의 캐릭터 정보가 기억되고, 이들 정보를 사용하여, 전투 게임 중의 각 캐릭터가 다음에 취하는 액션이 연산되거나 어느 캐릭터를 자기 게임기(200)에서 관리하여야 할지를 판정한다.
다시, 도 6으로 돌아와서, 액션 처리 실행부(260)는 연산부(260a), 화상 처리부(260b) 및 음향 처리부(260c)를 가진다. 액션 처리 실행부(260)는 기억부(255)에 등록되어 있는 각 관리 캐릭터의 액션 처리를 관리 캐릭터마다 실행한다. 구체적으로는, 연산부(260a)는, 기억부(255)에 기억된 캐릭터 정보를 사용하여, 게임 상의 전투에 의해 발생하는 각 관리 캐릭터의 위치 변화 및 동작의 변화를 나타내는 변화량을 각각 연산함으로써 변화 후의 캐릭터 정보를 생성한다.
화상 처리부(260b)는 게임의 진행에 맞추어서 필요한 파라미터와 명령를 생성하고, 이들을 화상 생성부(265)에 출력함으로써, 화상 생성부(265)에 화상의 생성을 지시한다. 화상 생성부(265)는 화상 처리부(260b)로부터의 화상의 생성의 지시를 받아 화상을 생성하고, 생성된 화상을 모니터(445)에 표시한다.
음향 처리부(260c)는, 음향 재생부(270)에 사운드의 재생을 지시한다. 음향 재생부(270)는, 각 관리 캐릭터의 전투 동작에 대응한 백 뮤직이나 전투음 등의 음향을 처리하고, 스피커(450)에 출력한다. 이같이 하여 표현되는 현장감 넘치는 화상이나 음향을 통해서, 플레이어는 자신의 플레이어 캐릭터를 그 네트워크 게임의 가상 공간 내에서 이동시키거나 다른 캐릭터와 싸우게 할 수 있다.
판정부(275)는, 연산부(260a)에 의해 연산된 각 관리 캐릭터의 위치 변화치 에 따라, 자기 게임기(200)가 관리하는 플레이어 캐릭터의 위치와, 타 게임기(200)가 관리하는 플레이어 캐릭터의 위치와, 각 관리 캐릭터의 액션 처리 후의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리할지의 여부를 판정한다.
통신부(280)는 연산부(260a)에 의해 연산된 변화 후의 각 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 게임 서버(100)에 송신한다. 또, 통신부(280)는 타 게임기(200)에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 캐릭터 관리 변경 패킷으로서 게임 서버(100)에 송신한다. 그리고, 동일 내용이라도, 본 명세서 및 도면 중에서, RAM(220) 등의 메모리 내에 유지하고 있는 데이터의 경우는 「~정보」로 표시하고, 송수신하는 데이터의 경우는 「~패킷」으로 표시한다.
또한, 통신부(280)는 게임 서버(100)로부터 송신된 캐릭터 정보 패킷을 수신한다. 즉, 통신부(280)는 네트워크 게임 내에서 일어난 변동 결과의 정보나, 다른 플레이어에 의해 송신되고, 게임 서버(100)를 통하여 전송되는 정보, 또는 게임 서버(100)가 자발적으로 송신하는 정보 등 각종 데이터를 수신한다.
이와 같이 수신된 캐릭터 정보 또는 연산부(260a)에 의해 연산된 캐릭터 정보에 기초하여, 액션 처리 실행부(260)가 액션 처리를 관리 캐릭터마다 실행시킴으로써, 게임기(200)으로 게임 서버(100)가 순서대로 통신하면서 네트워크 게임이 진행하도록 되어 있다.
그리고, 이상에서 설명한 게임 서버(100) 및 게임기(200)의 각 기능은, 실제 로는 CPU가 이들 기능을 실현하는 처리 스텝을 기술한 프로그램을 실행함으로써, 또는 어느 하나의 기능을 실현하기 위한 하드웨어나 IC를 제어함으로써 달성된다. 예를 들어, 도 5에 나타낸 게임 서버(100)의 관리부(155) 및 화상 처리부(160)의 기능은 이들 기능을 실현하는 처리 스텝을 기술한 프로그램을 도 3의 CPU(115)가 실행함으로써 달성되고, 화상 생성부(165)의 기능은, 그래픽 칩(화상 생성 회로(127))에 의해 달성된다. 또, 도 6에 나타낸 게임기(200)의 액션 처리 실행부(260) 및 판정부(275)의 기능은, 이들 기능을 실현하는 처리 스텝을 기술한 프로그램을 도 4의 CPU(215)가 실행함으로써 달성되고, 화상 생성부(265) 및 음향 재생부(270)의 기능은, 그래픽 칩(화상 생성 회로(227)) 및 사운드 칩(음악 재생 회로(229))에 의해 각각 달성된다.
이상에서 설명한 본 실시예에 따른 네트워크 게임 시스템(10)에서는, 먼저 플레이어가 자기 게임기(200)를 사용하여 자신이 담당하는 플레이어 캐릭터를 선택한다. 플레이어 캐릭터에는, 예를 들면 전국 시대를 테마로 한 게임이면, 사무라이, 닌자, 음양사 등이 있어, 통상은 이들 중에서 1개를 선택한다. 그 후, 플레이어는 자신의 플레이어 캐릭터를 조작하여 전투함으로써, 플레이어 캐릭터의 레벨이나 능력 등의 파라미터를 상승시키거나 네트워크(300)를 통하여 접속된 타 게임기(200)를 조작하는 다른 플레이어의 캐릭터와 싸운다. 그리고, 가상 공간에 등장하는 캐릭터는 이른바 플레이어가 조작하는 플레이어 캐릭터에 한정되지 않고, 각 게임기(200)의 자동 연산에 의해 동작하는 논플레이어 캐릭터(NPC)도 존재하고, 이들 캐릭터가 각 게임기(200)의 화면에 표시된다.
(게임기의 동작, 액션 처리 및 캐릭터 관리 처리)
다음에, 게임기(200)의 동작에 대하여, 도 8~도 10을 참조하여 본 실시예의 특징인 액션 처리 및 캐릭터 관리 처리에 대하여 상세히 설명한다. 도 8은 각 게임기(200)가 실행하는 클라이언트 측 관리 처리(메인 루틴)를 나타낸 흐름도이다. 도 9는 도 8의 메인 루틴에서 호출되는 캐릭터 관리 처리를 나타낸 흐름도이다. 도 10은 도 9의 서브 루틴에서 호출되는 캐릭터 변경 판정 처리를 나타낸 흐름도이다. 그리고, 자기 플레이어의 소대와 다른 플레이어의 소대의 동작은 동일한 처리가 이루어지므로, 이하의 흐름도에서는 설명을 간단하게 하기 위해, 자기 플레이어의 소대를 중심으로 기재하고, 다른 플레이어의 소대를 중심으로 한 기재를 생략한다. 또, 그 외 게임에서는 필요하지만 본원 발명의 실시예와 직접 관계가 없는 구체적인 처리에 대한 설명도 생략한다.
또, 본 네트워크 게임을 개시하는 전에, 플레이어는 미리 사용자 등록할 필요가 있다. 즉, 플레이어는, 게임기(200)의 화면에 표시되는 지시에 따라 개인 정보를 입력함으로써 게임 서버(100)에 개인정보 등을 송신하고, 사용자 ID 및 패스워드를 취득한다. 2번째 이후에 게임을 행할 때에는, 플레이어는 취득한 사용자 ID 및 패스워드를 화면에 입력하기만 하면 게임 서버(100)에 액세스할 수 있게 된다.
(게임 시작)
게임기(200)의 전원이 「ON」되고, 플레이어가 게임의 개시를 요구하면, 도 8의 스텝 800부터 처리가 개시되어 스텝 805에서 초기 설정을 한다. 구체적으로 는, 기억부(255)는 플레이어에 의해 선택된 플레이어 캐릭터(자기 PC) 및 각 캐릭터의 캐릭터 정보를 RAM(220)에 사전에 등록한다. 또, 통신부(280)는 사용자 인증을 행하고, 그 후 게임 서버(100) 사이에서 각 캐릭터의 캐릭터 정보를 송수신한다. 이로써, 게임 서버(100) 및 게임에 참가하고 있는 모든 게임기(200)의 RAM에, 도 7에서 나타낸 각 캐릭터의 캐릭터 정보가 사전에 등록된다. 또한, 게임 서버(100)는 각 캐릭터를 관리하는 게임기(200)을 모든 캐릭터를 각각 특정하고, 게임 서버(100) 및 각 게임기(200)의 RAM(구체적으로는, 도 7에 나타낸 관리원 PC 번호의 항목)에 기억시킨다. 그리고, 게임 서버(100)에 반드시 각 캐릭터의 캐릭터 정보를 기억시켜 둘 필요는 없다.
다음에, 스텝 810에서, 판정부(275)는 인터럽트(수직귀선 인터럽트(Vsync)가 발생했는지의 여부를 판정한다. 판정부(275)는, 모니터(445)의 수직귀선주기와 일치한 1/60sec(약 16.6ms)에 한 번의 주기로 인터럽트가 발생하면, 이에 따라 스텝 810에서 「YES」로 판정하고, 스텝 815로 진행하여 캐릭터 관리 처리를 실행한다. 캐릭터 관리 처리에 대한 설명은 후술한다.
다음에, 판정부(275)는 스텝 820으로 진행하여 게임의 종료 여부를 판정한다. 구체적으로는, 플레이어가 게임기(200)의 전원을 「OFF」하는지, 또는 화면 상의 게임 종료를 선택함으로써 게임은 종료한다. 그래서, 플레이어가 이들 중 어느 하나의 조작을 할 때까지, 게임기(200)는 기본적으로 스텝 810 ~ 스텝 820의 처리를 반복하고, 플레이어가 이들 중 어느 하나의 조작을 행하면 스텝 895로 진행되어 게임을 종료시킨다.
스텝 810에서 인터럽트가 발생하고 있지 않은 경우, 판정부(275)는, 「NO」라고 판정하여 스텝 825에서 주 처리를 실행하고, 그 후 스텝 820으로 진행한다. 상기 주 처리에서는, 본 실시예의 네트워크 게임과 직접 관계되지 않는 그 외의 처리, 예를 들면 플레이어가 컨트롤러 패드(430) 등을 조작함으로써 입력되어, 입력부(250)를 통하여 받아들여진 입력 정보를 RAM(220)에 기억시켜서 수시로 갱신하는 처리나, 게임 효과음을 음향 처리부(260c) 및 음향 재생부(270)를 사용하여 합성시키기 위한 음악 처리 등도, 여기서 실행하는 것으로 한다. 또, 본 실시예에서는, 일정 간격으로 클라이언트 측 관리 처리가 행해지는 예(즉, 수직귀선주기의 인터럽트 처리 내에서 캐릭터 관리 처리가 행해지는 예)를 나타냈으나, 도시하지 않은 타이머 인터럽트 처리 내나 스텝 825의 주 처리 내에서 캐릭터 관리 처리가 행해지도록 해도 된다.
(캐릭터 관리 처리)
다음에, 스텝 815의 캐릭터 관리 처리에 대하여, 도 9의 흐름도를 참조하면서 설명한다. 스텝 900에서 처리가 개시되면, 통신부(280)는 스텝 905에서 타 게임기(200)로부터 송신된 캐릭터 관리 변경 패킷을 수신할지의 여부를 판정한다. 캐릭터 관리 변경 패킷을 수신한 경우에는, 스텝 910으로 진행되어, 기억부(255)는 캐릭터 관리 변경 패킷에 포함되는 캐릭터 정보에 기초하여 RAM(220)의 해당 캐릭터 정보를 갱신한다. 구체적으로는, 도 7의 해당 PC 또는 해당 NPC에 기억된 좌표, 보디 방향, 모션 번호, 재생 프레임 위치, 진행 방향 및 소속군의 정보를 갱신 한다. 또, 기억부(255)는 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 RAM(220)에 등록한다. 구체적으로는, 도 7의 해당 캐릭터 정보의 관리원 PC 번호를 변경한다.
다음에, 스텝 915로 진행하여, 통신부(280)는 스텝 915에서 타 게임기(200)로부터 캐릭터 정보 패킷을 수신했는지의 여부를 판정한다. 캐릭터 정보 패킷을 수신한 경우에는, 스텝 920으로 진행되어, 기억부(255)는 캐릭터 정보 패킷에 포함되는 캐릭터 정보에 기초하여 RAM(220)의 해당 캐릭터 정보를 갱신한다. 구체적으로는, 도 7의 해당 PC 또는 해당 NPC에 기억된 좌표, 보디 방향, 모션 번호, 재생 프레임 위치, 진행 방향, 소속군의 정보를 갱신한다. 그리고, 프레임은 화상 처리의 시간 목표 단위이며, 화상을 나타낼 때의 이른바 「필름의 한 컷」을 나타내고 있다. 본 실시예에서는, 1 프레임의 시간은, 수직귀선 인터럽트 처리의 주기의 1/2의 시간에 해당한다.
그 다음에, 스텝 925로 진행되어, 액션 처리 실행부(260)는 액션 처리를 실행한다. 액션 처리를 구체적으로 설명하면, 액션 처리 실행부(260)의 각 부에 의해 실행되는 다음과 같은 처리를 말한다. 먼저, 연산부(260a)는 RAM(220)에 기억된 캐릭터 정보(구체적으로는, 자기 게임기의 관리 캐릭터 정보 및 타 게임기의 관리 캐릭터 정보의 상대 관계)에 따라서, 플레이어의 조작에 따라 각 관리 캐릭터의 위치 변화량 및 동작의 변화량을 포함한 캐릭터 정보를 연산한다. 관리 캐릭터마다 이 연산을 행함으로써, 각 캐릭터는 공격당하면 손상 모션으로 이행하는 등의 액션을 행할 수 있다.
또, 화상 처리부(260b)는 화상 생성부(265)에 화상의 생성을 지시하고, 화상 생성부(265)는 상기 지시를 받아서, 연산 후의 캐릭터 정보에 기초하여 각 캐릭터의 가상 공간 위의 위치 및 동작을 그래픽 처리한다. 또, 음향 처리부(260c)는 음향 재생부(270)에 음향의 생성을 지시하고, 음향 재생부(270)는 상기 지시를 받아서, 연산 후의 캐릭터 정보에 기초하여 각 캐릭터 상태에 맞는 음향을 생성한다. 이 결과, 각 플레이어의 조작에 따라 캐릭터의 동작이 모니터(445)에 표시되는 동시에, 게임의 전개에 따른 음향이 스피커(450)로부터 출력됨으로써, 각 플레이어의 조작에 따라 게임이 전개된다.
다음에, 스텝 930으로 진행하고, 판정부(275)는 캐릭터 변경 판정 처리(서브 루틴)를 실행한다. 이 처리는, 각 관리 캐릭터의 위치와 적군 PC, 아군 PC 및 자기 PC의 위치 관계로부터 해당 캐릭터를 관리하는 게임기(200)를 판정하는 처리이며, 상세한 설명은 후술한다.
그 다음에, 스텝 935로 진행하고, 통신부(280)는 연산부(260a)에 의해 연산된 각 관리 캐릭터의 캐릭터 정보를 게임 서버(100)를 통하여 타 게임기(200)에 송신한다. 이와 같이 최신 캐릭터 상태를 타 게임기(200)에 송신함으로써, 통신 시간만큼 지연이 생긴 상태이지만, 타 게임기(200)에 기억된 각 캐릭터의 캐릭터 정보가 갱신 된다. 이로써, 데이터의 정합성을 유지할 수 있다.
(캐릭터 변경 판정 처리)
다음에, 스텝 930에 나타낸 캐릭터 변경 판정 처리에 대하여, 도 10을 참조하면서, 상세하게 설명한다.
스텝 1000으로부터 캐릭터 변경 판정 처리가 개시되고, 스텝 1005로 진행하면, 연산부(260a)는 관리 캐릭터로서 등록되어 있는 NPC(도 7의 해당 NPC의 좌표) (와 가장 가까운 적군 PC(도 7의 해당 적군 PC의 좌표)의 거리 DEPC를 구한다. 예를 들어, 도 11에 나타낸 바와 같이, 자기 PC1 소대가, 적군 PC3 소대를 공격하기 위해, 적군 PC3 소대로 향하고 있는 경우, 스텝 1005에서는, 도 12에 나타낸 바와 같이, 해당 NPC(NPC11)와 적군 PC3의 거리 DEPC가 연산된다.
다음에, 스텝 1010으로 진행하고, 판정부(275)는 NPC11를 관리하는 게임기(200)(이 시점에서는 자기 게임기)의 PC(즉, 자기 PC1)가 NPC11의 아군인지의 여부를 판정한다. 이 시점에서는, 자기 PC1는, NPC11의 아군이므로, 판정부(275)는 스텝 1015)으로 진행하고, 거리 DEPC가 마진 MC(=50)보다 작은지의 여부를 판정한다. 이 시점에서는, PC3은 NPC11을 중심으로 한 반경이 마진 MC에 가깝지 않으므로, 거리 DEPC는 마진 MC 보다 크다. 그래서, 스텝 1020으로 진행하고, 연산부(260a)는 NPC11과 자기 PC1의 거리 D를 구하고, 스텝 1025에서, NPC11과 가장 가까운 아군 PC(=PC2)의 거리 DAPC를 구한다.
다음에, 스텝 1030으로 진행되어, 판정부(275)는 거리 DAPC에 마진 MD(=50)를 가산한 값이 거리 D 보다 작은지의 여부를 판정한다. 이 시점에서, 거리 DAPC + 마진 MD의 값은 거리 D 보다 크다. 즉, PC2는, NPC11를 중심으로 한 반경이(거리 D - 마진 MD)까지 가깝지 않다. 그래서, 판정부(275)는 (NPC11의 관리를 다른 게임기(200)로 변경하지 않고), 스텝 1035로 진행하고, 관리 중인 모든 NPC(즉, 관리 캐릭터)에 대하여 캐릭터 변경 판정 처리를 실행할 때까지, 스텝 1005로 돌아와 각 관리 캐릭터의 변경 판정 처리를 계속하고, 모든 관리 캐릭터에 대하여, 상기 변경 판정 처리가 종료되면, 스텝 1095에서 본 처리를 종료한다.
다음에, 도 11에 나타낸 PC2 소대만, PC1 소대에 접근한 경우의 캐릭터 변경 판정 처리에 대하여 설명한다. 이 때, 도 13에 나타낸 바와 같이, 아군 PC2는 자기 PC1으로부터 마진 MD 이상 NPC11의 가까이에 위치하고 있으므로, 판정부(275)는 스텝 1000 ~ 스텝 1025에 이어서 계속되는 스텝 1030에서 「YES」라고 판정하고, 스텝 1040으로 진행하고, 아군 PC 관리 변경 처리를 실행한다.
(아군 PC 관리 변경 처리)
구체적으로는, 도 14에 나타낸 바와 같이, 판정부(275)는, 스텝 1400으로부터 아군 PC 관리 변경 처리를 개시하여, 스텝 1405로 진행하고, 가장 가까운 아군 PC(=PC2)와 해당 NPC(=NPC11)를 관리하고 있는 게임기(200)의 PC(=PC1)가 동일하지의 여부를 판정한다. 여기서는 동일하지 않기 때문에, 판정부(275)는 스텝 1410으로 진행하여, 가장 가까운 아군 PC(=PC2)의 게임기가 관리하고 있는 관리 캐릭터 개수가79 이상인지의 여부를 판정한다. PC2를 관리하는 게임기가 관리하고 있는 관리 캐릭터 개수가 79보다 적으면, 기억부(255)는 스텝 1415로 진행하고, RAM(220)에 기억되어 있는 PC2에 관한 캐릭터 정보 중, 관리 중인 캐릭터 개수를 1개 증가시키고, 스텝 1420으로 진행하고, 현시점에서 NPC(=NPC11)를 관리하고 있는 게임기(CL)에 의해 관리되는 PC(=PC1)가 관리 중인 캐릭터 개수를 1개 감소시킨다.
그 다음에, 스텝 1425로 진행하고, 통신부(280)는 해당 NPC(=NPC11)의 관리를, PC1을 관리하는 게임기(200)로부터 PC2를 관리하는 게임기(200)로 변경하는 정 보를 포함한 관리 변경 패킷을, 게임 서버(100)를 통하여 타 게임기(200)에 송신하고, 스텝 1495로 진행하여 본 처리를 종료한다. 이와 같이, 아군 PC2가 자기 PC1로부터 마진 MD 이상 NPC11의 가까이에 위치하고 있는 경우, 아군 PC2를 관리하는 게임기가 NPC11(관리 캐릭터)을 관리하도록 관리 캐릭터가 바뀐다.
그리고, 스텝 1405에서, 가장 가까운 아군 PC와 해당 NPC를 관리하고 있는 게임기(200)의 PC가 동일한 경우에는, 관리 캐릭터의 관리 변경을 행할 필요가 없고, 또, 스텝 1410에서, 가장 가까운 아군 PC의 게임기(200)가 관리하고 있는 관리 캐릭터 개수가 79이상인 경우에는, 그 게임기가 관리하는 관리 캐릭터를 더 이상 증가시키는 것이 적절하지 않기 때문에, 모두 해당 관리 캐릭터를 변경하지 않고, 스텝 1495으로 진행하여 본 처리를 종료한다.
다음에, 도 11의 상태로부터 도 15의 상태로 게임이 전개된 경우(즉, 자기 PC1 소대와 적군 PC3 소대와 아군 PC2 소대가 집단 전투 상태로 돌입한 경우)의 캐릭터 변경 판정 처리에 대하여 설명한다. 이 경우, 도 16에 나타낸 바와 같이, NPC11에는 아군 PC2가 가장 근접하고 있지만, 적군 PC3도 NPC11를 중심으로 한 반경이 마진 MC 내에 존재한다. 이 때, 도 10의 스텝 1000으로부터 캐릭터 변경 판정 처리를 개시하여, 판정부(275)는 스텝 1005, 스텝 1010에 이어서 계속되는 스텝 1015에서 「YES」로 판정하고, 스텝 1045로 진행하여, 적군 PC 관리 변경 처리를 실행한다.
(적군 PC관리 변경 처리)
구체적으로는, 도 17에 나타낸 바와 같이, 판정부(275)는 스텝 1700으로부터 적군 PC 관리 변경 처리를 개시하여, 스텝 1705로 진행하고, 가장 가까운 적군 PC(=PC3)와 해당 NPC(=NPC11)를 관리하고 있는 게임기(200)의 PC(=PC1)가, 동일한지 여부를 판정한다. 여기서는 동일하지 않기 때문에, 판정부(275)는 스텝 1710으로 진행하여, 적군 PC(=PC3)의 게임기가 관리하고 있는 관리 캐릭터 개수가 79이상 인지의 여부를 판정한다. PC3를 관리하는 게임기가 관리하고 있는 관리 캐릭터수가 79보다 적으면 스텝 1715로 진행되어, 기억부(255)는 RAM(220)에 기억되어 있는 PC3에 관한 캐릭터 정보 중, 관리 중인 캐릭터 개수를 1개 증가시키고, 스텝 1720으로 진행하고, 현시점에서 NPC(=NPC11)를 관리하는 게임기에 의해 관리되는 PC(=PC1)가 관리 중인 캐릭터 개수를 1개 감소시킨다.
그 다음에, 스텝 1725로 진행하고, 통신부(280)는 해당 NPC(=NPC11)의 관리를, PC1을 관리하는 게임기(200)로부터 PC3를 관리하는 게임기(200)로 변경하는 정보를 포함한 관리 변경 패킷을, 게임 서버(100)를 통하여 타 게임기(200)에 송신하고, 스텝 1795로 진행하고 본 처리를 종료한다. 이와 같이, NPC11에 대해서, 아군 PC2 및 적군 PC3의 양쪽이 근접한 경우, 적군 PC3를 관리하는 게임기가 아군 PC2를 관리하는 게임기보다 우선적으로 NP11(관리 캐릭터)를 관리하도록 관리 캐릭터가 바뀐다.
그리고, 도 14의 아군 PC 관리 변경 처리와 마찬가지로, 스텝 1705 또는 스텝 1710에서 「YES」로 판정된 경우에는, 해당 관리 캐릭터를 변경하지 않고, 스텝 1795로 진행하고 본 처리를 종료한다.
이 시점에서는, 도 15에 나타낸 바와 같이, NPC11의 관리는 PC3으로 바뀌고 있다. 마찬가지로 하여, PC3를 관리하는 게임기(200)가 수직귀선 인터럽트마다 도 10에 나타낸 캐릭터 변경 판정 처리를 실행함으로써 NPC31의 관리가 PC1으로 바뀐(PC1을 관리하는 게임기(200)의 RAM(220)에 NPC31가 관리 캐릭터로서 등록된) 후, 게임이 도 18에 나타낸 상태로 전개된 경우(즉, PC1이 PC3에 접근한(도 15)후, PC3으로부터 조금 멀어졌을(도 18) 경우)에 대하여, 다음에 설명한다.
이 경우, NPC31, 자기 PC1, 아군 PC2 및 적군 PC3의 관계는 도 19에 나타낸 바와 같이 된다. 이 상태에서 도 10의 캐릭터 변경 판정 처리가 실행되면, 스텝 1000, 1005에 이어서 계속되는 스텝 1010에서, 판정부(275)가, NPC31는 NPC를 관리하는 게임기가 조작하는 PC(=PC1)의 적군으로 판정한다. 그래서, 스텝 1050으로 진행하고, 연산부(260a)는 NPC31과 PC1의 거리 D를 구한다. 이어서, 스텝 1055에서, 판정부(275)는 거리 DEPC에 마진 MA를 가산한 값이 거리 D보다 작은지의 여부를 판정한다. 이 시점에서는, 거리 DEPC + 마진 MA의 값은 거리 D 보다 크다. 그래서, 스텝 1060으로 진행하고, 연산부(260a)는 NPC31과 가장 가까운 아군 PC(=PC2)의 거리 DAPC를 구한다.
다음에, 스텝 1065로 진행하여, 판정부(275)는, 거리 DAPC에 마진 MB를 가산한 값이 거리 D보다 작은지의 여부를 판정한다. 이 시점에서는, 거리 DAPC + 마진 MB의 값은 거리 D 보다 크다. 그래서, 스텝 1035로 진행하고, RAM(220)에 등록되어 있는 모든 관리 캐릭터의 처리를 끝낼 때까지 스텝 1005로 돌아와 각 관리 캐릭터의 변경 판정 처리를 실행한다.
다음에, 도 20에 나타낸 바와 같이, NPC31에 대해서 아군 PC2 및 적군 PC3가 근접한 경우에, 적군 PC3은 자기 PC1로부터 마진 MA 이상 NPC31의 가까이에 위치하는 경우에 대하여 설명한다. 이 상태에서, 도 10의 캐릭터 변경 판정 처리가 실행되면, 스텝 1000 ~ 1010, 스텝 1050에 이어서 계속되는 스텝 1055에서, 판정부(275)는, 「YES」로 판정하고, 스텝 1700으로 진행하여, 도 17의 적군 PC관리 변경 처리를 실행한다. 즉, 스텝 1700 ~ 1725)를 실행함으로써, NPC31의 관리가 PC1를 관리하는 게임기(200)로부터 PC3를 관리하는 게임기(200)로 바뀐다. 이와 같이, NPC31에 대해서 아군 PC2 및 적군 PC3의 양쪽이 근접한 경우에, 적군 PC3가 자기 PC1로부터 마진 MA 이상 NPC31의 가까이에 위치하고 있는 경우, 적군 PC3을 관리하는 게임기가 아군 PC2를 관리하는 게임기보다 우선적으로 NPC31(관리 캐릭터)을 관리하도록 관리 캐릭터가 바뀐다.
한편, 게임 상태가, 도 19의 상태로부터 도 21의 상태(즉, 적군 PC3가 자기 PC1로부터 마진 MA 이상 NPC31의 가까이에 위치하고 있지 않은 경우이고, 또한 아군 P C2가 자기 PC1로부터 마진 MB 이상 NPC31의 가까이에 위치하는 상태)로 천이하는 경우에 대하여 설명한다. 이 상태에서, 도 10의 캐릭터 변경 판정 처리가 실행되면, 스텝 1000 ~ 1010, 스텝 1050 ~ 1060에 이어서 계속되는 스텝 1065에서, 판정부(275)는 「YES」라고 판정하고, 스텝 1040으로 진행하고, 도 14의 아군 PC관리 변경 처리를 실행한다. 즉, 스텝 1400 ~ 1425를 실행함으로써, NPC31의 관리가 PC1을 관리하는 게임기(200)로부터 PC2를 관리하는 게임기(200)로 바뀐다.
(마진의 설정)
이상에서 설명한 도 10의 캐릭터 변경 판정 처리에서는, 해당 NPC의 관리를 전환하는 대상이 되는 PC(적군 PC, 아군 PC)마다 소정의 마진(마진 MA, MB, MC, MD)을 설정한다. 이것은 타 게임기(200)가 관리하는 PC의 위치가 자기 PC의 관리 캐릭터(해당 NPC)에 가장 가까운 경우라도, 자기의 게임기(200)가 관리하는 플레이어 캐릭터의 위치로부터 소정 거리 이상 상기 각 관리 캐릭터의 가까이에 위치하지 않는 한, 판정부(275)는, 자기의 게임기(200)가 관리 캐릭터를 관리하도록 판정하여, 관리권을 전환하는 경계 부근에서의 관리권의 전환이 자주 발생하지 않게 고려한 것이다. 특히, 집단 전투 게임은 액션 게임이므로 미묘한 위치의 변화가 극히 자주 발생하므로, 관리권의 전환이 자주 발생하지 않게 제어하는 것은 처리 전체의 부하를 경감시키고, 순조롭게 게임을 진행시키기 위해서 매우 중요하다.
또, 마진 MA에 비해, 마진 MB, 마진 MC, 마진 MD의 값을 크게 설정한 이유는, 마진 MA의 경우에, 스텝 1055에서 판정 대상으로 하는 관리 캐릭터(해당 NPC)와 적군 PC의 거리와 해당 NPC와 자기 PC의 거리를 비교 처리하고 있으므로, 마진을 비교적 짧게 설정하여, 해당 NPC의 관리권을 우선적으로 적군 PC에게 주기 위해서이다. 즉, 판정부(275)는 우선적으로 스텝 1055에서 「YES」로 판정하고, 스텝 1070)에서 적군 PC로 해당 NPC의 관리를 변경하는 처리를 실행한다.
한편, 마진 MB, 마진 MD의 경우는, 스텝 1065 및 스텝 1030에서, 각각 판정 대상으로 하고 있는 관리 캐릭터(해당 NPC)와 아군 PC의 거리와 해당 NPC와 자기 PC의 거리를 비교 처리하고 있으므로, 마진을 비교적 길게 설정하여 해당 NPC의 관리를 가능한 한 아군 PC에게 주지 않게 하기 위해서이다. 즉, 판정부(275)는 우선 적으로 스텝 1030 및 스텝 1065에서 「YES」로 판정하지 않고, 가능한 한 해당 NPC의 관리를 아군 PC로 변경하지 않도록 처리를 실행한다.
또, 마진 MC의 경우는, 타 게임기(200)가 관리하는 PC가 관리 캐릭터(해당 NPC) 및 자기 게임기(200)이 관리하는 자기 PC의 적군이며, 그 외의 게임기(200)가 관리하는 적군 PC가 해당 NPC의 일정 범위 내(=마진 MC)에 위치하는 경우에는, 구해진 위치의 상대 관계(즉, 자기 PC와 해당 NPC와 적군 PC의 상대 위치)에 관계없이, 타 게임기(200)가 해당 NPC를 관리하도록 하기 위해서이다. 즉, 적군 PC가 해당 NPC의 일정 범위 내(=마진 MC)에 위치하는 경우에는, 판정부(275)는 스텝 1015)에서 「YES」로 판정하여 스텝 1045에서 우선적으로 적군 PC로 해당 NPC의 관리를 변경하도록 판정한다.
또, 마진 MB의 값을 마진 MC의 값보다 크게 한 것은, 이하의 이유때문이다. 전술한 바와 같이, 집단 전투 게임은 액션 게임이므로 미묘한 위치의 변화가 극히 자주 발생한다. 또, 실제 처리에서는, 캐릭터의 위치는 소수점 이하도 포함한 수치로 연산 되므로, 화면 위, 전혀 이동하지 않고 대기하는 것처럼 보이는 캐릭터도, 실제로는 항상 약간씩 이동하고 있는 것으로 판정되는 경우가 매우 많다. 보다 상세하게 설명하면, 어느 지점으로부터 가상 공간 상에서 50m 떨어진 위치에 있는 캐릭터는, 처리상으로는 항상 49.9m ~ 50.1m의 범위 내에서 위치가 변동되고 있다. 플레이어가 자기 PC를 조작하면, 그 폭은 더 커지고, 이와 같은 상황에서, 어느 지점으로부터 50m의 위치에서 자기 PC의 소대와 적군 PC의 소대가 싸우면, 너무 많은 수의 캐릭터가 너무 자주 50m전후에서 위치가 변동된다.
이와 같은 상황에서, 예를 들어 마진 MB와 마진 MC를 동일한 값(=50)으로 설정하면, 관리 캐릭터의 전환이 자주 생긴다. 구체적으로는 해당 NPC와 자기 PC가 아군이며, 가장 가까운 적군 PC와 해당 NPC와의 거리 DEPC가 49일 경우, 판정부(275)는 스텝 1005, 스텝 1010에 이어서 계속되는 스텝 1015에서 「YES」로 판정하여 스텝 1045에서 적군 PC로 해당 NPC의 관리를 변경한다. 그 후, 적군 PC가 해당 NPC로부터 조금 떨어져서 거리 DEPC가 51이 되면, 판정부(275)는 스텝 1005, 스텝 1010, 스텝 1050 ~ 스텝 1060에 이어서 계속되는 스텝 1065에서 「YES」로 판정하여 스텝 1040에서 아군 PC로 해당 NPC의 관리를 변경한다. 그 후, 적군 PC가 해당 NPC에 조금 가까워지고, 다시 가장 가까운 적군 PC와 해당 NPC의 거리 DEPC가 49가 될 경우, 판정부(275)는 스텝 1015에서 다시 「YES」로 판정하여 스텝 1045에서 적군 PC로 해당 NPC의 관리를 변경한다. 이와 같은 빈번한 캐릭터 관리의 전환을 방지하기 위해, 마진 MB의 값을 마진 MC와 다른 값으로 설정하고 있다(즉, 마진 MB=60, 마진 MC=50).
(게임 서버의 동작)
다음에, 게임 서버(100)의 동작에 대하여 설명한다. 게임 서버(100)는, 도 22의 흐름도에서 나타낸 바와 같이, 스텝 2200으로부터 처리를 개시하여, 스텝 2205에서 캐릭터 관리 변경 패킷, 및/ 또는, 캐릭터 정보 패킷을 수신했는지의 여부를 판정한다. 이들 패킷을 수신한 경우, 게임 서버(100)는 스텝 2210에서 각 게임기(200)로부터 송신된 캐릭터 관리 변경 패킷, 및/ 또는, 캐릭터 정보 패킷을 송신원의 게임기(200) 이외의 모든 게임기(200)에 송신하고, 스텝 2295로 진행하여 본 처리를 종료한다. 그리고, 전술한 바와 같이, 게임 서버(100)의 기억부(150)에는 각 캐릭터의 캐릭터 정보를 기억할 필요는 없지만, 기억할 수도 있다.
이상, 본 실시예에 따른 네트워크 게임 시스템에 의하면, 격투 게임에서 즉시 처리할 필요가 있는 「액션 처리」를 사용자 측의 단말기인 게임기(클라이언트 측)에서 행한다. 또, 본 시스템에서, 논플레이어 캐릭터는 임의의 게임기(200)에 의해 관리된다. 그러므로, 게임 서버(100)에 처리의 부하가 집중되지 않고, 시스템 전체로 처리에 의한 부하를 분산시킬 수 있다. 그러므로, 플레이어는 통신 지연을 느끼지 않고, 실시간성이 높은 박력있는 게임을 즐길 수 있다.
또, 본 시스템에서, 관리 캐릭터인 NPC의 소정 거리 내에 적군 PC가 존재하는 난전 시에는, 상기 적군 PC를 관리하는 게임기가 우선적으로 NPC를 관리하도록 제어되고, 그 이외의 경우(적군 PC가 소정 거리 외에 있는 경우, 소정 거리 외에 아군 PC가 있는 경우, 또는 소정 거리 내에 아무 것도 없는 경우)에는, 최단거리에 있는 별개의 PC가 나타나면, 적군과 아군에 관계없이, 관리권이 그 PC로 변경된다.
이와 같이, 우선적으로 적군을 관리하게 되면, 네트워크 게임에서의 통신 지연을 느낄 기회가 적어진다. 즉, 본 실시예에 따른 네트워크 게임 시스템(10)에서는, PC 끼리 가까워진 난전 시에는, 자기 PC를 관리하는 게임기는 먼저 적군 NPC를 우선적으로 관리한다. 이 때 적과 아군만으로 판단할 수 없는 경우(동일 진영의 PC가 가까이에 복수개 있는 경우 등)에는 거리에 의해 NPC를 어느 게임기에 관리시킬지를 판단한다. 또, PC끼리 떨어질 경우에는, 적과 아군에 관계없이 거리만으로 NPC를 어느 게임기에 관리하게 할지가 판단된다.
원칙적으로, 자기 PC는 근방의 적군 NPC와 싸우고, 근방의 아군 NPC와는 싸우지 않기 때문에, 자기 PC를 관리하는 게임기는 자기 PC와 근방의 적군 NPC 사이에서 연산 처리가 빈번하게 발생한다. 따라서, 전술한 캐릭터 관리 방법에 따라 적군 NPC를 우선적으로 자기 PC를 관리하는 게임기(200)에 관리시킴으로써, 빈번하게 발생하는 연산 처리를 자기 게임기 내에서 처리할 수 있다. 동일 게임기 내에서 관리되는 캐릭터끼리 네트워크 통신을 행하지 않고 처리가 행해지므로, 적군 NPC를 우선적으로 관리함으로써 통신 지연 시간을 줄일 수 있다. 이 결과, 각 플레이어의 조작에 따라 즉시 화면 상의 캐릭터의 모션이 바뀌고, 플레이어는 적군의 호위병(NPC)과의 전투는 실질 standalone와 같이 빨리 느끼기 때문에, 게임에 더욱 몰두하고 즐길 수 있다.
그리고, 클라이언트 처리(게임기 측의 처리)에서는, RAM 등의 메모리 내에 유지하는 데이터로서, 각 게임기가 관리하는 모든 자기 NPC + 자기 PC(즉, 자기 소대)의 캐릭터 정보가 아니고, 타 게임기가 관리하는 캐릭터를 포함한 모든 캐릭터의 캐릭터 정보를 기억한다. 그 이유는, 예를 들어 타 게임기가 관리하는 것도 자기 화면에 표시될 가능성이 있어, 적어도 그 캐릭터 정보 중 최신 좌표 데이터 등을 기억해 두지 않으면 데이터의 정합이 이루어지지 않기 때문이다. 여기서, 모든 캐릭터의 최신 좌표의 기억 갱신 관리에 관해서, 자기가 관리하는 모든 자기 NPC + 자기 PC에 대해서는, 각 게임기(200) 내에서 키 입력 등에 대한 변화량으로부터 최신 좌표를 직접 계산하여 기억 갱신한 후에, 게임 서버(100)를 경유하여 타 게임기(200)에 송신하여 정합을 취하기 때문에, 최신 좌표의 갱신 처리가 빨라지는 것으 로 생각되지만, 타 게임기(200)가 관리하는 것에 대하여는, 타 게임기에서 산출한 최신 좌표를 게임 서버(100)를 경유하여 수신한 후에 기억 갱신됨으로 정합을 이루므로, 통신 지연이 생겨 늦어지는 것으로 생각된다.
그러나, 본 실시예에 따른 발명의 포인트는 근접한 적군 NPC를 포함하는 자기가 관리하는 NPC에의 처리를 빠르게 하는 점이므로, 이 지연에 의한 직접적인 영향은 없고, 또 모든 캐릭터 상태 정보를 각 게임기에서 기억하면, 겉으로 보아서는 영향이 없는 것으로 생각할 수 있다. 그 이유는, 통상적으로 이와 같은 집단 전투 게임에서는 자기 PC를 화면 중앙보다 약간 아래쪽에 표시하므로(이 때 각 게임기에서의 시야, 즉 시점 카메라의 위치와 각도는 각자, 자동적으로 적절한 수치로 설정된다), 경험상, 실제로 플레이어가 주목하는 자기 소대의 전투 장면에서의 처리가 빠르면, 그 외의 타 게임기가 관리하고 있는 타 소대가 표시되는 부분, 즉 주위의 부분의 표시가 다소 늦어지더라도 신경쓰지 않기 때문이다.
(실시예 2)
다음에, 실시예 2에 따른 네트워크 게임 시스템(10)에 대하여 설명한다. 실시예 2에 따른 네트워크 게임 시스템(10)은 캐릭터 변경 판정 처리를 게임 서버(100)측에서 실행하는 점에서, 캐릭터 변경 판정 처리를 게임기(200) 측에서 실행하는 실시예 1과 동작상 상이하다. 따라서, 이 상이한 점을 중심으로 본 실시예에 따른 네트워크 게임 시스템에 대하여 설명한다.
(게임기의 동작)
본 실시예에서는, 도 8의 클라이언트 측 관리 처리 중, 스텝 815에서 호출되 는 캐릭터 관리 처리를 도 23의 스텝 2300으로부터 개시하고, 스텝 905 ~ 스텝 925의 처리 후, 실시예 1의 경우에 실행한 도 9의 스텝 930의 캐릭터 변경 판정 처리를 행하지 않고, 스텝 935를 처리하여 스텝 2395로 진행하여 본 처리를 종료한다. 이와 같이, 본 실시예에서, 각 게임기(200)는 액션 처리를 실행하지만, 캐릭터 변경 판정 처리를 실행하지 않는다.
(게임 서버의 동작)
한편, 본 실시예에서는, 게임 서버(100)는 도 7에 나타낸 각 캐릭터의 캐릭터 정보를 RAM(120)에 사전에 기억한다. 즉, 게임 서버(100)에서 캐릭터 관리 변경 판정을 행하는 경우, 도 7에 나타낸 캐릭터 정보는 게임 서버(100) 및 각 게임기(200)의 RAM에 각각 유지된다.
게임 서버(100)는, 도 24에 흐름도를 나타낸 바와 같이, 스텝 2400으로부터 처리를 개시하여, 스텝 2405에서, 캐릭터 정보 패킷을 수신했는지의 여부를 판정한다. 이들 패킷을 수신한 경우, 게임 서버(100)는, 스텝 2410)에서, 각 게임기(200)로부터 송신된 캐릭터 정보 패킷에 포함되는 캐릭터 정보에서, 도 7에 나타낸 바와 같이 RAM(120)에 기억된 캐릭터 중, 해당하는 캐릭터의 캐릭터 정보를 갱신하고, 그 캐릭터 정보 패킷을 송신원의 게임기(200) 이외의 모든 게임기(200)에 송신한 후, 스텝 2415로 진행하여, 도 10의 캐릭터 변경 판정 처리를 실행하고, 스텝 2495로 진행하여 본 처리를 종료한다. 그리고, 실시예 1에서는, 모든 논플레이어 캐릭터(NPC)중, 각 게임기(200)가 관리하는 관리 캐릭터마다, 도 10의 캐릭터 변경 판정 처리를 반복하였다. 그러나, 본 실시예에서는, 모든 논플레이어 캐릭터(NPC) 에 대하여, 캐릭터 변경 판정 처리를 반복할 필요가 있다.
본 실시예에 따른 네트워크 게임 시스템(10)에 의하면, 게임 서버(100) 측에서, 모든 캐릭터가 관리된다. 이에 의하면, 게임 서버(100)로부터 각 게임기(200)까지의 거리나 각 게임기(200)의 성능, 그 외의 통신 환경이 동일하면서 통신 장해가 발생하지 않는 경우, 각 게임기(200)에서 생기는 처리의 지연은, 이론상 대략 동시로 생각할 수 있다. 그러므로, 화면 상의 다수의 캐릭터가 부자연스럽게 동작하지는 않는다. 또, 모든 캐릭터 관리를 게임 서버(100) 측에서 행하기 때문에, 정확하고 간단하며 용이하게 데이터의 정합성을 유지할 수 있다.
또한, 상기와 같이 통신 환경이 동일한 경우, 본 실시예에 따른 캐릭터 관리의 전환을 위한 지연 시간은, 게임 서버(100)로부터 게임기(200)의 통신 시간뿐 이므로, 본 실시예의 시스템에서는, 게임기(200) 측에서 캐릭터 관리 처리를 실행하는 실시예 1의 경우와 비교하여, 실시예 1의 타 게임기(200)에 생기는 전환 시간의 절반만 지연되는 이점이 있다.
이상에서 설명한 바와 같이, 상기 각 실시예에 따른 네트워크 게임 시스템(10)에 의하면, 「캐릭터마다 관리하는 게임기를 결정하고, 액션 처리를 각 게임기(200)에 배분한다 」, 「타 게임기에 의하여 관리되는 관리 캐릭터의 영상이 다소 지연되어 자기 게임기에 표시된다」, 「타 게임기에 의하여 관리되는 관리 캐릭터의 영상에 의하여 자기 게임기에 의하여 관리되는 관리 캐릭터가 영향을 받느다」는 교묘한 제어에 의해, 자기 게임기(200)가 관리하는 캐릭터끼리의 액션의 결과가 즉시 화면 상에 반영되는 상황을 만들 수 있다. 이것은, 다수의 캐릭터가 복수개 의 소대를 만들어 집단 전투하는 네트워크 게임에 특히 효과적이다.
그리고, 상기 각 실시예에서, 가장 가까운 PC는 모든 거리를 비교하여 산출된다.
또, 이상의 캐릭터 변경 관리 처리에서는, 관리 캐릭터 NPC를 중심으로 하여 각 PC의 상대 거리 관계를 산출하고, 산출한 관계에 기초하여 캐릭터의 관리를 변경할지의 여부가 판정된다. 그러나, 각 실시예에 따른 캐릭터 변경 관리 처리는, 각 PC를 중심으로 하는 소정 범위 내에 존재하는 NPC를 관리 캐릭터로서 관리하도록 해도 된다.
(PC를 중심으로 한 캐릭터 관리)
실제로는, 예를 들어, 각 게임기(200)의 판정부(275)는, 연산부(260a)에 의해 연산된 각 관리 캐릭터의 위치 변화에 따라, 자기 게임기(200)에 의해 관리되는 플레이어 캐릭터(자기 PC)로부터 제1 소정 범위 내에 위치하는 하나 또는 둘 이상의 논플레이어 캐릭터(NPC)를 자기 게임기(200)의 관리 캐릭터로서 관리하는 것으로 판정해도 된다.
이와 같이 PC를 중심으로 한 캐릭터 관리 처리를 실행하는 경우, 판정부(275)는, 타 게임기(200)에 의해 관리되는 플레이어 캐릭터(타 PC)와 논플레이어 캐릭터(NPC)의 관계의 설정이 적군과 아군으로 나뉘며, 자기 게임기(200)에 의해 관리되는 PC(자기 PC)와 해당 NPC의 관계가 아군인 경우에는, 논플레이어 캐릭터(NPC)가 자기 게임기(200)에 의해 관리되는 PC로부터 상기 제1 소정 범위 내에 위치하더라도, 상기 적군 PC로부터 제2 소정 범위 내에 위치할 때는, 상기 타 게임기 (200)가 해당 NPC를 관리하도록 판정하도록 해도 된다. 또, 상기 제1 소정 범위는, 상기 제2 소정 범위보다 작게 설정해도 된다.
또, PC로부터 소정 범위 내에 미리 정해진 소정 개수 이상의 NPC가 존재하면, 해당 소정 개수의 NPC의 관리를 전환하도록 해도 된다. 또, PC로부터 소정 범위 내에 소정 개수 이상의 NPC가 존재하고나서 소정 시간 경과 후에 NPC의 관리를 전환하도록 해도 된다.
이에 따르면, NPC와 적군 PC와 자기 PC가 근방에 위치하는 전투 태세에서, NPC를 우선적으로 적군 PC를 관리하는 게임기(200)에 관리시킬 수 있고, 결과적으로 게임 전체의 처리를 순조롭게 진행시킬 수 있다.
(실시예 3)
다음에, 실시예 3에 따른 네트워크 게임 시스템(10)에 대하여 설명한다. 실시예 3에 따른 네트워크 게임 시스템(10)에서는, 실시예 1에서 설명한 바와 같이, 원칙적으로 자기 소대에 속하는 자기 PC 및 NPC는, 자기의 게임기(200)에 의하여 관리되고, 아군 PC의 타 소대에 속하는 아군 PC 및 NPC는 아군 PC를 조작하는 게임기(200)에 의하여 관리되고, 적군 PC의 타 소대에 속하는 적군 PC 및 NPC는 적군 PC를 조작하는 게임기(200)에 의하여 관리되는 점에서 실시예 1과 동일하다.
그러나, 본 실시예에서는, 예를 들어, 게임에 참가하는 플레이어가 모자라는 경우라 하더라도(예를 들어, 게임에 참가하는 플레이어가 한 명이라 하더라도), 게임에 참가하는 플레이어에 대해서는 상기 관리의 원칙이 적용되어 참가자의 부족에 의해 사용자에 의해 조작되지 않는, 하나 또는 둘 이상의 PC 및 그 PC의 소대에 속 하는 NPC는, 게임 서버(100)에 의해 자동적으로 관리되는 점에 있어서 실시예 1과 동작 상 상이하다. 따라서, 이 상이한 점을 중심으로 본 실시예에 따른 네트워크 게임 시스템(10)에 대하여 설명한다.
그리고, 이하의 설명에서는, 게임 서버(100) SV에 의해 관리되는 플레이어 캐릭터(PC)를 서버 캐릭터(SC)라고도 칭한다. 또, 게임 서버(100)에 의해 관리되는 서버 캐릭터가 복수개 존재하는 경우, 게임기(200)에 의해 관리되는 플레이어 캐릭터 또는 게임 서버(100)에 의해 관리되는 다른 서버 캐릭터(캐릭터 변경 판정의 대상이 되는 NPC를 관리하는 게임 서버(100)의 서버 캐릭터 이외의 서버 캐릭터)를 메인 캐릭터(MC)라고도 칭한다. 또한, 메인 캐릭터를 관리하는 게임기(200) 또는 게임 서버(100)을 MC 관리 기기라고도 한다.
(게임 서버(100)의 기능 구성)
본 실시예에 따른 게임 서버(100)는, 도 25에 나타낸 바와 같이, 실시예 1에 따른 게임 서버(100)의 기능 구성에 더하여 연산부(170a) 및 판정부(175)의 기능 블록에 의해 나타낸 새로운 기능이 추가되어 있다. 또, 연산부(170a)와 화상 처리부(170b)에 의해 액션 처리 실행부(170)의 기능이 실현된다.
새로 부가된 기능 중, 액션 처리 실행부(170)는, 기억부(150)에 등록되고, 게임 서버(100)에 의해 관리되는 각 관리 캐릭터의 액션 처리를 관리 캐릭터마다 실행시킨다. 구체적으로는, 연산부(170a)는, 기억부(150)에 기억된 캐릭터 정보를 사용하여, 게임 상의 전투에 의해 발생하는 각 관리 캐릭터의 위치 변화 및 동작의 변화를 나타내는 변화량을 각각 연산함으로써 변화 후의 캐릭터 정보를 생성한다.
또, 판정부(175)는, 연산부(170a)에 의해 연산된 각 관리 캐릭터의 위치 변화치에 따라, 게임 서버(100)가 관리하는 임의의 서버 캐릭터의 위치(SC의 위치)와, MC관리 기기에 의해 관리되는 메인 캐릭터의 위치(MC의 위치)와, 각 관리 캐릭터의 액션 처리 후의 위치(연산 후의 NPC의 위치)의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리할지의 여부를 판정한다. 게임 서버(100)가 관리하는 「임의의」플레이어 캐릭터의 위치로 한 이유는, 게임에 참가하는 사용자가 적은 경우, 게임기(200)에 할당되지 않는 복수개의 플레이어 캐릭터를 복수개의 서버 캐릭터로서 게임 서버(100)에서 각각 관리할 필요가 있기 때문이다.
(게임 서버(100)의 동작)
본 실시예에서도, 원칙적으로, 각 플레이어 캐릭터 및 각 게임기(200)에 의해 관리하는 것으로 판정된 논플레이어 캐릭터는 각 게임기(200)에 의해 관리된다. 구체적으로는, 이들 캐릭터는, 각 게임기(200)가 도 8의 클라이언트 측 관리 처리를 실행함으로써 관리된다.
이에 더하여, 본 실시예에서는 게임 참가자가 부족하므로, 게임 서버(100)에서 자동적으로 관리하게 된 하나 또는 복수개의 서버 캐릭터가 존재한다. 하나 또는 복수개의 서버 캐릭터 및 게임 서버(100)에 의해 서버 캐릭터마다 관리되는 것으로 판정된 논플레이어 캐릭터는, 게임 서버(100)에 의해 관리된다. 구체적으로는, 이들 캐릭터는, 도 8을 대신하는 도 26에 나타낸 바와 같이, 게임 서버(100)가 서버 측 관리 처리를 실행함으로써 관리된다.
그리고, 게임 서버(100)의 동작에는, 원칙적으로 이하에서 설명하는 동작 이외에도, 실시예 1 또는 실시예 2에서 설명한 동작이 포함된다. 또, SC 및 그 SC의 소대 중의 NPC의 위치 변화에 관한 캐릭터 관리 변경 패킷 및 캐릭터 정보 패킷의 서버 사이에서의 송수신은 행하지 않고(부언하면, 게임 서버(100)와 게임기(200) 사이는 통상적으로 송수신을 행하고), 이 경우에는 게임 서버(100) 내부의 RAM(120)에 기억된 캐릭터 정보(도 7)를 직접 갱신시킨다.
또, 본 실시예에서는, 사용자가 할당되지 않는 플레이어 캐릭터에 대해서만, 게임의 진행에 따라 게임 서버(100)가 「자동적으로」그 동작을 관리한다. 따라서, 게임 서버(100)는, 서버 관리자에 의한 액션 처리를 위한 모니터(415) 표시뿐만 아니라, 키보드(405) 등의 입력 장치에 의한 입력 정보의 입력도 불필요하다. 또, 본 실시예에서는, 실시예 1에서 도 8의 스텝 825에서 행한 바와 같이, RAM(120)의 갱신 처리나 음향 등에 관한 처리도 불필요해진다. 이상에 따라서, 본 실시예에서의 게임 서버(100)의 동작에 대하여 설명한다.
(게임 시작)
게임기(200)의 전원이 「ON」되고, 임의의 플레이어로부터 게임의 개시가 요구되면, 게임 서버(100)는 도 26의 스텝 2600으로부터 서버 측 관리 처리를 개시하고, 스텝 805)에서 초기 설정을 행한다.
다음에, 스텝 810에서, 판정부(175)는 인터럽트(수직귀선 인터럽트(Vsync))가 발생했는지의 여부를 판정한다.
판정부(175)는, 모니터(415)의 수직귀선주기와 일치하는 1/60sec에 한 번의 주기로 인터럽트가 발생하면, 이에 따라 스텝 810)에서 「YES」로 판정하고, 스텝 815로 진행하여, 캐릭터 관리 처리(캐릭터 관리 처리의 상세한 설명은 후술한다)를 실행한다.
다음에, 판정부(175)는 스텝 820으로 진행하여 게임의 종료 여부를 판정한다. 구체적으로는, 플레이어가 게임기(200)의 전원을 「OFF」하거나, 화면 상의 게임 종료를 선택함으로써 게임은 종료된다. 그래서, 플레이어가 이들 중 어느 하나의 조작을 행할 때까지, 게임 서버(100)는, 기본적으로 스텝 810 ~ 스텝 820의 처리를 반복하고, 플레이어가 이들 중 어느 하나의 조작을 행하면 스텝 2695로 진행하여 게임을 종료시킨다.
스텝 810에서 인터럽트가 발생하지 않은 경우, 판정부(175)는 스텝 810에서 「NO」라고 판정하여 스텝 825에서 주 처리를 실행하고, 그 후 스텝 820으로 진행한다. 상기 주 처리에서는, 본 실시예에서의 네트워크 게임과 직접 관련되지 않는 그 외의 처리가 실행된다.
(캐릭터 관리 처리)
다음에, 스텝 815의 캐릭터 관리 처리에 대하여, 도 27의 흐름도를 참조하면서 설명한다. 스텝 2700으로부터 처리가 개시되면, 통신부(145)는 스텝 905)에서, 타 게임기(200)로부터 송신된 캐릭터 관리 변경 패킷을 수신했는지 여부를 판정한다.
캐릭터 관리 변경 패킷을 수신한 경우에는, 스텝 2705로 진행되어, 기억부(150)는 캐릭터 관리 변경 패킷에 포함되는 캐릭터 정보에 기초하여 RAM(120)의 해 당 캐릭터 정보를 갱신시킨다. 구체적으로는, 도 7에 나타낸 바와 같이, 해당 PC 또는 해당 NPC에 기억된 좌표, 보디 방향, 모션 번호, 재생 프레임 위치, 진행 방향 및 소속군의 정보를 갱신한다. 또, 기억부(150)는 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 RAM(120)에 등록한다. 구체적으로는, 도 7에 나타낸 바와 같이, 해당 캐릭터 정보의 관리원의 PC 번호를 변경함으로써, 각 관리 캐릭터의 관리를 클라이언트 측(게임기기(200)) 또는 서버 측(게임 서버(100)) 중 어느 하나로 변경한다. 또, 통신부(145)는 상기 스텝 2705에서, 수신한 캐릭터 관리 변경 패킷을 게임에 참가하고 있는 게임기(200)에 전송한다.
다음에, 스텝 915로 진행하고, 통신부(145)는, 참가하고 있는 게임기(200)로부터 캐릭터 정보 패킷을 수신했는지 여부를 판정한다. 캐릭터 정보 패킷을 수신한 경우에는, 스텝 2710으로 진행하여, 기억부(150)는 캐릭터 정보 패킷에 포함되는 캐릭터 정보에 기초하여 RAM(120)의 해당 캐릭터 정보를 갱신한다. 구체적으로는, 도 7의 해당 PC 또는 해당 NPC에 기억된 좌표, 보디 방향, 모션 번호, 재생 프레임 위치, 진행 방향, 소속군의 정보를 갱신한다. 또, 통신부(145)는 상기 스텝 2710에서, 수신한 캐릭터 정보 패킷을 게임에 참가하고 있는 게임기(200)에 전송한다.
그 다음에, 스텝 925로 진행하여, 액션 처리 실행부(170)는 액션 처리를 실행한다. 구체적으로는, 액션 처리는 액션 처리 실행부(170)의 각 부에 의해 실행되는 이하에서 설명하는 바와 같은 처리를 말한다. 먼저, 연산부(170a)는 RAM(120)에 기억된 캐릭터 정보에 기초하여, 각 관리 캐릭터의 위치 변화량 및 동 작의 변화량을 포함한 캐릭터 정보를 자동적으로 연산한다. 다음에, 화상 처리부(170b)는, 게임의 진행에 맞추어서 필요한 파라미터와 명령을 생성하고, 이들을 화상 생성부(165)에 출력함으로써, 화상 생성부(165)에 화상의 생성을 지시한다.
다음에, 스텝 930으로 진행하고, 판정부(175)는 캐릭터 변경 판정 처리(서브 루틴)를 실행한다. 이 처리는, 각 관리 캐릭터 NPC의 연산 후의 위치와, 서버 캐릭터 SC의 위치와, 메인 캐릭터 MC의 위치 관계로부터 해당 관리 캐릭터가 관리되어야 할 MC 관리 기기(게임 서버(100) 또는 게임기(200))를 판정한다.
그 다음에, 스텝 935로 진행하고, 통신부(145)가 연산부(170a)에 의해 연산된 각 관리 캐릭터의 캐릭터 정보를 게임에 참가하고 있는 게임기(200)에 송신한다. 이와 같이 최신 캐릭터 상태를 게임에 참가하고 있는 게임기(200)에 송신함으로써, 게임에 참가하고 있는 게임기(200)에 기억된 각 캐릭터의 캐릭터 정보가 갱신된다. 이에 따라, 데이터의 정합성을 유지할 수 있다.
(캐릭터 변경 판정 처리)
다음에, 스텝 930에 나타낸 캐릭터 변경 판정 처리에 대하여, 도 28을 참조하면서, 상세하게 설명한다.
스텝 2800으로부터 캐릭터 변경 판정 처리가 개시되고, 스텝 2805로 진행하면, 연산부(170a)는 관리 캐릭터로서 기억부(150)에 등록되어 있는 NPC와 가장 가까운 적군의 메인 캐릭터(적군 MC)(즉, 가장 가까운 적군 PC 또는 가까운 다른 SC)의 거리 DEPC를 구한다. 여기서, 다른 SC는 캐릭터 변경 판정의 대상이 되는 NPC를 관리하는 게임 서버(100)의 서버 캐릭터(SC) 이외의 SC를 말한다.
다음에, 스텝 2810으로 진행하고, 판정부(175)는 캐릭터 변경 판정의 대상이 되는 NPC를 관리하는 게임 서버(100)(SV)의 서버 캐릭터(SC)가, NPC의 아군인지의 여부를 판정한다. 서버 캐릭터가 NPC의 아군인 경우, 판정부(175)는 스텝 2815로 진행하여, 거리 DEPC가 마진 MC 보다 작은지의 여부를 판정한다. 거리 DEPC가 마진 MC 보다 큰 경우, 스텝 2820으로 진행하여, 연산부(170a)는 NPC와 서버 캐릭터와의 거리 D를 구하고, 스텝 2825에서, NPC와 가장 가까운 아군 메인 캐릭터와의 거리 DAPC를 구한다.
다음에, 스텝 2830으로 진행하여, 판정부(175)는 거리 DAPC에 마진 MD를 가산한 값이 거리 D보다 작은지의 여부를 판정한다. 이 시점에서, 거리 DAPC + 마진 MD의 값이 거리 D보다 큰 경우, 즉 가장 가까운 아군의 메인 캐릭터가, NPC를 중심으로 한 반경이 (거리D - 마진 MD)의 원내까지 이르지 못하는 경우에는, 판정부(175)는 NPC의 관리를 어느 하나의 기기로 변경하지 않고, 스텝 2835로 진행하여, 관리 중인 모든 NPC(즉, 관리 캐릭터)에 대하여 캐릭터 변경 판정 처리를 실행할 때까지, 스텝 2805로 돌아와 각 관리 캐릭터의 변경 판정 처리를 계속하고, 모든 관리 캐릭터에 대하여 상기 변경 판정 처리를 끝내면 스텝 2895에서 본 처리를 종료시킨다.
다음에, 아군 메인 캐릭터가 SC로부터 마진 MD 이상 NPC의 가까이에 위치하는 경우에 대하여 설명한다. 판정부(175)는 스텝 2800 ~ 스텝 2825에 이어서 계속되는 스텝 2830에서 「YES」로 판정하고, 스텝 2840으로 진행되어, 아군 MC관리 변경 처리를 실행한다.
(아군 MC 관리 변경 처리)
구체적으로는, 도 29에 나타낸 바와 같이, 판정부(175)는 스텝 2900로부터 아군 MC 관리 변경 처리를 개시하여, 스텝 2905로 진행하고, 가장 가까운 아군 MC와 해당 NPC를 관리하고 있는 게임 서버(100)(SV)의 SC가 동일한지의 여부를 판정한다. 동일하지 않는 경우, 판정부(175)는 스텝 2910으로 진행되어, 가장 가까운 아군 MC의 MC 관리 기기(CL 또는 SV)가 관리하고 있는 관리 캐릭터 개수가 79이상인지의 여부를 판정한다. 가장 가까운 아군 MC의 MC 관리 기기가 관리하고 있는 관리 캐릭터 개수가 79보다 적으면 스텝 2915로 진행되어, 기억부(150)는 RAM(120)에 기억되어 있는 가장 가까운 아군 MC의 캐릭터 정보 중, MC 관리 기기가 관리하고 있는 관리 캐릭터수를 1만큼 증기시키고, 스텝 2920으로 진행하여, 현시점에서 NPC를 관리하고 있는 게임 서버(100)에 의해 관리되는 관리 캐릭터 개수를 1만큼 감소시킨다.
그 다음에, 스텝 2925로 진행되어, 통신부(145)는, 해당 NPC의 관리를 SC를 관리하는 게임 서버(100)로부터 아군 MC를 관리하는 MC 관리 기기로 변경하는 정보를 포함하는 관리 변경 패킷을, 게임에 참가하고 있는 게임기(200)에 송신하고, 스텝 2995로 진행하여 본 처리를 종료시킨다. 이와 같이, 아군 MC가 SC로부터 마진 MD이상 NPC의 가까이에 위치하는 경우, 아군 MC를 관리하는 MC 관리 기기가 NPC(관리 캐릭터)를 관리하도록, 관리 캐릭터가 전환된다.
그리고, 스텝 2905에서, 가장 가까운 아군 MC와 해당 NPC를 관리하고 있는 게임 서버(100)의 SC가 동일한 경우에는, 관리 캐릭터의 관리 변경을 행할 필요가 없고, 또, 스텝 2910에서, 가장 가까운 아군 MC의 MC 관리 기기가 관리하고 있는 관리 캐릭터 개수가 79이상인 경우에는, 그 게임기가 관리하는 관리 캐릭터를 더 이상 증가시키는 것이 적절하지 않기 때문에, 모두 해당 관리 캐릭터를 변경하지 않고, 스텝 2995로 진행하여 본 처리를 종료시킨다.
다음에, SC의 소대와 적군 MC의 소대와 아군 MC의 소대가 집단 전투 상태일 경우의 캐릭터 변경 판정 처리에 대하여 설명한다. 구체적으로는, NPC에는 아군 MC가 가장 근접하고 있지만, 적군 MC도 NPC를 중심으로 한 반경이 마진 MC의 원 내에 위치하는 경우, 도 28의 스텝 2800으로부터 캐릭터 변경 판정 처리를 개시하여, 판정부(175)는 스텝 2805 및 스텝 2810에 이어서 계속되는 스텝 2815에서 「YES」로 판정하고, 스텝 2845로 진행하여, 적군 MC 관리 변경 처리를 실행한다.
(적군 MC 관리 변경 처리)
구체적으로는, 도 30에 나타낸 바와 같이, 판정부(175)는 스텝 3000으로부터 적군 MC 관리 변경 처리를 개시하여, 스텝 3005로 진행하고, 가장 가까운 적군 MC와 해당 NPC를 관리하고 있는 게임 서버(100)의 SC가 동일한지의 여부를 판정한다. 여기서는 동일하지 않기 때문에, 판정부(175)는 스텝 3010으로 진행되어, 가장 가까운 적군 MC의 MC 관리 기기가 관리하는 관리 캐릭터 개수가 79이상인지의 여부를 판정한다. 가장 가까운 적군 MC를 관리하고 있는 MC 관리 기기의 관리 캐릭터 개수가 79보다 적으면 스텝 3015로 진행되어, 기억부(150)는 RAM(120)에 기억되어 있는, 이제부터 NPC를 관리하는 MC 등에 관한 캐릭터 정보 중, MC 관리 기기가 관리하고 있는 관리 캐릭터 개수를 1만큼 증가시키고, 스텝 3020으로 진행되어, 현시점 에서 NPC를 관리하고 있는 게임 서버(100)에 의해 관리되는 관리 캐릭터 개수를 1만큼 감소시킨다.
그 다음에, 스텝 3025로 진행하여, 통신부(145)는 해당 NPC의 관리를 SC를 관리하는 게임 서버(100)로부터 적군 MC를 관리하는 MC 관리 기기로 변경하는 정보를 포함한 관리 변경 패킷을 게임에 참가하고 있는 게임기(200)에 송신하고, 스텝 3095로 진행하여 본 처리를 종료시킨다. 이와 같이, NPC에 대해서 아군 MC 및 적군 MC의 양쪽이 근접한 경우, 적군 MC를 관리하는 게임기가 아군 MC를 관리하는 게임기보다 우선적으로 NPC(관리 캐릭터)를 관리하도록 관리 캐릭터가 전환된다.
그리고, 도 29의 아군 PC 관리 변경 처리와 마찬가지로, 스텝 3005 또는 스텝 3010에서 「YES」로 판정된 모든 경우에 해당 관리 캐릭터를 변경하지 않고, 스텝 3095로 진행되어 본 처리를 종료시킨다.
다음에, NPC(NPC31), PC1을 대신하는 SC, 아군 PC2를 대신하는 아군 MC 및 적군 PC3을 대신하는 적군 MC의 관계가 도 19에 나타낸 상황일 경우의 처리에 대하여 설명한다. 이 상태에서, 도 28의 캐릭터 변경 판정 처리가 실행되면, 스텝 2800 및 2805에 이어서 계속되는 스텝 2810에서, 판정부(175)는, NPC는 NPC를 관리하는 게임 서버(100)가 조작하는 SC의 적군인 것으로 판정한다. 그래서, 스텝 2850으로 진행하고, 연산부(170a)는 NPC와 SC의 거리 D를 구한다. 이어서, 스텝 2855에서, 판정부(175)는 거리 DEPC에 마진 MA를 가산한 값이 거리 D 보다 작은지의 여부를 판정한다. 이 시점에서는, 거리 DEPC + 마진 MA의 값은 거리 D 보다 크다. 그래서, 스텝 2860으로 진행하고, 연산부(170a)는 NPC와 가장 가까운 아군 MC 와의 거리 DAPC를 구한다.
다음에, 스텝 2865로 진행하여, 판정부(175)는 거리 DAPC에 마진 MB를 가산한 값이 거리 D 보다 작은지의 여부를 판정한다. 이 시점에서는, 거리 DAPC + 마진 MB의 값은 거리 D 보다 크다. 그래서, 스텝 2835로 진행하고, RAM(120)에 등록되어 있는 모든 관리 캐릭터의 처리를 끝낼 때까지 스텝 2805로 되돌아와서 각 관리 캐릭터의 변경 판정 처리를 실행한다.
다음에, 도 20에 나타낸 바와 같이, NPC(NPC31)에 대해서 아군 PC2를 대신하는 아군 MC 및 적군 PC3을 대신하는 적군 MC가 근접한 경우에, 적군 MC는 자기 PC1을 대신하는 SC로부터 마진 MA 이상 NPC의 가까이에 위치하고 있는 경우에 대하여 설명한다. 이 상태에서, 도 28의 캐릭터 변경 판정 처리가 실행되면, 스텝 2800 ~ 2810, 스텝 2850에 이어서 계속되는 스텝 2855에서, 판정부(175)는 「YES」로 판정하고, 스텝 2870으로 진행하여, 도 30의 적군 MC 관리 변경 처리를 실행한다. 즉, 스텝 3000 ~ 3025를 실행함으로써, NPC의 관리가 SC를 관리하는 게임 서버(100)로부터 적군 MC를 관리하는 MC관리 기기로 바뀐다. 이와 같이, NPC에 대해서 아군 MC 및 적군 MC의 양쪽이 근접한 경우에, 적군 MC가 SC로부터 마진 MA 이상 NPC의 가까이에 위치하고 있는 경우, 적군 MC를 관리하는 게임기가, 아군 MC를 관리하는 게임기보다 우선적으로 NPC(관리 캐릭터)를 관리하도록 관리 캐릭터가 전환된다.
한편, 게임 상태가, 도 19의 상태로부터 도 21의 상태(즉, 적군 PC3를 대신하는 적군 MC가 자기 PC1을 대신하는 SC로부터 마진 MA 이상 NPC(NPC31)의 근처에 위치하고 있지 않은 경우이면서, 아군 PC2를 대신하는 아군 MC가 자기 PC1을 대신 하는 SC로부터 마진 MB 이상 NPC의 가까이에 위치하고 있는 상태)로 천이하는 경우에 대하여 설명한다. 이 상태에서, 도 28의 캐릭터 변경 판정 처리가 실행되면, 스텝 2800 ~ 2810, 스텝 2850 ~ 2860에 이어서 계속되는 스텝 2865에서, 판정부(175)는 「YES」로 판정하고, 스텝 2840으로 진행하여, 도 29의 아군 MC 관리 변경 처리를 실행한다. 즉, 스텝 2900 ~ 2925를 실행함으로써, NPC의 관리가 SC를 관리하는 게임 서버(100)으로부터 아군 MC를 관리하는 MC관리 기기로 전환된다.
이상에서 설명한 바와 같이, 본 실시예에 의하면, 게임에 참가하는 플레이어가 모자라는 경우라도(예를 들어, 게임에 참가하는 사용자가 한 명이라 하더라도), 게임에 참가하는 플레이어의 PC에 대해서는 실시예 1의 원칙(NPC를 클라이언트 측에서 관리하는)이 적용되어, 플레이어가 없거나 하나 또는 둘 이상의 SC 및 그 SC의 소대 중의 NPC는 기본적으로 게임 서버(100)에 의해 자동적으로 관리된다. 이에 따라, 참가자가 모자라도, 사용자는 게임을 즐길 수가 있다. 또, 클라이언트 기기에 의해 관리되는 캐릭터와 서버 기기에 의해 관리되는 캐릭터로 나눔으로써, 시스템 전체의 처리를 분산시켜서, 게임을 순조롭게 진행시킬 수 있다.
(SC를 중심으로 한 캐릭터 관리)
그리고, 본 실시예에서도, 예를 들어, 판정부(175)는 연산부(170a)에 의해 연산된 각 관리 캐릭터의 위치 변화에 따라, 게임 서버(100)에 의해 관리되는 SC로부터 제1 소정 범위 내에 위치하는 하나 또는 둘 이상의 논플레이어 캐릭터(NPC)를 게임 서버(100)가 관리 캐릭터로서 관리하도록 판정해도 된다.
이와 같이 SC를 중심으로 한 캐릭터 관리 처리를 실행하는 경우, 판정부 (175)는, MC 관리 기기에 의해 관리되는 MC와 NPC의 관계를 적군과 아군으로 설정하고, 게임 서버(100)에 의해 관리되는 SC와 해당 NPC의 관계가 아군일 경우에는, NPC가 게임 서버(100)에 의해 관리되는 SC로부터 제1 소정 범위 내에 위치하고 있어도, MC로부터 제2 소정 범위 내(예를 들어, 제1 소정 범위 < 제2 소정 범위)에 위치할 때는, MC를 관리하는 MC 관리 기기가 해당 NPC를 관리하도록 판정해도 된다.
또, SC로부터 소정 범위 내에 미리 정해진 소정 개수 이상의 NPC가 존재하면 와, 해당 소정 개수의 NPC의 관리를 전환해도 된다. 또, SC로부터 소정 범위 내에 소정 개수 이상의 NPC가 존재하고 나서, 소정 시간 경과 후에 NPC의 관리를 전환해도 된다.
이에 의하면, NPC, MC 및 SC가 근방에 위치하는 전투 태세에서, NPC를 우선적으로 MC를 관리하는 MC관리 기기가 관리하도록 할 수 있어서, 결과적으로 게임 전체의 처리를 순조롭게 진행시킬 수 있다.
또, 게임 서버(100)(SV)가 관리하는 각 NPC에 대하여, 가장 가까운 SC와 가장 가까운 MC의 위치 관계로부터 NPC의 관리를 변경해도 된다. 예를 들어, 게임 서버(100)가 관리하는 NPC와 MC의 거리가, 게임 서버(100)가 관리하는 NPC와 SC의 거리보다 짧아질 경우에 NPC의 관리를 변경하도록 해도 된다.
또, 네트워크 게임 시스템(10)에서는, 적군과 아군끼리의 플레이어 캐릭터에 게임 서버(100)에서 관리되는 서버 캐릭터나 논플레이어 캐릭터가 부수되도록 캐릭터를 구성해도 되고, 적군이 모두 게임 서버(100)에서 관리되는 서버 캐릭터이며, 아군이 모두 게임 기기(200)에서 관리되는 플레이어 캐릭터로 하는 캐릭터 구성으로 해도 된다.
또, 플레이어가 모자라지 않더라도, 게임 서버(100)가 자동적으로 조작하는 서버 캐릭터 및 관리 캐릭터(논플레이어 캐릭터)를 게임 상에 등장시켜도 된다. 또, 게임 서버(100)가 자동적으로 조작하는 복수개의 서버 캐릭터가 적군과 아군의 관계라도 된다.
상기 실시예에 있어서, 각 부의 동작은 서로 관련되어 있어서, 상호간의 관련을 고려하면서, 일련의 동작으로서 전환시킬 수 있다. 그리고, 이와 같은 전환에 의하여, 캐릭터를 관리하는 클라이언트 기기의 발명의 실시예를 클라이언트 기기의 캐릭터 관리 방법의 실시예로 할 수 있다.
따라서, 본 발명에 따른 클라이언트 기기는, 네트워크를 통하여 서버 기기에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써, 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임에서의 각 클라이언트 기기의 캐릭터 관리 방법으로서, 각 클라이언트 기기는 상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록하고, 상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 것을 특징으로 하는 각 클라이언트 기기의 캐릭터 관리 방법으로 할 수 있다.
또, 상기 각 클라이언트 기기의 상기 캐릭터 관리 방법에서는, 각 클라이언트 기기는, 연산된 각 관리 캐릭터의 위치 변화에 따라, 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는 클라이언트 기기를 판정하고, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기 클라이언트 기기의 기억부로부터 삭제하고, 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 것이 가능하다.
또, 상기 각 부의 동작을, 각 부의 처리로 전환함으로써, 프로그램의 실시예로 할 수 있다. 또, 프로그램을, 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체에 기억시킴으로써, 프로그램의 실시예를 프로그램에 기록한, 컴퓨터가 판독 가능한 기록 매체의 실시예로 할 수 있다.
이상, 첨부 도면을 참조하면서 본 발명의 바람직한 실시예에 대하여 설명하였으나, 본 발명은 관련되는 예로 한정되지 않는 것은 물론이다. 당업자라면, 특허 청구의 범위에 기재된 범주 내에서, 각종 변경예 또는 수정예를 실현할 수 있는 것은 분명하고, 이들에 대하여도 당연하게 본 발명의 기술적 범위에 속하는 것으로 이해된다.
예를 들어, 상기 각 실시예에 따른 집단 전투 게임은 네트워크 게임 시스템의 일례이며, 네트워크 게임의 다른 예로서는, 자신의 플레이어 캐릭터를 조작함으로써 플레이어 캐릭터의 레벨이나 능력 등의 파라미터를 상승시키고, 네트워크를 통하여 접속된 다른 클라이언트 기기를 조작하는 다른 플레이어 캐릭터와 입신 출세를 겨루거나 또는, 네트워크를 통하여 다른 플레이어 캐릭터와 채팅을 하여 커뮤니케이션을 즐기는 게임이 있을 수 있다.
또, 상기 각 실시예에서는, 8명의 플레이어가 참가하는 네트워크 게임의 예를 설명하였으나, 본 발명에 따른 네트워크 게임 시스템은, 이에 한정되지 않고, 예를 들어, 서버 기기 대 1대의 클라이언트 기기로 전투하는 1인 플레이어용의 게임 형태도 포함되는 것은 말할 것도 없다.
또, 게임에 참가하고 있는 다른 플레이어가 적을 때, 본래 인원수만큼의 플레이어가 참가하였다면 존재하였을 다른 PC 및 그 PC의 소대 중의 NPC를, 모두 NPC로서 등장시키고, 이들 NPC를 현재 참가하고 있는 어딘가의 클라이언트 기기(클라이언트 기기가 1개의 경우도 포함)에 분산시켜서 관리시키거나, 일률적으로 서버 기기에 관리시켜도 된다. 이 경우, 시스템의 내부 처리에서, PC는 이미 사용자 조작에 따라 동작하는 본래의 PC가 아니므로, 이른바 상대 위치 관계를 구하는 처리에서도 NPC로서 처리한다.
본 발명은, 복수개의 캐릭터가 등장하는 네트워크 게임 시스템에서 그 캐릭터를 순조롭게 동작시키기 위해, 등장하는 각 캐릭터의 처리 및 관리를 분산시켜서 실행하는 네트워크 게임 시스템, 클라이언트 기기 및 서버 기기에 적용 가능하다.

Claims (34)

  1. 네트워크를 통하여 서버 기기에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터(non player character)를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임 시스템으로서,
    상기 각 클라이언트 기기는,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와,
    상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따라서, 상기 각 관리 캐릭터의 위치 및 동작을 변화시키고, 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와,
    연산된 변화 후의 상기 각 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 상기 서버 기기에 송신하며, 게임에 참가하고 있는 다른 클라이언트 기기가 연산한 캐릭터 정보 패킷을 상기 서버 기기로부터 수신하는 통신부를 구비하고,
    상기 서버 기기는,
    상기 송신된 캐릭터 정보 패킷을 수신하고, 수신된 캐릭터 정보 패킷을 상기 게임에 참가하고 있는 다른 클라이언트 기기에 송신하고,
    상기 다른 클라이언트 기기는,
    상기 송신된 캐릭터 정보 패킷을 수신하고, 수신된 캐릭터 정보에 기초하여 변화 후의 캐릭터 정보를 기억하는, 네트워크 게임 시스템.
  2. 제1항에 있어서,
    상기 각 클라이언트 기기는,
    연산된 상기 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리할지의 여부를 판정하는 판정부를 더 구비하고,
    상기 각 클라이언트 기기의 기억부는,
    상기 판정부에 의해 관리하지 않는 것으로 판정된 관리 캐릭터의 등록을 삭제하고,
    상기 각 클라이언트 기기의 통신부는,
    상기 판정부에 의해 상기 관리 캐릭터가 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 상기 관리 캐릭터의 캐릭터 정보를 포함한 캐릭터 관리 변경 패킷을 서버 기기에 송신하고,
    상기 서버 기기는,
    상기 캐릭터 관리 변경 패킷을 수신하고, 수신된 캐릭터 관리 변경 패킷을 상기 다른 클라이언트 기기에 송신하고,
    상기 다른 클라이언트 기기는,
    송신된 상기 캐릭터 관리 변경 패킷을 수신하고, 수신된 캐릭터 정보를 기억하는 동시에 수신된 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하는 것을 특징으로 하는 네트워크 게임 시스템.
  3. 제1항에 있어서,
    상기 네트워크 게임 시스템은,
    상기 복수개의 클라이언트 기기에 의해 관리되는 복수개의 플레이어 캐릭터와 상기 복수개의 플레이어 캐릭터를 호위하는 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 적군과 아군의 집단을 형성하여 서로 전투하는 게임을 제공하는 시스템인 것을 특징으로 하는 네트워크 게임 시스템.
  4. 네트워크에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함한 복수개의 캐릭터가 등장하는 네트워크 게임에 참가하는 클라이언트 기기로서,
    상기 클라이언트 기기는,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와,
    상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따라서, 상기 각 관리 캐릭터의 위치 및 동작을 변화시키고, 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부를 구비하는 것을 특징으로 하는 클라이언트 기기.
  5. 제4항에 있어서,
    상기 클라이언트 기기에 있어서,
    연산된 상기 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리할지의 여부를 판정하는 판정부를 더 구비하는 것을 특징으로 하는 클라이언트 기기.
  6. 제5항에 있어서,
    상기 클라이언트 기기는,
    복수개의 클라이언트 기기에 의해 관리되는 복수개의 플레이어 캐릭터와 복수개의 플레이어 캐릭터를 호위하는 논플레이어 캐릭터로 이루어지는 복수개의 캐릭터가 적군과 아군의 집단을 형성하여 서로 전투하는 게임을 제공하는 것을 특징으로 하는 클라이언트 기기.
  7. 제4항에 있어서,
    상기 클라이언트 기기가,
    생성된 상기 캐릭터 정보에 기초하여 그 캐릭터 정보에 의해 특정되는 캐릭터에 관한 화상을 생성하는 화상 생성부를 더 구비하는 것을 특징으로 하는 클라이언트 기기.
  8. 제5항에 있어서,
    상기 판정부는,
    구해진 상기 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터로부터 소정 범위 내에 위치하는 플레이어 캐릭터를 관리하는 클라이언트 기기에 의하여 관리되도록 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  9. 제6항에 있어서,
    상기 판정부는,
    구해진 상기 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터가 상기 각 관리 캐릭터의 적군 플레이어 캐릭터를 관리하는 클라이언트 기기에 의하여 우선적으로 관리 되도록 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  10. 제6항에 있어서,
    상기 판정부는,
    구해진 상기 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터에 가장 가까운 플레이어 캐릭터를 관리하는 클라이언트 기기에 의하여 관리되도록 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  11. 제10항에 있어서,
    상기 판정부는,
    상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치가 상기 각 관리 캐릭터에 가장 가까운 경우라도, 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치로부터 소정 거리 이상 상기 각 관리 캐릭터의 가까이에 위치하지 않는 한, 자기 클라이언트 기기가 상기 각 관리 캐릭터를 관리하는 것으로 판정하는 것을 특징으로 하는 클라이언트 기기.
  12. 제11항에 있어서,
    상기 소정 거리는, 상기 관리 캐릭터를 관리하는 클라이언트 기기를 전환하는 판정이 상기 판정부에 의해 빈번하게 발생하지 않는 마진(margin)이 되는 값으로 설정되는 것을 특징으로 하는 클라이언트 기기.
  13. 제12항에 있어서,
    상기 소정 거리는, 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터 와 상기 각 관리 캐릭터의 관계가 적군과 아군일 경우에, 그 관계가 아군일 경우에 비하여 짧게 설정되는 것을 특징으로 하는 클라이언트 기기.
  14. 제6항에 있어서,
    상기 판정부는,
    상기 각 관리 캐릭터가, 자기 클라이언트 기기에 의해 관리되는 플레이어 캐릭터에 대해서 적군 캐릭터인지 아군 캐릭터인지를 구별하지 않고, 연산된 상기 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  15. 제6항에 있어서,
    상기 판정부는,
    상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터가 상기 각 관리 캐릭터 및 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 적군이면서 상기 다른 클라이언트 기기가 관리하는 플레이어 캐릭터가 상기 각 관리 캐릭터의 일정 범위 내에 위치하는 경우에는, 구해진 상기 위치의 상대 관계와 관계없이, 상기 다른 클라이언트 기기가 상기 각 관리 캐릭터를 관리하는 것으로 판정하는 것을 특징으로 하는 클라이언트 기기.
  16. 제5항에 있어서,
    상기 클라이언트 기기는,
    상기 판정부에 의하여 상기 각 관리 캐릭터가 상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 판정된 상기 관리 캐릭터의 캐릭터 정보를 포함하는 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 통신부를 더 구비하고,
    상기 기억부는,
    상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 삭제하는 것을 특징으로 하는 클라이언트 기기.
  17. 제16항에 있어서,
    상기 통신부는,
    상기 네트워크를 통하여 상기 서버 기기에 접속된 다른 클라이언트 기기로부터 송신된 캐릭터 관리 변경 패킷을 수신하고,
    상기 기억부는,
    수신한 상기 캐릭터 관리 변경 패킷에 포함되는 캐릭터 정보를 기억하고, 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하는 것을 특징으로 하는 클라이언트 기기.
  18. 제6항에 있어서,
    상기 다른 클라이언트 기기가 네트워크를 통하여 복수개 접속되고,
    상기 다른 클라이언트 기기 중, 제1의 다른 클라이언트 기기가 관리하는 플 레이어 캐릭터가 적군이며, 제2의 다른 클라이언트 기기가 관리하는 플레이어 캐릭터가 아군인 경우,
    상기 판정부는,
    구해진 상기 위치의 상대 관계에 기초하여, 상기 각 관리 캐릭터가 제2의 다른 클라이언트 기기보다 제1의 다른 클라이언트 기기가 우선적으로 관리되도록 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  19. 제5항에 있어서,
    상기 판정부는,
    소정 주기마다 상기 각 관리 캐릭터를 관리할지의 여부를 판정하는 것을 특징으로 하는 클라이언트 기기.
  20. 제5항에 있어서,
    상기 각 논플레이어 캐릭터는,
    상기 네트워크 게임에 참가하고 있는 어느 하나의 클라이언트 기기 중 어느 하나에 각각 분산되어 관리되는 것을 특징으로 하는 클라이언트 기기.
  21. 제1항에 있어서,
    상기 네트워크 게임 시스템은,
    상기 복수개의 클라이언트 기기에 의해 관리되는 복수개의 플레이어 캐릭터와 상기 복수개의 논플레이어 캐릭터가 집단을 형성하여 서로 협력하는 게임을 제공하는 시스템인 것을 특징으로 하는 네트워크 게임 시스템.
  22. 복수개의 플레이어 캐릭터와 복수개의 논플레이어 캐릭터를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임을 관리하는 서버 기기로서,
    상기 서버 기기는,
    네트워크에 접속된 복수개의 클라이언트 기기에 의해 관리되는 상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 기억하는 기억부와,
    상기 캐릭터 정보에 포함되는 위치 정보에 기초하여, 각 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 각 클라이언트 기기가 관리하는 논플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 상기 위치의 상대 관계에 기초하여 상기 논플레이어 캐릭터를 관리하는 클라이언트 기기를 판정하는 판정부와,
    상기 각 논플레이어 캐릭터를 관리하는 것으로 판정된 클라이언트 기기에 캐릭터 관리 변경 패킷을 송신하는 통신부를 구비하는 것을 특징으로 하는 서버 기기.
  23. 삭제
  24. 삭제
  25. 네트워크에 접속된 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임을 컴퓨터에 실행시키기 위한 캐릭터 관리 프로그램을 기억한, 컴퓨터가 판독 가능한 기억 매체로서,
    상기 복수개의 캐릭터의 위치 정보를 포함한 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억시키는 처리와,
    상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록시키는 처리와,
    상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 각 클라이언트 기기에 대해서 상기 게임의 전개에 따라서, 상기 각 관리 캐릭터의 위치 및 동작을 변화시키고, 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는 캐릭터 관리 프로그램을 기억한, 컴퓨터가 판독 가능한 기억 매체.
  26. 제25항에 있어서,
    상기 캐릭터 관리 프로그램을 기억한, 컴퓨터가 판독 가능한 기억 매체가,
    연산된 상기 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 각 관리 캐릭터의 연산 후의 위치와 자기 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치와 다른 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 상기 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리하는 클라이언트 기기를 판정하는 처리와,
    상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기 클라이언트 기기의 기억부로부터 삭제하는 처리와,
    상기 다른 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함하는 캐릭터 관리 변경 패킷을 서버 기기에 송신하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는 캐릭터 관리 프로그램을 기억한, 컴퓨터가 판독 가능한 기억 매체.
  27. 네트워크를 통하여 서버 기기에 접속된 하나 또는 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 하나 또는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임 시스템으로서,
    상기 각 클라이언트 기기는,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와,
    상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따라서, 상기 각 관리 캐릭터의 위치 및 동작을 변화시키고, 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와,
    연산된 변화 후의 상기 각 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 상기 서버 기기에 송신하며, 게임에 참가하고 있는 다른 클라이언트 기기가 연산한 캐릭터 정보 패킷을 상기 서버 기기로부터 수신하는 통신부를 구비하고,
    상기 서버 기기는,
    송신된 상기 캐릭터 정보 패킷을 수신하고, 수신된 캐릭터 정보 패킷을 게임에 참가하고 있는 상기 다른 클라이언트 기기에 송신하고,
    상기 다른 클라이언트 기기는,
    송신된 상기 캐릭터 정보 패킷을 수신하고, 수신된 캐릭터 정보에 기초하여 변화 후의 상기 캐릭터 정보를 기억하는 것을 특징으로 하는 네트워크 게임 시스템.
  28. 제27항에 있어서,
    상기 서버 기기는,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 기억하고, 상기 논플레이어 캐릭터 중 자기 서버 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 등록하는 기억부와,
    상기 기억부에 기억된 캐릭터 정보를 사용하여, 상기 게임의 전개에 따른 상 기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 연산부와,
    연산된 변화 후의 상기 각 관리 캐릭터의 캐릭터 정보를 캐릭터 정보 패킷으로서 상기 게임에 참가하고 있는 모든 클라이언트 기기에 송신하는 통신부를 더 구비하는 것을 특징으로 하는 네트워크 게임 시스템.
  29. 제28항에 있어서,
    상기 게임에 등장하는 상기 복수개의 캐릭터는, 상기 서버 기기의 제어에 의해 자동적으로 동작하는 하나 또는 복수개의 서버 캐릭터를 더 포함하고,
    상기 서버 기기는, 또한,
    연산된 상기 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 서버 기기가 관리하는 어느 하나의 상기 서버 캐릭터의 위치와 상기 클라이언트 기기가 관리하는 플레이어 캐릭터 또는 다른 서버 캐릭터의 위치의 상대 관계를 구하고, 구해진 위치의 상대 관계에 기초하여 각 관리 캐릭터를 관리할지의 여부를 상기 서버 캐릭터마다 판정하는 판정부를 더 구비하고,
    상기 서버 기기의 기억부는,
    상기 서버 기기의 판정부에 의해 관리하지 않는 것으로 판정된 관리 캐릭터의 등록을 삭제하고,
    상기 서버 기기의 통신부는,
    상기 서버 기기의 판정부에 의해 상기 관리 캐릭터가 상기 클라이언트 기기에 의해 관리되는 것으로 판정된 경우, 상기 관리 캐릭터의 캐릭터 정보를 포함하는 캐릭터 관리 변경 패킷을 상기 클라이언트 기기에 송신하고,
    상기 클라이언트 기기는,
    송신된 상기 캐릭터 관리 변경 패킷을 수신하고, 수신된 캐릭터 정보를 기억하는 동시에 수신된 상기 캐릭터 정보에 의해 특정되는 캐릭터를 관리 캐릭터로서 등록하는 것을 특징으로 하는 네트워크 게임 시스템.
  30. 제29항에 있어서,
    상기 네트워크 게임 시스템은,
    하나 또는 복수개의 클라이언트 기기에 의해 관리되는 하나 또는 복수개의 플레이어 캐릭터와 하나 또는 복수개의 플레이어 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 아군 집단을 형성하고, 또한 상기 서버 기기에 의해 관리되는 하나 또는 복수개의 서버 캐릭터와 상기 서버 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 적군 집단 또는 아군 집단 중 적어도 어느 하나의 집단을 형성하여 서로 전투하는 게임을 제공하는 시스템인 것을 특징으로 하는 네트워크 게임 시스템.
  31. 네트워크를 통하여 서버 기기에 접속되는 하나 또는 복수개의 클라이언트 기기를 사용자가 조작함으로써 입력된 정보에 따라 동작하는 하나 또는 복수개의 플레이어 캐릭터와, 자동적으로 동작하는 복수개의 논플레이어 캐릭터를 포함하는 복수개의 캐릭터가 등장하는 네트워크 게임을 컴퓨터에 실행시키기 위한 캐릭터 관리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체로서,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 각 클라이언트 기기의 기억부에 각각 기억시키는 처리와,
    상기 논플레이어 캐릭터 중 자기 클라이언트 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 각 클라이언트 기기의 기억부에 각각 등록시키는 처리와,
    상기 각 클라이언트 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 각 클라이언트 기기에 대해서 상기 게임의 전개에 따라서, 상기 각 관리 캐릭터의 위치 및 동작을 변화시키고, 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 컴퓨터에 실행시키는 것을 특징으로 하는 캐릭터 관리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  32. 제31항에 있어서,
    상기 캐릭터 관리 프로그램이,
    상기 복수개의 캐릭터의 위치 정보를 포함하는 캐릭터 정보를 상기 서버 기기의 기억부에 기억시키는 처리와,
    상기 논플레이어 캐릭터 중 자기 서버 기기가 관리하는 논플레이어 캐릭터를 관리 캐릭터로서 상기 서버 기기의 기억부에 등록시키는 처리와,
    상기 서버 기기의 기억부에 기억된 캐릭터 정보를 사용하여, 상기 서버 기기에 대해서 상기 게임의 전개에 따른 상기 각 관리 캐릭터의 위치 변화의 정도 및 동작 변화의 정도를 변화 후의 캐릭터 정보로서 상기 관리 캐릭터마다 연산하는 처리를 추가로 컴퓨터에 실행시키는 것을 특징으로 하는
    캐릭터 관리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  33. 제32항에 있어서,
    상기 게임에서 등장하는 상기 복수개의 캐릭터는, 상기 서버 기기의 제어에 의해 자동적으로 동작하는 하나 또는 복수개의 서버 캐릭터를 더 포함하고,
    상기 캐릭터 관리 프로그램은,
    연산된 상기 각 관리 캐릭터의 위치 변화의 정도에 기초하여, 상기 각 관리 캐릭터의 연산 후의 위치와 자기 서버 기기가 관리하는 어느 하나의 서버 캐릭터의 위치와 클라이언트 기기가 관리하는 플레이어 캐릭터의 위치의 상대 관계를 구하고, 구해진 상기 위치의 상대 관계에 기초하여 각 관리 캐릭터를 상기 서버 캐릭터마다 관리하는 서버 기기 또는 클라이언트 기기를 판정하는 처리와,
    상기 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 등록을 상기 자기 서버 기기의 기억부로부터 삭제하는 처리와,
    상기 클라이언트 기기에 의해 관리되는 것으로 판정된 관리 캐릭터의 캐릭터 정보를 포함하는 캐릭터 관리 변경 패킷을 상기 클라이언트 기기에 송신하는 처리를 추가로 컴퓨터에 실행시키는 것을 특징으로 하는
    캐릭터 관리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  34. 제33항에 있어서,
    상기 캐릭터 관리 프로그램은,
    하나 또는 복수개의 클라이언트 기기에 의해 관리되는 하나 또는 복수개의 플레이어 캐릭터와 하나 또는 복수개의 플레이어 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 아군 집단을 형성하고, 또한 상기 서버 기기에 의해 관리되는 하나 또는 복수개의 서버 캐릭터와 상기 서버 캐릭터를 호위하는 하나 또는 복수개의 논플레이어 캐릭터가 적군 집단 또는 아군 집단 중 적어도 어느 하나의 집단을 형성하여 서로 전투하는 게임을 제공하는 프로그램인 것을 특징으로 하는
    캐릭터 관리 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060017201A 2005-09-08 2006-02-22 네트워크 게임 시스템, 클라이언트 기기, 서버 기기 KR100781201B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005260877 2005-09-08
JPJP-P-2005-00260877 2005-09-08
JPJP-P-2005-00311813 2005-10-26
JP2005311813A JP3968758B2 (ja) 2005-09-08 2005-10-26 ネットワークゲームシステム,クライアント機器,サーバ機器,キャラクタ管理プログラムおよびキャラクタ管理プログラムを記憶した記憶媒体

Publications (2)

Publication Number Publication Date
KR20070029038A KR20070029038A (ko) 2007-03-13
KR100781201B1 true KR100781201B1 (ko) 2007-11-30

Family

ID=37830668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060017201A KR100781201B1 (ko) 2005-09-08 2006-02-22 네트워크 게임 시스템, 클라이언트 기기, 서버 기기

Country Status (4)

Country Link
US (1) US20070054716A1 (ko)
JP (1) JP3968758B2 (ko)
KR (1) KR100781201B1 (ko)
CN (1) CN1927432B (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423333B2 (en) 2006-01-16 2013-04-16 Sony Corporation System for managing objects of virtual space
JP5132058B2 (ja) * 2006-01-16 2013-01-30 株式会社ソニー・コンピュータエンタテインメント シミュレータシステム
US7974902B2 (en) * 2006-02-14 2011-07-05 Leviathan Entertainment, Llc Method and apparatus for massively multiplayer online games
US8251810B2 (en) * 2006-02-14 2012-08-28 Leviathan Entertainment, Llc Video game that generates characters from other characters
US7974901B2 (en) * 2006-02-14 2011-07-05 Leviathan Entertainment, Llc Video game with character parameters derived from other characters
US8750115B2 (en) * 2006-11-21 2014-06-10 Verizon Patent And Licensing Inc. Priority-based buffer management
US8066571B2 (en) * 2008-06-09 2011-11-29 Metaplace, Inc. System and method for enabling characters to be manifested within a plurality of different virtual spaces
JP4892765B2 (ja) * 2008-08-26 2012-03-07 啓蔵 渡邉 ネットワークゲームシステム及びプログラム
JP5624728B2 (ja) * 2009-04-07 2014-11-12 株式会社タイトー ゲームシステム、ゲームサーバ
US8276084B2 (en) * 2009-06-01 2012-09-25 International Business Machines Corporation Peer-to-peer based content delivery in a virtual universe
JP5190486B2 (ja) * 2010-04-26 2013-04-24 株式会社スクウェア・エニックス ネットワークゲームシステム、クライアント装置及びプログラム
US9421460B2 (en) * 2010-08-31 2016-08-23 Sony Interactive Entertainment Inc. Offline Progress of console game via portable device
US8827817B2 (en) * 2010-12-22 2014-09-09 Electronics And Telecommunications Research Institute Apparatus and method for collecting game data
JP5572142B2 (ja) * 2011-09-30 2014-08-13 株式会社スクウェア・エニックス ネットワークゲームシステム、サーバ装置及びゲーム装置
US8851987B2 (en) * 2011-12-12 2014-10-07 Steelseries Aps Method and apparatus for adapting to gaming venue states
CN102693548B (zh) * 2012-05-09 2015-12-16 北京像素软件科技股份有限公司 一种基于网络终端显示的角色掉块的方法、装置和系统
US9017170B2 (en) * 2012-05-23 2015-04-28 King.Com Limited Method and apparatus for interactive gameplay across multiple computing platforms
JP6157223B2 (ja) * 2012-05-31 2017-07-05 韓國電子通信研究院Electronics and Telecommunications Research Institute 効果的な不正ユーザを検出するためのオンラインゲームパケット生成方法及び装置
US9849389B2 (en) 2012-10-03 2017-12-26 Gree, Inc. Method of synchronizing online game, and server device
EP2722085A1 (en) * 2012-10-18 2014-04-23 Bigpoint Inc. Online game system, method, and computer-readable medium
CN105554113A (zh) * 2015-11-27 2016-05-04 广州多益网络科技有限公司 一种可容纳大量玩家的游戏处理方法及系统
CN105446742B (zh) * 2015-12-11 2019-02-12 珠海金山网络游戏科技有限公司 一种人工智能执行任务的优化方法
JP6966806B2 (ja) * 2017-06-09 2021-11-17 株式会社コナミデジタルエンタテインメント ゲームシステム、及びプログラム
JP6709891B2 (ja) * 2017-06-09 2020-06-17 株式会社コナミデジタルエンタテインメント ゲームシステム、及びプログラム
US10279266B2 (en) * 2017-06-19 2019-05-07 International Business Machines Corporation Monitoring game activity to detect a surrogate computer program
CN107634875B (zh) * 2017-09-11 2020-08-28 中体彩科技发展有限公司 游戏数据离散通讯的方法及装置
JP6560411B1 (ja) * 2018-07-19 2019-08-14 株式会社Cygames ゲームシステム、ゲームシステムの制御方法、サーバ及びプログラム
CN116744272A (zh) * 2023-08-07 2023-09-12 北京自在游网络科技有限公司 一种基于蓝牙的手游数据传输系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209606A (ja) * 2000-01-27 2001-08-03 Mitsubishi Electric Corp 仮想空間共有システム
KR20040010038A (ko) * 2002-07-26 2004-01-31 이남재 온라인 롤플레잉게임용 서버

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3932462B2 (ja) * 1997-05-27 2007-06-20 ソニー株式会社 クライアント装置、画像表示制御方法、共有仮想空間提供装置および方法、並びに記録媒体
JPH1157215A (ja) * 1997-08-20 1999-03-02 Fuji Xerox Co Ltd ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲームクライアント装置、対局者選定プログラムを記録した媒体及び対局者情報取得プログラムを記録した媒体
JP2003181146A (ja) * 2001-12-14 2003-07-02 Square Co Ltd ネットワークゲームシステム、ゲームサーバシステム、クライアントシステム、ネットワークゲーム処理方法、プログラム及び記録媒体
US7640300B2 (en) * 2002-06-10 2009-12-29 Microsoft Corporation Presence and notification system for maintaining and communicating information
KR20040042121A (ko) * 2002-11-13 2004-05-20 주식회사 엔씨소프트 온 라인 게임의 제공 방법 및 장치
CA2464788A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. A gaming software distribution network in a gaming system environment
US7465231B2 (en) * 2004-05-20 2008-12-16 Gametap Llc Systems and methods for delivering content over a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209606A (ja) * 2000-01-27 2001-08-03 Mitsubishi Electric Corp 仮想空間共有システム
KR20040010038A (ko) * 2002-07-26 2004-01-31 이남재 온라인 롤플레잉게임용 서버

Also Published As

Publication number Publication date
JP3968758B2 (ja) 2007-08-29
CN1927432B (zh) 2012-05-09
CN1927432A (zh) 2007-03-14
KR20070029038A (ko) 2007-03-13
US20070054716A1 (en) 2007-03-08
JP2007098063A (ja) 2007-04-19

Similar Documents

Publication Publication Date Title
KR100781201B1 (ko) 네트워크 게임 시스템, 클라이언트 기기, 서버 기기
US11103791B2 (en) Automatic movement of player character in network game
US10912998B2 (en) Network game system for executing event in network game
JP3699660B2 (ja) ゲーム装置及びネットワークゲームシステム
US8821290B2 (en) Automatic movement of disconnected character in network game
CN105705211B (zh) 游戏系统、游戏控制方法和游戏控制程序
US7843455B2 (en) Interactive animation
US20120196678A1 (en) Apparatus and method for displaying player character showing special movement state in network game
JP2007075607A (ja) ガードコンディションシステム
JP2007259988A (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
JP4534231B2 (ja) ネットワークゲームシステム,クライアント機器,サーバ機器,キャラクタ管理プログラムおよびキャラクタ管理プログラムを記憶した記憶媒体
JP4864120B2 (ja) ゲームプログラム、ゲーム装置、ゲーム制御方法
JP2020124516A (ja) ゲーム制御プログラム、ゲームシステム、及びゲーム制御方法
JP2024059229A (ja) プログラム、情報処理方法および情報処理装置
JP2022033363A (ja) ゲーム制御プログラム、ゲームシステム、及びゲーム制御方法
JP2019063628A (ja) ネットワークゲームシステム、ゲーム装置、及びプログラム

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
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20111028

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20121105

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee