JP4754243B2 - プログラム、情報記憶媒体及びゲーム装置 - Google Patents

プログラム、情報記憶媒体及びゲーム装置 Download PDF

Info

Publication number
JP4754243B2
JP4754243B2 JP2005072688A JP2005072688A JP4754243B2 JP 4754243 B2 JP4754243 B2 JP 4754243B2 JP 2005072688 A JP2005072688 A JP 2005072688A JP 2005072688 A JP2005072688 A JP 2005072688A JP 4754243 B2 JP4754243 B2 JP 4754243B2
Authority
JP
Japan
Prior art keywords
time
waiting
game
frame
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005072688A
Other languages
English (en)
Other versions
JP2006254945A (ja
Inventor
泰洋 稲川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
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 Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2005072688A priority Critical patent/JP4754243B2/ja
Publication of JP2006254945A publication Critical patent/JP2006254945A/ja
Application granted granted Critical
Publication of JP4754243B2 publication Critical patent/JP4754243B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、クライアント機であるコンピュータに、他のクライアント機との間で行うネットワークゲームを進行させるためのプログラム等に関する。
複数の独立したゲーム装置が互いにデータ授受可能に接続され、マルチプレーヤゲームが行えるように形成されたゲームシステムが知られているが、このようなゲームシステムの技術の一つとして、各ゲーム装置での表示体の動きが不揃いになることを防止するために同期表示制御を行うものがある。具体的には、各ゲーム装置において、自装置のカウント信号と受信した他のゲーム装置のカウント信号とに基づいて、受信した他のゲーム装置からの受信データを自装置の同期に合わせたデータに補正し、補正後のデータに基づいてゲーム画面を生成している(例えば、特許文献1参照)。
特許第2807625号公報
しかしながら、特許文献1の技術をネットワークゲームシステムに適用する場合、次のような問題が生じる。即ち、特許文献1は業務用ゲームシステムへの適用を前提としているため、各ゲーム装置の処理能力は等しく、また、全体として略一体の筐体で成るため、各ゲーム装置はシステム内に設けられた専用線であるデータ伝送ラインによって接続されている。一方、ネットワークゲームシステムでは、ゲーム装置として各家庭に設置されているパソコンや家庭用ゲーム装置等を用い、インターネット等の通信ネットワークを介して各ゲーム装置が接続される。この場合、各ゲーム装置での処理能力の違いや、ゲーム装置間を接続する通信ネットワークによる通信ラグ等により、各ゲーム装置において他のゲーム装置からのデータの受信遅れや受信漏れが頻繁に発生し得る。その結果、ゲーム進行が一時停止したりして、プレーヤに違和感・不満感を与えるゲーム画面となってしまう。
上記事情に鑑み、本発明は、ネットワークゲームを実行するゲームシステムにおいて、各ゲーム装置の処理能力の違いやゲーム装置間の通信ネットワークによる通信ラグ等によりゲーム画面が一時停止するといった違和感・不満感を抑制したゲーム進行制御を実現することを目的としている。
上記課題を解決するための第1の発明は、
クライアント機であるコンピュータに、各クライアント機から送信されてくるクライアント機別の入力コマンドをそれぞれのクライアント機に配信するホスト機と通信させ、自機に操作入力された入力コマンドを前記ホスト機に送信させるとともに、前記ホスト機から配信されてきた自機の入力コマンドを含む全クライアント機の入力コマンドに基づき、可変のフレーム時間間隔でフレーム画像を表示制御させていくことで、他のクライアント機との間で行うネットワークゲームの進行を制御させるためのプログラム(例えば、図17のゲームプログラム410)であって、
前記ホスト機から配信されてくる入力コマンドの受信タイミングと、当該受信した入力コマンドに基づくフレーム画像の表示制御のタイミングとに基づいて、前記フレーム時間の長さを調整するフレーム時間調整手段(例えば、図17のフレーム時間補正部232;図24のステップC7)、
として前記コンピュータを機能させるためのプログラムである。
また、第12の発明は、
各クライアント機から送信されてくるクライアント機別の入力コマンドをそれぞれのクライアント機に配信するホスト機と通信させ、自機に操作入力された入力コマンドを前記ホスト機に送信させるとともに、前記ホスト機から配信されてきた自機の入力コマンドを含む全クライアント機の入力コマンドに基づき、可変のフレーム時間間隔でフレーム画像を表示制御させていくことで、他のクライアント機との間で行うネットワークゲームの進行を制御させるクライアント機であるゲーム装置(例えば、図1,17のゲーム端末10)であって、
前記ホスト機から配信されてくる入力コマンドの受信タイミングと、当該受信した入力コマンドに基づくフレーム画像の表示制御のタイミングとに基づいて、前記フレーム時間の長さを調整するフレーム時間調整手段(例えば、図17のフレーム時間補正部232;図24のステップC7)、
を備えたゲーム装置である。
この第1又は第12の発明によれば、他のクライアント機との間でネットワークゲームを行うクライアント機において、ホスト機から配信されてくる入力コマンドの受信タイミングと、この受信した入力コマンドに基づくフレーム画像の表示制御のタイミングとに基づいて、フレーム時間の長さが調整される。従って、例えば入力コマンドの受信タイミングが遅れ、これに伴ってフレーム画像の表示制御のタイミングが遅れたといった場合に、フレーム時間を長くしてフレーム画像の表示更新速度を遅くすることで、以降のフレーム画像の表示制御のタイミング遅れを抑制し、ゲーム画面の表示が一時停止するといった不都合を防止できる。尚、各クライアント機からホスト機に送信された入力コマンドはホスト機からそれぞれのクライアント機に配信されるので、各クライアント機において、フレーム画像の表示更新速度や表示更新時刻は異なるけれども、同一のフレーム画像が生成・表示される。
また、第2の発明として、第1の発明のプログラムを、
前記フレーム時間調整手段が、予め設定された連続するn枚(nは1以上の整数)のフレーム画像を生成して表示制御する期間であるサイクル期間毎に、当該サイクル期間以降の少なくとも1サイクル期間におけるフレーム時間の長さを調整する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第2の発明によれば、サイクル期間毎に、このサイクル期間以降の少なくとも1サイクル期間におけるフレーム時間の長さが調整される。即ち、フレーム時間の長さの調整は、サイクル期間を単位として行われる。
また、第3の発明として、第1又は第2の発明のプログラムを、
予め設定された連続するn枚(nは1以上の整数)のフレーム画像を生成して表示制御する期間であるサイクル期間毎に、該サイクル期間の区切りを示す同期データを前記ホスト機に送信する同期データ送信手段(例えば、図17のクライアント部230;図24のステップC29)として前記コンピュータを機能させるためのプログラムであって、
前記ホスト機は、各クライアント機から送信されてくるクライアント機別の同期データをそれぞれのクライアント機に配信し、
前記ホスト機から配信されてくるクライアント機別の同期データの受信タイミングに基づいて、前記ホスト機から配信されてきたクライアント機別の入力コマンドが当該クライアント機で操作入力されたサイクル期間を判断する入力サイクル期間判断手段(例えば、図17のクライアント部230;図24のステップC15)、
前記入力サイクル期間判断手段により判断された同一のサイクル期間内での全クライアント機の入力コマンドに基づいて、当該サイクル期間の各フレーム画像の表示制御を行うフレーム画像表示制御手段(例えば、図17のクライアント部230;図24のステップC19)、
として前記コンピュータを機能させるためのプログラムとしても良い。
この第3の発明によれば、サイクル期間毎に同期データがホスト機に送信されるとともに、ホスト機から配信されてくるクライアント機別の同期データの受信タイミングに基づいて、受信した入力コマンドが操作入力されたサイクル期間が判断され、同一のサイクル期間内での全クライアント機の入力コマンドに基づいて、このサイクル期間内でのフレーム画像の表示制御が行われる。
また、第4の発明として、第1〜第3の何れかの発明のプログラムを、
前記ホスト機からの入力コマンドの配信待ちによるフレーム画像の表示制御の一時停止状態である待ち状態の発生を検出する待ち状態検出手段(例えば、図17のクライアント部230;図24のステップC25:NO〜C27)、
として前記コンピュータを機能させ、
前記フレーム時間調整手段が、前記待ち状態検出手段による検出に応じて、前記フレーム時間を長くさせるフレーム時間長期化手段(例えば、図17のフレーム時間補正部232;図26のステップE3)を有する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第4の発明によれば、入力コマンドの受信待ちによるフレーム画像の表示制御の一時停止状態である待ち状態の発生が検出され、この検出に応じてフレーム時間の長さが長くされる。従って、待ち状態の発生の検出に応じてフレーム時間が長くされることで、以降に発生する待ち状態の継続時間(待ち時間)が短くなり、待ち状態の発生が抑制されてゲーム画面の表示が一時停止するといった不都合を抑制できる。またこのとき、例えば検出された待ち時間が長い程、フレーム時間をより長くすることで、発生する待ち状態を効率良く抑制することが可能となる。
また、第5の発明として、第4の発明のプログラムを、
前記待ち状態検出手段が、前記待ち状態の継続時間である待ち時間を検出する待ち時間検出手段(例えば、図17のクライアント部230;図24のステップC25:NO〜C27)を有し、
前記フレーム時間長期化手段が、前記待ち時間検手段により検出された待ち時間を基に、前記フレーム時間を長くさせる程度を決定する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第5の発明によれば、待ち時間が検出され、この検出された待ち時間に基づいた程度でフレーム時間が長くされる。
また、第6の発明として、第4又は第5の発明のプログラムを、
前記フレーム時間長期化手段が、前記フレーム時間を漸次長くさせるように前記コンピュータを機能させるためのプログラムとしても良い。
この第6の発明によれば、フレーム時間が漸次長くされる。従って、フレーム時間を徐々に長くさせることで、フレーム画像の表示更新速度が急激に変化してプレーヤに違和感を与えるゲーム画面となってしまうことを防止できる。
また、第7の発明として、第1〜第6の何れかの発明のプログラムを、
前記ホスト機からの入力コマンドの配信待ちによるフレーム画像の表示制御の一時停止状態である待ち状態の発生を検出する待ち状態検出手段(例えば、図17のクライアント部230;図24のステップC25:NO〜C27)、
前記待ち状態検出手段により検出された待ち状態の発生状況を待ち状況情報として前記ホスト機に送信する待ち状況送信手段(例えば、図17のクライアント部230;図24のステップC29)、
として前記コンピュータを機能させ、
前記ホスト機は、各クライアント機から受信したクライアント機別の待ち状況情報をそれぞれのクライアント機に配信し、
前記フレーム時間調整手段が、前記ホスト機から配信されてきた待ち状況情報に基づいて、前記フレーム時間を短くさせるフレーム時間短縮化手段(例えば、図17のフレーム時間補正部232;図26のステップE5〜E9)を有する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第7の発明によれば、待ち状態の発生が検出され、この検出された待ち状態の発生状況が待ち状況情報としてホスト機に送信されるとともに、ホスト機から配信されてきたクライアント機別の待ち状況情報に基づいた程度でフレーム時間が短くされる。これにより、長くされたフレーム時間を、例えばクライアント機に応じて予め設定されている標準のフレーム時間に戻すことが可能となる。またこのとき、待ち状況情報に基づいてフレーム時間が短くされるので、例えば自機のフレーム時間が長くなったことで他機に待ち状態が発生しているといった場合に、フレーム時間をより短くすることにより、他機に発生している待ち状態を抑制させつつ、自機のフレーム時間を短くさせるといったことが可能となる。
また、第8の発明として、第7の発明のプログラムを、
予め設定された連続するn枚(nは1以上の整数)のフレーム画像を生成して表示制御する期間であるサイクル期間毎に、前記待ち状態検出手段が待ち状態の発生を検出し、前記待ち状況送信手段が待ち状況情報を前記ホスト機に送信する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第8の発明によれば、サイクル期間毎に、待ち状態の発生が検出され、この待ち状態の待ち状況情報がホスト機に送信される。
また、第9の発明として、第7又は第8の発明のプログラムを、
前記待ち状態検出手段が、発生した待ち状態の継続時間である待ち時間を検出する待ち時間検出手段(例えば、図17のクライアント部230;図24のステップC25:NO〜C27)を有し、
前記待ち状況送信手段が、前記待ち時間検出手段により検出された待ち時間を待ち状況情報に含めて送信し、
前記フレーム時間短縮化手段が、前記ホスト機から配信されてきたクライアント機別の待ち状況情報に含まれる待ち時間の内、最大の待ち時間と自機の待ち時間との差分を基に、前記フレーム時間を短くさせる程度を決定する、
ように前記コンピュータを機能させるためのプログラムとしても良い。
この第9の発明によれば、待ち時間が検出され、この検出された待ち時間が待ち状況情報に含めてホスト機に送信されるとともに、ホスト機から配信されてきたクライアント機別の待ち時間の内、最大の待ち時間と自機の待ち時間との差分に基づいた程度でフレーム時間が短くされる。従って、例えば待ち時間の差分が大きい程、フレーム時間を短くする程度を大きくすることで、より効率良く、他機に発生している待ち状態を抑制させることが可能となる。
また、第10の発明として、第7〜第9の何れかの発明のプログラムを、
前記フレーム時間短縮手段が、前記フレーム時間を漸次短くさせるように前記コンピュータを機能させるためのプログラムとしても良い。
この第10の発明によれば、フレーム時間が漸次短くされる。従って、フレーム時間を徐々に短くさせることで、フレーム画像の表示更新速度が急激に変化してプレーヤに違和感を与えるゲーム画面となってしまうことを防止できる。
また、第11の発明は、第1〜第10の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図17の記憶部400)である。
ここでいう「情報記憶媒体」とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ等の記憶媒体である。従って、この第11の発明によれば、該情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜第10の何れかの発明と同様の効果を奏することができる。
本発明によれば、他のクライアント機との間でネットワークゲームを行うクライアント機において、ホスト機から配信されてくる入力コマンドの受信タイミングと、この受信した入力コマンドに基づくフレーム画像の表示制御のタイミングとに基づいて、フレーム時間の長さが調整される。従って、例えば入力コマンドの受信タイミングが遅れ、これに伴ってフレーム画像の表示制御のタイミングが遅れたといった場合に、フレーム時間を長くしてフレーム画像の表示更新速度を遅くすることで、以降のフレーム画像の表示制御のタイミング遅れを抑制し、ゲーム画面の表示が一時停止するといった不都合を防止できる。
また、入力コマンドの受信待ちによるフレーム画像の表示制御の一時停止状態である待ち状態の発生が検出され、この検出に応じてフレーム時間の長さが長くされる。従って、待ち状態の発生の検出に応じてフレーム時間が長くされることで、以降に発生する待ち状態の継続時間(待ち時間)が短くなり、待ち状態の発生が抑制されてゲーム画面の表示が一時停止するといった不都合を抑制できる。またこのとき、例えば検出された待ち時間が長い程、フレーム時間をより長くすることで、発生する待ち状態を効率良く抑制することが可能となる。
更に、待ち状態の発生が検出され、この検出された待ち状態の発生状況が待ち状況情報としてホスト機に送信されるとともに、ホスト機から配信されてきたクライアント機別の待ち状況情報に基づいた程度でフレーム時間が短くされる。これにより、長くされたフレーム時間を、例えばクライアント機に応じて予め設定されている標準のフレーム時間に戻すことが可能となる。またこのとき、待ち状況情報に基づいてフレーム時間が短くされるので、例えば自機のフレーム時間が長くなったことで他機に待ち状態が発生しているといった場合に、フレーム時間をより短くすることにより、他機に発生している待ち状態を抑制させつつ、自機のフレーム時間を短くさせるといったことが可能となる。
以下、図面を参照して本発明に好適な実施形態を説明する。尚、以下では、複数のゲーム端末が通信ネットワークを介して接続されたネットワークゲームシステムで、いわゆるリアルタイムストラテジーゲームを実行する場合を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
[ゲームシステム]
図1は、本実施形態におけるネットワークゲームを実現するゲームシステム1の構成例を示す図である。同図によれば、ゲームシステム1は、複数のゲーム端末10とロビーサーバ60とを備え、各装置が通信ネットワークNに接続されている。
ゲーム端末10は、プレーヤが操作してゲームを楽しむものであり、プレーヤの操作入力を受け付ける入力装置やゲーム演算等を行う演算処理装置、ゲーム画面等を表示する表示装置、通信ネットワークNに接続するための通信装置等を有している。このゲーム端末10は、例えば家庭に設置されているパソコンや家庭用ゲーム装置等で実現される。
ロビーサーバ60は、ゲームに参加するプレーヤの決定や各プレーヤのゲーム端末10間の接続管理といったマッチング処理を行うものであり、演算処理装置や通信ネットワークNに接続するための通信装置等を有している。このロビーサーバ60は、例えば汎用サーバ装置やサーバシステムによって実現される。
通信ネットワークNは、データ授受が可能な通信路である。即ち、通信ネットワークNは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網により実現される。また、通信方法については有線/無線を問わない。但し、通信ネットワークNは、ゲームシステム1を構築するためだけの専用線で成るものではなく、ゲームシステム1で用いるデータ以外のデータも伝送され得る。例えば、インターネットがその代表例であるが、LAN等であっても良い。即ち、通信ネットワークNは、ゲームシステム1以外の要因により通信トラフィックが変化し得るネットワークである。
そして、このようなゲームシステム1において複数プレーヤが参加するマルチプレイが行われる場合、先ず、ゲーム端末10がロビーサーバ60にログインし、ロビーサーバ60のマッチング処理によってゲームに参加するプレーヤが決定され、各プレーヤのゲーム端末10間の接続が確保された後、ゲームが開始される。ゲーム中は、参加する各プレーヤのゲーム端末10同士が直接接続してゲームが実行される。
[ゲーム概要]
本実施形態において、ゲームシステム1では、宇宙を舞台としたリアルタイムストラテジーゲームが実行される。プレーヤは国家指導者となり、ゲーム開始時点に所有している母星(惑星のひとつ)を拠点として艦船を生産し、他の惑星を占領し、他のプレーヤと交戦して宇宙の覇権を争うゲームを楽しむ。
図2は、本実施形態のゲーム概要図であり、ゲームマップの一例を示している。同図(a)に示すように、宇宙空間を模したゲームマップには、各プレーヤの母星を含む多数の惑星PLや、各プレーヤが所有する艦船SH等が配置されている。具体的には、同図(a)は、2人のプレーヤA,Bが参加している場合を示しており、惑星PLには、プレーヤAが所有する惑星PLa(図中、濃く網掛け表示されている)、及び、プレーヤBが所有する惑星PLb(図中、薄く網掛け表示されている)が含まれているとともに、艦船SHとして、プレーヤAの艦船SHa(図中、濃く網掛け表示されている)、及び、プレーヤBの艦船SHb(図中、薄く網掛け表示されている)が配置されている。
ゲームマップは、ゲームに参加している各プレーヤのゲーム端末10において同一である。また、使用するゲームマップはゲーム毎に生成されるランダムマップ、或いは、予め用意されている固定マップの中から選択される。そして、ゲーム中は、ゲームマップ中の各ゲーム端末10に応じた一部分が、それぞれのゲーム端末10においてゲーム画面として表示される。
プレーヤは、ゲーム端末10において表示されるゲーム画面を見ながら、所有する艦船や惑星上の施設等のユニットに対する各種の指示コマンドを入力してこれらを操作する。尚、プレーヤのコマンド入力は、ターン制ではなくリアルタイムに行われる。
図3に、プレーヤがゲーム端末10に入力できるコマンドの一例を示す。同図では、コマンド毎に、そのコマンド名と、指示対象と、指示内容とが対応付けられている。同図によれば、コマンドには、例えば、所有する惑星上に造船所等の施設を建設させる“建設”コマンド、造船所に探査船や移住船、戦艦等の艦船を生産させる“造船”コマンド、探査船をゲームマップ上の未知のエリア(位置)に向かわせ、そのエリアを探査させる“探査”コマンド、移民船を空き惑星(どのプレーヤにも所有されていない惑星)に向かわせ、その惑星に移民を送り込む“移民”コマンド、戦艦に敵(他プレーヤ)の惑星を攻撃させ、それを占領させる“占領”コマンド、戦艦を敵の艦船と交戦可能な位置まで移動させ、その艦船と交戦させる“交戦”コマンド等がある。尚、各コマンドによる指示内容の実行には、それに応じた資産(資源や人、資金等)や時間を消費する。
プレーヤは、ゲーム画面を見ながら、自身の戦力(艦船や資産等)を効率良く利用するよう、ゲーム画面外の敵の位置やその戦力を推測しつつ適当なコマンドを入力して、マップ上の未知のエリアを開拓し、戦力を増強して勝利を目指す。
具体的には、例えば“建設”コマンドを入力して、所有する惑星上に造船所等の施設を建設させ、“造船”コマンドを入力して、建設させた造船所で探査船や移民船、戦艦といった艦船を生産させる。そして、“探査”コマンドを入力して、探査船にゲームマップ上の未知のエリアを探査させる。ゲーム画面において、未知のエリアは黒く塗り潰されて表示されており、探査船が到達することでそのエリアの様子が見えるようになる。探査によって空き惑星を発見すると、“移民”コマンドを入力してその空き惑星に移民船を向かわせ、移民を送り込む。移民を送り込むことで、その空き惑星を占領することができる。また、“交戦”コマンドを入力して敵の艦船と交戦したり、或いは、“占領”コマンドを入力して敵の惑星を攻撃してそれを占領したりする。
また、図2(b)に示すように、所有する惑星同士が一定距離内にある場合、それらはスターラインLNで連結される。スターラインLNで連結された惑星では、資産が共有化される。複数の惑星で資産を共有することで、多くの資産を要する艦船や施設等の生産が可能となる。尚、スターラインLNで連結された惑星が敵に占領されると、この惑星を連結しているスターラインLNは解除される。具体的には、同図(b)では、プレーヤAが所有する惑星PLaの内、図中右下部の4つの惑星PLaが互いにスターラインLNaで連結されているとともに、図中中央下部の4つの惑星PLaが互いにスターラインLNaで連結されている。また、プレーヤBが所有する惑星PLbの内、図中左部の3つの惑星PLbが互いにスターラインLNbで連結されている。
そして、所定の終了条件が満たされるとゲーム終了となる。終了条件としては、例えば所定時間(例えば、1時間)の経過や、母星が敵に占領若しくは破壊されたといった条件がある。またここで、勝敗条件としては、例えば所定時間の経過時点で所有している惑星が最も多いプレーヤが勝者となる、或いは、母星が占領若しくは破壊されたプレーヤが敗者となるといった条件がある。
[通信構成]
図4は、ゲーム中におけるゲーム端末10間の論理的な接続構成を示す図であり、4台のゲーム端末A,B,C,Dがゲームに参加している場合を示している。同図に示すように、本実施形態では、ゲームに参加しているゲーム端末10の内、1台のゲーム端末10が通信ホストとされる。そして、この通信ホストであるゲーム端末10(以下、単に「通信ホスト」という)と、他のゲーム端末10それぞれとが通信接続される。即ち、参加するゲーム端末10同士の接続は、2台のゲーム端末10間のピア・ツー・ピア型の直接接続によって実現される。
同図では、ゲーム端末Aが通信ホストであり、このゲーム端末Aとゲーム端末B,C,Dそれぞれとが通信接続されている。尚ここで、通信ホストは、各ゲーム端末10の内、例えば処理能力が最も高い、或いは、他のゲーム端末10との応答時間が最も短いといった所定の条件を満足するゲーム端末10が選択される。
各ゲーム端末10は、自機での入力コマンドを即時に通信ホストに送信する。通信ホストは、各ゲーム端末10から送信されてくる入力コマンドを即時にゲーム端末10それぞれに配信する。そして、各ゲーム端末10は、通信ホストから配信されてくる入力コマンドを基にゲーム進行を制御する。
ゲーム端末10間のデータ通信は、詳細には次のように実現される。即ち、ゲーム端末10は、図5に示すように、ホスト機能12及びクライアント機能14を有している。これらの機能は、互いに独立した機能として動作する。
ホスト機能12は、該ゲーム端末10をホスト機として機能させ、各ゲーム端末10間でのデータ通信を制御する。具体的には、各ゲーム端末10から受信した入力コマンド等のデータのゲーム端末10それぞれへの配信を行う。
クライアント機能14は、該ゲーム端末10をクライアント機として機能させ、該ゲーム端末10でのゲーム進行を制御する。具体的には、プレーヤによるコマンドの入力受け付け、入力コマンドの通信ホストへの送信、ホスト機能12により配信されてきた各ゲーム端末10での入力コマンドに基づくゲームの進行制御、ゲーム画像やゲーム音の生成等を行う。
これらの機能は、図6に示すように、通信ホストにおいては、ホスト機能12及びクライアント機能14の双方が有効となり、通信ホスト以外のゲーム端末10においては、クライアント機能14のみが有効となる。即ち、通信ホストは、ゲームを実行するクライアント機であるとともに、ゲームシステム1でのデータ通信を制御するホスト機でもある。また、通信ホスト以外のゲーム端末10は、クライアント機である。そして、各ゲーム端末10におけるクライアント機能14が通信ホストのホスト機能12と通信することで、ゲームシステム1におけるネットワークゲームが実現される。
同図では、ゲーム端末Aが通信ホストであり、このゲーム端末Aにおいて、ホスト機能12及びクライアント機能14が有効となっている。即ち、ゲーム端末Aは、ホスト機であるとともにクライアント機である。また、他のゲーム端末B,C,Dにおいては、ホスト機能12が無効であり、クライアント機能14のみが有効となっている。即ち、ゲーム端末B,C,Dはクライアント機である。
そして、ゲーム端末Aのホスト機能12(以下、「ホストA」という)に、ゲーム端末A,B,C・・・それぞれのクライアント機能14(以下、「クライアントA,B,C・・・」という)が接続されている。このとき、ホストAとクライアントB,C・・・それぞれとの間のデータ通信は通信ネットワークNを介して実現され、ホストAとクライアントAとの間のデータ通信はゲーム端末A内でのデータ転送によって実現される。
図7,8は、ホスト・クライアント間の通信手順を示す図であり、両図とも、ホストA及びクライアントA,Bに注目した場合を例として示している。また、図8のタイムチャートにおいては、通信ラグが全く無いものとしている。本実施形態において、各ゲーム端末10におけるゲームの進行制御はサイクルを単位として行われる。サイクルとは、予め定められた連続する所定数Iのフレームから成る期間であり、例えば1フレームが0.04[秒]程度であり、1サイクルが10フレームである場合には、1サイクルは0.4[秒]程度となる。
図7(a)に示すように、ゲーム端末10においてプレーヤによりコマンドCが入力されると、該ゲーム端末10のクライアントが、この入力コマンドCをホストに送信する。すると、ホストは、受信した入力コマンドCを各クライアントに配信(送信)する。同図(a)では、サイクルSCにおいて、ゲーム端末Aでの入力コマンドCがクライアントAからホストAに送信され、この入力コマンドCが、ホストAからクライアントA,Bそれぞれに配信されている(図8の(1))。
また、図7(b)に示すように、各クライアントは、サイクルの終了毎に、他のクライアントとの処理同期を取るためのサイクルの終了(区切り)を示す同期データDをホストに送信する。すると、ホストは、受信した同期データDを各クライアントに配信する。同図(b)では、サイクルSCの終了時に、クライアントAから同期データDが、クライアントBから同期データDが、それぞれホストAに送信され、ホストAから、この同期データD,DがクライアントA,Bそれぞれに配信されている(図8(2))。尚、図7,8では、ホストAから、同期データD,Dが1つのデータとして配信されているように示されているが、実際には別々のデータとして配信される。
各クライアントは、ホストから配信されてくる同期データDの受信により、ホストから受信した各クライアントでの入力コマンドCが何れのサイクルで入力されたものであるかを判断する。具体的には、例えばゲーム端末Aについての配信データ(入力コマンドCや同期データD)の内、サイクルSCn−1の終了を示す同期データDan−1の受信から、サイクルSCの終了を示す同期データDanの受信までの間に受信した入力コマンドCを、サイクルSCでの入力コマンドCと判断する。
そして、各クライアントは、各サイクルのゲーム進行処理(各ユニットの制御やフレーム画像の生成・表示等)を、その2サイクルおいて前のサイクル(即ち、3サイクル前)での入力コマンドCに基づいて行う。即ち、例えばゲーム端末A,Bそれぞれにおいて、サイクルSCでのゲーム端末A,Bでの入力コマンドCan,Cbnに従って、サイクルSCn+3でのゲーム進行が制御される(図8の(3))。
このように、ゲームシステム1では、各ゲーム端末10での入力コマンドCは、該ゲーム端末10のクライアントからホストに送信され、ホストから各クライアントに配信される。また、各クライアントから、サイクル毎に該サイクルの終了を示す同期データDがホストに送信され、ホストから各クライアントに配信される。各クライアントでは、この同期データDの受信により各入力コマンドの入力サイクルが判断され、各入力コマンドは、該コマンドが入力されたサイクルの2サイクルおいた後のサイクル(即ち、3サイクル後)のゲーム進行に反映される。
[待ちの発生]
ホスト・各クライアント間のデータ通信は、理想的には上述した通りであるが、実際には、種々の要因により、クライアントにおいて、入力コマンドが未受信であるために次サイクルの処理を開始できず、ゲーム進行が一時停止している状態、即ち“待ち”が発生する。これは、主に、(A)通信ネットワークNによる通信ラグ(通信遅れ)、(B)各ゲーム端末10の処理能力(マシンパワー)の違い、といった理由により発生する。
(A)通信ネットワークNによる通信ラグ
ゲーム端末10間は、例えばインターネット等の公衆通信網といったゲームシステム1に係る通信以外の通信にも利用される通信網により実現される通信ネットワークNを介して接続されるため、この通信ネットワークNに起因する通信ラグが生じる。通信ラグは、ゲーム端末10間の物理的な距離や、通信ネットワークNの通信速度といった通信品質に応じたものであるとともに、通信負荷(トラフィック)の変動によっても左右される。このため、同一データについて、ホストからの配信とクライアントでの受信とに時間差が生じるとともに、クライアント毎にも受信時刻が異なる。尚、ホストと同一のゲーム端末10(通信ホスト)内のクライアントについては、ホストとのデータ通信に通信ネットワークNを介さないため、他のクライアントと比較して、ホストとの間に生じる通信ラグが極めて小さい。
(B)ゲーム端末10の処理能力の違い
また、ゲーム端末10は家庭に設置されているパソコン等で実現されるため、端末毎にその処理能力が異なる。即ち、ゲーム端末10毎に、クライアントが1フレームの処理に要する時間(フレーム時間)Tが異なり、その結果、1サイクルの処理に要する時間(サイクル時間)が異なる。クライアント毎のフレーム時間Tの差は、ゲーム画面の表示速度(具体的には、フレーム画像の更新速度)の差として表れる。
クライアント毎にサイクル時間が異なると、同一サイクルについての同期データDの送信時刻がクライアント毎に異なる。具体的には、処理能力が高いクライアントである程、サイクル時間が短く、同一サイクルについての同期データDの送信時刻が他のクライアントより早い。その結果、各クライアントにおいて、同一サイクルについての同期データDの受信に時間差が生じる。そして、この時間差は、サイクルの進行に従って大きくなる。尚、実際のサイクル時間Tは、ゲーム演算量等によって多少変動し得る。
図9は、上述した2つの要因による待ちの発生を説明するための図である。同図は、ホストA及びクライアントA,Bに注目した場合のタイムチャートを示している。通信ホストであるゲーム端末Aの方がゲーム端末Bよりも処理能力が高いので、クライアントAのフレーム時間Tは、クライアントBのフレーム時間Tよりも短い。また、ともに通信ホスト内の機能であるクライアントA・ホストA間に生じる通信ラグは、クライアントB・ホストA間に生じる通信ラグよりも小さい。
クライアントにおいて、各サイクルの処理は、該サイクルから2サイクルおいて前(3サイクル前)のサイクルでの入力コマンドを基に行われる。また、サイクルの区切りは、同期データDの受信により判断される。即ち、各クライアントは、各サイクルの終了時点において、該サイクルから2サイクル前の、全クライアントについての同期データDの受信を完了している必要がある。従って、各クライアントでは、同期データDの受信が2サイクル以上遅れると、次のサイクルが開始できない状態である“待ち”が発生する。
同図に示すように、クライアントA,BそれぞれがサイクルSCから同時に処理を開始した場合、例えばクライアントAからサイクルSCn+1の終了時に送信された同期データDan+1は、ホストAで受信され、ホストAからクライアントA,Bに配信される。そして、この同期データDan+1は、クライアントAにおいて、サイクルSCn+2途中の時刻ta1に受信される。また、クライアントBからサイクルSCn+1の終了時に送信された同期データDbn+1は、ホストAで受信され、ホストAからクライアントA,Bに配信される。そして、この同期データDbn+1は、クライアントAにおいて、時刻ta1より遅い時刻ta3に受信される。
クライアントAにおいて、サイクルSCn+3の処理は時刻ta2に終了するが、続いて次サイクルSCn+4の処理を開始するためには、この時刻ta2の時点で、その2サイクル前のサイクルSCn+1に係る全クライアントの同期データDan+1,Dbn+1の受信を完了している必要がある。しかし、同期データDan+1の受信時刻ta1は時刻ta2よりも早いが、同期データDbn+1の受信時刻ta3は時刻ta2よりも遅い。つまり、サイクルSCn+3の終了時点では同期データDbn+1を受信していないため、次サイクルSCn+4の処理を開始できない。従って、サイクルSCn+3の処理の終了時刻ta2から、同期データDbn+1を受信して次サイクルSCn+4の処理が開始可能となる時刻ta3までの間、待ちフレーム数Wの待ちが発生する。但し、W=1,2,3,・・・、である。
ここで、発生した待ちはその直前のサイクルに含まれるものとする。即ち、各サイクルは、1サイクル当たりのフレーム数Iのフレーム画像が生成・表示制御される期間と、その直後に発生した待ちフレーム数Wの待ちの期間とから成る。そして、同期データDは、各サイクルの終了後にクライアントからホストに送信されることとする。またこのとき、該サイクルで発生した待ちの情報(詳細には、発生した待ちフレーム数W)が同期データDに含めて送信される。
このように、ゲームシステム1では、上述した2つの理由により、クライアントにおいて待ちが発生する。待ちが発生すると、その間はゲームの進行処理が一時停止するが、待ちが頻繁に発生すると、表示更新/停止を繰り返す不自然なゲーム画面となり、プレーヤに対して違和感や不満感といったストレスを与えることになる。
[平滑化処理]
そこで、本実施形態では、待ちが発生したクライアントにおいてフレーム時間Tを長くするように調整する平滑化処理を行うことで、以降の待ちの発生を抑制している。
図10は、平滑化処理を説明するための図であり、平滑化処理によるフレーム時間Tの変化を示している。また、同図では、クライアントAの場合を例として示しており、サイクルSCの終わりに、待ちフレーム数Wの待ちが発生している。同図に示すように、サイクルSCの終わりに待ちが発生すると、その次のサイクルSCn+1から平滑化処理が開始される。平滑化処理では、発生した待ちフレーム数Wに応じて、各フレームFLのフレーム時間Tが徐々に長くされる。平滑化処理を開始後の各フレーム時間Tは、次式(1)で与えられる。
=Ti−1+ΔT ・・(1)
式(1)において、iは平滑化処理の開始からの経過フレーム数であり、i=1,2,・・・である。また、ΔTは前フレーム時間Ti−1に対する伸延時間であり、ΔT>0、である。即ち、フレーム時間Tは、伸延時間ΔTづつ徐々に長くなる。
伸延時間ΔTは経過フレーム数i毎に異なる値としても良いが、ここでは同一の値ΔTとし、次式(2)で与えられることとする。
ΔT=(T×W)/E ・・(2)
式(2)において、Tは平滑化処理の開始直前のフレーム時間T(同図では、サイクルSCの最終フレームFLのフレーム時間T)である。また、Eは定数であり、例えば1サイクル当たりのフレーム数Iを整数倍した値で与えられる。即ち、伸延時間ΔTは、発生した待ちフレーム数Wに比例した値となる。従って、平滑化処理が行われている間のフレーム時間Tは、図11に示すように、一次関数のグラフとなる。
本実施形態において、この平滑化処理はサイクルを単位として実現される。即ち、図12に示すように、サイクルSCn+1から開始された平滑化処理は、そのサイクルSCn+1の終了時点、より詳細にはそのサイクルSCn+1の最終フレームFLの終了時点で終了される。そして、同図(a)に示すように、サイクルSCn+1の終わりに待ちが発生すると、発生した待ちフレーム数Wに応じて再度伸延時間ΔTが算出され、この新たな伸延時間ΔTを基に、次のサイクルSCn+2の平滑化処理が開始される。一方、同図(b)に示すように、サイクルSCn+1の終わりに待ちが発生しない場合には、次のサイクルSCn+2において平滑化処理は行われない。
このように、平滑化処理では、フレーム時間Tが徐々に長くされる。フレーム時間Tを徐々に長くさせるのは、ゲーム画面が動画であるためであり、フレーム時間Tを大きく変化させると、表示速度が急激に変化して不自然なゲーム画面となることを防止するためである
また、発生した待ちフレーム数Wに応じた(比例した)伸延時間ΔTとすることで、例えばゲーム端末10毎の処理能力が異なる場合に、他のクライアントのフレーム時間Tとの差を縮め、以降の待ちの発生を抑制することが可能となる。
[最適化処理]
上述の平滑化処理では、クライアントにおいて待ちが発生すると、該クライアントでのフレーム時間Tを長くさせる調整を行うことで以降発生する待ちを抑制している。ところで、待ちは、上述した主に2つの理由(通信ネットワークNによる通信ラグ、及び、各ゲーム端末10の処理能力の違い)によって発生する。通信ラグは、ゲームシステム1の構成上発生が避けられないものであるとともに、通信ネットワークNの通信負荷によってその大きさが変動し得るものである。また、実際のフレーム時間(実フレーム時間)Tは、ゲーム処理負荷が大きい場合には一時的に長くなるといったように変動し得るものである。これらの理由の組み合わせにより、各クライアントでの待ちは頻繁に発生し得る。
そして、平滑化処理により、クライアントそれぞれが待ちの発生毎に自身のフレーム時間Tを長くすると、結果的に、各クライアントのフレーム時間Tは長くされるのみであり、更に、場合によっては各クライアントで発生する待ちが増大する可能性がある。そこで、各クライアントにおいて、平滑化処理を行っていないサイクルでは、平滑化処理によって長くされたフレーム時間Tを短くさせるように調整する最適化処理を行う。
図13は、最適化処理を説明するための図であり、フレーム時間Tの変化を示している。また、同図では、ゲーム端末A,B,C,Dが参加しており、クライアントAの場合を例として示している。同図に示すように、サイクルSCの終わりに待ちが発生しない場合、その次のサイクルSCn+1から最適化処理が開始される。最適化処理では、2サイクルおいて前(3サイクル前)のサイクルSCn−2で発生した各クライアントでの待ちフレーム数Wn−1に基づいて、各フレーム時間Tが短くされる。
具体的には、図14に示すように、サイクルSCn−2で発生したクライアントA,B,C,Dそれぞれの待ちフレーム数Wan−2,Wbn−2,Wcn−2,Wdn−2の内、最大数が最大待ちフレーム数Wmaxとされる。そして、この最大待ちフレーム数Wmaxと、自機の待ちフレーム数Wとの差分である差分フレーム数dが算出される。この差分フレーム数dは、相対的に他機を待たせているフレーム数を表す。具体的には、例えば、Wan−2=1、Wbn−2=5、Wcn−2=2、Wdn−2=2、であるとすると、最大待ちフレーム数Wmaxは、Wmax=5、となる。そして、クライアントAの場合、差分フレーム数dは、d=4(=5−1)、となる。自機の待ちフレーム数Wが最大である場合には、d=0、となり、他機を待たせていない、即ち自機以上に待っている他機がいないことになる。
次いで、差分フレーム数dの値に応じて、短くさせる目標となるフレーム時間である目標時間Nが設定される。具体的には、d=1、の場合には、式(3a)に示す算出式に従って算出され、d=2、の場合には、式(3b)に示す算出式に従って算出され、d=3、の場合には、式(3c)に示す算出式に従って算出され、d=4、の場合には、式(3d)に示す算出式に従って算出され、d=5、の場合には、式(3e)に示す算出式に従って算出され、d=6、の場合には、式(3f)に示す算出式に従って算出され、d=7、の場合には、式(3g)に示す算出式に従って算出され、d>7、の場合には、式(3h)に示す算出式に従って算出される。
N=S×11/12(d=1) ・・(3a)
N=S×10/11(d=2) ・・(3b)
N=S×9/10(d=3) ・・(3c)
N=S×8/9(d=4) ・・(3d)
N=S×7/8(d=5) ・・(3e)
N=S×6/7(d=6) ・・(3f)
N=S×5/6(d=7) ・・(3g)
N=S×4/5(d>7) ・・(3h)
式(3a)〜(3h)において、Sは標準フレーム時間である。標準フレーム時間Sとは、ゲーム端末10毎に、例えばその処理能力等を考慮して決定される標準となるフレーム時間である。式(3a)〜(3h)により算出される目標時間Nは、差分フレーム数dが大きい程、小さい。また、目標時間Nが標準時間Sより短く設定されるのは、実フレーム時間が通信ラグ等により若干長くなることが多いためである。
そして、各フレームFLのフレーム時間Tが、この目標時間Nに収束するように徐々に短くされる。即ち、図13に示すように、クライアントAにおいて、サイクルSCn+1から最適化処理(フレーム短縮)が開始される場合、最適化処理の開始後の各フレームFLのフレーム時間Tは、次式(4)で与えられる。
=(Ti−1+N)/2 ・・(4)
式(4)において、iは最適化処理の開始からの経過サイクル数であり、i=1,2,・・・である。従って、サイクル時間Tは、図15のグラフに示すように、時間経過とともに目標時間Nに向かって収束するように変化する。
また、差分フレーム数dが、d=0、の場合には、目標時間Nは算出されず、各フレーム時間Tは、T=S、とされる。即ち、フレーム時間Tは、強制的に標準時間Sに戻される。
本実施形態において、最適化処理は、上述した平滑化処理と同様にサイクルを単位として実現される。即ち、図16に示すように、サイクルSCn+1から開始された最適化処理は、そのサイクルSCn+1の終了時点、より詳細にはそのサイクルSCn+1の最終フレームFLの終了時点で終了される。そして、同図(a)に示すように、サイクルSCn+1の終わりに待ちが発生していないならば、2サイクル前のサイクルSCn−1での各クライアントで発生した待ち時間Wn−1に応じて再度目標時間Nが算出され、この新たな目標時間Nを基に、次のサイクルSCn+2における最適化処理が開始される。一方、同図(b)に示すように、サイクルSCn+1の終わりに待ちが発生した場合には、次のサイクルSCn+2からは平滑化処理が開始され、最適化処理は行われない。
つまり、本実施形態では、各クライアントにおいて、サイクル毎に、その前サイクルで発生した待ちの有無により平滑化処理或いは最適化処理のどちらかが選択され、選択された処理が行われる。即ち、待ちが発生した場合には平滑化処理が行われ、待ちが発生していない場合には最適化処理が行われる。
[機能構成]
図17は、ゲーム端末10の機能構成を示すブロック図である。同図によれば、ゲーム端末10は、機能的には、操作入力部100と、処理部200と、画像表示部340と、音出力部350と、記憶部400と、通信部500とを備えて構成される、
操作入力部100は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部200に出力する。特に、本実施形態では、プレーヤによるコマンドの入力を検出し、検出したコマンドを処理部200に出力する。この機能は、例えばキーボードやマウス、ボタンスイッチ、レバー、各種センサ等によって実現される。
処理部200は、ゲーム端末10の全体制御やゲームの進行制御、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算処理装置やその制御プログラムにより実現される。
また、処理部200は、主にゲームの実行に係る演算処理を行うゲーム演算部210と、ゲーム演算部210の処理によって求められた各種のデータに基づき、ゲーム画像を生成する画像生成部240と、効果音やBGM等のゲーム音を生成する音生成部250とを含んでいる。
ゲーム演算部210は、記憶部400から読み出したゲーム情報(プログラム及びデータ)や、操作入力部100から入力される操作信号等に基づいて種々のゲーム処理を実行する。また、本実施形態では、ゲーム演算部210は、ホスト機能を実現するホスト部220と、クライアント機能を実現するクライアント部230とを含んでいる。
ゲーム演算部210は、ゲーム実行開始に先立ち、所定のゲーム前処理を行う。具体的には、先ず、ロビーサーバ60にログインしてゲームの参加申請を行う。そして、ロビーサーバ60から、ゲームに参加する他のプレーヤやそのゲーム端末10、通信ホスト等を通知されると、自端末が通信ホストであれば、クライアント機能及びホスト機能の双方を有効にし、他のゲーム端末10からの接続を待機する。また、自端末が通信ホストでないならば、クライアント機能を有効にし、通信ホストに接続する。尚、ゲームに参加する他のプレーヤやそのゲーム端末10、通信ホスト等の情報は、参加ゲーム端末情報422に格納される
その後、ロビーサーバ60からゲーム開始が通知されると、所定のゲーム中処理の実行を開始する。即ち、自端末が通信ホストである場合には、クライアント部230が所定のクライアント処理を実行するとともに、ホスト部220が所定のホスト処理を実行する。また、自端末が通信ホストでない場合には、クライアント部230が所定のクライアント処理を実行する。
ホスト部220は、所定のホスト処理を実行して、各ゲーム端末10間のデータ通信を制御する。具体的には、クライアントから入力コマンドや同期データD等のデータを受信すると、この受信データを各クライアントに配信する。ここで、クライアントとのデータの送受信は、該ゲーム端末10内のクライアント部230とのデータ転送、及び、他のゲーム端末10とのデータ通信を意味する。
クライアント部230は、フレーム時間補正部232を含み、所定のクライアント処理を実行して該ゲーム端末10におけるゲーム進行を制御する。具体的には、操作入力部100から、プレーヤの操作入力によって入力されたコマンドが入力されると、この入力コマンドをホストに送信する。ここで、ホストとのデータの送受信は、該ゲーム端末10が通信ホストである場合には、該端末内のホスト部220との間のデータ転送を意味し、通信ホストでない場合には、通信ホストとの間のデータ通信を意味する。
また、クライアント部230は、サイクルの終了毎に、該サイクルの終わりに発生した待ちフレーム数Wを検出し、検出した待ちフレーム数Wを含めた同期データDをホストに送信する。尚、待ちが発生していない場合には、待ちフレーム数Wを「0」とする。
また、クライアント部230は、ホストから配信されてくる入力コマンドを受信すると、この受信した入力コマンドを、該入力コマンドの送信元であるゲーム端末10に対応付けて受信コマンド情報424に格納する。
受信コマンド情報424とは、ホストから受信した各クライアントでの入力コマンドの情報である。図18に、受信コマンド情報424のデータ構成の一例を示す。同図によれば、受信コマンド情報424は、ゲーム端末10毎の複数の受信コマンドデータ425から構成される。受信コマンドデータ425は、該当するゲーム端末10の名称(ゲーム端末名)425aとともに、サイクル番号425bと、入力コマンド425cと、完了フラグ425dとを対応付けて格納している。完了フラグ425dとは、対応するサイクルの入力コマンドの受信を完了したか否かを示すフラグである。この完了フラグ425dは、初期値として「0」が設定されており、対応するサイクルの同期データDが受信されると「1」に更新される。
クライアント部230は、ホストから受信した入力コマンドを、該入力コマンドの送信元であるゲーム端末10に該当する受信コマンドデータ425において、完了フラグ425dが「0」であり、且つサイクル番号425bが最前である入力コマンド425cとして追加する。例えば同図の場合、受信されたゲーム端末Aでの入力コマンドは、サイクル番号425bが「23」の入力コマンド425cとして追加格納される。
また、クライアント部230は、ホストから配信されてくる同期データDを受信すると、この受信した同期データDを基に、受信コマンド情報424及び待ち情報426を更新する。即ち、受信した同期データDの送信元のゲーム端末10に該当する受信コマンドデータ425において、該当するサイクル番号425bの完了フラグ425dを「1」に更新する。
また、受信した同期データDに含まれる待ちフレーム数Wを、該同期データDの受信元であるゲーム端末10に対応付けて待ち情報426に格納する。待ち情報426とは、各クライアントでの待ちに関する情報である。図19に、待ち情報426のデータ構成の一例を示す。同図によれば、待ち情報426は、ゲーム端末10毎の複数の待ちデータ427から構成される。待ちデータ427は、該当するゲーム端末名427aとともに、サイクル番号427bと、待ちフレーム数427cとを対応付けて格納している。尚、同図中、「−」はデータを未格納であることを示している。
クライアント部230は、ホストから受信した同期データDに含まれる待ちフレーム数Wを、該同期データDの送信元であるゲーム端末10に該当する待ちデータ427において、該当するサイクル番号427bの待ちフレーム数427cとして格納する。例えば同図の場合、受信されたゲーム端末Aの同期データDに含まれる待ちフレーム数Wは、サイクル番号427bが「23」の待ちフレーム数427cとして格納される。
フレーム時間補正部232は、フレーム毎に該フレームのフレーム時間Tを補正する。具体的には、サイクルの終了毎に、該終了したサイクルの終わりに待ちが発生したか否かを判断し、待ちが発生したならば、次サイクルにおいて、上述した平滑化処理に基づく処理を行って各フレーム時間Tを長くさせる。即ち、該終了したサイクルの終わりに発生した待ちフレーム数Wを基に、式(2)に示した算出式に従って伸延時間ΔTを算出する。そして、次サイクルにおいて、フレーム毎に、算出した伸延時間ΔTを前フレームの実フレーム時間Tに加算して補正フレーム時間Uを算出する。
ここで、平滑化処理にかかるデータは平滑化情報428に格納されている。図20に、平滑化情報428のデータ構成の一例を示す。同図によれば、平滑化情報428は、伸延時間算出式428aと、伸延時間428bと、平滑化フラグ428cとを含んでいる。伸延時間算出式428aは、式(2)で示した、伸延時間ΔTの算出式を格納する。伸延時間428bは、伸延時間算出式428aに従って算出された伸延時間ΔTの値を格納する。この値は、サイクル毎に更新される。平滑化フラグ428cは、平滑化処理に基づくフレーム時間Tの伸延を実行中であるか否かを示すフラグである。実行中であれば「1」が格納され、そうでなければ「0」が格納される。
また、フレーム時間補正部232は、終了したサイクルの終わりに待ちが発生していないならば、次サイクルにおいて、上述した最適化処理に基づく処理を行って各フレーム時間Tを短くさせる。即ち、待ち情報426を参照して、該終了したサイクルの2サイクル前のサイクルで発生した各クライアントの待ちフレーム数W−2の内から最大数を選択し、これを最大待ちフレーム数Wmaxとする。次いで、この最大待ちフレーム数Wmaxから、自機の2サイクル前の待ちフレーム数W−2を減算して、差分フレーム数dを算出する。
続いて、この差分フレーム数dが「0」より大きいならば、式(3a)〜(3h)に示した、この差分フレーム数dの値に応じた算出式に従って目標時間Nを算出する。そして、次サイクルにおいて、フレーム毎に、算出した目標時間Nとその前フレームの実フレーム時間Tとを加算平均して補正フレーム時間Uを算出する。また、差分フレーム数dが「0」ならば、次サイクルにおいて、標準フレーム時間Sを各フレームの補正フレーム時間Uとする。
ここで、最適化処理にかかるデータは最適化情報432に格納されている。図21に、最適化情報432のデータ構成の一例を示す。同図によれば、最適化情報432は、目標時間算出式432aと、差分フレーム数432bと、目標時間432cとを格納している。目標時間算出式432aは、式(3a)〜(3h)で示した、差分フレーム数d毎の目標時間Nの算出式を格納する。差分フレーム数432bは、2サイクル前の各クライアントでの待ちフレーム数W−2から算出された差分フレーム数dの値を格納する。この値は、サイクル毎に更新される。目標時間432cは、差分フレーム数432bに応じた目標時間算出式432aに従って算出された目標時間Nの値を格納する。この値は、サイクル毎に更新される。
更に、フレーム時間補正部232は、上述した平滑化処理或いは最適化処理によって算出した補正フレーム時間Uの値を、S/2≦U≦2×S、の範囲に収めるクリッピング処理を行う。ここで、Sは標準フレーム時間である。尚、フレーム時間補正部232により算出された補正フレーム時間Uは、あくまでも処理の目標とする値であり、この値での実行が保証されるものではない。例えばハードウェアの処理能力に対してゲーム演算量が多いフレームの場合、実フレーム時間はこれより長くなり得る。
そして、クライアント部230は、フレーム時間補正部232によって算出された補正フレーム時間Uで、各サイクルのゲームの進行処理を行う。即ち、受信コマンド情報424を参照し、該サイクルの2サイクルおいて前(3サイクル前)の各ゲーム端末10での入力コマンドを基に、補正フレーム時間Uの時間間隔で、各プレーヤのユニット等を制御し、画造生成部240にフレーム画像を生成させ、画像表示部340に表示させる処理を、1サイクルに相当するフレーム数Iだけ繰り返し行う。
ここで、クライアント部230により制御されるサイクルの進行に関する情報は、サイクル進行情報434に格納されている。図22に、サイクル進行情報434のデータ構成の一例を示す。同図によれば、サイクル進行情報434は、現サイクル434aと、実フレーム時間434bと、補正フレーム時間434cと、標準フレーム時間434dと、待ちフレーム数434eとを格納している。
現サイクル434aは、現在クライアント部230により進行制御の対象となっているサイクルのサイクル番号を格納する。この値は、サイクル毎に更新される。実フレーム時間434bは、直前のフレームの実際のフレーム時間Tの値を格納する。この値は、フレーム毎に更新される。補正フレーム時間434cは、フレーム時間補正部232により算出された補正フレーム時間Uの値を格納する。この値は、フレーム毎に更新される。標準フレーム時間434dは、ゲーム開始に先立ち、ロビーサーバ60から通知される標準フレーム時間Sの値を格納する。待ちフレーム数434eは、直前に発生した待ちフレーム数Wの値を格納する。
画像生成部240は、ゲーム演算部210による演算結果に基づき、ゲーム画面を表示するためのゲーム画像を生成し、生成した画像の画像信号を画像表示部340に出力する。画像表示部340は、処理部200からの画像信号に基づくゲーム画像を表示する。この機能は、例えばCRT、LCD、ELD等のハードウェアによって実現される。
音生成部250は、ゲーム中に使用される効果音やBGM等のゲーム音声を生成し、生成したゲーム音声の音信号を音出力部350に出力する。音出力部350は、音生成部250からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。
記憶部400は、処理部200にゲーム端末10を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。
また、記憶部400は、処理部200をゲーム演算部210として機能させるためのゲームプログラム410及びゲームデータを記憶する。ゲームプログラム410には、ホスト部220として機能させるためのホストプログラム412と、クライアント部230として機能させるためのクライアントプログラム414とが含まれる。また、ゲームデータには、参加ゲーム端末情報422と、受信コマンド情報424と、待ち情報426と、平滑化情報428と、最適化情報432と、サイクル進行情報434とが含まれる。
通信部500は、所定の通信回線に接続して他のゲーム端末10等の外部装置とのデータ通信を行う。この機能は、Bluetooth(登録商標)やIrDA等の無線通信モジュール、モデム、TA、有線用の通信ケーブルのジャックや制御回路などによって実現される。
[処理の流れ]
図23は、ゲームシステム1におけるゲーム処理の流れを説明するためのフローチャートである。同図によれば、先ず、ゲーム端末10がロビーサーバ60に接続してログインし、ゲームの参加申請を行う(ステップA1)。
すると、ロビーサーバ60が、このゲーム端末10からの参加申請を受け付け(ステップB1)、他のゲーム端末10からの参加申請を基にゲームの参加プレーヤを決定する(ステップB3)。次いで、これら各参加プレーヤのゲーム端末10の内から、その処理能力等を考慮して通信ホストとなるゲーム端末10を決定し(ステップB5)、また、各ゲーム端末10の処理能力等を考慮して標準フレーム時間Sを決定する(ステップB7)。そして、参加プレーヤの各ゲーム端末10に対して、他の参加プレーヤのゲーム端末10や通信ホスト、標準フレーム時間S等を通知する(ステップB9)。
各ゲーム端末10は、ロビーサーバ60からのこの通知を受信すると(ステップA3)、自端末が通信ホストであるならば(ステップA5:YES)、ホスト機能及びクライアント機能を有効にし(ステップA7)、他のゲーム端末10からの接続を待つ(ステップA9)。自端末が通信ホストでないならば(ステップA5:NO)、クライアント機能を有効にし(ステップA15)、通信ホストに接続する(ステップA17)。
その後、ロビーサーバ60は、適当なタイミングで各ゲーム端末10にゲーム開始指示を通知する(ステップB11)。そして、ゲーム端末10は、このゲーム開始指示を受信すると(ステップA11,A19)、ゲーム中処理を開始する。即ち、自端末が通信ホストである場合には、ホスト部220がホスト処理の実行を開始するとともに、クライアント部230がクライアント処理の実行を開始する(ステップA13)。また、自端末が通信ホストでない場合には、クライアント部230がクライアント処理の実行を開始する(ステップA21)。
図24は、クライアント処理の流れを説明するためのフローチャートである。この処理は、クライアント部230がクライアントプログラム414に従った処理を行うことで実現される。同図によれば、先ず、フレーム時間補正部232が補正準備処理を実行する(ステップC1)。
図25は、補正準備処理の流れを説明するためのフローチャートである。同図によれば、フレーム時間補正部232は、待ちフレーム数Wの値を判定し、この値が「0」より大きいならば(ステップD1:YES)、現サイクルにおいてフレーム時間Tを長くさせる平滑化処理を行うことを示すよう、平滑化フラグを「1」に設定する(ステップD3)。そして、待ちフレーム数Wを基に、式(2)に示した算出式に従って伸延時間ΔTを算出する(ステップD5)。
一方、待ちフレーム数Wが「0」より小さい、即ち「0」であるならば(ステップD1:NO)、フレーム時間補正部232は、待ち情報426を参照して、現サイクルから2サイクル前の各クライアントでの待ちフレーム数W−2の内から、最大数を最大待ちフレーム数Wmaxとして選択する(ステップD7)。次いで、この最大待ちフレーム数Wmaxから、自機の現サイクルから2サイクル前の待ちフレーム数W−2を減算して、差分フレーム数dを算出する(ステップD9)。
そして、算出した差分フレーム数dが「0」より大きいならば(ステップD11:YES)、フレーム時間補正部232は、式(3a)〜(3h)に示した、差分フレーム数dに応じた算出式に従って目標時間Nを算出する(ステップD13)。
以上の処理を行うと、フレーム時間補正部232は、補正準備処理を終了する。
補正準備処理が終了すると、続いて、クライアント部230は、待ちフレーム数Wを「0」に、各サイクルの先頭からの経過サイクル数を表す変数iを「1」に更新する(ステップC3)。その後、ループAの処理を、補正フレーム時間Uの時間間隔で繰り返し実行する。
ループAでは、先ず、待ちフレーム数Wの値を判断し、その値が「0」に等しいならば(ステップC5:YES)、フレーム時間補正部232が、フレーム時間補正処理を実行して補正フレーム時間Uを算出する(ステップC7)。このステップC5での判定により、現状が待ち状態であるか否かが判断され、待ち状態である場合にはフレーム時間Tの補正(調整)が行われない。
図26は、フレーム時間補正処理の流れを説明するためのフローチャートである。同図によれば、フレーム時間補正部232は、平滑化フラグの設定値を判定し、「1」に設定されているならば(ステップE1:YES)、フレーム時間Tを長くさせる調整を行うと判断して、前フレームの実フレーム時間Tに伸延時間ΔTを加算して補正フレーム時間Uを算出する(ステップE3)。
一方、平滑化フラグが「0」に設定されているならば(ステップE1:NO)、フレーム時間補正部232は、フレーム時間Tを短くさせる調整を行なうと判断して、差分フレーム数dの値を判定し、この値が「0」より大きいならば(ステップE5:NO)、前フレーム時間Tと目標時間Nとを加算平均して補正フレーム時間Uを算出する(ステップE7)。また、差分フレーム数dが「0」より小さい、即ち「0」に等しいならば(ステップE5:NO)、補正フレーム時間Uを標準フレーム時間Sとする(ステップE9)。
その後、フレーム時間補正部232は、算出した補正フレーム時間Uに対するクリッピング処理を行う。即ち、補正フレーム時間Uが「S/2」より小さいならば(ステップE11:YES)、この補正フレーム時間Uを「S/2」に変更する(ステップE13)。また、補正フレーム時間Uが「2×S」より大きいならば(ステップE15:YES)、この補正フレーム時間Uを「2×S」に更新する(ステップE17)。
以上の処理を行うと、フレーム時間補正部232は、フレーム時間補正処理を終了する。
フレーム時間補正処理が終了すると、クライアント部230は、操作入力部100からコマンドが入力されたか否かを判断し、入力されたならば(ステップC9:YES)、その入力されたコマンドをホストに送信する(ステップC11)。
また、クライアント部230は、ホストから配信されてくるデータを受信したか否かを判断し、受信したならば(ステップC13:YES)、その受信したデータを記憶する(ステップC15)。即ち、入力コマンドを受信したならば、該入力コマンドを、その送信元のゲーム端末10に該当する受信コマンドデータ425において、該当するサイクルの入力コマンドとして格納する。また、同期データDを受信したならば、該同期データDの送信元のゲーム端末10に該当する受信コマンドデータ425において、該当するサイクルの完了フラグを「1」にするとともに、該同期データDに含まれている待ちフレーム数Wを、該ゲーム端末10に該当する待ちデータ427に、該当するサイクルの待ちフレーム数として追加する。
続いて、クライアント部230は、変数iの値を判断し、その値が1サイクル当たりのフレーム数I以下ならば(ステップC17:YES)、受信コマンド情報424を参照し、現サイクルから2サイクルおいて前(3サイクル前)のサイクルでの各ゲーム端末10での入力コマンドを基に各プレーヤのユニットの制御等を行い、画像生成部240にフレーム画像を生成させ、画像表示部340に表示させる(ステップC19)。
その後、クライアント部230は、変数iを「1」加算した値に更新する(ステップE21)。そして、更新後の変数iが1サイクル当たりのフレーム数Iより小さいならば(ステップE23:NO)、ステップC5に戻り、次フレームについてのループAの処理を開始する。このステップC23の判定により、1サイクル相当分のゲーム進行処理(I枚のフレーム画像の生成・表示等)が行われたか否かが判断される。
一方、変数iの値がIより大きいならば(ステップC23:YES)、クライアント部230は、受信コマンド情報424を参照して、現サイクルから2サイクル前の同期データDを全クライアントについて受信済みであるか否かを判断する。受信済みでないならば(ステップC25:NO)、待ちフレーム数Wを「1」加算した値に更新した後(ステップC27)、ステップC5に戻り、次フレームについてのループAの処理を開始する。一方、受信済みであるならば(ステップC25:YES)、ループAを終了する。
ループAを終了すると、クライアント部230は、現サイクルが終了したことを示す同期データDを待ちフレーム数Wとともにホストに送信する(ステップC29)。その後、ゲーム終了であるか否かを判断し、終了しないならば(ステップC31:NO)、次サイクルを新たな現サイクルとし(ステップC33)、ステップC1に戻る。ゲームを終了するならば(ステップC31:YES)、本クライアント処理を終了する。
[作用・効果]
以上のように、本実施形態によれば、ゲームシステム1を構成するクライアントにおいて待ちが発生すると、該クライアントでは、その次サイクルにおいて、フレーム時間Tを徐々に長くする平滑化処理が行われる。具体的には、発生した待ちフレーム数Wに応じた伸延時間ΔTが算出され、フレーム毎に、その前フレームの実フレーム時間Tにこの伸延時間ΔTが加算されて補正フレーム時間Uが算出される。この平滑化処理によれば、待ちが発生したクライアントにおいて、発生した待ちフレーム数Wに応じてフレーム時間Tが徐々に長くされることで、該クライアントにおいて以降発生するであろう待ちが抑制され、その結果、待ちの発生によるゲーム画面の一時停止といった事態の防止が実現される。
また、平滑化処理が行われていないサイクルにおいては、フレーム時間Tを徐々に短くする最適化処理が行われる。具体的には、該サイクルの2サイクルおいて前(3サイクル前)の各クライアントで発生した待ちフレーム数Wに応じて目標時間Nが算出される。そして、フレーム毎に、その前フレームの実フレーム時間と目標時間Nとを加算平均して補正フレーム時間Uが算出される。この最適化処理によれば、上記平滑化処理により長くされた各クライアントのフレーム時間Tを短くさせ、標準フレーム時間Sに近い値に戻すことが可能となる。
[変形例]
尚、本発明の適用は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
本実施形態のゲームシステムの構成例。 ゲームマップの一例。 コマンドの一例。 ゲーム中におけるゲーム端末の論理的な接続構成例。 ゲーム端末が有する機能図。 ゲーム中におけるゲーム端末間の通信構成例。 ホスト・クライアント間の通信手順の説明図。 ホスト・クライアント間の通信手順の説明図。 クライアントにおける待ちの発生の説明図。 平滑化処理の説明図。 平滑化処理によるフレーム時間Tの一例。 平滑化処理の実現例。 最適化処理の説明図。 最適化処理の説明図。 最適化処理によるフレーム時間Tの一例。 最適化処理の実現例。 ゲーム端末の機能構成例。 受信コマンド情報のデータ構成例。 待ち情報のデータ構成例。 平滑化情報のデータ構成例。 最適化情報のデータ構成例。 サイクル進行情報のデータ構成例。 ゲーム処理全体の流れ図。 ゲーム処理中に実行されるクライアント処理の流れ図。 クライアント処理中に実行される補正準備処理の流れ図。 クライアント処理中に実行されるフレーム時間補正処理の流れ図。
符号の説明
1 ゲームシステム
10 ゲーム端末
100 操作入力部
200 処理部
210 ゲーム演算部
220 ホスト部
230 クライアント部
232 フレーム時間補正部
240 画像生成部
250 音生成部
340 画像表示部
350 音出力部
400 記憶部
410 ゲームプログラム
412 ホストプログラム
414 クライアントプログラム
422 参加ゲーム端末情報
424 受信コマンド情報
426 待ち情報
428 平滑化情報
432 最適化情報
434 サイクル進行情報
500 通信部
60 ロビーサーバ
N 通信ネットワーク

