IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7188975通信システム、通信機器、プログラム及び通信方法
<>
  • -通信システム、通信機器、プログラム及び通信方法 図1
  • -通信システム、通信機器、プログラム及び通信方法 図2
  • -通信システム、通信機器、プログラム及び通信方法 図3
  • -通信システム、通信機器、プログラム及び通信方法 図4
  • -通信システム、通信機器、プログラム及び通信方法 図5
  • -通信システム、通信機器、プログラム及び通信方法 図6
  • -通信システム、通信機器、プログラム及び通信方法 図7
  • -通信システム、通信機器、プログラム及び通信方法 図8
  • -通信システム、通信機器、プログラム及び通信方法 図9
  • -通信システム、通信機器、プログラム及び通信方法 図10
  • -通信システム、通信機器、プログラム及び通信方法 図11
  • -通信システム、通信機器、プログラム及び通信方法 図12
  • -通信システム、通信機器、プログラム及び通信方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】通信システム、通信機器、プログラム及び通信方法
(51)【国際特許分類】
   H04L 49/20 20220101AFI20221206BHJP
   H04L 45/24 20220101ALI20221206BHJP
   A63F 13/352 20140101ALI20221206BHJP
【FI】
H04L49/20
H04L45/24
A63F13/352
【請求項の数】 12
(21)【出願番号】P 2018195660
(22)【出願日】2018-10-17
(65)【公開番号】P2020065154
(43)【公開日】2020-04-23
【審査請求日】2021-09-03
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】中田 鉄也
(72)【発明者】
【氏名】西野 友博
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開平08-046612(JP,A)
【文献】米国特許出願公開第2005/0059491(US,A1)
【文献】特開2015-073193(JP,A)
【文献】特開2012-213427(JP,A)
【文献】特開平07-099496(JP,A)
【文献】特開平08-274811(JP,A)
【文献】特表2015-522984(JP,A)
【文献】米国特許出願公開第2004/0162871(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/00-45/851
H04L 49/20
A63F 13/352
(57)【特許請求の範囲】
【請求項1】
複数の機器の各々が相互に通信を行う通信システムであって、
前記複数の機器の各々が、少なくとも1以上の第1種グループのうちのいずれか1つと、少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定するグループ設定手段と、
前記少なくとも1以上の第1種グループの各々において、第1種グループに属する機器の各々が、同じ第1種グループに属する他の機器に対して自機データを送信する第1通信手段と、
前記少なくとも1以上の第2種グループの各々において、第2種グループに属する機器の各々が、自機と同じ第1種グループに属する他の機器から受信した他機データと自機データを、自機と同じ第2種グループに属する他の機器に対して送信する第2通信手段と
を備え
前記グループ設定手段は、前記複数の機器のうち、他の機器との直接通信が不能である機器を、前記少なくとも1以上の第1種グループのうちの直接通信不能グループに属するようにグループを設定し、
前記第1通信手段は、前記直接通信不能グループについては、前記直接通信不能グループに属する機器の各々から、前記直接通信不能グループに属する他のすべての機器に対してリレー用機器を介して自機データを送信し、
前記第2通信手段は、前記少なくとも1以上の第2種グループに属する機器のうち、前記直接通信不能グループに属する機器については、前記直接通信不能グループに属する他のすべての機器から受信した他機データと自機データを、前記リレー用機器を介して、自機と同じ第2種グループに属する他のすべての機器に対して送信し、かつ、自機と同じ第2種グループに属する他のすべての機器の各々から、当該機器と同じ第1種グループに属する他のすべての機器の各々から受信した他機データと当該機器の他機データを、前記リレー用機器を介して受信す通信システム。
【請求項2】
前記グループ設定手段は、前記複数の機器の各々について、当該機器が属する第1種グループ内の他の機器と、当該機器が属する第2種グループ内の他の機器が重複しないようにグループを設定する、請求項1に記載の通信システム。
【請求項3】
前記第1通信手段と前記第2通信手段に処理を繰り返し実行させる制御手段をさらに備える請求項1又は2に記載の通信システム。
【請求項4】
前記グループ設定手段は、前記複数の機器のうち、他の機器との通信が不能である機器に代えて、リレー用機器を、前記少なくとも1以上の第1種グループのうちのいずれか1つと、前記少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定する、請求項1乃至のいずれか1項に記載の通信システム。
【請求項5】
前記第1通信手段は、前記複数の機器のうち、他の機器との通信が不能である通信不能機器に代えて、当該通信不能機器と同じ第1種グループに属する他のすべての機器から、当該通信不能機器と同じ第2種グループに属する他の機器に対して自機データをさらに送信する、請求項1乃至のいずれか1項に記載の通信システム。
【請求項6】
前記第1通信手段は、前記通信不能機器と同じ第1種グループに属する他のすべての機器のそれぞれから、前記通信不能機器と同じ第2種グループに属する複数の機器のうち、所定の条件によって決定された機器に対して自機データを送信する、請求項に記載の通信システム。
【請求項7】
前記自機データ及び前記他機データは、ゲームに関するデータであって、
前記複数の機器の各々において、他の機器から受信した他機データと自機データとを用いてゲーム処理を実行するゲーム処理実行手段をさらに備える、請求項1乃至のいずれか1項に記載の通信システム。
【請求項8】
前記ゲーム処理実行手段は、他の機器から受信した他機データと自機データとを用いて、他の機器と自機とでゲームイベントを同期させてゲーム処理を実行する、請求項に記載の通信システム。
【請求項9】
前記グループ設定手段は、前記複数の機器の各々が、少なくとも1以上の第3種グループのうちのいずれか1つにさらに属するようにグループを設定し、
前記少なくとも1以上の第3種グループの各々において、第3種グループに属する機器の各々が、自機と同じ第1種グループに属する他のすべての機器から受信した他機データと、自機と同じ第2種グループに属する他のすべての機器から受信した他機データと、自機データとを、自機と同じ第3種グループに属する他のすべての機器に対して送信する第3通信手段をさらに備える、請求項1乃至のいずれか1項に記載の通信システム。
【請求項10】
他の通信機器と相互に通信を行う通信機器であって、
自機を含む複数の通信機器の各々が、少なくとも1以上の第1種グループのうちのいずれか1つと、少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定するグループ設定手段と、
前記少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信する第1通信手段と、
前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信する第2通信手段と
を備え
前記グループ設定手段は、前記複数の機器のうち、他の機器との直接通信が不能である機器を、前記少なくとも1以上の第1種グループのうちの直接通信不能グループに属するようにグループを設定し、
前記第1通信手段は、前記直接通信不能グループについては、前記直接通信不能グループに属する機器の各々から、前記直接通信不能グループに属する他のすべての機器に対してリレー用機器を介して自機データを送信し、
前記第2通信手段は、前記少なくとも1以上の第2種グループに属する機器のうち、前記直接通信不能グループに属する機器については、前記直接通信不能グループに属する他のすべての機器から受信した他機データと自機データを、前記リレー用機器を介して、自機と同じ第2種グループに属する他のすべての機器に対して送信し、かつ、自機と同じ第2種グループに属する他のすべての機器の各々から、当該機器と同じ第1種グループに属する他のすべての機器の各々から受信した他機データと当該機器の他機データを、前記リレー用機器を介して受信する通信機器。
【請求項11】
他の通信機器と相互に通信を行うコンピュータに、
少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信するステップと、
前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信するステップと
他の通信機器との直接通信が不能である通信機器を、前記少なくとも1以上の第1種グループのうちの直接通信不能グループに属するようにグループを設定するステップと、
を実行させ
前記直接通信不能グループについては、前記直接通信不能グループに属する通信機器の各々から、前記直接通信不能グループに属する他のすべての通信機器に対してリレー用機器を介して自機データを送信し、
前記少なくとも1以上の第2種グループに属する通信機器のうち、前記直接通信不能グループに属する通信機器については、前記直接通信不能グループに属する他のすべての通信機器から受信した他機データと自機データを、前記リレー用機器を介して、自機と同じ第2種グループに属する他のすべての通信機器に対して送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを、前記リレー用機器を介して受信するためのプログラム。
【請求項12】
他の通信機器と相互に通信を行う通信機器により実行される通信方法であって、
少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信するステップと、
前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信するステップと
他の通信機器との直接通信が不能である通信機器を、前記少なくとも1以上の第1種グループのうちの直接通信不能グループに属するようにグループを設定するステップと、
を有し、
前記直接通信不能グループについては、前記直接通信不能グループに属する通信機器の各々から、前記直接通信不能グループに属する他のすべての通信機器に対してリレー用機器を介して自機データを送信し、
前記少なくとも1以上の第2種グループに属する通信機器のうち、前記直接通信不能グループに属する通信機器については、前記直接通信不能グループに属する他のすべての通信機器から受信した他機データと自機データを、前記リレー用機器を介して、自機と同じ第2種グループに属する他のすべての通信機器に対して送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを、前記リレー用機器を介して受信する通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信機器の間で相互に通信を行う方法に関する。
【背景技術】
【0002】
従来、コンピュータネットワークの接続形態の1つとして、メッシュ型ネットワークが知られている。例えば、特許文献1には、メッシュ型ネットワークを利用してゲームのマルチプレイを実現するための通信システムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第6336732号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
メッシュ型ネットワークのうち特にフルメッシュ型ネットワークは、すべてのノードが相互に直接接続されるため耐障害性に優れている。しかし、各ノードは他のすべてのノードとの間でデータを送受信する必要があり、通信効率の点で改善の余地があった。
本発明は、このような事情に鑑みてなされたものであり、複数の通信機器が相互に通信を行う際の通信効率を向上させることを目的とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するため、本発明の一実施形態に係る通信システムは、複数の機器の各々が相互に通信を行う通信システムであって、前記複数の機器の各々が、少なくとも1以上の第1種グループのうちのいずれか1つと、少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定するグループ設定手段と、前記少なくとも1以上の第1種グループの各々において、第1種グループに属する機器の各々が、同じ第1種グループに属する他の機器に対して自機データを送信する第1通信手段と、前記少なくとも1以上の第2種グループの各々において、第2種グループに属する機器の各々が、自機と同じ第1種グループに属する他の機器から受信した他機データと自機データを、自機と同じ第2種グループに属する他の機器に対して送信する第2通信手段とを備える。
この通信システムによれば、複数の通信機器が相互に通信を行う際の通信効率を向上させることができる。
【0006】
上記の通信システムにおいて前記グループ設定手段は、前記複数の機器の各々について、当該機器が属する第1種グループ内の他の機器と、当該機器が属する第2種グループ内の他の機器が重複しないようにグループを設定するようにしてもよい。
【0007】
また、上記の通信システムは、前記第1通信手段と前記第2通信手段に処理を繰り返し実行させる制御手段をさらに備えるようにしてもよい。
【0008】
また、上記の通信システムにおいて前記グループ設定手段は、前記複数の機器のうち、他の機器との直接通信が不能である機器を、前記少なくとも1以上の第1種グループのうちの直接通信不能グループに属するようにグループを設定し、前記第1通信手段は、前記直接通信不能グループについては、前記直接通信不能グループに属する機器の各々から、前記直接通信不能グループに属する他のすべての機器に対してリレー用機器を介して自機データを送信し、前記第2通信手段は、前記少なくとも1以上の第2種グループに属する機器のうち、前記直接通信不能グループに属する機器については、前記直接通信不能グループに属する他のすべての機器から受信した他機データと自機データを、前記リレー用機器を介して、自機と同じ第2種グループに属する他のすべての機器に対して送信し、かつ、自機と同じ第2種グループに属する他のすべての機器の各々から、当該機器と同じ第1種グループに属する他のすべての機器の各々から受信した他機データと当該機器の他機データを、前記リレー用機器を介して受信するようにしてもよい。
この実施形態によれば、他の機器との通信が不能である機器とのデータの送受信が可能になる。
【0009】
また、上記の通信システムにおいて前記グループ設定手段は、前記複数の機器のうち、他の機器との通信が不能である機器に代えて、リレー用機器を、前記少なくとも1以上の第1種グループのうちのいずれか1つと、前記少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定するようにしてもよい。
この実施形態によれば、他の機器との通信が不能である機器が現れても、その他の機器間の相互通信を維持することができる。
【0010】
また、上記の通信システムにおいて前記第1通信手段は、前記複数の機器のうち、他の機器との通信が不能である通信不能機器に代えて、当該通信不能機器と同じ第1種グループに属する他のすべての機器から、当該通信不能機器と同じ第2種グループに属する他の機器に対して自機データをさらに送信するようにしてもよい。
この実施形態によれば、他の機器との通信が不能である機器が現れても、その他の機器間の相互通信を維持することができる。
【0011】
また、上記の通信システムにおいて前記第1通信手段は、前記通信不能機器と同じ第1種グループに属する他のすべての機器のそれぞれから、前記通信不能機器と同じ第2種グループに属する複数の機器のうち、所定の条件によって決定された機器に対して自機データを送信するようにしてもよい。
この実施形態によれば、自機データを受信する側の処理負荷が分散される。
【0012】
また、上記の通信システムにおいて前記自機データ及び前記他機データは、ゲームに関するデータであって、上記の通信システムは、前記複数の機器の各々において、他の機器から受信した他機データと自機データとを用いてゲーム処理を実行するゲーム処理実行手段をさらに備えるようにしてもよい。
【0013】
また、上記の通信システムにおいて前記ゲーム処理実行手段は、他の機器から受信した他機データと自機データとを用いて、他の機器と自機とでゲームイベントを同期させてゲーム処理を実行するようにしてもよい。
【0014】
また、上記の通信システムにおいて前記グループ設定手段は、前記複数の機器の各々が、少なくとも1以上の第3種グループのうちのいずれか1つにさらに属するようにグループを設定し、上記の通信システムは、前記少なくとも1以上の第3種グループの各々において、第3種グループに属する機器の各々が、自機と同じ第1種グループに属する他のすべての機器から受信した他機データと、自機と同じ第2種グループに属する他のすべての機器から受信した他機データと、自機データとを、自機と同じ第3種グループに属する他のすべての機器に対して送信する第3通信手段をさらに備えるようにしてもよい。
【0015】
本発明の別の実施形態に係る通信機器は、他の通信機器と相互に通信を行う通信機器であって、少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信する第1通信手段と、前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信する第2通信手段とを備える。
【0016】
上記の通信機器は、自機を含む複数の通信機器の各々が、前記少なくとも1以上の第1種グループのうちのいずれか1つと、前記少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定するグループ設定手段をさらに備えるようにしてもよい。
【0017】
本発明のさらに別の実施形態に係るプログラムは、他の通信機器と相互に通信を行うコンピュータに、少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信するステップと、前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信するステップとを実行させる。
【0018】
本発明のさらに別の実施形態に係る通信方法は、他の通信機器と相互に通信を行う通信機器により実行される通信方法であって、少なくとも1以上の第1種グループのうち、自機と同じ第1種グループに属する他のすべての通信機器に対して自機データを送信し、かつ、自機と同じ第1種グループに属する他のすべての通信機器の各々から他機データを受信するステップと、前記少なくとも1以上の第2種グループのうち、自機と同じ第2種グループに属する他のすべての通信機器に対して、自機と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと自機データを送信し、かつ、自機と同じ第2種グループに属する他のすべての通信機器の各々から、当該通信機器と同じ第1種グループに属する他のすべての通信機器の各々から受信した他機データと当該通信機器の他機データを受信するステップとを有する。
【発明の効果】
【0019】
本発明によれば、複数の通信機器が相互に通信を行う際の通信効率を向上させることができる。
【図面の簡単な説明】
【0020】
図1】通信システム1の構成の一例を示すブロック図
図2】ゲーム装置2の構成の一例を示すブロック図
図3】揮発性メモリ23のメモリマップの一例を示すブロック図
図4】グループ設定手段211により設定されるグループの一例を示す図
図5】グループデータD5の一例を示す図
図6】グループを設定するための動作の一例を示すシーケンス図
図7】通信動作の一例を示す図
図8】通信動作の一例を示す図
図9】通信動作の一例を示す図
図10】ゲーム装置6の構成の一例を示すブロック図
図11】グループ設定手段216により設定されるグループの一例を示す図
図12】グループ設定手段216により設定されるグループの一例を示す図
図13】グループ設定手段216により設定されるグループの一例を示す図
【発明を実施するための形態】
【0021】
1.実施形態
1-1.構成
本発明の一実施形態に係る通信システム1について図面を参照して説明する。図1は、通信システム1の構成の一例を示すブロック図である。同図に示す通信システム1は、複数のゲーム装置2と、マッチメイクサーバ3と、リレーサーバ4を備え、ゲームのマルチプレイを実現するためのシステムである。ここでマルチプレイとは、通信ネットワークを介して複数のプレイヤが同時に同じゲームをプレイすることである。マルチプレイに参加する各プレイヤは、マッチメイクサーバ3上に仮想的に設定されるルームに入室し、ルーム単位でマルチプレイを実行する。マルチプレイの対象となるゲームには、対戦ゲームや協力ゲームがある。
【0022】
通信システム1の構成要素のうち、マッチメイクサーバ3は、マルチプレイに参加するプレイヤをグルーピングするためのサーバである。リレーサーバ4は、ゲーム装置2間の通信を中継するリレー用機器である。通信システム1の各構成要素は、インターネット等の通信ネットワーク5を介して通信可能なように接続される。以下、ゲーム装置2について詳細に説明する。
【0023】
ゲーム装置2は、通信機能を備えたコンピュータゲーム装置である。このゲーム装置2は、他のゲーム装置2とpeer to peer(P2P)通信を行ってゲームデータを共有することでマルチプレイを実行する。図2は、このゲーム装置2の構成の一例を示すブロック図である。同図に示すゲーム装置2は、CPUやGPU等のプロセッサ21と、フラッシュメモリ等の不揮発性メモリ22と、DRAM等の揮発性メモリ23と、メモリカード等の外部記憶媒体が装着可能なスロット24と、通信ネットワーク5を介して外部装置と無線通信を行うためのネットワーク通信部25と、液晶ディスプレイや有機ELディスプレイ等のディスプレイ26と、ディスプレイ26上に配置されるタッチパネル27と、スピーカ28と、操作ボタンやアナログスティック等のコントローラ29とを備える。
【0024】
図3は、揮発性メモリ23のメモリマップの一例を示すブロック図である。同図に示す揮発性メモリ23は、プログラム記憶領域231とデータ記憶領域232を有する。プログラム記憶領域231には、マルチプレイを実行するためのゲームプログラムPが、不揮発性メモリ22又は外部記憶媒体から読み込まれる。このゲームプログラムPは、インターネット等のネットワークや非一時的な記録媒体を介して頒布可能なプログラムである。一方、データ記憶領域232には、マルチプレイを実行するための各種データが記憶される。具体的には、プレイヤデータD1と、通信アドレスデータD2と、通信環境データD3と、P2P通信可否データD4と、グループデータD5と、ゲームデータD6が記憶される。
【0025】
プレイヤデータD1は、マルチプレイに参加する各プレイヤのユーザIDを示すデータである。このプレイヤデータD1は、マッチメイクサーバ3から取得される。
【0026】
通信アドレスデータD2は、マルチプレイに参加する各ゲーム装置2のIPアドレスを示すデータである。この通信アドレスデータD2は、リレーサーバ4から取得される。
【0027】
通信環境データD3は、他のゲーム装置2とのP2P通信が不能であるゲーム装置2(以下、「P2P通信不能機器」という。)を識別するためのデータである。具体的には、NAT(Network Address Translation)に関係する様々な情報である。ここでP2P通信不能機器とは、例えば、UDP通信を行えないゲーム装置2や、通信環境がP2P通信を行う条件を満たしていないゲーム装置2である。この通信環境データD3は、通信環境判定サーバ(図示略)から取得される。
【0028】
P2P通信可否データD4は、マルチプレイに参加するゲーム装置2の各々について、マルチプレイに参加する他のすべてのゲーム装置2とのP2P通信の可否を示すデータである。このP2P通信可否データD4を参照することで、相互に通信することができないゲーム装置2の組み合わせを知ることができる。このP2P通信可否データD4は、通信環境データD3がP2P通信可能であることを示し、かつ、実際にP2P通信に成功した場合に「可」となる。「可」でないときは「否」となる。
【0029】
グループデータD5は、マルチプレイに参加するゲーム装置2の各々について、相互にP2P通信を行うゲーム装置2のグループを示すデータである。このグループデータD5については後述する。
【0030】
ゲームデータD6は、マルチプレイの対象であるゲームに関連するデータである。例えば、プレイヤにより操作されるキャラクタの仮想空間内の位置や状態を示すデータである。このゲームデータD6には、自機で生成されたゲームデータと他機で生成されたゲームデータが含まれる。
【0031】
プログラム記憶領域231に読み込まれたゲームプログラムPは、プロセッサ21により実行され、その結果、グループ設定手段211と、第1通信手段212と、第2通信手段213と、制御手段214と、ゲーム処理実行手段215という機能が提供される。
【0032】
グループ設定手段211は、マルチプレイに参加するゲーム装置2の各々について、相互にP2P通信を行うゲーム装置2のグループを設定する。具体的には、マルチプレイに参加するゲーム装置2の各々が、少なくとも1以上の第1種グループのうちのいずれか1つと、少なくとも1以上の第2種グループのうちのいずれか1つに属するようにグループを設定する。ここで、第1種グループと第2種グループは、それぞれフルメッシュ型ネットワークを構成する。図4は、グループ設定手段211により設定されるグループの一例を示す図である。同図において2次元の格子状に配列されている円形のノードN11~N55は、それぞれゲーム装置2を表している。各ノードNは、5つの第1種グループG11~G15のうちのいずれか1つと、5つの第2種グループG21~G25のうちのいずれか1つに属している。例えば、ノードN11は、第1種グループG11と第2種グループG21に属している。
【0033】
グループを設定する際、グループ設定手段211は、P2P通信可否データD4を参照して、相互に通信可能なゲーム装置2同士が同じグループに属するようにグループを設定する。また、グループ設定手段211は、各ゲーム装置2について、当該装置が属する第1種グループを構成するゲーム装置2の組み合わせと、当該装置が属する第2種グループを構成するゲーム装置2の組み合わせが異なるようにグループを設定する。より具体的には、各ゲーム装置2にとって、当該装置が属する第1種グループ内の他のゲーム装置2と、当該装置が属する第2種グループ内の他のゲーム装置2が重複しないようにグループを設定する。例えば、図4に示す例では、第1種グループG11には、ノードN11、N12、N13、N14及びN15が属しているのに対し、第2種グループG21には、ノードN11、N21、N31、N41及びN51が属しており、ノードN11にとって両グループ間で他のノードNは重複していない。
【0034】
また、グループ設定手段211は、グループを設定する際、第1種グループと第2種グループの構成機器数が等しくなるか又はより近くなるようにグループを設定する。言い換えると、第1種グループと第2種グループの各々のグループ数が等しくなるか又はより近くなるようにグループを設定する。例えば、マルチプレイに64台のゲーム装置2が参加する場合には、第1種グループと第2種グループの構成機器数をそれぞれ16台と4台とはせずに、8台ずつとする。これは、後者の方が前者よりも通信効率が高いからである。グループ設定手段211は、各グループの構成機器数を決定するにあたり、例えば、マルチプレイに参加するゲーム装置2の総数の平方根を求める。
【0035】
また、グループ設定手段211は、グループを設定する際、通信環境データD3を参照して、P2P通信不能機器については、第1種グループのうちのP2P通信不能グループに属するようにグループを設定する。
【0036】
グループ設定手段211は、グループの設定が完了すると、設定したグループを表すグループデータD5を揮発性メモリ23に格納する。加えて、マルチプレイに参加する各ゲーム装置2に対して送信する。図5は、グループデータD5の一例を示す図である。同図に示すグループデータD5は、図4に例示するグループを表したものである。このグループデータD5はリスト形式で表現され、各ゲーム装置2の装置IDに対してノード番号が割り当てられている。このグループデータD5において、ノード番号の10の位の数字が共通するゲーム装置2同士は共通の第1種グループに属し、ノード番号の1の位の数字が共通するゲーム装置2同士は共通の第2種グループに属する。なお、図5では図示を省略しているが、第1種グループのうちP2P通信不能グループに属するゲーム装置2の装置IDには、P2P通信不能グループに属する旨の情報がさらに対応付けられる。
【0037】
次に、第1通信手段212と第2通信手段213は、マルチプレイの実行中に、他のゲーム装置2とP2P通信を行ってリアルタイムでゲームデータを共有するための手段である。これらの手段のうち、第1通信手段212は、グループデータD5を参照して、自機と同じ第1種グループに属する他のすべてのゲーム装置2に対して自機のゲームデータを直接送信し、かつ、自機と同じ第1種グループに属する他のすべてのゲーム装置2の各々から他機のゲームデータを受信する。図4に示す例を参照して具体的に説明すると、自機がノードN11に相当すると仮定した場合、ノードN11は、自機と同じ第1種グループG11に属するノードN12~N15の各々に対して自機のゲームデータを送信し、かつ、ノードN12~N15の各々から他機のゲームデータを受信する。
【0038】
第1通信手段212は、他のゲーム装置2から受信したゲームデータを揮発性メモリ23に格納する。
【0039】
第1通信手段212は、マルチプレイの最中に、自機と同じ第1種グループに属する他のゲーム装置2がP2P通信不能機器になった場合には、P2P通信不能機器をカバーするための処理を実行する。具体的には、P2P通信不能機器に代えて、P2P通信不能機器と同じ第2種グループに属する他のゲーム装置2のうち、所定の条件によって決定されたゲーム装置2に対して自機のゲームデータを送信する。ここで所定の条件とは、P2P通信不能機器と同じ第2種グループに属する他のゲーム装置2のうち、特定のゲーム装置2の処理負荷が大きくならないようにするための条件である。図4に示す例を参照して具体的に説明すると、自機がノードN12に相当し、ノードN11がP2P通信不能機器になったと仮定した場合、ノードN12は、ノードN11と同じ第2種グループG21に属するノードN21、N31、N41及びN51のうち、P2P通信可能ないずれかに自機のゲームデータを送信する。その際、ゲームデータの送信先は、送信ごとに、ノードN21、N31、N41及びN51の中で、ラウンドロビン方式で変更される。これは、受信側の処理負荷を分散するためである。
【0040】
なお、第1通信手段212は、P2P通信不能機器の発生を、退室通知の受信やタイムアウトの発生を受けて検知する。
【0041】
第1通信手段212は、自機が属する第1種グループの構成機器数が所定数に満たない場合にも上記の補完処理を実行する。図4に示す例を参照して説明すると、自機がノードN51に相当し、ノードN55がそもそも存在しないと仮定した場合、ノードN51は、ノードN55と同じ第2種グループG25に属するノードN15、N25、N35及びN45のいずれかに自機のゲームデータを送信する。その際の送信先は、送信ごとにラウンドロビン方式で変更される。
【0042】
なお、第1通信手段212は、自機が第1種グループのうちのP2P通信不能グループに属する場合には、ゲームデータの送受信をリレーサーバ4経由で行う。具体的には、P2P通信不能グループに属する他のすべてのゲーム装置2に対してリレーサーバ4を介して自機のゲームデータを送信し、かつ、同グループに属する他のすべてのゲーム装置2の各々からリレーサーバ4を介して他機のゲームデータを受信する。これは、P2P通信不能グループに属するゲーム装置2同士は、互いに直接データの送受信を行うことができないからである。
【0043】
次に、第2通信手段213は、グループデータD5を参照して、自機と同じ第2種グループに属する他のすべてのゲーム装置2に対して、自機と同じ第1種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと自機のゲームデータを直接送信する。加えて、自機と同じ第2種グループに属する他のすべてのゲーム装置2の各々から、当該ゲーム装置2と同じ第1種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと当該ゲーム装置2のゲームデータを受信する。この第2通信手段213の処理を、図4に示す例を参照して具体的に説明すると、自機がノードN11に相当すると仮定した場合、ノードN11は、自機と同じ第2種グループG21に属するノードN21、N31、N41及びN51に対して、自機と同じ第1種グループG11に属するN12~N15の各々から受信した他機のゲームデータと自機のゲームデータを送信する。加えて、ノードN21、N31、N41及びN51の各々から、当該ノードNと同じ第1種グループG1に属するノードNから受信した他機のゲームデータと当該ノードNのゲームデータを受信する。例えば、ノードN21からは、ノードN21と同じ第1種グループG12に属するノードN22~N25から受信した他機のゲームデータとノードN21のゲームデータを受信する。
【0044】
第2通信手段213は、他のゲーム装置2から受信したゲームデータを揮発性メモリ23に格納する。
【0045】
なお、第2通信手段213は、自機が第1種グループのうちのP2P通信不能グループに属する場合には、ゲームデータの送受信をリレーサーバ4経由で行う。具体的には、自機と同じ第2種グループに属する他のすべてのゲーム装置2に対して、自機と同じ第1種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと自機のゲームデータをリレーサーバ4経由で送信する。加えて、自機と同じ第2種グループに属する他のすべてのゲーム装置2の各々から、当該ゲーム装置2と同じ第1種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと当該ゲーム装置2のゲームデータをリレーサーバ4経由で受信する。
【0046】
次に、制御手段214は、第1通信手段212と第2通信手段213の通信処理の実行を制御する。具体的には、第1通信手段212と第2通信手段213に、所定の周期(例えば、100ms周期)で交互に通信処理を実行させる。加えて、マルチプレイに参加する他のゲーム装置2と自機との間で各通信処理を同期させる。
【0047】
ゲーム処理実行手段215は、ゲームデータD6を用いてゲーム処理を実行する。具体的には、ゲームデータD6を基にプレイ画面を生成し、ディスプレイ26に表示させる。その際、ゲーム処理実行手段215は、自機と他機とでゲームイベントを同期させてゲーム処理を実行する。
【0048】
1-2.動作
次に、通信システム1の動作について説明する。具体的には、マルチプレイ実行時にグループを設定するための動作と、グループ設定後に行われる通信動作について説明する。
【0049】
図6は、グループを設定するための動作の一例を示すシーケンス図である。同図に示すゲーム装置2のうち、ゲーム装置2Aは、マッチメイクサーバ3上にルームを作成したプレイヤが操作するマスタである。一方、ゲーム装置2Bは、作成されたルームに入室することでマルチプレイに参加するプレイヤが操作するクライアントである。なお、同図においてクライアントが1台しか示されていないのは、説明が煩雑になるのを避けるためである。
【0050】
マルチプレイに参加するゲーム装置2Bは、マッチメイクサーバ3に対して入室要求を送信する(ステップS1)。この入室要求には、入室するルームIDとプレイヤのユーザIDが含まれる。この入室要求を受信したマッチメイクサーバ3は、入室を要求されたルームを作成したゲーム装置2Aに対して入室通知を送信する(ステップS2)。この入室通知には、入室を要求したプレイヤのユーザIDが含まれる。この入室通知を受信したゲーム装置2Aは、入室を要求したプレイヤのユーザIDを示すデータを揮発性メモリ23に格納する(ステップS3)。
【0051】
ゲーム装置2Bはまた、リレーサーバ4に自機のIPアドレスを送信するとともに、マルチプレイに参加する他のゲーム装置のIPアドレスを受信する(ステップS4)。ゲーム装置2Bはまた、通信環境判定サーバに判定用送信データを送信し、通信環境判定サーバから判定用受信データを受信することで自分の通信環境を判定する(ステップS5)。ゲーム装置2BがP2P通信不能機器である場合には、リレーサーバ4は、ゲーム装置2BのIPアドレスとともに通信環境データをゲーム装置2Aに送信する(ステップS6)。このIPアドレス等を受信したゲーム装置2Aは、受信したデータを揮発性メモリ23に格納する(ステップS7)。
【0052】
ゲーム装置2Bはまた、マルチプレイに参加する他のゲーム装置2とのP2P通信の接続を試みる(ステップS8)。そして、他のゲーム装置2との通信可否を示す通信可否データをゲーム装置2Aに送信する(ステップS9)。この通信可否データを受信したゲーム装置2Aは、受信した通信可否データを揮発性メモリ23に格納する(ステップS10)。
【0053】
ゲーム装置2Aは、マルチプレイに参加する他のすべてのゲーム装置2から通信可否データを受信すると、マルチプレイに参加するゲーム装置2の各々について、相互にP2P通信を行うゲーム装置2のグループを設定する(ステップS11)。グループの設定方法については上記の通りである。グループの設定が完了すると、ゲーム装置2Aは、設定したグループを表すグループデータD5を揮発性メモリ23に格納し(ステップS12)、マルチプレイに参加するゲーム装置2Bに対して送信する(ステップS13)。このグループデータD5を受信したゲーム装置2Bは、受信したグループデータD5を揮発性メモリ23に格納する(ステップS14)。
以上が、グループを設定するための動作の説明である。
【0054】
なお、上記の動作のうち、ステップS8~S14は、マルチプレイ中も所定の周期で実行される。
【0055】
次に、グループの設定後に行われる通信動作の各種の例について、図7図9を参照して説明する。これらの図に示す2次元の格子状に配列されている円形のノードN11~N55は、それぞれゲーム装置2を表している。各ノードNは、5つの第1種グループG11~G15のうちのいずれか1つと、5つの第2種グループG21~G25のうちのいずれか1つに属している。また、各図の(a)は、第1通信手段212の通信処理を図示したものであり、各図の(b)は、第2通信手段213の通信処理を図示したものである。
【0056】
まず、図7を参照すると、図7(a)に示す第1通信手段212の通信処理では、第1種グループG11~G15の各々において、第1種グループG1に属するノードNの各々が、同じ第1種グループG1に属する他のすべてのノードNに対して自機のゲームデータを直接送信する。この通信処理の結果、例えば、ノードN11は、ノードN12~N15のゲームデータを受信する。
【0057】
次に、図7(b)に示す第2通信手段213の通信処理では、第2種グループG21~G25の各々において、第2種グループG2に属するノードNの各々が、自機と同じ第1種グループに属する他のすべてのノードNから受信したゲームデータと自機のゲームデータを、自機と同じ第2種グループG2に属する他のすべてのノードNに対して直接送信する。この通信処理の結果、例えば、ノードN11は、ノードN21からノードN21~N25のゲームデータを受信し、ノードN31からノードN31~N35のゲームデータを受信し、ノードN41からノードN41~N45のゲームデータを受信し、ノードN51からノードN51~N55のゲームデータを受信する。すなわちノードN11は、上記の1組の通信処理を経ることで、すべての他のノードNのゲームデータを受信することになる。なお、すべての他のノードNのゲームデータを受信できるのはノードN11に限られず、ノードN11~N55のすべてが、他のすべてのノードNのゲームデータを受信することになる。
【0058】
図7に示す1組の通信処理では、すべてのノードNが他のすべてのノードNのゲームデータを受信するためには、各ノードNは合計8個のノードNにゲームデータを送信する必要がある。言い換えると、合計8個のパケットを送信する必要がある。例えば、ノードN11を例にとると、ノードN11は、ノードN12~N15の4個と、ノードN21、N31、N41及びN51の4個の合計8個に対してゲームデータを送信する必要がある。これに対して、従来のフルメッシュ型ネットワークを想定すると、従来のフルメッシュ型では、すべてのノードNが他のすべてのノードNのゲームデータを受信するためには、各ノードNは合計24個のノードNにゲームデータを送信する必要がある。言い換えると、合計24個のパケットを送信する必要がある。なぜなら従来のフルメッシュ型では、自機以外の24個すべてのノードNに対してゲームデータを送信する必要があるからである。このような例と比較すると、図7に示す1組の通信処理は、接続数と送信パケット数が3分の1に低減されており、通信効率が向上していると言える。
【0059】
なお、図7に示す例は、ノード数が25個の場合に実行される通信処理であるが、ノード数が4以上であれば通信効率は向上する。別の例としてノード数が64個の場合について説明すると、ノード数が64個の場合には、第1種グループと第2種グループの各々の構成ノード数が8個となり、各ノードは合計14個のノードにゲームデータを送信する必要がある。言い換えると、合計14個のパケットを送信する必要がある。これに対して、従来のフルメッシュ型では、各ノードは合計63個のノードにゲームデータを送信する必要がある。言い換えると、合計63個のパケットを送信する必要がある。この例と比較すると、本実施形態に係る通信処理は、接続数と送信パケット数が9分の2に低減されており、通信効率が向上していると言える。
【0060】
次に、図8は、マルチプレイ中に一部のノードNがP2P通信不能機器になった場合の通信動作の一例について示す図である。同図に示す例では、ノードN11がP2P通信不能機器として想定されている。
【0061】
図8(a)に示す第1通信手段212の通信処理では、第1種グループG11~G15の各々において、第1種グループG1に属するノードNの各々が、同じ第1種グループG1に属する他のすべてのノードNに対して自機のゲームデータを送信する。ただし、第1種グループG11では、ノードN11がP2P通信不能機器であるため、ノードN12~N15は、このノードN11に代えて、ノードN11と同じ第2種グループG21に属するノードN21に自機のゲームデータを送信する。
【0062】
次に、図8(b)に示す第2通信手段213の通信処理では、第2種グループG21~G25の各々において、第2種グループG2に属するノードNの各々が、自機と同じ第1種グループに属する他のすべてのノードNから受信したゲームデータと自機のゲームデータを、自機と同じ第2種グループG2に属する他のすべてのノードNに対して送信する。ただし、第2種グループG21では、ノードN11がP2P通信不能機器であるため、ノードN21、N31、N41及びN51は、ノードN11から第1種グループG11のゲームデータを受信することができない。しかし、上記の通り、ノードN21がノードN11の代わりに第1種グループG11のゲームデータを受信しているため、ノードN31、N41及びN51は、ノードN21から第1種グループG11のゲームデータを受信することができる。その結果、ノードN11以外のすべてのノードNは、ノードN11以外の他のすべてのノードNのゲームデータを受信することができる。すなわち、マルチプレイ中にP2P通信不能機器が現れてもマルチプレイを維持することができる。
【0063】
次に、図9は、第1種グループG1の中にP2P通信不能グループが含まれる場合の通信動作の一例について示す図である。同図に示す例では、第1種グループG11がP2P通信不能グループとして想定されている。
【0064】
図9(a)に示す第1通信手段212の通信処理では、第1種グループG11~G15の各々において、第1種グループG1に属するノードNの各々が、同じ第1種グループG1に属する他のすべてのノードNに対して自機のゲームデータを送信する。ただし、P2P通信不能グループである第1種グループG11では、ノードN11~N15は、ゲームデータの送受信をリレーサーバ4経由で行う。
【0065】
次に、図9(b)に示す第2通信手段213の通信処理では、第2種グループG21~G25の各々において、第2種グループG2に属するノードNの各々が、自機と同じ第1種グループに属する他のすべてのノードNから受信したゲームデータと自機のゲームデータを、自機と同じ第2種グループG2に属する他のすべてのノードNに対して送信する。ただし、P2P通信不能グループである第1種グループG11に属するノードNとそうでないノードNとの間では、ゲームデータの送受信はリレーサーバ4経由で行われる。その結果、P2P通信不能グループに属するノードNも含めてすべてのノードNが、他のすべてのノードNのゲームデータを受信することができる。すなわち、P2P通信不能グループに属するゲーム装置2であってもマルチプレイに参加することができる。
以上が、通信動作の説明である。
【0066】
以上説明した通信システム1によれば、原則、ゲームデータがサーバを介さずにP2P通信によりゲーム装置2間で共有されるため、サーバの運用費を抑えることができる。また、上記の通り、従来のフルメッシュ型ネットワークと比較して接続数と送信パケット数が低減する。すなわち通信効率が向上する。また、接続数が低減することから、ルータの制限により参加プレイヤ数が制限される事態を回避することができる。また、上記の通り、マルチプレイ中にP2P通信不能機器が現れてもマルチプレイを維持することができ、P2P通信不能グループに属するゲーム装置2であってもマルチプレイに参加させることができる。
【0067】
2.変形例
上記の実施形態は、以下に説明するように変形してもよい。なお、以下に説明する2以上の変形例は互いに組み合わせてもよい。
【0068】
2-1.変形例1
グループ設定手段211により設定されるグループの種類の数は3以上であってもよい。以下、一例として、3種類のグループを設定する場合について説明する。
【0069】
図10は、3種類のグループを設定するゲーム装置6の構成の一例を示すブロック図である。同図に示すゲーム装置6は、グループ設定手段216と第3通信手段217と制御手段218という機能を備える点において、上記のゲーム装置2と相違している。
【0070】
このゲーム装置6が備えるグループ設定手段216は、マルチプレイに参加するゲーム装置6の各々について、相互にP2P通信を行うゲーム装置6のグループを設定する。具体的には、マルチプレイに参加するゲーム装置6の各々が、少なくとも1以上の第1種グループのうちのいずれか1つと、少なくとも1以上の第2種グループのうちのいずれか1つと、少なくとも1以上の第3種グループのうちのいずれか1つに属するようにグループを設定する。ここで、第1種~第3種グループは、それぞれフルメッシュ型ネットワークを構成する。図11図13は、グループ設定手段216により設定されるグループの一例を示す図である。これらの図において3次元の格子状に配列されている円形のノードN111~N322は、それぞれゲーム装置6を表している。各ノードNは、6つの第1種グループG11~G16のうちのいずれか1つと、6つの第2種グループG21~G26のうちのいずれか1つと、4つの第3種グループG31~G34のうちのいずれか1つに属している。例えば、ノードN111は、第1種グループG11と第2種グループG21と第3種グループG31に属している。
【0071】
グループを設定する際、グループ設定手段216は、P2P通信可否データD4を参照して、相互に通信可能なゲーム装置6同士が同じグループに属するようにグループを設定する。また、グループ設定手段216は、各ゲーム装置6について、当該装置が属する第1種グループを構成するゲーム装置6の組み合わせと、当該装置が属する第2種グループを構成するゲーム装置6の組み合わせと、当該装置が属する第3種グループを構成するゲーム装置6の組み合わせが、それぞれが異なるようにグループを設定する。より具体的には、各ゲーム装置6にとって、当該装置が属する第1種グループ内の他のゲーム装置6と、当該装置が属する第2種グループ内の他のゲーム装置6と、当該装置が属する第3種グループ内の他のゲーム装置6が重複しないようにグループを設定する。
【0072】
また、グループ設定手段216は、グループを設定する際、第1種~第3種グループの各々の構成機器数が等しくなるか又はより近くなるようにグループを設定する。言い換えると、第1種~第3種グループの各々のグループ数が等しくなるか又はより近くなるようにグループを設定する。グループ設定手段216は、各グループの構成機器数を決定するにあたり、例えば、マルチプレイに参加するゲーム装置6の総数の3乗根を求める。
【0073】
また、グループ設定手段216は、通信環境データD3を参照して、グループを設定する際、P2P通信不能機器については、第1種グループのうちのP2P通信不能グループに属するようにグループを設定する。
【0074】
グループ設定手段216は、グループの設定が完了すると、設定したグループを表すグループデータD5を揮発性メモリ23に格納する。加えて、マルチプレイに参加する各ゲーム装置2に対して送信する。グループデータD5は、例えば、リスト形式で表現され、各ゲーム装置6の装置IDに対してノード番号が割り当てられる。
【0075】
次に、第3通信手段217は、グループデータD5を参照して、自機と同じ第3種グループに属する他のすべてのゲーム装置6に対して、自機と同じ第1種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、自機と同じ第2種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、自機のゲームデータを送信する。加えて、自機と同じ第3種グループに属する他のすべてのゲーム装置2の各々から、当該ゲーム装置2と同じ第1種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと、当該ゲーム装置2と同じ第2種グループに属する他のすべてのゲーム装置2の各々から受信した他機のゲームデータと、当該ゲーム装置2のゲームデータを受信する。
【0076】
この第3通信手段217の処理を、図11図13に示す例を参照して具体的に説明すると、自機がノードN111に相当すると仮定した場合、ノードN111は、自機と同じ第3種グループG31に属するノードN211及びN311に対して、自機と同じ第1種グループG11に属するN112から受信した他機のゲームデータと、自機と同じ第2種グループG21に属するN121から受信した他機のゲームデータと、自機のゲームデータを送信する。加えて、ノードN211及びN311の各々から、当該ノードNと同じ第1種グループG1に属するノードNから受信した他機のゲームデータと、当該ノードNと同じ第2種グループG2に属するノードNから受信した他機のゲームデータと、当該ノードNのゲームデータを受信する。例えば、ノードN211からは、ノードN211と同じ第1種グループG13に属するノードN212から受信した他機のゲームデータと、ノードN211と同じ第2種グループG23に属するノードN221から受信した他機のゲームデータと、ノードN211のゲームデータを受信する。
【0077】
第3通信手段217は、他のゲーム装置6から受信したゲームデータを揮発性メモリ23に格納する。
【0078】
なお、第3通信手段217は、自機が第1種グループのうちのP2P通信不能グループに属する場合には、ゲームデータの送受信をリレーサーバ4経由で行う。具体的には、自機と同じ第3種グループに属する他のすべてのゲーム装置6に対して、自機と同じ第1種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、自機と同じ第2種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、自機のゲームデータをリレーサーバ4経由で送信する。加えて、自機と同じ第2種グループに属する他のすべてのゲーム装置6の各々から、当該ゲーム装置6と同じ第1種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、当該ゲーム装置6と同じ第2種グループに属する他のすべてのゲーム装置6の各々から受信した他機のゲームデータと、当該ゲーム装置6のゲームデータをリレーサーバ4経由で受信する。
【0079】
次に、制御手段218は、第1通信手段212と第2通信手段213と第3通信手段217の通信処理の実行を制御する。具体的には、第1通信手段212と第2通信手段213と第3通信手段217に、所定の周期(例えば、100ms周期)で順番に通信処理を実行させる。加えて、マルチプレイに参加する他のゲーム装置6と自機との間で各通信処理を同期させる。
【0080】
次に、ゲーム装置6により行われる通信動作の一例について、図11図13を参照して説明する。
【0081】
第1に、図11に示す第1種グループG11~G16の各々において、第1種グループG1に属するノードNの各々は、同じ第1種グループG1に属する他のすべてのノードNに対して自機のゲームデータを送信する。この通信処理の結果、例えば、ノードN111は、ノードN112のゲームデータを受信する。
【0082】
第2に、図12に示す第2種グループG21~G26の各々において、第2種グループG2に属するノードNの各々は、自機と同じ第1種グループに属する他のすべてのノードNから受信したゲームデータと自機のゲームデータを、自機と同じ第2種グループG2に属する他のすべてのノードNに対して送信する。この通信処理の結果、例えば、ノードN111は、ノードN121からノードN121~N122のゲームデータを受信する。
【0083】
第3に、図13に示す第3種グループG31~G34の各々において、第3種グループG3に属するノードNの各々は、自機と同じ第1種グループに属する他のすべてのノードNから受信したゲームデータと、自機と同じ第2種グループに属する他のすべてのノードNから受信したゲームデータと、自機のゲームデータを、自機と同じ第3種グループG3に属する他のすべてのノードNに対して送信する。この通信処理の結果、例えば、ノードN111は、ノードN211からノードN211~N212、N221~N222のゲームデータを受信し、ノードN311からノードN311~N312、N321~N322のゲームデータを受信する。すなわちノードN111は、上記の1組の通信処理を経ることで、すべての他のノードNのゲームデータを受信することになる。なお、すべての他のノードNのゲームデータを受信できるのはノードN111に限られず、ノードN111~N322のすべてが、他のすべてのノードNのゲームデータを受信することになる。
【0084】
図11図13に示す1組の通信処理では、すべてのノードNが他のすべてのノードNのゲームデータを受信するためには、各ノードNは合計4個のノードNにゲームデータを送信する必要がある。言い換えると、合計4個のパケットを送信する必要がある。例えば、ノードN111を例にとると、ノードN111は、ノードN112、N121、N211及びN311の合計4個に対してゲームデータを送信する必要がある。これに対して、従来のフルメッシュ型ネットワークを想定すると、従来のフルメッシュ型では、すべてのノードNが他のすべてのノードNのゲームデータを受信するためには、各ノードNは合計11個のノードNにゲームデータを送信する必要がある。言い換えると、合計11個のパケットを送信する必要がある。なぜなら従来のフルメッシュ型では、自機以外の11個すべてのノードNに対してゲームデータを送信する必要があるからである。このような例と比較すると、図11図13に示す1組の通信処理は、接続数と送信パケット数が約3分の1に低減されており、通信効率が向上していると言える。
【0085】
以上は、3種類のグループを設定する場合についての説明であるが、グループの種類数は4以上であってもよい。グループの種類数を4以上とする場合について一般化して説明すると、種類数を「n」とした場合、グループ設定手段は、それぞれ1以上の第1種グループから第n種グループの各々について、各ゲーム装置がいずれかのグループに属するようにグループを設定する。また、種類数を「n」とした場合、通信手段の数は「n」となる。「n」個の通信手段のうち、第1通信手段212は、上記のように、第1種グループにおいてゲームデータを共有する。第2通信手段213は、上記のように、第2種グループにおいて、第1通信手段212を用いて受信したゲームデータを共有する。第(n-1)通信手段は、第(n-1)種グループにおいて、第1~第(n-2)通信手段を用いて受信したゲームデータを共有する。第n通信手段は、第n種グループにおいて、第1~第(n-1)通信手段を用いて受信したゲームデータを共有する。すなわち、各通信手段は、自身の番号に対応する種類のグループにおいて、自身より番号の小さい通信手段を用いて受信したゲームデータを共有する。これら「n」個の通信手段が順番に各々の通信処理を実行することで、複数のゲーム装置間でゲームデータを共有することができる。
【0086】
2-2.変形例2
グループ設定手段211は、グループの種類の数をゲームに応じて決定するようにしてもよい。より具体的には、ゲームに予め設定された最大プレイ人数に応じてグループの種類数を決定するようにしてもよい。例えば、最大プレイ人数が100人未満のゲームの場合には、グループの種類数を「2」とし、最大プレイ人数が100人以上のゲームの場合には、グループの種類数を「3」とするようにしてもよい。その場合、グループ設定手段211は、例えば、最大プレイ人数の範囲又はゲーム名ごとにグループの種類数を対応付けるテーブルを参照して、グループの種類数を決定するようにしてもよい。別の例として、最大プレイ人数に代えて、実際にマルチプレイに参加しているプレイヤの人数に応じてグループの種類数を決定するようにしてもよい。
【0087】
2-3.変形例3
マスタであるゲーム装置2の代わりに、マッチメイクサーバ3がグループを設定するようにしてもよい。すなわち、マッチメイクサーバ3がグループ設定手段211の機能を備えるようにしてもよい。その場合、マッチメイクサーバ3は、マスタであるゲーム装置2の代わりに、通信環境データと通信可否データを受信し、グループを設定し、設定したグループを表すグループデータD5をマルチプレイに参加する各ゲーム装置2に対して送信する。
【0088】
2-4.変形例4
図8(a)に例示する通信動作では、マルチプレイ中にP2P通信不能機器が現れると、他のゲーム装置2が当該機器をカバーすることでマルチプレイが維持される。この補完方法に代えて、P2P通信不能機器をリレーサーバ4に置き換えることでマルチプレイを維持するようにしてもよい。その場合、マスタであるゲーム装置2のグループ設定手段211は、マルチプレイ中にP2P通信不能機器が現れると、P2P通信不能機器をリレーサーバ4に置き換えるためにグループを再設定する。具体的には、P2P通信不能機器に代えて、リレーサーバ4が第1種グループのいずれか1つと第2種グループのいずれか1つに属するようにグループを再設定する。そして、再設定したグループを表すグループデータD5を自機の揮発性メモリ23に格納するとともに、マルチプレイに参加する各ゲーム装置2に対して送信する。
【0089】
2-5.変形例5
第1通信手段212は、上記の通り、マルチプレイ中に自機と同じ第1種グループに属する他のゲーム装置2がP2P通信不能機器になった場合にP2P通信不能機器をカバーするための処理を実行する。具体的には、P2P通信不能機器と同じ第2種グループに属する他のゲーム装置2に対してラウンドロビン方式で自機のゲームデータを送信する。しかし、受信側の処理負荷を分散するための送信方法はこれに限られない。別の送信方法について図8(a)を参照して説明すると、ノードN12~N15は、それぞれ異なるノードNに対して自機のゲームデータを送信するようにしてもよい。例えば、ノードN12はノードN21に対して送信し、ノードN13はノードN31に対して送信し、ノードN14はノードN41に対して送信し、ノードN15はノードN51に対して送信することで、受信側の処理負荷を分散させてもよい。
【0090】
2-6.変形例6
グループ設定手段211は、各ゲーム装置2の送信データサイズに応じて、第1種グループと第2種グループの構成機器数(言い換えると、グループ数)を決定するようにしてもよい。より具体的には、第2種グループ間で送信されるデータサイズがパケットの最大ペイロードサイズを超えないように、第1種グループと第2種グループの構成機器数(言い換えると、グループ数)を決定するようにしてもよい。例えば、パケットの最大ペイロードサイズが1200バイトであり、ゲームデータのデータサイズが300バイトである場合のゲーム装置2の1台あたりの送信パケット数を考えると、64台のゲーム装置2が参加するマルチプレイにおいて第1種グループと第2種グループの構成機器数をそれぞれ8台としたとき、第1種グループでは各ゲーム装置2は7パケットを送信し、第2種グループでは各ゲーム装置2は14パケットを送信することになる。そのため、各ゲーム装置2の送信パケット数は21個になる。なお、ここで、第2種グループにおいて各ゲーム装置2が7パケットではなく14パケットを送信する理由は、各ゲーム装置2は2400バイト(300バイト*8台)のゲームデータを送信する必要があり、このデータサイズは最大ペイロードサイズを超えるため、パケットを2つに分ける必要があるからである。これに対して、第1種グループと第2種グループの構成機器数をそれぞれ4台と16台としたときには、第1種グループでは各ゲーム装置2は3パケットを送信し、第2種グループでは各ゲーム装置2は15パケットを送信することになる。そのため、各ゲーム装置2の送信パケット数は18個になる。なお、この場合は、第2種グループにおいて各ゲーム装置2が送信するゲームデータのデータサイズは1200バイト(300バイト*4台)であり、最大ペイロードサイズを超えないため、パケットを2つに分ける必要がない。以上説明したように、各ゲーム装置2の送信データサイズによっては、第2種グループの構成機器数(言い換えると、グループ数)を多くした方が、通信効率が高くなる。
【0091】
2-7.変形例7
グループ設定手段211は、第1種グループに代えて第2種グループ内にP2P通信不能グループを設定するようにしてもよい。その場合、第1通信手段212は、自機が第2種グループのうちのP2P通信不能グループに属するときには、ゲームデータの送受信をリレーサーバ4経由で行う。第2通信手段213は、自機が第2種グループのうちのP2P通信不能グループに属する場合には、ゲームデータの送受信をリレーサーバ4経由で行う。
【0092】
P2P通信不能グループを第2種グループ内に設定した場合、リレーサーバ4の送信量が小さくなる。例えば、各ゲーム装置2の送信データサイズをdとした場合のリレーサーバ4の送信量を考えると、第1種グループ内にP2P通信不能グループを設定した場合、第1種グループと第2種グループの構成機器数をそれぞれN台とM台とすると、P2P通信不能グループに属するゲーム装置2の1台からの送信に起因するリレーサーバ4の送信量は数式(1)により表される。
d*(N-1)+Nd*(M-1)=NMd-d …(1)
P2P通信不能グループ以外に属するゲーム装置2の1台からの送信に起因するリレーサーバ4の送信量は数式(2)により表される。
Nd*1=Nd …(2)
【0093】
これに対して、第2種グループ内にP2P通信不能グループを設定した場合、第1種グループと第2種グループの構成機器数をそれぞれM台とN台とすると、P2P通信不能グループに属するゲーム装置2の1台からの送信に起因するリレーサーバ4の送信量は数式(3)により表される。
d*(M-1)+Md*(N-1)=NMd-d …(3)
P2P通信不能グループ以外に属するゲーム装置2の1台からの送信に起因するリレーサーバ4の送信量は数式(4)により表される。
d*1=d …(4)
【0094】
以上の説明から明らかなように、P2P通信不能グループを第2種グループ内に設定した場合の方が、リレーサーバ4の送信量が小さくなる。
【0095】
2-8.変形例8
ゲーム装置2は、必ずしもゲーム専用機でなくてもよい。ゲームプログラムPを実行可能な通信機器であれば、例えば、スマートフォンやタブレット型端末や据え置き型のPCであってもよい。仮にゲーム装置2を、マイクを内蔵した通信機器とした場合、ゲーム装置2は他のゲーム装置2との間で、ゲームデータに代えて又は加えて音声データを交換してボイスチャットを実行するようにしてもよい。
【0096】
2-9.変形例9
ゲーム装置2は、P2P通信に代えて、リレーサーバ4を経由しない任意の通信を行って、他のゲーム装置2とゲームデータを共有するようにしてもよい。
【0097】
2-10.変形例10
制御手段214は所定の周期(例えば、100ms周期)で通信処理を実行させる。この代わりに、所定の周期ではなく、ゲーム状態に応じて随時、自機のゲームデータを送信してもよい。この場合、複数のゲームデータを1つのパケットに含めることができる確率が低下するが、接続数については同等の効率を得ることができる。
【0098】
2-11.変形例11
通信システム1の構成要素に、マッチメイクサーバ3、リレーサーバ4、通信環境判定サーバがあるが、これらのうちいくつかのサーバを1つのサーバに統合してもよい。
【符号の説明】
【0099】
1…通信システム、2…ゲーム装置、3…マッチメイクサーバ、4…リレーサーバ、5…通信ネットワーク、6…ゲーム装置、21…プロセッサ、22…不揮発性メモリ、23…揮発性メモリ、24…スロット、25…ネットワーク通信部、26…ディスプレイ、27…タッチパネル、28…スピーカ、29…コントローラ、211、216…グループ設定手段、212…第1通信手段、213…第2通信手段、214、218…制御手段、215…ゲーム処理実行手段、217…第3通信手段、231…プログラム記憶領域、232…データ記憶領域、D1…プレイヤデータ、D2…通信アドレスデータ、D3…通信環境データ、D4…P2P通信可否データ、D5…グループデータ、D6…ゲームデータ、G11~G16…第1種グループ、G21~G26…第2種グループ、G31~G34…第3種グループ、P…ゲームプログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13