(57)【要約】 【課題】指示操作列の入力に時間がかかっても、同じグループ内の他の端末装置とゲームの進行を共有しながら提示する端末装置等を提供する。【解決手段】端末装置２０１の度合記憶部２０２は、ゲームの進行の度合を記憶し、入力受付部２０３は、指示操作列の入力を受け付け、ゲーム進行部２０４は、指示操作列に基づいて、ゲームを進行させ、度合更新部２０５は、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、度合が時間の経過にともなって進行し、かつ、グループ内の全端末装置２０１に記憶される度合の差が小さくなるように、度合を更新し、指示操作列の入力の受付が開始されてから終了するまでの間、度合の更新を停止し、画像表示部２０６は、記憶される度合に対応付けられるゲームの画像を表示する。【選択図】図２
2010227201.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つであって、当該端末装置は、
ゲームの進行の度合を記憶する度合記憶部、
プレイヤーによる指示操作列の入力を受け付ける入力受付部、
前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行部、
前記度合記憶部に記憶される度合を更新する度合更新部であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新部、
前記記憶される度合に対応付けられるゲームの画像を表示する画像表示部
を備えることを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置であって、
前記度合更新部は、前記グループに属する複数の端末装置のそれぞれに記憶される度合のうち、最も先行する度合と、前記記憶部に記憶される度合と、の差に、あらかじめ対応付けられる速度で、当該度合が更新される間、当該度合を、時間の経過にともなって進行させる
ことを特徴とする端末装置。
【請求項３】
請求項２に記載の端末装置であって、
前記指示操作列が受け付けられると、当該指示操作列を、前記グループに属する複数の端末装置のうち、他の端末装置に通知する操作通知部、
前記グループに属する複数の端末装置のうち、他の端末装置から通知される指示操作列を受け入れる操作受入部、
当該度合記憶部に記憶される度合を、前記グループに属する複数の端末装置のうち、他の端末装置に定期的に通知する度合通知部、
前記グループに属する複数の端末装置のうち、他の端末装置から通知される度合を受け入れる度合受入部
をさらに備え、
前記ゲーム進行部は、前記指示操作列が受け入れられると、前記受け付けられた度合および前記記憶される度合のうち、当該最も先行している度合に基づいて、前記ゲームの進行において当該指示操作列がなされた時点を決定する
ことを特徴とする端末装置。
【請求項４】
請求項３に記載の端末装置であって、
前記度合更新部において、当該度合記憶部に記憶される度合が、前記受け付けられた度合および前記記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、後行している場合のゲームの進行の速度よりも、遅い
ことを特徴とする端末装置。
【請求項５】
請求項４に記載の端末装置であって、
当該度合記憶部に記憶される度合が、前記受け付けられた度合および前記記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、現実の時間の経過よりも遅く、先行している場合のゲームの進行の速度は、現実の時間の経過よりも速い
ことを特徴とする端末装置。
【請求項６】
複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つを制御する端末装置の制御方法であって、当該端末装置は、ゲームの進行の度合を記憶する度合記憶部、入力受付部、ゲーム進行部、度合更新部、画像表示部を備え、前記端末装置の制御方法は、
前記入力受付部が、プレイヤーによる指示操作列の入力を受け付ける入力受付工程、
前記ゲーム進行部が、前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行工程、
前記度合更新部が、前記度合記憶部に記憶される度合を更新する度合更新工程であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新工程、
前記画像表示部が、前記記憶される度合に対応付けられるゲームの画像を表示する画像表示工程
を備えることを特徴とする端末装置の制御方法。
【請求項７】
コンピュータを、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つとして機能させるプログラムであって、前記プログラムは、前記コンピュータを、
ゲームの進行の度合を記憶する度合記憶部、
プレイヤーによる指示操作列の入力を受け付ける入力受付部、
前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行部、
前記度合記憶部に記憶される度合を更新する度合更新部であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新部、
前記記憶される度合に対応付けられるゲームの画像を表示する画像表示部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示するのに好適な端末装置、端末装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信機能を持ったコンピュータやゲーム装置などの端末装置を用いて複数のプレイヤーがゲームを行うシステムが提案されている。
【０００３】
ＭＭＯＲＰＧ（Massively Multiplayer Roll Playing Game）などのように、多数のプレイヤーが協力してゲームを進行させる場合には、各プレイヤーが非同期的にコマンドを入力できるように設定されたものがあるが、メニュー画面を表示し、所望の項目にカーソルを合わせて決定ボタンを押すなどの操作が必要で、コマンドの入力に時間がかかることがある。
【０００４】
一方で、以下に掲げる特許文献１においては、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅延したプレイヤーがいても適切に対処してゲームに参加できるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４１５０４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、コマンド入力に時間がかかる場合に、コマンド入力中もゲームが進行してしまうと、入力を行っているプレイヤーには、ゲームの進行がわかりにくくなってしまう、という問題が生じる。
【０００７】
一方で、あるプレイヤーがコマンドを入力している間、全プレイヤーについてゲームの進行を停止させるのでは、ゲームの進行に支障が生じてしまう。
【０００８】
本発明は、上記のような課題を解決するもので、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示するのに好適な端末装置、端末装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る端末装置は、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つであって、当該端末装置は、度合記憶部、入力受付部、ゲーム進行部、度合更新部、画像表示部を備え、以下のように構成する。
【００１１】
すなわち、度合記憶部は、ゲームの進行の度合を記憶する。
【００１２】
ここで、ゲームの進行の度合とは、典型的には、ゲームシステムにおけるゲーム世界内の日時に相当する情報である。本発明においては、ある時点で各プレイヤーに提示されるゲーム世界の日時が、プレイヤーの操作によってずれる可能性がある。そこで、プレイヤーに提示しようとするゲーム世界の日時に相当するゲームの進行の度合の情報を、度合記憶部に記憶するのである。
【００１３】
一方、入力受付部は、プレイヤーによる指示操作列の入力を受け付ける。
【００１４】
指示操作列の入力とは、たとえば、画面にメニュー画面を表示し、カーソルを所望の項目に移動させて、決定する、などの一連の指示操作によるものである。一つのコマンドを入力するためには、ユーザの熟練度にもよるが、ある程度の時間を要するのが一般的である。
【００１５】
さらに、ゲーム進行部は、受け付けられた指示操作列に基づいて、進行が共有されるゲームを進行させる。
【００１６】
すなわち、指示操作列に対応付けられるコマンドが、当該端末装置のプレイヤーから受け付けられたことを、グループ内の他の端末装置とも共有して、ともにゲームを進行させることにより、通信ゲームを実現する。
【００１７】
さらに、度合更新部は、度合記憶部に記憶される度合を更新する。ここで、
（ａ）指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する。
【００１８】
度合更新部は、ゲームの進行の度合、すなわち、ゲーム世界の日時を更新するのであるが、一般には、ゲーム世界の日時と現実世界の日時とは連動していて、一方が１時間進めば他方も１時間進む、のような対応関係がある。
【００１９】
ただし、プレイヤーが指示操作列を入力している間に、ゲーム世界の日時が進行してしまうと、プレイヤーが、ゲームの展開を把握できない可能性がある。そこで、本発明では、指示操作列を入力している間は、ゲーム世界の日時が進行しないようにするのである。
【００２０】
このような構成を採用すると、端末装置ごとに、ゲーム世界の日時がずれてしまう。そこで、本発明では、ゲームの進行の度合にずれが生じた場合には、このずれが小さくなるように、現実世界の日時とゲーム世界の日時の連動関係を調整するのである。典型的には、遅れている端末端末のゲームの進行の度合は、他の端末装置よりも速く更新したり、このほか、他の端末装置よりも遅く、スローモーションにして更新する。
【００２１】
さらに、画像表示部は、記憶される度合に対応付けられるゲームの画像を表示する。
【００２２】
上記のように、端末装置ごとにゲームの進行の度合にずれがある場合には、その端末装置の進行の度合に応じたゲームの画像が画面に表示されることになる。ゲーム世界の様子を常に画面に表示する態様では、指示操作列を入力している間は、進行の度合は更新されないので、時間が止まった状態で、表示されることになる。
【００２３】
本発明によれば、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示することができるようになる。
【００２４】
また、本発明の端末装置において、度合更新部は、グループに属する複数の端末装置のそれぞれに記憶される度合のうち、最も先行する度合と、記憶部に記憶される度合と、の差に、あらかじめ対応付けられる速度で、当該度合が更新される間、当該度合を、時間の経過にともなって進行させるように構成することができる。
【００２５】
典型的には、差がある閾値以下である場合には誤差範囲内であると解釈して、現実世界の時間経過と同じ速度で、ゲーム世界の日時を進行させ、当該閾値を超える場合には、現実世界の時間経過よりも速い速度で、ゲーム世界の日時を進行させる。特に、後者の場合には、差が大きければ大きいほど、速度をより速くすることができる。
【００２６】
本発明によれば、ゲームの進行の速度を適切に調整することで、各端末装置がプレイヤーに提示するゲームの進行の度合を、できるだけ一致させることができるようになる。
【００２７】
また、本発明の端末装置は、操作通知部、操作受入部、度合通知部、度合受入部をさらに備え、以下のように構成することができる。
【００２８】
すなわち、操作通知部は、指示操作列が受け付けられると、当該指示操作列を、グループに属する複数の端末装置のうち、他の端末装置に通知し、操作受入部は、グループに属する複数の端末装置のうち、他の端末装置から通知される指示操作列を受け入れる。
【００２９】
これらの処理によって、グループに属する各端末装置においてなされた指示操作列が、全端末装置に共有されることになる。
【００３０】
さらに、度合通知部は、当該度合記憶部に記憶される度合を、グループに属する複数の端末装置のうち、他の端末装置に定期的に通知し、度合受入部は、グループに属する複数の端末装置のうち、他の端末装置から通知される度合を受け入れる。
【００３１】
これらの処理によって、グループに属する各端末装置における進行の度合が、全端末装置に共有されることになる。
【００３２】
そして、ゲーム進行部は、指示操作列が受け入れられると、受け付けられた度合および記憶される度合のうち、当該最も先行している度合に基づいて、ゲームの進行において当該指示操作列がなされた時点を決定する。
【００３３】
各端末装置は、全端末装置においてなされた指示操作列や進行の度合を知っているので、指示操作列がなされたゲーム世界での日時を、最も先行しているゲーム世界での日時に設定する。
【００３４】
本発明によれば、各端末装置におけるゲームの進行の度合にずれが生じている場合であっても、指示操作列がなされたゲーム世界の日時を揃えて、ゲームの進行に矛盾が生じないようにすることができる。
【００３５】
また、本発明の端末装置の度合更新部において、当該度合記憶部に記憶される度合が、受け付けられた度合および記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、後行している場合のゲームの進行の速度よりも、遅いように構成することができる。特に、当該度合記憶部に記憶される度合が、受け付けられた度合および記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、現実の時間の経過よりも遅く、先行している場合のゲームの進行の速度は、現実の時間の経過よりも速いように構成することができる。
【００３６】
これらの発明においては、ゲームの進行の度合が遅れている端末装置について、度合の更新の速さを、先行している端末装置よりも速くしたり、現実の時間経過よりも速くしたりする一方で、ゲームの進行の度合が進んでいる端末装置については、度合の更新の速さを、遅れている端末装置よりも遅くしたり、現実の時間経過よりも遅くするものである。
【００３７】
本発明によれば、ゲームの進行の速度を適切に調整することで、各端末装置がプレイヤーに提示するゲームの進行の度合を、できるだけ一致させることができるようになる。
【００３８】
本発明のその他の観点に係る端末装置の制御方法は、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つにおいて実行され、当該端末装置は、ゲームの進行の度合を記憶する度合記憶部、入力受付部、ゲーム進行部、度合更新部、画像表示部を備え、端末装置の制御方法は、入力受付工程、ゲーム進行工程、度合更新工程、画像表示工程を備え、以下のように構成する。
【００３９】
すなわち、入力受付工程では、入力受付部が、プレイヤーによる指示操作列の入力を受け付ける。
【００４０】
一方、ゲーム進行工程では、ゲーム進行部が、受け付けられた指示操作列に基づいて、進行が共有されるゲームを進行させる。
【００４１】
さらに、度合更新工程では、度合更新部が、度合記憶部に記憶される度合を更新する。ここで、
（ａ）指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する。
【００４２】
一方、画像表示工程では、画像表示部が、記憶される度合に対応付けられるゲームの画像を表示する。
【００４３】
本発明のその他の観点に係るプログラムは、コンピュータを、上記の端末装置として機能させるように構成する。
【００４４】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００４５】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００４６】
本発明によれば、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示するのに好適な端末装置、端末装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００４７】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る端末装置の概要構成を示す説明図である。
【図３】本実施形態に係る端末処理の制御の流れを示すフローチャートである。
【図４Ａ】本実施形態において各端末装置にゲームの進行の場面が提示される時系列を示す説明図である。
【図４Ｂ】本実施形態において各端末装置にゲームの進行の場面が提示される時系列を示す説明図である。
【発明を実施するための形態】
【００４８】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【００４９】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００５０】
図１は、プログラムを実行することにより、本実施形態の端末装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５１】
本図に示す情報処理装置１００は、いわゆるコンシューマゲーム機に相当するもので、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、インターフェース１０４、コントローラ１０５、外部メモリ１０６、画像処理部１０７、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８、ＮＩＣ（Network Interface Card）１０９、音声処理部１１０、マイク１１１、ハードディスク（Hard Disk；ＨＤ）１２１を有する。各種の入出力装置は、適宜省略することができる。
【００５２】
情報処理装置１００を典型的なコンシューマゲーム機として機能させる場合には、ゲーム用プログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着し、電源を投入する。すると、当該ゲームプログラムが実行され、ゲームをプレイすることができるようになる。
【００５３】
また、ＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭから、アプリケーションをＨＤ  １２１にインストールして、当該ＨＤ  １２１に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションを実行することとしても良い。
【００５４】
なお、本実施形態に係る端末装置と各種のサーバ装置とでは、実行する情報処理の規模や種類が異なるだけで、本質的には、いずれも、本図に示す情報処理装置１００と同様の構成により、実現される。
【００５５】
なお、携帯型のゲーム装置においては、携帯可能とするために、ＤＶＤ−ＲＯＭドライブ１０８を利用するのではなく、ＲＯＭカセット用スロットにＲＯＭ（Read Only Memory）カセットやＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）カセットを装着することで、ＨＤ  １２１を省略することも可能である。この場合、アプリケーション用プログラムをＲＯＭカセットやＥＥＰＲＯＭカセットに書き込んでおけば、当該プログラムを実行することができる。このほか、外部メモリ１０６にアプリケーション用プログラムをインストールすることも可能である。
【００５６】
さて、ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００５７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００５８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＨＤ  １２１やＤＶＤ−ＲＯＭ等から読み出したプログラムやデータ、その他通信対戦ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００５９】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００６０】
なお、コントローラ１０５は、必ずしも情報処理装置１００に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な端末装置のコントローラ１０５は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置１００では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【００６１】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００６２】
上述の通り、アプリケーションプログラムを外部メモリ１０６にインストールして実行するような形態を採用することもできる。これは、外部メモリ１０６が大容量である場合に好適である。
【００６３】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００６４】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００６５】
携帯可能な端末装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ１０５としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶための端末装置やサーバ装置のモニタとしては、ＣＲＴ（Cathode Ray Tube）やプラズマディスプレイなどの表示装置を利用することも可能である。
【００６６】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００６７】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００６８】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００６９】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮを構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００７０】
このほか、ＮＩＣ  １０９として、無線ＬＡＮ対応のものを採用することもできる。この場合、インターネットに接続する場合にはインフラストラクチャ通信を行い、近傍に配置される情報処理装置１００同士で通信する場合にはアドホック通信を行うのが典型的である。
【００７１】
また、ＮＩＣ  １０９経由でコンピュータ通信網から入手した情報を元に、ＨＤ  １２１等にアプリケーションプログラムをインストールすることも可能である。
【００７２】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【００７３】
音声処理部１１０では、ＨＤ  １２１やＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００７４】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００７５】
本実施形態で利用する情報処理装置１００は、上述のように、ＨＤ  １２１等の大容量外部記憶装置を用いるのが典型的である。ＨＤ  １２１は、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすこともできる。
【００７６】
このほか、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。
【００７７】
以上で説明した情報処理装置１００は、コンシューマ向けゲーム装置に相当するものであるが、各種の入出力処理が可能な電子機器であれば、本発明の端末装置のほか、各種のサーバ装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明の端末装置のほか、各種のサーバ装置を実現することが可能である。
【００７８】
たとえば、ビジネス用コンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣ、ＨＤを構成要素として有するほか、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっており、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用するのが典型的である。
【００７９】
本実施形態に係る端末装置は、複数集まってグループを形成し、ゲームの進行を共有するが、そのための手法としては、大きくわけて以下の３通りがある。
（ａ）各端末装置が共通するサーバ装置にて管理される形態。無線ＬＡＮのインフラストラクチャモードで端末装置が通信ゲームを行う場合等に好適である。
（ｂ）各端末装置のうちいずれかがマスターとなり、他の端末装置がスレーブとなって、マスターがスレーブを管理する形態。上記形態のサーバの役割をマスターが果たす形態であり、無線ＬＡＮのアドホックモードで端末装置が通信ゲームを行う場合等に好適である。
（ｃ）各端末装置が、対等の関係でゲームの進行を管理する形態。
【００８０】
これら３通りの形態は、各部の機能を、どの端末装置あるいはサーバ装置が担当するか、の相違があるだけであり、処理の本質は共通している。
【００８１】
以下では、理解を容易にするため、上記（ｃ）の態様を例にあげて説明するが、各端末装置やサーバ装置との間で適宜情報を送受することによって、本態様を上記（ａ）や上記（ｂ）の態様に変形することも可能である。
【００８２】
図２は、本実施形態に係る端末装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００８３】
本実施形態に係る端末装置２０１は、上記の情報処理装置１０１にＤＶＤ−ＲＯＭ等の記録媒体を装着し、記録媒体に記録されたプログラムを実行することによって実現される。
【００８４】
ここで、当該端末装置２０１は、度合記憶部２０２、入力受付部２０３、ゲーム進行部２０４、度合更新部２０５、画像表示部２０６、操作通知部２０７、操作受入部２０８、度合通知部２０９、度合受入部２１０を備える。
【００８５】
ここで、度合記憶部２０２は、ゲームの進行の度合を記憶する。本実施形態では、ＲＡＭ  １０３によって実現される。
【００８６】
本実施形態では、ゲームの進行の度合として、ゲームシステムにおけるゲーム世界内の日時を採用する。本実施形態では、プレイヤーの入力操作がされている間は、各プレイヤーに提示されるゲーム世界の日時が停止する。このため、ゲーム世界の日時は、プレイヤーの操作によってずれてしまう。プレイヤーに提示しようとするゲーム世界の日時を、ゲームの進行の度合の情報として、度合記憶部２０２に記憶する。
【００８７】
なお、本実施形態ではゲーム世界の日時の流れの速度と、現実世界の日時の流れの速度と、の比も、ゲームの進行の度合の情報として、度合記憶部２０２に記憶される。
【００８８】
一方、入力受付部２０３は、プレイヤーによる指示操作列の入力を受け付ける。本実施形態では、コントローラ１０５によって実現される。
【００８９】
本実施形態における指示操作列の入力は、画面にメニューを表示し、カーソルを所望の項目に移動させて、決定する、などの一連の指示操作によるものである。一つのコマンドを入力するためには、ユーザの熟練度にもよるが、ある程度の時間を要し、この一連の指示操作をしている間、当該端末装置２０１のゲーム世界の日時は停止する。
【００９０】
さらに、ゲーム進行部２０４は、受け付けられた指示操作列に基づいて、端末装置２０１同士で進行が共有されるゲームを、当該端末装置２０１において進行させる。本実施形態では、ＣＰＵ  １０１が情報処理装置１００の各部と共働することによって実現される。
【００９１】
すなわち、指示操作列に対応付けられるコマンドが、当該端末装置２０１のプレイヤーから受け入れられたことを、操作通知部２０７、操作受入部２０８を機能させて指示操作列の送受を行うことによってグループ内の他の端末装置２０１と共有し、ともにゲームを進行させることにより、通信ゲームを実現する。
【００９２】
さらに、度合更新部２０５は、度合記憶部２０２に記憶される度合を更新する。ここで、
（ａ）指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、グループに属する複数の端末装置２０１のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する。
【００９３】
度合更新部２０５は、ゲームの進行の度合、すなわち、ゲーム世界の日時を更新する。
【００９４】
上記のように、本実施形態においては、原則として、ゲーム世界の日時と現実世界の日時とは連動していて、一方が１時間進めば他方も１時間進む、のような対応関係がある。
【００９５】
ただし、本実施形態では、プレイヤーが指示操作列を入力している間は、ゲーム世界の日時が進行しないようにして、その間のゲームの展開をプレイヤーが把握できないようになってしまうことを防止している。
【００９６】
このような構成を採用すると、端末装置２０１ごとに、ゲーム世界の日時がずれてしまう。そこで、本実施形態では、ゲームの進行の度合にずれが生じた場合には、このずれが小さくなるように、現実世界の日時とゲーム世界の日時の連動関係を調整するのである。調整の手法としては、後述するように、遅れている端末装置２０１のゲームの進行の度合を速くしたり、進んでいる端末装置２０１のゲームの進行の度合を遅くしたりする。
【００９７】
このため、度合通知部２０９と、度合受入部２１０とを機能させて、同じグループに属する他の端末装置２０１同士で、そのゲームの進行の度合の情報を定期的に送受し合って共有する。この処理によって、各端末装置２０１は、当該端末装置２０１のプレイヤーに提示されているゲームの進行の度合が、他の端末装置２０１のプレイヤーに提示されているゲームの進行の度合に比べて、遅れているのか進んでいるのかを知得することができる。
【００９８】
なお、本実施形態では、ゲーム進行部２０４は、指示操作列が受け入れられると、受け付けられた度合および記憶される度合のうち、当該最も先行している度合に基づいて、ゲームの進行において当該指示操作列がなされた時点を決定する。
【００９９】
各端末装置２０１は、全端末装置２０１においてなされた指示操作列や進行の度合を知っているので、指示操作列がなされたゲーム世界での日時を、最も先行しているゲーム世界での日時に設定して、ゲーム世界での歴史に矛盾が生じないようにするのである。
【０１００】
さらに、画像表示部２０６は、記憶される度合に対応付けられるゲームの画像を表示する。
【０１０１】
上記のように、端末装置２０１ごとにゲームの進行の度合にずれがある場合には、その端末装置２０１の進行の度合に応じたゲームの画像が画面に表示されることになる。ゲーム世界の様子を常に画面に表示する態様では、指示操作列を入力している間は、進行の度合は更新されないので、時間が止まった状態で、表示されることになる。
【０１０２】
以下、端末装置２０１のそれぞれにて実行される端末処理の詳細について説明する。図３は、本実施形態に係る端末処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、本図では、複数の端末装置２０１のうち、第i番目の端末装置２０１を想定して、説明をしている。
【０１０３】
本処理が開始されると、端末装置２０１を実現する情報処理装置１００のＣＰＵ  １０１は、各種の初期化を行う（ステップＳ３０１）。この初期化では、たとえば、以下のような処理が行われる。
【０１０４】
まず、ＮＩＣ  １０９を介して、ゲームの進行を共有する他の端末装置２０１の検索と通信設定が行われる。無線ＬＡＮのインフラストラクチャ通信や有線ＬＡＮを利用して通信ゲームを行う場合には、ロビーサーバなどに接続して、他の端末装置２０１の紹介を受ける。無線ＬＡＮのアドホック通信を利用して通信ゲームを行う場合には、ビーコンを発して近傍の端末装置２０１との通信を確立する。
【０１０５】
他の端末装置２０１が決まり、ゲームを進行させるためのグループが形成されたら、当該グループ内における当該端末装置２０１の番号を決める。N台の端末装置２０１からなるグループの場合、本実施形態では、各端末装置２０１の番号として、0，1，2，…，N-1のいずれかの整数を、重複なく割り当てるものとする。
【０１０６】
そして、各種のゲームのための初期設定を行う。この初期設定では、未通知キューと、コマンドキューの、２つのキューのクリア作業も行われる。
【０１０７】
ここで、コマンドキューは、
（ａ）各端末装置２０１のプレイヤーにより入力された指示操作列に対応付けられるコマンドと、
（ｂ）当該端末装置２０１の番号と、
（ｃ）当該コマンドが入力されたものとみなす「ゲーム世界の日時」と、
を対応付けて記憶するキューである。
【０１０８】
一方、未通知キューは、当該端末装置２０１のプレイヤーにより入力された指示操作列に対応付けられるコマンドを記憶するキューである。
【０１０９】
また、現在がコマンド入力中か否かの状態情報も初期化する。
【０１１０】
そして、ＲＡＭ  １０３に記憶される度合記憶部２０２を初期化して、ステップＳ３０２に進む。本実施形態では、ゲームを開始した時点からの「ゲーム世界での日時の経過」を、ゲームの進行の度合として利用する。
【０１１１】
以下、理解を容易にするためi番目の端末装置２０１の度合をd[i]と表記し、当該端末装置２０１の度合の速度をk[i]と表記する。各端末装置２０１の度合記憶部２０２には、
d[0]，d[1]，d[2]，…，d[N-1]、および
k[0]，k[1]，k[2]，…，k[N-1]
のための記憶領域が用意される。
【０１１２】
初期化の時点では、d[0]，d[1]，d[2]，…，d[N-1]は、いずれも0.0に、k[0]，k[1]，k[2]，…，k[N-1]は、いずれも1.0に、それぞれ初期化される。すなわち、整数j = 0，1，2，…，N-1のそれぞれについて、
d[j] := 0.0； k[j] := 1.0
を実行する。ここで、「:=」は、代入を意味する。また、本願では、値として実数を用いているが、固定小数点表現を利用することにより、整数計算によって、進行の度合や速度を表現することとしても良い。
【０１１３】
ついで、ＣＰＵ  １０１は、当該端末装置２０１の番号がi番目である場合、
（ａ）度合記憶部２０２に記憶される度合d[i]に基づいたゲーム世界の様子と、
（ｂ）ユーザに提示すべき各種の情報と、
を表す画像を、ＲＡＭ  １０３内に生成する（ステップＳ３０２）。
【０１１４】
すなわち、当該i番目の端末装置における「ゲーム世界内の日時」は、d[i]である、ということになる。
【０１１５】
また、各種のコマンドを入力している間等は、メニュー項目やカーソル、各種のパラメータ情報などが、ユーザに提示される情報として、生成される画像に含まれることになる。
【０１１６】
画像が生成されたら、垂直同期割込が生じるまで待機して（ステップＳ３０３）、垂直同期割込が生じたら、画像処理部１０７を制御して、当該生成された画像をモニタ画面に表示する（ステップＳ３０４）。なお、ステップＳ３０３の待機中には、種々の処理をコルーチン的に実行することが可能である。
【０１１７】
そして、ＣＰＵ  １０１は、整数j = 0，1，2，…，N-1のそれぞれについて、
d[j] := d[j] + k[j]×ΔT
を実行する（ステップＳ３０５）。ここで、ΔＴは、垂直同期割込の周期であり、典型的には、１／３０秒、もしくは、１／６０秒程度である。
【０１１８】
ついで、ＣＰＵ  １０１は、当該端末装置２０１が、度合通知をすべきタイミングであるか否かを調べる（ステップＳ３０６）。時分割通信を行っている場合には、現在時刻が、当該端末装置２０１に割り当てられた通信用スロットに含まれているときが、度合通知をすべきタイミングであることになる。この通信用スロットは、度合通知のためのほか、コマンド通知のためのものを別途用意することとしても良い。
【０１１９】
このほか、簡易には、以下のような手法がある。すなわち、ゲームの開始から現在までの垂直同期割込の回数cをカウントする。そして、当該回数をN以上の定数Mで割り算したときの余りが、当該端末装置２０１の番号iに等しいか否か、すなわち、
c mod M = i
が成立するか否かを調べる。これが成立する場合は、度合通知をすべきタイミングである、と判断する。Mは、Nの２倍以上の値とするのが典型的である。
【０１２０】
度合通知をすべきタイミングである場合（ステップＳ３０６；Ｙｅｓ）、端末装置２０１は、自身の番号iと、現在の度合d[i]と、現在の速度k[i]と、を、他の端末装置２０１に通知して（ステップＳ３０７）、ステップＳ３０８に進む。
【０１２１】
度合通知をすべきタイミングでない場合（ステップＳ３０６；Ｎｏ）、そのままステップＳ３０８に進む。
【０１２２】
さらに、ＣＰＵ  １０１は、現在がコマンド入力中であるか否かを調べ（ステップＳ３０８）、コマンド入力の途中でなければ（ステップＳ３０８；Ｎｏ）、コントローラ１０５の操作入力の状況を検査することにより、コマンド入力が開始されたか否かを取得する（ステップＳ３０９）。たとえば、コントローラ１０５に用意されたメニュー表示ボタンの押圧操作がなされると、コマンド入力が開始された、と判断する。コマンド入力が開始されていない場合（ステップＳ３０９；Ｎｏ）、ステップＳ３１２に進む。
【０１２３】
一方、コマンド入力が開始されたことが判明した場合（ステップＳ３０９；Ｙｅｓ）、現在コマンド入力中である旨をＲＡＭ  １０３に記録して（ステップＳ３１０）、自身の現在の速度k[i]を、
k[i] := 0
のように更新する（ステップＳ３１１）。
【０１２４】
このように更新することによって、当該i番目の端末装置２０１にて提示されるゲーム世界内の日時d[i]は、ステップＳ３０５の更新によっても、変化しなくなる。
【０１２５】
そして、ＣＰＵ  １０１は、ＮＩＣ  １０９を監視して、他の端末装置２０１から各種の通知が到達しているか否かを調べる（ステップＳ３１２）。通知が何も到達していなければ（ステップＳ３１２；なし）、そのままステップＳ３１６に進む。
【０１２６】
ここで、他の端末装置２０１によって、ステップＳ３０７における度合通知が送信されたとする。
【０１２７】
すると、度合通知がステップＳ３１２において検出されることとなる。すなわち、度合通知が到達している場合（ステップＳ３１２；度合）、当該端末装置２０１は、当該度合通知を受信し（ステップＳ３１３）、度合通知に指定されている番号Iと、度合Dと、速度Kと、を取得して（ステップＳ３１４）、
d[I] := D； k[I] := K
のように、ＲＡＭ  １０３を更新して（ステップＳ３１５）、ステップＳ３１６に進む。
【０１２８】
K = 0.0である場合には、I番目の端末装置２０１において、現在コマンド入力中であることになるし、d[I]からは、I番目の端末装置２０１が、現在プレイヤーに提示しているゲームの場面は、進行の度合がd[I]のときのものであることがわかる。
【０１２９】
さらに、ＣＰＵ  １０１は、当該端末装置２０１が、操作通知をすべきタイミングであるか否かを調べる（ステップＳ３１６）。操作通知をすべきタイミングであるか否かは、上述の度合通知と同様に、現在時刻がそのための通信スロットに含まれているか否かによって判断したり、
c mod M = N + i
が成立するか否かにより判定する手法が採用できる。
【０１３０】
操作通知をすべきタイミングである場合（ステップＳ３１６；Ｙｅｓ）。未送信キューが空であるか否かを調べる（ステップＳ３１７）。
【０１３１】
未送信キューが空でなければ（ステップＳ３１７；Ｎｏ）、自身の番号iと、未送信キューに記憶されているコマンドと、を指定する操作通知を、他の端末装置２０１に送信して（ステップＳ３１８）、未送信キューをクリアし（ステップＳ３３０）、ステップＳ３３１に進む。
【０１３２】
未送信キューに記憶されるコマンドは、典型的には１個までであるが、操作通知をするタイミングによっては、複数記憶されるように構成しても良い。
【０１３３】
一方、操作通知をすべきタイミングでない場合（ステップＳ３１６；Ｎｏ）や未送信キューが空である場合（ステップＳ３１７；Ｙｅｓ）は、そのままステップＳ３３１に進む。
【０１３４】
このようにして操作通知が他の端末装置２０１から送信された場合を考える。当該操作通知が、当該端末装置２０１に到達すると、ステップＳ３１２において、ＮＩＣ  １０９は、操作通知が到達したことを検知する（ステップＳ３１２；操作）。すると、当該端末装置２０１は、その操作通知を受信して（ステップＳ３１９）、操作通知に指定されている番号と、コマンドと、を取得する（ステップＳ３２０）。
【０１３５】
そして、各端末装置２０１の進行の度合d[0]，d[1]，d[2]，…，d[N-1]の中の最大の値max(d) = max(d[0]，d[1]，d[2]，…，d[N-1])を求め（ステップＳ３２１）、
（ａ）取得されたコマンドが、
（ｂ）取得された番号の端末装置２０１において、
（ｃ）ゲーム世界の日時におけるmax(d)の時点に、
入力された旨を表す情報を、コマンドキューに追加して（ステップＳ３２２）、ステップＳ３１６に進む。
【０１３６】
ここで、max(d)とは、各端末装置２０１のうち、最も進行の度合が先に進んでいるものを意味する。上記のような処理を行うことで、当該コマンドが入力された時刻を確定させることとして、各端末装置２０１におけるコマンドの順序等に、矛盾が生じないようにするのである。
【０１３７】
さて、現在がコマンド入力中である場合（ステップＳ３０８；Ｙｅｓ）、コントローラ１０５の操作入力の状況を検査して、コマンド入力のための指示入力を受け付ける（ステップＳ３２３）。たとえば、カーソルキーの押圧操作や決定ボタンの押圧操作、マウスの移動操作・クリック操作、タッチペンによるタッチパネルへの接触操作などが、コマンド入力のための指示入力として考えられる。
【０１３８】
これらの操作入力によって、画面に表示されたメニューの中のメニュー項目から、所望のコマンドを選択したり、ゲームの各種のパラメータを画面に表示したりするのである。
【０１３９】
そして、受け付けられた指示入力によって、一つのコマンド入力が完了したか否かを調べる（ステップＳ３２４）。たとえば、メニュー項目から所望のコマンドを選択する場合には、カーソルキーで樹状のメニューの中を移動して、決定ボタンを押圧操作することにより、コマンド入力が完了したことになる。
【０１４０】
コマンド入力が完了しておらず、まだ操作指示を続ける必要がある場合には（ステップＳ３２４；Ｎｏ）、ステップＳ３１６に進む。
【０１４１】
コマンド入力が完了していれば（ステップＳ３２４；Ｙｅｓ）、未送信キューに、当該コマンドを追加するとともに（ステップＳ３２５）、max(d)を取得する（ステップＳ３２６）。そして、
（ａ）当該入力されたコマンドが、
（ｂ）当該i番目の端末装置２０１において、
（ｃ）ゲーム世界の日時におけるmax(d)の時点に、
入力された旨を表す情報を、コマンドキューに追加する（ステップＳ３２７）。
【０１４２】
したがって、ステップＳ３２５で未送信キューに追加されたコマンドは、ステップＳ３１８で送信され、他の端末装置２０１から送信されたコマンドは、ステップＳ３１９で受信され、ステップＳ３２２でコマンドキューに追加登録されることになる。
【０１４３】
一方、端末装置２０１自身のコマンドキューには、ステップＳ３２７でコマンドが追加される。このような管理を行うことで、各端末装置２０１でコマンドが入力された「ゲーム内世界の日時」に矛盾が生じないように、コマンド入力を共有することができる。
【０１４４】
さて、コマンド入力が完成したら、当該i番目の端末装置２０１におけるゲームの進行を再開することとなる。すなわち、速度k[i]として、０.０でない数値を与えることとなる。
【０１４５】
ここで、当該i番目の端末装置２０１は、コマンド入力中に「ゲーム内世界の日時」が停止していたため、他の端末装置２０１に対して、ゲームの進行の度合d[i]が遅れているものと考えられる。すなわち、
max(d) > d[i]
が成立する。
【０１４６】
このような状況下で、当該i番目の端末装置２０１が他の端末装置２０１に追い付くためには、速度k[i]として、１よりも大きな値を与えるのが最も簡単である。
【０１４７】
そこで、N個の要素からなる配列dと、その配列内での要素のインデックスiと、を引き数とする関数f(d,i)を考え、この関数f(d,i)が返す値を、当該i番目の端末装置２０１の速度k[i]とする。
【０１４８】
関数f(d,i)の最も単純な定義は、１.０より大きい定数Cと、微小な誤差を表す定数εにより、
（ａ）max(d)-d[i]≦εであれば、f(d,i) = 1.0
（ｂ）そうでなければ、f(d,i) = C
とするものである。定数εの大きさは、通信における遅延時間を考慮して、ΔＴの数倍から十数倍程度とするのが典型的である。関数f(d,i)のその他の定義については、後述する。
【０１４９】
さて、上記のように、ステップＳ３２４においてコマンドの入力が完了したと判定され、ステップＳ３２７において当該コマンドがコマンドキューへ追加がされたら、当該i番目の端末装置２０１の速度k[i]を、
k[i] := f(d,i)
のように更新して（ステップＳ３２８）、ステップＳ３３１に進む。
【０１５０】
このように速度k[i]の更新がされたことは、次に当該i番目の端末装置２０１から度合通知を送信する際に、他の端末装置２０１に通知される。
【０１５１】
ついで、コマンドキューに登録されている情報を順に調べて、現在の当該i番目の端末装置２０１の進行の度合d[i]以前に入力されたコマンドの情報、すなわち、コマンドの種類と当該コマンドが入力された端末装置２０１の番号をコマンドキューからすべて取り出す（ステップＳ３３１）。
【０１５２】
そして、取り出されたコマンドの情報の進行の度合の順に、どの端末装置２０１においてどのコマンドが入力されたかに基づいて、ゲームの状態を更新する（ステップＳ３３２）。
【０１５３】
このようにしてゲームの状態を更新することで、各端末装置２０１で現実世界の同時刻に提示されるゲーム世界の様子にずれがあったとしても、ゲーム世界内の日時では、同じ日時に同じコマンドが同じプレイヤーから入力されたこととなり、ゲームの進行を共有することができるのである。
【０１５４】
ステップＳ３３２において、ゲームの状態を更新したら、ステップＳ３０２に戻る。
【０１５５】
上記実施形態では、一つのループの中で、各種通知の受信や操作入力の受付の処理を行っているが、受信割込やコントローラ入力割込などを利用することによって、これらの処理を、並列処理的に行うことも可能である。
【０１５６】
また、度合通知は、必ずしも定期的に送信する必要はないが、通信ゲームにおいては、相互の接続が確実であることを定期的に確認するのが一般的であるため、そのような定期的な確認の際に、度合の情報をマスターを経由して他の端末装置２０１に通知してしまうのが、最も典型的な手法である。
【０１５７】
図４Ａ、図４Ｂは、本実施形態において、２台の端末装置２０１が通信ゲームを行う場合のゲームの進行と提示の例を示す説明図である。以下、本図を参照して説明する。
【０１５８】
本図横軸の時間軸４０１は、時間の流れる方向を意味し、端末装置２０１ａと端末装置２０１ｂにおいて表示されるゲームの場面が、それぞれ、帯４１１ａ、４１１ｂの中に、Ａ、Ｂ、Ｃ、Ｄ、…のように、示されている。
【０１５９】
当初は、２つの端末装置２０１ａ、２０１ｂで、同時に同じ場面Ａが提示されている。
【０１６０】
その後、端末装置２０１ａ、２０１ｂにおいて場面Ｂが画面に表示されている途中で、端末装置２０１ｂにおいて、コマンドの入力４１２ｂ（図中の斜線部）が開始されている。
【０１６１】
コマンドの入力４１２ｂがされている間、端末装置２０１ａにおいては、場面Ｂ、Ｃ、Ｄのようにゲームが進むが、端末装置２０１ｂにおいては、画面に表示される場面は変化しない。このため、端末装置２０１ａと端末装置２０１ｂの間で、ずれが生じる。
【０１６２】
端末装置２０１ｂにおいて、コマンドの入力４１２ｂが完了すると、端末装置２０１ｂは、場面の表示をC倍速（本図ではC = 2である。）で行い、端末装置２０１ａに追い付こうとする。このために、場面Ｂの残り部分や、場面Ｃ、Ｄ、Ｅを高速に再生する。
【０１６３】
そして、場面Ｆの開始時点で、端末装置２０１ｂは端末装置２０１ａに追い付く。このため、端末装置２０１ｂにゲームの進行の速度は、通常の速度に戻る。
【０１６４】
また、コマンド入力４１２ｂのコマンドがゲーム内において生じた「ゲーム内の日時」は、ゲーム内の日時が最も先行してプレイヤーに提供されている端末装置２０１ａの時系列から考えて、場面Ｄの途中の時点４１３ａに相当することになる。
【０１６５】
すなわち、端末装置２０１ｂにおいては、コマンドの入力４１２ｂが完了しても入力されたコマンドが直ちに有効となるのではない。端末装置２０１ｂにおいてゲームの進行の高速再生がなされ、時点４１３ａと同じゲーム内の日時である時点４１３ｂになって初めて、当該コマンドが有効となる。
【０１６６】
このように、コマンドが有効となる現実世界での時刻は、端末装置２０１ａと端末装置２０１ｂとで異なるが、コマンドが有効となるゲーム世界での日時は、一致することとなる。したがって、ゲームの進行について、端末装置２０１ａ、２０１ｂの間で矛盾が生じることはない。
【０１６７】
図４Ａでは、コマンド入力が完了してからそのコマンド入力が実際に有効となるまでに、少々の時間を要するが、図４Ｂでは、コマンド入力が完了してから、そのコマンド入力が実際に有効となるまでの間４２１ｂに、当該コマンドに対応する特殊効果を画面に表示している。特殊効果は、早送りされているゲーム内世界の表示にオーバレイさせるのが典型的である。
【０１６８】
このような表示を行うことで、コマンド入力を行ったユーザに、当該コマンド入力が受け付けられたことを知らせることができる。本発明によれば、複数の端末装置２０１からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示することができるようになる。
【０１６９】
以下では、関数f(d,i)のさまざまな変形例について説明する。
【０１７０】
上記の態様では、１.０より大きい定数Cと、微小な誤差を表す定数εにより、
（ａ）max(d)-d[i]≦εであれば、f(d,i) = 1.0
（ｂ）そうでなければ、f(d,i) = C
としていた。この態様は、遅れている端末装置２０１において、C倍速でゲーム世界の様子が画面表示され、一番先行している端末装置２０１に追い付くと、通常速度の１倍速に表示が戻る。
【０１７１】
このほか、遅れをとり戻すにつれて速度が次第に１倍速に近付く、というようにするためには、適当な正定数Dを用いて
（ａ）max(d)-d[i]≦εであれば、f(d,i) = 1.0
（ｂ）そうでなければ、f(d,i) = 1 + D×(max(d)-d[i])
とする態様もありうる。
【０１７２】
一般には、単調増加しつつ正の値を返す適当な関数g(・)を用いて、
（ａ）max(d)-d[i]≦εであれば、f(d,i) = 1.0
（ｂ）そうでなければ、f(d,i) = 1 + g(max(d)-d[i])
とすることができる。
【０１７３】
さらに、先行している端末装置２０１の再生はスローモーションとし、遅れている端末装置２０１の再生は早送りとして、ゲームの進行のずれを小さくする、という手法もありうる。
【０１７４】
たとえば、d[0]，d[1]，d[2]，…，d[N-1]の平均値、もしくは、中央値をEとしたときに、
（ａ）d[i]≦E-εであれば、f(d,i) > 1
（ｂ）E-ε<d[i]<E+εであれば、f(d,i) = 1
（ｃ）E+ε≦d[i]であれば、f(d,i) < 1
とする態様が考えられる。場合分け（ａ）（ｃ）における値は、１を超える定数や１未満の定数を採用しても良い。また、上記の関数g(・)に類する単調に変化する関数に、Eとd[i]の差を与えた結果を利用することとしても良い。
【０１７５】
これらの態様によれば、各端末装置２０１が提示するゲームの進行の度合を速くしたり遅くしたりして、できるだけ一致させることができるようになる。
【産業上の利用可能性】
【０１７６】
以上説明したように、本発明によれば、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおいて、指示操作列の入力に時間がかかっても、全プレイヤーにゲームの進行を適切に提示するのに好適な端末装置、端末装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０１７７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
１２１  ＨＤ
２０１  端末装置
２０２  度合記憶部
２０３  入力受付部
２０４  ゲーム進行部
２０５  度合更新部
２０６  画像表示部
２０７  操作通知部
２０８  操作受入部
２０９  度合通知部
２１０  度合受入部
４０１  時間軸
４１１  提示される場面を表す帯
４１２  コマンドが入力された時間帯
４１３  コマンドが入力されたと解釈される時点
４２１  特殊効果が表示される時間帯
【図１】
2010227201.tif 000003
【図２】
2010227201.tif 000004
【図３】
2010227201.tif 000005
【図４Ａ】
2010227201.tif 000006
【図４Ｂ】
2010227201.tif 000007
【手続補正書】
【提出日】平成22年6月29日(2010.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つであって、当該端末装置は、
ゲームの進行の度合を記憶する度合記憶部、
プレイヤーによる指示操作列の入力を受け付ける入力受付部、
前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行部、
前記度合記憶部に記憶される度合を更新する度合更新部であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新部、
前記記憶される度合に対応付けられるゲームの画像を表示する画像表示部
を備えることを特徴とする端末装置。
【請求項２】
請求項１に記載の端末装置であって、
前記度合更新部は、前記グループに属する複数の端末装置のそれぞれに記憶される度合のうち、最も先行する度合と、前記記憶部に記憶される度合と、の差に、あらかじめ対応付けられる速度で、当該度合が更新される間、当該度合を、時間の経過にともなって進行させる
ことを特徴とする端末装置。
【請求項３】
請求項２に記載の端末装置であって、
前記指示操作列が受け付けられると、当該指示操作列を、前記グループに属する複数の端末装置のうち、他の端末装置に通知する操作通知部、
前記グループに属する複数の端末装置のうち、他の端末装置から通知される指示操作列を受け入れる操作受入部、
当該度合記憶部に記憶される度合を、前記グループに属する複数の端末装置のうち、他の端末装置に定期的に通知する度合通知部、
前記グループに属する複数の端末装置のうち、他の端末装置から通知される度合を受け入れる度合受入部
をさらに備え、
前記ゲーム進行部は、前記指示操作列が受け入れられると、前記受け付けられた度合および前記記憶される度合のうち、当該最も先行している度合に基づいて、前記ゲームの進行において当該指示操作列がなされた時点を決定する
ことを特徴とする端末装置。
【請求項４】
請求項３に記載の端末装置であって、
前記度合更新部において、当該度合記憶部に記憶される度合が、前記受け付けられた度合および前記記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、後行している場合のゲームの進行の速度よりも、遅い
ことを特徴とする端末装置。
【請求項５】
請求項４に記載の端末装置であって、
当該度合記憶部に記憶される度合が、前記受け付けられた度合および前記記憶される度合の平均値もしくは中央値よりも先行している場合のゲームの進行の速度は、現実の時間の経過よりも遅く、後行している場合のゲームの進行の速度は、現実の時間の経過よりも速い
ことを特徴とする端末装置。
【請求項６】
複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つを制御する端末装置の制御方法であって、当該端末装置は、ゲームの進行の度合を記憶する度合記憶部、入力受付部、ゲーム進行部、度合更新部、画像表示部を備え、前記端末装置の制御方法は、
前記入力受付部が、プレイヤーによる指示操作列の入力を受け付ける入力受付工程、
前記ゲーム進行部が、前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行工程、
前記度合更新部が、前記度合記憶部に記憶される度合を更新する度合更新工程であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新工程、
前記画像表示部が、前記記憶される度合に対応付けられるゲームの画像を表示する画像表示工程
を備えることを特徴とする端末装置の制御方法。
【請求項７】
コンピュータを、複数の端末装置からなるグループがゲームの進行を共有するゲームシステムにおける当該複数の端末装置の一つとして機能させるプログラムであって、前記プログラムは、前記コンピュータを、
ゲームの進行の度合を記憶する度合記憶部、
プレイヤーによる指示操作列の入力を受け付ける入力受付部、
前記受け付けられた指示操作列に基づいて、前記進行が共有されるゲームを進行させるゲーム進行部、
前記度合記憶部に記憶される度合を更新する度合更新部であって、
（ａ）前記指示操作列のうち、ある指示操作列の入力の受付が終了してから次の指示操作列の入力の受付が開始されるまでの間、当該度合が時間の経過にともなって進行し、かつ、前記グループに属する複数の端末装置のそれぞれに記憶される度合の差が小さくなるように、当該度合を更新し、
（ｂ）前記指示操作列のそれぞれについて、当該指示操作列の入力の受付が開始されてから終了するまでの間、当該度合の更新を停止する
度合更新部、
前記記憶される度合に対応付けられるゲームの画像を表示する画像表示部
として機能させることを特徴とするプログラム。