Claims (7)

  1. クライアント機であるコンピュータに自機に操作入力された入力コマンド及び自機における待ち状態の状況を示す待ち状況情報をホスト機に送信させるとともに、前記ホスト機から配信されてき全クライアント機の入力コマンド及び待ち状況情報に基づき、可変のフレーム時間間隔でフレーム画像を表示制御させていくことで、他のクライアント機との間で行うネットワークゲームの進行を制御させるためのプログラムであって、
    前記ホスト機からの入力コマンドの配信待ちによるフレーム画像の表示制御の待ち状態の発生を検出し、発生した待ち状態の継続時間である待ち時間を検出する待ち状態検出手段、
    前記待ち状態検出手段により検出された待ち時間を前記待ち状況情報に含めて前記ホスト機に送信する待ち状況送信手段、
    前記ホスト機から配信されてきた待ち状況情報を基に相対的に他のクライアント機を待たせている時間を判定し、この判定時間に基づいて前記フレーム時間を短くさせる程度を決定して前記フレーム時間を短くさせるフレーム時間短縮化手段、
    として前記コンピュータを機能させるためのプログラム。
  2. 前記フレーム時間短縮化手段が、前記ホスト機から配信されてきた他のクライアント機の待ち状況情報に含まれる待ち時間の内、最大の待ち時間と自機の待ち時間との差分を、相対的に他のクライアント機を待たせている時間と判定する、ように前記コンピュータを機能させるための請求項1に記載のプログラム。
  3. 前記待ち状態検出手段による検出に応じて、前記フレーム時間を長くさせるフレーム時間長期化手段として前記コンピュータを更に機能させるための請求項1又は2に記載のプログラム。
  4. 予め設定された連続するn枚(nは1以上の整数)のフレーム画像を生成して表示制御する期間であるサイクル期間毎に、前記待ち状態検出手段が待ち状態の発生を検出し、前記待ち状況送信手段が待ち状況情報を前記ホスト機に送信する、
    ように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
  5. 前記フレーム時間短縮手段が、前記フレーム時間を漸次短くさせるように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
  6. 請求項1〜の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
  7. 自機に操作入力された入力コマンド及び自機における待ち状態の状況を示す待ち状況情報をホスト機に送信するとともに、前記ホスト機から配信されてき全クライアント機の入力コマンド及び待ち状況情報に基づき、可変のフレーム時間間隔でフレーム画像を表示制御させていくことで、他のクライアント機との間で行うネットワークゲームの進行を制御させるクライアント機であるゲーム装置であって、
    前記ホスト機からの入力コマンドの配信待ちによるフレーム画像の表示制御の待ち状態の発生を検出し、発生した待ち状態の継続時間である待ち時間を検出する待ち状態検出手段と、
    前記待ち状態検出手段により検出された待ち時間を前記待ち状況情報に含めて前記ホスト機に送信する待ち状況送信手段と、
    前記ホスト機から配信されてきた待ち状況情報を基に相対的に他のクライアント機を待たせている時間を判定し、この判定時間に基づいて前記フレーム時間を短くさせる程度を決定して前記フレーム時間を短くさせるフレーム時間短縮化手段と、
    を備えたゲーム装置。
JP2005072688A 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置 Active JP4754243B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005072688A JP4754243B2 (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005072688A JP4754243B2 (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Publications (2)

Publication Number Publication Date
JP2006254945A JP2006254945A (ja) 2006-09-28
JP4754243B2 true JP4754243B2 (ja) 2011-08-24

Family

ID=37094790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005072688A Active JP4754243B2 (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Country Status (1)

Country Link
JP (1) JP4754243B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5005210B2 (ja) * 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
JP4682353B2 (ja) * 2009-08-25 2011-05-11 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US9674267B2 (en) * 2013-01-29 2017-06-06 Sony Interactive Entertainment America, LLC Methods and apparatus for hiding latency in network multiplayer games
JP6000484B1 (ja) * 2016-02-25 2016-09-28 株式会社 ディー・エヌ・エー 通信ゲームシステム、ホスト端末、ゲームプログラム、及び方法
JP7251083B2 (ja) * 2018-09-26 2023-04-04 株式会社セガ ゲーム処理プログラム、ゲーム処理方法及び端末
JP6792023B2 (ja) * 2019-04-26 2020-11-25 グリー株式会社 制御プログラム、制御方法、及びコンピュータ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3701794B2 (ja) * 1997-07-10 2005-10-05 株式会社ソニー・コンピュータエンタテインメント エンタテインメントシステム、画像表示装置、情報処理装置、及び同期制御方法
JP3794668B2 (ja) * 1999-02-04 2006-07-05 株式会社バンダイナムコゲームス ゲームシステム、ゲーム装置、ゲームデータ配信装置、ネットワークシステムおよび情報記憶媒体
JP2001198363A (ja) * 1999-09-14 2001-07-24 Sega Corp データ処理方法
JP4624531B2 (ja) * 2000-09-18 2011-02-02 株式会社バンダイナムコゲームス ゲーム装置および情報記憶媒体
JP4342356B2 (ja) * 2004-03-22 2009-10-14 任天堂株式会社 ゲームシステム、ゲーム装置、およびゲームプログラム

Also Published As

Publication number Publication date
JP2006254945A (ja) 2006-09-28

Similar Documents

Publication Publication Date Title
JP3991583B2 (ja) 画像表示方法、コンピュータゲーム処理方法及び記録媒体
US10912998B2 (en) Network game system for executing event in network game
JP4754243B2 (ja) プログラム、情報記憶媒体及びゲーム装置
US6371850B1 (en) Video game system for fighting game and method for executing fighting game
JP3899107B2 (ja) ゲームシステム及びゲームに関する情報制御方法
WO2014050061A1 (ja) ゲームシステム、その制御方法およびコンピュータ装置での読み取りが可能な記録媒体
JPWO2005030355A1 (ja) ゲームシステム
JP6923830B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7348544B2 (ja) 情報処理装置、及び情報処理プログラム
EP1604711A1 (en) Game device, game control method, and program
JP2007222563A (ja) ゲーム装置、そのゲーム装置を含むゲームシステム、ゲームプログラム、及び記録媒体
WO2020179799A1 (ja) プログラム、ゲーム装置およびゲームシステム
JP2003117248A (ja) ゲーム情報、情報記憶媒体及びサーバ
JP2010110524A (ja) ゲームシステム、ゲーム装置、ゲーム制御方法、ならびに、プログラム
JP2022088578A (ja) プログラム、端末、ゲームシステム及びゲーム管理装置
JP2003190640A (ja) 描画コマンド制御方法、記録媒体、描画コマンド制御装置及びプログラム
JP2004351229A (ja) 画像表示方法、コンピュータゲーム処理方法及び記録媒体
JPH11137839A (ja) ゲームシステム、ゲーム装置及び情報記憶媒体
JP6826183B1 (ja) プログラム、端末、ゲームシステム及びゲーム管理装置
JP6775093B1 (ja) プログラム、端末、ゲームシステム及びゲーム管理装置
JP4758122B2 (ja) プログラム、情報記憶媒体及び画像生成装置
JP7109497B2 (ja) プログラム、端末、ゲームシステム及びゲーム管理装置
JP6990735B2 (ja) プログラム、端末、ゲームシステム及びゲーム管理装置
JP2019170965A (ja) コンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080310

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110525

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4754243

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250