JP2011097993A - ゲームシステムおよびゲームプログラム - Google Patents

ゲームシステムおよびゲームプログラム Download PDF

Info

Publication number
JP2011097993A
JP2011097993A JP2009253116A JP2009253116A JP2011097993A JP 2011097993 A JP2011097993 A JP 2011097993A JP 2009253116 A JP2009253116 A JP 2009253116A JP 2009253116 A JP2009253116 A JP 2009253116A JP 2011097993 A JP2011097993 A JP 2011097993A
Authority
JP
Japan
Prior art keywords
game
communication
communication game
data
player
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.)
Granted
Application number
JP2009253116A
Other languages
English (en)
Other versions
JP5478198B2 (ja
Inventor
Hiroo Sotoike
弘生 外池
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2009253116A priority Critical patent/JP5478198B2/ja
Priority to US12/912,121 priority patent/US9174127B2/en
Publication of JP2011097993A publication Critical patent/JP2011097993A/ja
Application granted granted Critical
Publication of JP5478198B2 publication Critical patent/JP5478198B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/46Computing the game score
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/204Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5586Details of game data or player data management for enforcing rights or rules, e.g. to prevent foul play
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/61Score computation

Abstract

【構成】 ゲームシステム100は、サーバ102を含み、サーバ102は、ネットワーク104を介して複数のゲーム装置10と通信可能に接続される。サーバ102は、通信ゲーム中に、ゲーム装置10からの接続中メッセージを受信しない場合には、当該ゲーム装置10が通信ゲームを途中終了したと判断し、通信ゲームに参加中のプレイヤの悪評スコアを加算する。また、通信ゲームを終了し、次回の通信ゲームへの参加を拒否するゲーム装置10が存在する場合には、当該次回の通信ゲームへの参加を許可するゲーム装置10の悪評スコアを加算する。たとえば、悪評スコアの高いプレイヤは、次回の通信ゲームへの参加を拒否される。
【効果】 通信ゲームの継続を拒否されるようなプレイヤによる、不正行為や不快な行為を抑制したり防止したりすることができる。
【選択図】 図4

Description

この発明はゲームシステムおよびゲームプログラムに関し、特にたとえば、インターネットのようなネットワークを介して通信ゲームをプレイする、ゲームシステムおよびゲームプログラムに関する。
従来、ネットワークを介して接続された複数のゲーム装置間で実行される通信対戦ゲームにおいて、自己に不利な状況に陥った場合に、ゲーム装置間の通信を強制的に切断することで対戦を無効にするような不正行為が跋扈している。
このような不正行為を防止する方法の一例が特許文献1に開示されている。特許文献1に開示される不正行為防止方法では、店舗内のLANとゲーム装置との接続をプレイヤが切断した場合、異常処理を実行することにより、以降の不正行為への抑止力とする。たとえば、ゲーム装置は、ネットワーク対戦ゲームの実行中に、ルータを介して他のゲーム装置との間でパケットを送受信する。所定時間経過してもパケットを受信しない場合には、ルータに応答要求を送信し、ルータから返答がなければプレイヤが故意に内部ネットワークを切断したとみなし、ゲームを強制終了させたり、切断時の成績を記録したりするなどの異常処理を行う。これにより、ゲーム展開が不利になった場合に、LANケーブルを引き抜く行為など、プレイヤが故意に通信障害を引き起こそうとする不正行為への意欲を喪失させる。
特開2006−212288号公報
上述の特許文献1に開示された不正行為防止方法は、LANケーブルを抜くなどの通信を強制的に切断するような不正行為に対して異常処理を実行することにより、そのような不正行為への意欲を喪失させるものである。しかし、この特許文献1の不正行為防止方法は、不利な状況下におかれた際に、途中でゲームや通信を強制終了させるような不正行為を防止する場合に有用であるが、ゲームソフト(ゲームプログラム)の改造(改変)などのゲームプログラムの想定外の使用方法によってゲームを有利に進めるような不正行為や対戦相手に対する過剰な嫌がらせを行うなどの不快な行為を防止することは困難である。特に、そのような不正行為や不快な行為は近年増加しており、有効な対策が求められている。
それゆえに、この発明の主たる目的は、新規な、ゲームシステムおよびゲームプログラムを提供することである。
また、この発明の他の目的は、ゲームプログラムの想定外使用による不正行為を防止できる、ゲームシステムおよびゲームプログラムを提供することである。
さらに、この発明のその他の目的は、対戦ゲームの相手を不快にさせるような行為を防止できる、ゲームシステムおよびゲームプログラムを提供することである。
第1の発明は、通信ゲームを行うゲームシステムであって、拒否判断手段および制限情報更新手段を備える。拒否判断手段は、1のゲーム装置が他のゲーム装置によって通信ゲームの継続を拒否されたか否かを判断する。制限情報更新手段は、拒否判断手段の判断結果に応じて、1のゲーム装置の通信ゲームについての制限情報を更新させる。
第1の発明によれば、通信ゲームの継続を拒否されたゲーム装置の制限情報を更新するので、ゲームプログラムを想定外使用するような不正行為や過剰な嫌がらせを行うなどの不快な行為を行う者を間接的に検出することができる。したがって、そのような不正行為や不快な行為を抑制したり防止したりすることができる。
第2の発明は、第1の発明に従属し、ゲームシステムは、通信対象選択手段をさらに備える。通信対象選択手段は、各ゲーム装置の制限情報に基づいて通信ゲームの対象となるゲーム装置を選択する。
第2の発明によれば、制限情報に基づいて通信ゲームの対象となるゲーム装置を選択するので、その選択を簡単に行うことができる。
第3の発明は、第2の発明に従属し、通信対象選択手段は、制限情報が少なくとも近似する複数のゲーム装置を通信ゲームの対象として選択する。たとえば、制限情報が同じまたは近似するゲーム装置同士が通信ゲームの対象として選択される。
第3の発明によれば、制限情報が少なくとも近似するゲーム装置同士を通信ゲームの対象として選択するので、同じまたは類似する評価を他のプレイヤから受けていると考えられるプレイヤ同士を通信ゲームの対象として選択することができる。
第4の発明は、第1ないし第3の発明のいずれかに従属し、ゲームシステムは、通信ゲームを実行する通信ゲーム処理手段をさらに備える。この通信ゲーム処理手段は、少なくとも通信ゲームに参加中の各ゲーム装置の制限情報を、当該通信ゲームの処理に反映させる。たとえば、制限情報に基づいて、通信ゲームの継続を拒否される頻度が高いプレイヤは、不正行為や不快な行為を行う者であると判断して、そのようなプレイヤのプレイヤキャラクタの属性(攻撃力、生命力、性能など)を他のプレイヤのプレイヤキャラクタの属性よりも劣るように調整する。
第4の発明によれば、制限情報を通信ゲームの処理に反映させるので、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うなどの不快な行為を抑制したり防止したりすることができる。
第5の発明は、第4の発明に従属し、ゲームシステムは、通信ゲームに参加する各ゲーム装置の制限情報を比較する比較手段をさらに備える。通信ゲーム処理手段は、さらに、比較手段の比較結果を、通信ゲームの処理に反映させる。たとえば、格闘ゲームをプレイする場合に、ゲーム装置(プレイヤ)同士の制限情報を比較し、その比較結果に応じて、攻撃する側の攻撃力を変化させたり、防御する側の体力値の減少量を変化させたりする。つまり、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うプレイヤが操作するプレイヤキャラクタの攻撃力を低下させたり、体力値の減少量を増加させたりする。
第5の発明においも、第4の発明と同様に、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うなどの不快な行為を抑制したり防止したりすることができる。
第6の発明は、第4の発明に従属し、通信ゲーム処理手段は、制限情報が所定の条件を満たすとき、通信ゲームに影響を及ぼす。たとえば、制限情報が不正行為や不快な行為に関する指標であると仮定すると、そのような指標に基づいてプレイヤが不正行為や不快な行為を(頻繁)に行っていると判断される場合には、当該プレイヤについては、通信ゲームについて不利な扱いをする。逆に、プレイヤが不正行為や不快な行為を行っていないと判断される場合には、通信ゲームについて有利な扱いをする。これらはいずれか一方が実施されてもよい。
第6の発明によれば、制限情報に基づいて通信ゲームに影響を及ぼすので、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うなどの不快な行為を抑制することができる。
第7の発明は、第6の発明に従属し、通信ゲーム処理手段は、制限情報に基づく値が所定以上であるとき、通信ゲームへの参加自体を拒否する。たとえば、プレイヤが不正行為や不快な行為を頻繁に行うと判断される場合には、当該プレイヤを通信ゲームに参加させないようにするのである。
第7の発明によれば、不正行為や不快な行為を頻繁に行うプレイヤを通信ゲームに参加させないようにするので、そのような行為を未然に防止することができる。
第8の発明は、第1ないし第7の発明のいずれかに従属し、通信ゲームの継続を拒否されたことは当該通信ゲーム中に切断されたことを含む。たとえば、通信ゲーム中に、通信中の他のゲーム装置が、電源をオフしたり、通信を強制的に切断したりして、通信ゲームや通信を途中で終了すると、通信ゲームの継続を拒否されたと判断する。
第8の発明によれば、ゲームを途中で終了される場合に、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うなどの不快な行為が行われたと判断して、制限情報を更新することができる。
第9の発明は、第8の発明に従属し、拒否判断手段は、他のゲーム装置からの通信データを1のゲーム装置で一定時間受信しなかったとき、当該1のゲーム装置が当該他のゲーム装置によって通信ゲームの継続を拒否されたことを判断する。
第9の発明によれば、他のゲーム装置からの通信データを一定時間受信しなかった場合に、通信ゲームの継続を拒否されたことを判断するので、ゲーム装置の電源がオフされたり、通信を強制的に切断されたりしたことを、間接的に検出することができる。
第10の発明は、第1ないし第9の発明のいずれかに従属し、通信ゲームの継続を拒否されたことは次回の通信ゲームへの参加を拒否されたことを含む。
第10の発明によれば、次回の通信ゲームへの参加を拒否された場合にも、直前の通信ゲームにおいて、ゲームプログラムを想定外使用する不正行為や過剰な嫌がらせを行うなどの不快な行為が行われたと判断して、制限情報を更新することができる。
第11の発明は、第1ないし第10の発明のいずれかに従属し、ゲームシステムは拒否情報更新手段を備える。拒否情報更新手段は、他のゲーム装置が通信ゲームの継続を拒否した回数を示す拒否情報を更新する。制限情報更新手段は、さらに、拒否情報更新手段によって更新された拒否情報に基づいて、1のゲーム装置の通信ゲームについての制限情報を更新させる。
第11の発明によれば、他のゲーム装置が拒否した回数を1のゲーム装置の制限情報を更新する際に加味するので、他のゲーム装置の制限情報を故意に更新させようとするような行為を防止することができる。
第12の発明は、第11の発明に従属し、制限情報更新手段は、拒否情報更新手段によって更新された拒否情報が示す回数が大きい程、制限情報を変更する度合いを小さくする。
第12の発明によれば、たとえば頻繁に通信ゲームの継続を拒否するような他のゲーム装置については、1のゲーム装置の制限情報の更新に与える影響を少なくすることができる。
第13の発明は、第1ないし第12の発明のいずれかに従属し、ゲームシステムは、通信ゲームの継続を拒否した他のゲーム装置の数を検出する拒否数検出手段をさらに備える。制限情報更新手段は、さらに、拒否数検出手段の検出結果に基づいて、1のゲーム装置の通信ゲームについての制限情報を更新させる。
第13の発明によれば、ゲームの継続を拒否した他のゲーム装置の数に応じて制限情報を更新するので、たとえば一度に多数の他のゲーム装置によって通信ゲームを拒否された1のゲーム装置の制限情報を大幅に変更することができる。
第14の発明は、第1の発明に従属し、ゲームシステムは、参加者登録手段および再度参加受付手段をさらに備える。参加者登録手段は、通信ゲームの開始時に当該通信ゲームに参加するゲーム装置を参加者として登録する。再度参加者受付手段は、通信ゲームの終了時に参加者から再度通信ゲームへ参加するか否かの指示を受け付ける。拒否判断手段は、再度参加受付手段によって受け付けられた指示に基づいて、通信ゲームの継続が拒否されたゲーム装置が存在するか否かを判断する。
第14の発明によれば、通信ゲームへの参加者を登録しておき、通信ゲームの終了時に再度通信ゲームに参加するか否かの指示を受け付けるので、通信ゲームの継続を拒否したかどうかを簡単に知ることができる。
第15の発明は、第14の発明に従属し、ゲームシステムは、差分取得手段および差分判断手段をさらに備える。差分取得手段は、前回の通信ゲームの参加者数と次回の通信ゲームの参加者数との差分を取得する。差分判断手段は、差分取得手段によって取得された差分が所定の条件を満たしているか否かを判断する。拒否判断手段は、差分判断手段によって差分が所定の条件を満たしていないことが判断されたとき、通信ゲームの継続が拒否されたゲーム装置を判断する。
第15の発明によれば、前回の通信ゲームの参加者数と次回の通信ゲームの参加者数との差分が所定の条件を満たす場合にのみ、通信ゲームの継続が拒否されたゲーム装置を判断するので、そのような場合にのみ制限情報を更新することができる。
第16の発明は、通信ゲームを行うゲームシステムのゲームプログラムであって、コンピュータを、1のゲーム装置が他のゲーム装置によって通信ゲームの継続を拒否されたか否かを判断する拒否判断手段、および拒否判断手段の判断結果に応じて、1のゲーム装置の通信ゲームについての制限情報を更新させる制限情報更新手段として機能させる。
第16の発明においても、第1の発明と同様に、ゲームプログラムを想定外使用するような不正行為や過剰な嫌がらせを行うなどの不快な行為を抑制したり防止したりすることができる。
この発明によれば、通信ゲームの相手から通信ゲームの継続を拒否されたことに応じて通信ゲームの制限情報を更新するので、この制限情報に基づいて不正行為を行うプレイヤの通信ゲームへの参加およびプレイを制限することができる。つまり、ゲームプログラムの想定外使用による不正行為を抑制したり防止したりすることができる。また、対戦ゲームの相手を不快にさせるような行為を抑制したり防止したりすることができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の第1実施例の詳細な説明から一層明らかとなろう。
図1はこの発明のゲーム装置の外観構成の一実施例を示す図解図である。 図2は図1に示すゲーム装置を折り畳んだ状態の上面図および左側面図を示す図解図である。 図3は図1および図2に示すゲーム装置の電気的な構成を示すブロック図である。 図4は図1−図3に示すゲーム装置を用いたゲームシステムの例を示す図解図である。 図5は図4に示すサーバのRAMのメモリマップの例を示す図解図である。 図6は現在参加プレイヤリストの具体例を示す図解図である。 図7は図1−図4に示すゲーム装置のメインメモリのメモリマップの例を示す図解図である。 図8は図3に示すゲーム装置のCPUの全体処理の一部を示すフロー図である。 図9は図3に示すゲーム装置のCPUの全体処理の第2の一部であって、図8に後続するフロー図である。 図10は図3に示すゲーム装置のCPUの全体処理の第3の一部であって、図9に後続するフロー図である。 図11は図3に示すゲーム装置のCPUの全体処理の第4の一部であって、図9に後続するフロー図である。 図12は図4に示すサーバのCPUの全体処理の一部を示すフロー図である。 図13は図4に示すサーバのCPUの全体処理の第2の一部であって、図12に後続するフロー図である。 図14は図4に示すサーバのCPUの全体処理の第3の一部であって、図13に後続するフロー図である。 図15は図4に示すサーバのCPUの全体処理の第4の一部であって、図14に後続するフロー図である。 図16は図4に示すサーバのCPUの全体処理の第5の一部であって、図15に後続するフロー図である。 図17は図4に示すサーバのCPUの悪評スコアの更新処理を示すフロー図である。 図18は第2実施例のゲーム装置のCPUの全体処理の一部を示すフロー図である。 図19は第2実施例のサーバのCPUの全体処理の一部を示すフロー図である。 図20は第2実施例のサーバのCPUの全体処理の第2の一部であって、図19に後続するフロー図である。 図21は第2実施例のサーバのCPUの全体処理の第3の一部であって、図20に後続するフロー図である。 図22は第2実施例のサーバのCPUの全体処理の第4の一部であって、図21に後続するフロー図である。 図23は第3実施例のゲーム装置のメインメモリのメモリマップの例を示す図解図である。 図24は図23に示すデータ記憶領域の具体例を示す図解図である。 図25は第3実施例のゲーム装置のCPUの全体処理の一部を示すフロー図である。 図26は第3実施例のゲーム装置のCPUの全体処理の第2の一部であって、図25に後続するフロー図である。 図27は第3実施例のゲーム装置のCPUの全体処理の第3の一部であって、図26に後続するフロー図である。 図28は第3実施例のゲーム装置のCPUの全体処理の第4の一部であって、図27に後続するフロー図である。 図29は第3実施例のゲーム装置のCPUの全体処理の第5の一部であって、図28に後続するフロー図である。
<第1実施例>
図1を参照して、この発明の第1実施例のゲーム装置10は、上側ハウジング12および下側ハウジング14を含み、上側ハウジング12と下側ハウジング14とは、開閉可能(折り畳み可能)に連結されている。図1の例では、上側ハウジング12および下側ハウジング14は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回動可能に連結されている。つまり、この第1実施例のゲーム装置10は、折り畳み型の携帯ゲーム装置であり、図1には、当該ゲーム装置10を開いた状態(開状態)で示してある。ゲーム装置10は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
通常、ユーザは、開状態でゲーム装置10を使用する。また、ユーザは、ゲーム装置10を使用しない場合には閉状態で保管する。ただし、ゲーム装置10は、上記閉状態および開状態のみでなく、上側ハウジング12と下側ハウジング14とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング12を下側ハウジング14に対して任意の角度で静止させることができる。
なお、ゲーム装置10は、後述するカメラ(32,34)を搭載しており、当該カメラ(32,34)によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
図1に示すように、上側ハウジング12には第1LCD16が設けられ、下側ハウジング14には第2LCD18が設けられる。第1LCD16および第2LCD18は、横長形状であり、それぞれの長辺方向が上側ハウジング12および下側ハウジング14の長辺方向と一致するように配置される。たとえば、第1LCD16および第2LCD18の解像度は、256(横)×192(縦)画素(ドット)に設定される。
なお、この第1実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。また、ゲーム装置10は、任意の解像度の表示装置を利用することができる。
図1および図2に示すように、下側ハウジング14には、入力装置として、各操作ボタン20a−20kが設けられる。この各操作ボタン20a−20kのうち、方向入力ボタン20a、操作ボタン20b、操作ボタン20c、操作ボタン20d、操作ボタン20e、電源ボタン20f、スタートボタン20g、およびセレクトボタン20hは、下側ハウジング14の第2LCD18が設けられる側の面(内側の面)に配置される。具体的には、方向入力ボタン20aおよび電源ボタン20fは、第2LCD18の左側に配置され、操作ボタン20b−20e,20gおよび20hは、第2LCD18の右側に配置される。また、上側ハウジング12と下側ハウジング14とを折り畳んだときには、操作ボタン20a−20hはゲーム装置10の内部に収められる。
方向入力ボタン(十字キー)20aは、ディジタルジョイスティックとして機能し、プレイヤオブジェクトの移動方向を指示したり、カーソルを移動させたりするなどに用いられる。各操作ボタン20b−20eは、プッシュボタンであり、たとえば、プレイヤオブジェクトに任意の動作をさせたり、決定やキャンセルを実行したりする等に用いられる。電源ボタン20fは、プッシュボタンであり、ゲーム装置10の主電源をオン/オフするために用いられる。スタートボタン20gは、プッシュボタンであり、ゲームを中断(ポーズ)したり、開始(再開)したりするために用いられる。セレクトボタン20hは、プッシュボタンであり、ゲームモードやメニューの選択等に用いられる。
図1においては、操作ボタン20i−20kを省略したが、図2(A)に示すように、操作ボタン(Lボタン)20iは、下側ハウジング14の上側面の左端部に設けられ、操作ボタン(Rボタン)20jは、下側ハウジング14の上側面の右端部に設けられる。また、図2(B)に示すように、音量ボタン20kは、下側ハウジング14の左側面に設けられる。
なお、図2(A)は、ゲーム装置10を折り畳んだ状態で、上面(上ハウジング12)側から見た図であり、図2(B)は、同じくゲーム装置10を折り畳んだ状態で、左側面から見た図である。
Lボタン20iおよびRボタン20jは、プッシュボタンであり、操作ボタン20b−20eと同様の操作に用いたり、それらの操作ボタン20b−20eの補助的な操作に用いたりすることができる。また、この第1実施例では、Lボタン20iおよびRボタン20jは、撮影指示の操作(シャッター操作)を行うために用いることもできる。音量ボタン20kは、2つのプッシュボタンを用いて構成され、図示しない2つのスピーカ(右スピーカおよび左スピーカ)から出力される音の大きさを調整するために用いられる。この第1実施例では、音量ボタン20kには、2つの押圧部を含む操作部が設けられ、各押圧部に対応して上記のプッシュボタンが設けられる。したがって、一方の押圧部を押すと音量が大きくされ、他方の押圧部を押すと音量が小さくされる。たとえば、押圧部を押し続けると、音量が次第に大きくされたり、次第に小さくされたりする。
図1に戻って、ゲーム装置10は、操作ボタン20a−20kとは別の入力装置として、さらにタッチパネル22を備えている。タッチパネル22は、第2LCD18の画面上を覆うように装着されている。この第1実施例では、タッチパネル22は、たとえば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル22は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、この第1実施例では、タッチパネル22として、たとえば第2LCD18の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル22の解像度と第2LCD18の解像度とが一致している必要はない。
また、下側ハウジング14の右側面には、挿入口(図1に示す破線)が設けられている。挿入口は、タッチパネル22に対する操作を行うために用いられるタッチペン24を収納することができる。通常、タッチパネル22に対する入力は、タッチペン24を用いて行われるが、タッチペン24に限らずユーザの指でタッチパネル22を操作することも可能である。したがって、たとえば、タッチペン24を用いない場合には、タッチペン24の挿入口および収納部を設ける必要はない。
また、下側ハウジング14の右側面には、メモリカード26を収納するための挿入口(図1では、二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置10とメモリカード26とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード26は、たとえばSDカードであり、コネクタに着脱自在に装着される。このメモリカード26は、たとえば、ゲーム装置10によって撮像された画像を記憶(保存)したり、他の装置で生成(撮像)ないし記憶された画像をゲーム装置10に読み込んだりするために用いられる。
さらに、下側ハウジング14の上側面には、メモリカード28を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置10とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、情報処理プログラムおよび必要なデータなどを記録した記録媒体であり、下側ハウジング14に設けられた挿入口に着脱自在に装着される。
また、上側ハウジング12と下側ハウジング14との連結部(ヒンジ)の左端部分には、インジケータ30が設けられる。このインジケータ30は、3つのLED30a,30b,30cによって構成される。ここで、ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第1LED30aは、無線通信が確立している場合に点灯する。第2LED30bは、ゲーム装置10の充電中に点灯する。第3LED30cは、ゲーム装置10の主電源がオンである場合に点灯する。したがって、インジケータ30(LED30a−30c)によって、ゲーム装置10の通信確立状況、充電状況、および主電源のオン/オフ状況をユーザに通知することができる。
上述したように、上側ハウジング12には、第1LCD16が設けられる。この第1実施例では、第2LCD18を覆うように、タッチパネル22を設けているが、第1LCD16を覆うように、タッチパネル22を設けてもよい。または、第1LCD16および第2LCD18のそれぞれを覆うように、2つのタッチパネル22を設けるようにしてもよい。たとえば、第2LCD18には、各操作ボタン20a−20kやタッチパネル22の役割ないし操作方法をユーザに教えるための操作説明画面やゲーム画面が表示される。
また、上側ハウジング12には、2つのカメラ(内側カメラ32および外側カメラ34)が設けられる。図1に示すように、内側カメラ32は、上側ハウジング12と下側ハウジング14との連結部付近であり、第1LCD16が設けられる側の面に、この第1LCD16の表示面とその撮影面とが平行または面一になるように取り付けられる。一方、外側カメラ34は、図2(A)に示すように、内側カメラ32が取り付けられる面とは反対側の面、すなわち、上側ハウジング12の外側の面(ゲーム装置10が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング12の背面)に取り付けられる。ただし、図1においては、外側カメラ34を破線で示してある。
したがって、内側カメラ32は、上側ハウジング12の内側の面が向く方向を撮像することが可能であり、外側カメラ34は、内側カメラ32の撮像方向の逆方向、すなわち、上側ハウジング12の外側の面が向く方向を撮像することが可能である。このように、この第1実施例では、内側カメラ32および外側カメラ34の撮像方向が互いに逆方向となるように、それら2つのカメラ32,34が設けられる。たとえば、ゲーム装置10を把持したユーザは、このゲーム装置10側からユーザの方を見た景色(たとえば、当該ユーザを含む)を内側カメラ32で撮像することができるとともに、ゲーム装置10側からユーザとは反対側の方向を見た景色を外側カメラ34で撮像することができる。
なお、上記連結部付近の内側の面には、音声入力装置としてマイク84(図3参照)が収納されている。そして、上記連結部付近の内側の面には、マイク84がゲーム装置10外部の音を検知できるように、そのマイク84用の孔36が形成される。マイク84を収納する位置およびマイク84用の孔36の位置は必ずしも上記連結部である必要はなく、たとえば下側ハウジング14にマイク84を収納し、マイク84の収納位置に対応させて下側ハウジング14にマイク84用の孔36を設けるようにしてもよい。
また、上側ハウジング12の外側の面には、外側カメラ34の近傍に第4LED38(図1では、破線で示す)が取り付けられる。第4LED38は、内側カメラ32または外側カメラ34によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ32または外側カメラ34によって動画が撮影される場合には、第4LED38は、撮影の間点灯し続ける。つまり、第4LED38を点灯することによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者や周囲に通知することができる。
また、上側ハウジング12には、第1LCD16の両側に、音抜き孔40が形成される。この音抜き孔40に対応する位置であり、上側ハウジング12の内部には、上述したスピーカが収納されている。音抜き孔40は、スピーカからの音をゲーム装置10の外部に放出するための孔である。
以上に説明したように、上側ハウジング12には、画像を撮像するための構成である内側カメラ32および外側カメラ34と、主として、撮影された画像(撮影画像)およびゲーム画面を表示するための表示手段である第1LCD16とが設けられる。一方、下側ハウジング14には、ゲーム装置10に対する操作入力を行うための入力装置(操作ボタン20(20a−20k)およびタッチパネル22)と、主として、操作画面およびゲーム画面を表示するための表示手段である第2LCD18とが設けられる。したがって、ゲーム装置10は、2つの画面(16,18)および2系統の操作部(20,22)を備えている。
図3は、この第1実施例のゲーム装置10の電気的な構成を示すブロック図である。図3に示すように、ゲーム装置10は、CPU50、メインメモリ52、メモリ制御回路54、保存用データメモリ56、プリセットデータ用メモリ58、メモリカードインターフェース(メモリカードI/F)60、メモリカードI/F62、無線通信モジュール64、ローカル通信モジュール66、リアルタイムクロック(RTC)68、電源回路70、およびインターフェース回路(I/F回路)72、第1GPU(Graphics Processing Unit)74、第2GPU76、第1VRAM(Video RAM)78、第2VRAM80、およびLCDコントローラ82等の電子部品を備えている。これらの電子部品(回路コンポーネント)は、電子回路基板上に実装されて、下側ハウジング14(または上側ハウジング12でもよい)内に収納される。
CPU50は、所定のプログラムを実行するための情報処理手段である。この第1実施例では、所定のプログラムは、ゲーム装置10内のメモリ(たとえば保存用データメモリ56)やメモリカード26および/または28に記憶されており、CPU50は、当該所定のプログラムを実行することによって、後述する情報処理を実行する。
なお、CPU50によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶していてもよいし、メモリカード26および/または28から取得してもよいし、他の機器と通信することによって当該他の機器から取得してもよい。
CPU50には、メインメモリ52、メモリ制御回路54、およびプリセットデータ用メモリ58が接続される。また、メモリ制御回路54には、保存用データメモリ56が接続される。メインメモリ52は、CPU50のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ52は、上記情報処理に用いられる各種データを記憶(一時記憶)したり、外部(メモリカード26および28や他の機器等)から取得されるプログラムを記憶したりする。この第1実施例では、メインメモリ52として、たとえばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ56は、CPU50によって実行されるプログラムや内側カメラ32および外側カメラ34によって撮像された画像のデータ等を記憶(保存)するための記憶手段である。この保存用データメモリ56は、不揮発性の記憶媒体によって構成されており、たとえば、NAND型フラッシュメモリを用いることができる。メモリ制御回路54は、CPU50の指示に従って、保存用データメモリ56に対するデータの読み出しおよび書き込みを制御する。プリセットデータ用メモリ58は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ58としては、SPI(Serial Peripheral Interface)バスによってCPU50と接続されるフラッシュメモリを用いることができる。
メモリカードI/F60および62は、それぞれCPU50に接続される。メモリカードI/F60は、コネクタに装着されたメモリカード26に対するデータの読み出しおよび書き込みを、CPU50の指示に応じて行う。また、メモリカードI/F62は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU50の指示に応じて行う。この第1実施例では、内側カメラ32および外側カメラ34によって撮像された画像に対応する画像データや他の装置から受信された画像データがメモリカード26に書き込まれたり、メモリカード26に記憶された画像データがメモリカード26から読み出されて保存用データメモリ56に記憶されたり、他の装置へ送信されたりする。また、メモリカード28に記憶された各種プログラムが、CPU50によって読み出されて実行されたりする。
なお、ゲームプログラムなどの情報処理プログラムは、メモリカード28等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、情報処理プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。さらに、情報処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
無線通信モジュール64は、たとえばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール66は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール64およびローカル通信モジュール66は、CPU50に接続される。CPU50は、無線通信モジュール64を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール66を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
また、CPU50には、RTC68および電源回路70が接続される。RTC68は、時間をカウントしてCPU50に出力する。たとえば、CPU50は、RTC68によって計時された時間に基づいて、日付および現在時刻等を計算することもできる。電源回路70は、ゲーム装置10が有する電源(典型的には電池であり、下側ハウジング14に収納される)から供給される電力を制御し、ゲーム装置10の各回路コンポーネントに電力を供給する。
また、ゲーム装置10は、マイク84およびアンプ86を備えている。マイク84およびアンプ86は、それぞれI/F回路72に接続される。マイク84は、ゲーム装置10に向かって発声ないし発生されたユーザの音声ないし音(拍手や手拍子など)を検知して、当該音声ないし音を示す音声信号をI/F回路72に出力する。アンプ86は、I/F回路72から与えられる音声信号を増幅してスピーカ(図示せず)に与える。I/F回路72は、CPU50に接続される。
また、タッチパネル22は、I/F回路72に接続される。I/F回路72は、マイク84およびアンプ86(スピーカ)の制御を行う音声制御回路と、タッチパネル22の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル22からの信号に基づいて所定の形式のタッチ位置データを生成してCPU50に出力する。たとえば、タッチ位置データは、タッチパネル22の入力面に対して入力が行われた位置の座標を示すデータである。
なお、タッチパネル制御回路は、タッチパネル22からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU50は、I/F回路72を介して、タッチ位置データを取得することにより、タッチパネル22に対して入力が行われた位置を知ることができる。
操作ボタン20は、上記の各操作ボタン20a−20kによって構成され、CPU50に接続される。操作ボタン20からCPU50へは、各操作ボタン20a−20kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU50は、操作ボタン20からの操作データを取得し、取得した操作データに応じた処理を実行する。
内側カメラ32および外側カメラ34は、それぞれCPU50に接続される。内側カメラ32および外側カメラ34は、CPU50の指示に応じて画像を撮像し、撮像した画像に対応する画像データをCPU50に出力する。この第1実施例では、CPU50は、内側カメラ32および外側カメラ34のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラ(32,34)が画像を撮像して画像データをCPU50に送る。
第1GPU74には、第1VRAM78が接続され、第2GPU76には、第2VRAM80が接続される。第1GPU74は、CPU50からの指示に応じて、メインメモリ52に記憶されている表示画像を生成するためのデータに基づいて第1の表示画像を生成し、第1VRAM78に描画する。第2GPU76は、同様にCPU50からの指示に応じて第2の表示画像を生成し、第2VRAM80に描画する。第1VRAM78および第2VRAM80は、LCDコントローラ82に接続されている。
LCDコントローラ82は、レジスタ82aを含む。レジスタ82aは、CPU50からの指示に応じて、「0」または「1」の値を記憶する。LCDコントローラ82は、レジスタ82aの値が「0」である場合には、第1VRAM78に描画された第1の表示画像を第2LCD18に出力し、第2VRAM80に描画された第2の表示画像を第1LCD16に出力する。また、レジスタ82aの値が「1」である場合には、第1VRAM78に描画された第1の表示画像を第1LCD16に出力し、第2VRAM80に描画された第2の表示画像を第2LCD18に出力する。
図4は図1ないし図3に示したゲーム装置10を用いたゲームシステム100の例を示す図解図である。図4に示すように、ゲームシステム100は、サーバ102を含み、サーバ102はインターネットまたはLANのようなネットワーク104を介して複数のゲーム装置10と通信可能に接続される。また、サーバ102には、データベース106が直接接続される。ただし、データベース106は、ネットワーク104を介してサーバ102に接続されてもよい。このサーバ102は、汎用のサーバであり、CPU102aおよびRAM102bなどのコンポーネントを含む。
たとえば、図4に示すようなゲームシステム100では、サーバ102は、ゲーム装置10からの通信ゲームへの参加の申し込みを受け付ける。たとえば、通信ゲームは、複数のゲーム装置10(プレイヤ)が対戦ないし競争(以下、単に「対戦」という)するような仮想ゲームである。あるいは、通信ゲームは、複数のゲーム装置10(プレイヤ)が協力して戦闘や冒険を行う仮想ゲームであってもよい。サーバ102は、ゲーム装置10からの通信ゲームへの参加の申し込みを受け付けると、通信ゲームの対戦相手となるプレイヤ、すなわち通信ゲームへの参加予定者を決定(マッチング)する。このとき、複数のグループが形成される場合があるが、この第1実施例では、簡単のため、1つのグループが形成されることにする。参加予定者のグループが決定されると、サーバ102は、参加予定者の各ゲーム装置10に対して他の参加予定者のゲーム装置10についての接続情報(たとえば、IPアドレス)を送信する。
各ゲーム装置10は、サーバ102から送信されたIPアドレスを受信すると、受信したIPアドレスに基づいて、他の参加予定者のゲーム装置10との間で接続状態を確立(通信を開始)し、通信ゲームを開始する。このとき、接続状態が確立したゲーム装置10が通信ゲームへの参加者すなわち対戦相手として確定される。ただし、接続できなかったゲーム装置10は、今回の通信ゲームに参加しなかったと判断される。
通信ゲームの実行中では、各ゲーム装置10は、自己のプレイヤによって入力される操作データ(自己の操作データ)および対戦相手(他の参加者)のゲーム装置10から送信される操作データ(他の操作データ)に基づいてゲーム処理を実行する。たとえば、各プレイヤキャラクタの位置や動作が制御され、ゲーム画面が更新されたり、ゲームに必要な音(音楽)が出力されたりする。また、通信ゲームが進行され、それに応じて得点処理(減点されることもある)が実行される。各ゲーム装置10は、通信ゲームを終了すると、通信ゲームを終了したことの通知(終了通知)をサーバ102に送信する。
なお、この第1実施例では、各ゲーム装置10の間で操作データを送受信するようにしてあるが、操作による結果のデータ(結果データ)を送受信するようにしてもよい。たとえば、操作データまたは結果データのいずれを送受信するかは、通信ゲームの種類や設計によって選択的に決定される。
また、詳細な説明は省略するが、通信ゲームを終了すると、各ゲーム装置10では、同一の対戦相手と通信ゲームを再度(続けて)行うか否かがプレイヤに問い合わされ、プレイヤによって再度通信ゲームを実行することが選択されたゲーム装置10間で、再度通信ゲームが実行される。つまり、継続して通信ゲームが行われる。
たとえば、このような通信ゲームでは、或るゲーム装置10のプレイヤが、不利な状況に陥った際に、通信ゲームを強制的に終了したり、通信自体を強制的に切断したりして、通信ゲーム(対戦)を無効にしようとすることがある。このような場合には、通信ゲームや通信自体を強制的に切断したプレイヤに対して何らかのペナルティを課すようにすれば、そのような行為を抑制することができると考えられる。
しかし、通信ゲームや通信自体を強制的に切断したプレイヤに対してペナルティを課すようにする場合には、ゲームソフト(ゲームプログラム)を改造(改変)したり、ゲームプログラムを想定外の方法で使用したりして通信ゲームを有利に進めるような不正行為や対戦相手に対する過剰な嫌がらせを行うなどの不快な行為を防止することは困難である。特に、そのような不正行為や不快な行為は近年増加しており、有効な対策が求められている。
そこで、この第1実施例では、通信ゲームを途中で終了(途中終了)されたり、次回の通信ゲームへの参加を拒否されたりしたプレイヤ、すなわち通信ゲームを継続することを拒否されたプレイヤを、上記のような不正行為や不快な行為を行った者として間接的に検出し、そのようなプレイヤに対して、次回以降の通信ゲームに参加できないようにしたり、次回以降の通信ゲームにおいて不利な状況でプレイさせたりするようにしてある。
この第1実施例では、途中終了とは、通信ゲームの実行中に、ゲーム装置10の電源をオフしたり、通信を強制的に切断したりすることを意味する。ただし、プレイヤが意図的に通信を切断しない場合であっても、通信環境の悪化によって通信が切断されてしまう場合もある。
つまり、この第1実施例では、通信ゲームを途中終了されたり、次回の通信ゲームへの参加を拒否されたりしたということは、通信ゲームを途中終了したり、次回の通信ゲームへの参加を拒否したりしたプレイヤが、上記のような、不正行為に遭ったり、不快な行為を受けたりしたと仮定してある。
ただし、これを逆手にとって、或るプレイヤを陥れるために、故意に、通信ゲームを途中終了したり、次回の通信ゲームへの参加を拒否したりすることで、不正行為や不快な行為を行った事実のないプレイヤを、そのような行為を行ったように仕立てようとすることも考えられる。このため、通信ゲームを途中終了したり、次回の通信ゲームへの参加を拒否したりする回数が多いプレイヤ(ゲーム装置10)については、後述するように、不正行為や不快な行為に基づくプレイヤの悪評についてのスコア(悪評スコア)に与える影響を少なくしてある。
図5は、サーバ102に内蔵されるRAM102bのメモリマップ150の例を示す図解図である。図5に示すように、RAM102bは、プログラム記憶領域152およびデータ記憶領域154を含む。プログラム記憶領域152には、メイン処理プログラム152a、通信処理プログラム152b、マッチングプログラム152c、接続情報送信プログラム152d、参加者確定プログラム152e、参加者情報送信プログラム152f、接続確認プログラム152g、悪評スコア算出プログラム152h、接続拒否回数カウントプログラム152iおよびバックアッププログラム152jなどが記憶される。
メイン処理プログラム152aは、この第1実施例の通信ゲームをゲーム装置10間で実行させるためのメインルーチンを処理するためのプログラムである。通信処理プログラム152bは、ゲーム装置10との間で通信処理を行うためのプログラムである。マッチングプログラム152cは、通信ゲームへの参加の申し込みを行った複数のゲーム装置10から、当該通信ゲームの対戦相手となる参加予定者のゲーム装置10を決定(マッチング)するためのプログラムである。この実施例では、マッチングプログラム152cは、ゲーム装置10(プレイヤ)についての悪評スコアをデータベース106から読み出し、同じまたは同程度の悪評スコアを有するゲーム装置10同士を参加予定者として決定する。
接続情報送信プログラム152dは、各参加予定者のゲーム装置10に他の参加者のゲーム装置10の接続情報(IPアドレス)を送信するためのプログラムである。参加者確定プログラム152eは、通信ゲームへの参加者を確定するためのプログラムである。具体的には、サーバ102のCPU102aは、各参加予定者のゲーム装置10に他の参加予定者のゲーム装置10の接続情報を送信してから一定時間(たとえば、30秒)内に、開始通知を送信してきたゲーム装置10を通信ゲームの参加者として確定する。ただし、CPU102aは、上記の一定時間内に、開始通知を送信して来ないゲーム装置10については、今回の通信ゲームには不参加であると判断する。
参加者情報送信プログラム152fは、確定した参加者のゲーム装置10の識別情報のリスト(参加者情報)を、参加者のゲーム装置10に送信するためのプログラムである。接続確認プログラム152gは、参加中のゲーム装置10から送信される接続中メッセージを受信し、参加者の全員から接続中メッセージを受信した場合には、その旨を示すデータ(全員接続データ)を参加者のゲーム装置10に送信し、参加者の一部から接続中メッセージを受信した場合には、切断したゲーム装置10の総数についてのデータ(切断数データ)を参加者(参加中)のゲーム装置10に送信するためのプログラムである。
悪評スコア算出プログラム152hは、通信ゲームを途中で終了されたり、次回の通信ゲームの継続を拒否されたりしたプレイヤ(ゲーム装置10)についての悪評スコアを更新するためのプログラムである。継続拒否回数カウントプログラム152iは、プレイヤ(ゲーム装置10)毎に、通信ゲームを継続することを拒否した回数(継続拒否回数)をカウントするためのプログラムである。この第1実施例では、後述する継続拒否回数データ154gが示す継続拒否回数がカウントアップされる。バックアッププログラム152jは、RAM102bに記憶されたデータをデータベース106や他の外部記憶媒体(メモリカードなど)に記憶するためのプログラムである。この第1実施例では、主として、各プレイヤすなわち各ゲーム装置10の識別情報に対応して、後述する悪評スコアデータ154f、継続拒否回数データ154gおよび対戦中フラグ154hのそれぞれがデータベース106に記憶される。
なお、図示は省略するが、プログラム記憶領域には、画像生成プログラムなどの他のプログラムも記憶される。たとえば、画像生成プログラムは、各ゲーム装置10が通信ゲームの参加を申し込む際の申し込み画面(図示せず)を表示するための画像データを生成する。
データ記憶領域154には、送受信データバッファ154aが設けられる。また、データ記憶領域154には、リクエストリストデータ154b、参加予定プレイヤリストデータ154c、現在参加プレイヤリストデータ154d、不参加予定プレイヤリストデータ154e、悪評スコアデータ154f、継続拒否回数データ154gが記憶される。さらに、データ記憶領域154には、対戦中フラグ154hが設けられる。
送受信データバッファ154aは、各ゲーム装置10に送信するデータなどを記憶(一時記憶)したり、各ゲーム装置10から送信されたデータなどを受信して一時記憶したりするためのバッファである。リクエストリストデータ154bは、図示は省略するが、通信ゲームへの参加を申し込んだゲーム装置10の識別情報(プレイヤ名など)および接続情報(IPアドレス)を記載したリスト(リクエストリスト)についてのデータである。
参加予定プレイヤリストデータ154cは、初回および次回以降の通信ゲームへの参加予定者のゲーム装置10の識別情報を記載したリスト(参加予定プレイヤリスト)である。たとえば、初回では、データベース106に記憶されたプレイヤ毎の悪評スコアデータ154fが示す悪評スコアに従って参加予定者が決定され、次回以降では、直前の通信ゲームを正常終了したプレイヤのうち、次回の通信ゲームを継続することを許可したプイレヤが参加予定者として決定される。
現在参加プレイヤリストデータ154dは、実際に通信ゲームに参加している参加者のゲーム装置10(プレイヤ)の識別情報および通信ゲームを途中終了したかどうかを示す情報(途中終了フラグ)を記載したリスト(現在参加プレイヤリスト)についてのデータである。たとえば、現在参加プレイヤリストデータ154dに従う現在参加プレイヤリストは、図6のように示される。図6では、簡単のため、プレイヤすなわちゲーム装置10の識別情報を、一文字のアルファベットで示してあるが、実際には、プレイヤの名称や当該ゲーム装置10に内蔵される無線通信モジュール64のMACアドレスのような固有の識別情報である。また、途中終了フラグは、通信ゲームを途中終了したかどうかを示すフラグである。たとえば、途中終了フラグは、各プレイヤ(ゲーム装置10)に対応して設けられ、それぞれ1ビットのレジスタで構成される。各途中終了フラグは、対応するプレイヤ(ゲーム装置10)が通信ゲームを途中終了した場合にオンされ、レジスタにデータ値「1」が設定される。一方、各途中終了フラグは、対応するプレイヤ(ゲーム装置10)が通信ゲームを途中終了しない場合にオフされ、レジスタにデータ値「0」が設定される。したがって、通信ゲームが終了された場合に、途中終了フラグがオフであるプレイヤ(ゲーム装置10)はその通信ゲームを正常に終了(正常終了)したことを意味する。一方、通信ゲームが終了された場合に、途中終了フラグがオンであるプレイヤ(ゲーム装置10)はその通信ゲームを途中終了したことを意味する。
図5に戻って、不参加予定プレイヤリストデータ154eは、次回以降の通信ゲームへの参加を拒否したゲーム装置10の識別情報を記載したリスト(非参加予定プレイヤリスト)である。
悪評スコアデータ154fは、各プレイヤ(ゲーム装置10)についての悪評スコアのデータである。上述したように、悪評スコアデータ154fは、データベース106にバックアップされるため、通信ゲームの参加の申し込みを受け付けた後に、参加予定者を決定(マッチング)する際に、参加の申し込みの有ったゲーム装置10の各々についてデータベース106から読み込まれ、通信ゲームが実行されることにより更新される。ただし、バックアップの処理は、一定時間(たとえば、30秒〜60秒)毎のタイミングなどの所定のイベントが発生したときに実行され、データベース106に記憶されている、少なくとも、悪評スコアデータ154fと、後述する継続拒否回数データ154gと、後述する対戦中フラグ154hとが更新される。
継続拒否回数データ154gは、各プレイヤ(ゲーム装置10)についての継続拒否回数のデータである。ただし、継続拒否回数は、通信ゲームを継続することを拒否した回数、すなわち、通信ゲームを途中終了した回数および次回の通信ゲームへの参加を拒否した回数を意味する。上述したように、この継続拒否回数データ154gは、データベース106にバックアップされるため、たとえば通信ゲームの募集を開始する際にデータベース106から読み込まれ、通信ゲームの募集時に更新されたり、通信ゲームが実行されることにより更新されたりする。
対戦中フラグ154hは、各プレイヤ(ゲーム装置10)についての通信ゲームの開始および終了(正常終了)を監視(記録)するためのフラグである。対戦中フラグ154hは、サーバ102に登録されたゲーム装置10の数だけ設けられ、各対戦中フラグ154hは1ビットのレジスタで構成される。或るゲーム装置10についての対戦中フラグ154hがオンされると、対応するレジスタにデータ値「1」が設定される。また、或るゲーム装置10についての対戦中フラグ154hがオフされると、対応するレジスタにデータ値「0」が設定される。ただし、ゲーム装置10からの開始通知を受信したときに、当該ゲーム装置10についての対戦中フラグ154hがオンされる。一方、ゲーム装置10からの終了通知を受信したときに、当該ゲーム装置10に対応する対戦中フラグ154hがオフされる。したがって、ゲーム装置10が、通信ゲームを途中終了した場合には、当該ゲーム装置10から終了通知は送信されないため、かかる場合には、当該ゲーム装置10に対応する対戦中フラグ154hはオフされない。
また、上述したように、対戦中フラグ154hは、データベース106にバックアップされるため、たとえばゲーム装置10からの接続リクエストを受信したときに、当該ゲーム装置10についての対戦中フラグ154hがデータベース106から読み込まれ、当該ゲーム装置10が通信ゲームを開始したときにオンされ、当該ゲーム装置10が通信ゲームを正常終了したときにオフされる。
なお、図示は省略するが、データ記憶領域154には、画像データなどの他のデータが記憶されるとともに、サーバ102の処理に必要な他のフラグやカウンタ(タイマ)も設けられる。
図7はゲーム装置10のメインメモリ52のメモリマップ200の例を示す図解図である。図7に示すように、メインメモリ52は、プログラム記憶領域202およびデータ記憶領域204を含む。プログラム記憶領域202には、メイン処理プログラム202a、通信処理プログラム202b、画像生成プログラム202c、画像表示プログラム202d、接続処理プログラム202e、接続確認プログラム202f、次ゲーム拒否判断プログラム202g、次ゲーム拒否判断通知プログラム202h、通信強制終了プログラム202iおよびバックアッププログラム202jが記憶される。
メイン処理プログラム202aは、通信ゲームのメインルーチンを処理するためのプログラムである。通信処理プログラム202bは、他のゲーム装置10またはサーバ102との間で通信を実行するためのプログラムである。画像生成プログラム202cは、後述する画像データ204cを用いて、第1LCD16および第2LCD18に表示するゲーム画面(メニュー画面や操作画面なども含む)に対応するゲーム画像データを生成するためのプログラムである。画像表示プログラム202dは、画像生成プログラム202cに従って生成されたゲーム画像データをゲーム画面として第1LCD16および第2LCD18に表示するためのプログラムである。
接続処理プログラム202eは、サーバ102から受信した接続情報(IPアドレス)に従って他の参加予定者のゲーム装置10との間で接続状態を確立するためのプログラムである。接続確認プログラム202fは、通信ゲームの実行中に、接続中メッセージをサーバ102に送信するとともに、サーバ102から送信される全員接続データまたは切断数データを受信するためのプログラムである。
ここで、接続中メッセージは、ゲーム装置10が通信ゲームを実行中であること、すなわち他(対戦相手)のゲーム装置10やサーバ102と通信中(接続中)であることを示すメッセージである。
次ゲーム拒否判断プログラム202gは、次回の通信ゲームを継続して行うことを拒否するかどうかを判断するためのプログラムである。この実施例では、通信ゲームを終了すると、たとえば、同じ対戦相手(厳密には、通信ゲームを正常終了した対戦相手)と、再度プレイするかどうかの選択画面(図示せず)が第1LCD16または第2LCD18或いはその両方に表示される。ここで、プレイヤが再度プレイすることを選択すると、通信ゲームを継続して行うことを拒否しない(許可する)ことが判断される。しかし、プレイヤが再度プレイしない(たとえば、通信ゲームを止める、または他のプレイヤと対戦する)ことを選択すると、通信ゲームを継続して行うことを拒否することが判断される。
次ゲーム拒否判断通知プログラム202hは、次ゲーム拒否判断プログラム202gの判断結果の通知をサーバ102に送信するためのプログラムである。この第1実施例では、再度プレイすることが選択された場合には、通信ゲームを継続して行うことを許可する旨の通知(継続許可通知)がサーバ102に送信される。しかし、通信ゲームを止めることが選択された場合には、通信ゲームを継続して行うことを拒否する旨の通知(継続拒否通知)がサーバ102に送信される。また、他のプレイヤと対戦したりすることが選択された場合には、ゲーム装置10は他のプレイヤと対戦するための通信ゲームへの参加の申し込み通知をサーバ102に送信する。
通信強制終了プログラム202iは、通信ないし通信ゲームを強制的に終了するためのプログラムである。この実施例では、ゲーム装置10が、サーバ102に通信ゲームへの参加の申し込みをした場合に、サーバ102からの通信ゲーム不可通知を受信すると、通信ゲームをプレイすることなく、通信を強制的に終了される。つまり、通信ゲームに参加することが拒否される。また、通信ゲームのプレイ中に、他の参加者(ゲーム装置10)がすべて通信ゲームを途中で終了した場合、つまり通信ゲームの参加者が自己のゲーム装置10だけになった場合にも、通信ゲーム(通信)が強制的に終了される。
バックアッププログラム202jは、メインメモリ52に記憶されたゲームデータ(途中データや結果データ)を、プレイヤの指示などの所定のイベントに従って、メモリカード28や保存用データメモリ56に記憶(セーブ)するためのプログラムである。
図示は省略するが、プログラム記憶領域202には、音出力プログラムなども記憶される。音出力プログラムは、通信ゲームに必要な音(音楽)を生成および出力するためのプログラムである。
データ記憶領域204には、操作データバッファ204aおよび送受信データバッファ204bが設けられる。また、データ記憶領域204には、画像データ204cおよび参加者情報データ204dが記憶される。
操作データバッファ204aは、プレイヤによって操作された操作ボタン20に対応する操作データまたはタッチパネル22から入力される座標データを記憶(一時記憶)するためのバッファである。送受信データバッファ204bは、他のゲーム装置10やサーバ102に送信するデータなどを記憶(一時記憶)したり、他のゲーム装置10やサーバ102から送信されたデータなどを受信して一時記憶したりするためのバッファである。
画像データ204cは、上述したゲーム画像データを生成するためのポリゴンデータやテクスチャデータなどのデータである。参加者情報データ204dは、通信ゲームに参加することが確定したプレイヤ(ゲーム装置10)の識別情報を記載したリスト(参加者情報)についてのデータである。ただし、参加者情報は、第1実施例では、単なる参加者数についてのデータであってもよい。この参加者情報データ204dは、上述したように、サーバ102から送信される。
図示は省略するが、データ記憶領域204には、音データなど、通信ゲームの処理の実行に必要な他のデータが記憶されるとともに、通信ゲームの処理の実行に必要なフラグやカウンタ(タイマ)なども設けられる。
以下、具体的な動作について説明する。ただし、図8ないし図11がゲーム装置10のCPU50の全体処理であり、図12ないし図16がサーバ102のCPU102aの全体処理である。
図8に示すように、ゲーム装置10のCPU50は全体処理を開始すると、ステップS1で、接続リクエストをサーバ102に送信する。具体的には、CPU50は、通信ゲームへの参加の申し込み通知をサーバ102に送信する。次のステップS3では、サーバ102から通信ゲーム不可通知を受信したかどうかを判断する。
ステップS3で“YES”であれば、つまりサーバ102から通信ゲーム不可通知を受信すると、図11に示すステップS53で、通信を終了し、全体処理を終了する。つまり、通信ゲームへの参加が拒否され、通信が強制的に終了される。一方、ステップS3で“NO”であれば、つまりサーバ102から通信ゲーム不可通知を受信しなければ、次のステップS5で、サーバ102から参加予定者の接続情報を受信したかどうかを判断する。
ステップS5で“NO”であれば、つまりサーバ102から参加予定者の接続情報を受信しなければ、そのままステップS3に戻る。一方、ステップS5で“YES”であれば、つまりサーバ102から参加予定者の接続情報を受信すれば、ステップS7で、その接続情報に従って参加予定者のゲーム装置10と接続する。つまり、ゲーム装置10は、参加予定者のゲーム装置10との間で接続状態を確立する。続くステップS9では、開始通知をサーバ102に送信する。
なお、ステップS7では、すべての参加予定者のゲーム装置10と接続できることを前提としてあるが、一定時間(たとえば、30秒)を経過しても、接続状態を確立することができない参加予定者のゲーム装置10については、今回の通信ゲームに参加しないと判断して、そのままステップS9に進むようにしてよい。また、このとき、すべての参加予定者のゲーム装置10と接続状態を確立できない場合には、通信ゲームに参加できないと判断して、ステップS53に進むようにしてもよい。
続いて、ステップS11では、サーバ102から参加者情報を受信したかどうかを判断する。ステップS11で“NO”であれば、つまりサーバ102から参加者情報を受信していなければ、同じステップS11に戻る。一方、ステップS11で“YES”であれば、つまりサーバ102から参加者情報を受信すれば、ステップS13で、参加者情報(参加者情報データ204d)をメインメモリ52に記憶して、図9に示すステップS15で、対戦が終わったかどうかを判断する。つまり、CPU50は、対戦ゲームの勝敗が決まる、ゲームオーバとなる、ステージクリアとなる等の条件によって通信ゲームを正常終了したかどうかを判断する。
ステップS15で“YES”であれば、つまり対戦が終われば、図11に示すステップS39に進む。一方、ステップS15で“NO”であれば、つまり対戦が終わっていなければ、ステップS17で、自己の操作データを対戦相手(他の参加者)のゲーム装置10に送信する。
なお、詳細な説明は省略するが、ステップS17では、CPU50は、無線通信モジュール64を用いて、操作データバッファ204aに記憶された操作データの複製に自己のゲーム装置10の識別情報を付加して、対戦相手のゲーム装置10に送信する。ただし、操作データは、対戦相手のゲーム装置10に、ブロードキャストされてもよく、複数の対戦相手の各々のゲーム装置10の間で巡回的に送信されてもよい。
続くステップS19では、すべての対戦相手の操作データを受信したかどうかを判断する。ここでは、CPU50は、参加者情報データ204dを参照して、すべての参加者(対戦相手)のゲーム装置10からの操作データを受信したかどうかを判断するのである。ステップS19で“YES”であれば、つまりすべての対戦相手の操作データを受信すると、そのままステップS23に進む。一方、ステップS19で“NO”であれば、つまり操作データを受信していない対戦相手のゲーム装置10が存在する場合には、ステップS21で、一定時間を経過したかどうかを判断する。CPU50は、自己の操作データを送信してから、または対戦相手からの操作データを最初に受信してからの時間を、RTC68によって計時された時間に基づいて取得し、取得した時間が一定時間(たとえば、10秒)を経過したかどうかを判断する。
ステップS21で“NO”であれば、つまり一定時間を経過していなければ、そのままステップS19に戻る。一方、ステップS21で“YES”であれば、つまり一定時間を経過すれば、ステップS23で、自己および対戦相手の操作データをゲームに反映する。具体的には、CPU50は、ステップS23で、各プレイヤキャラクタの位置を更新したり、各プレイヤキャラクタの動作を制御したりして、ゲーム画面を更新する。ただし、操作データを受信できなかった相手が存在する場合は、当該相手のプレイヤキャラクタを静止させてもよいし、過去の操作データから、位置や動作を推定してもよい。このとき、CPU50は、ゲームに必要な音(音楽)を生成および出力する。また、必要に応じて、CPU50は、得点処理を実行する。次のステップS25では、接続中メッセージをサーバ102に送信する。
続いて、図10に示すステップS27では、全員接続データまたは切断数データをサーバ102から受信したかどうかを判断する。ただし、この第1実施例では、ゲーム装置10は、参加者情報(参加者情報データ204d)を管理しているため、切断数データに代えて、通信ゲームを途中終了したゲーム装置10(プレイヤ)の識別情報をサーバ102が送信し、これを受信するようにしても、切断したプレイヤの数(通信ゲームを途中終了したプレイヤの人数)を知ることができる。
ステップS27で“YES”であれば、つまり全員接続データまたは切断数データをサーバ102から受信すれば、そのままステップS33に移行する。一方、ステップS27で“NO”であれば、つまり全員接続データおよび切断数データをサーバ102から受信しなければ、ステップS29で、一定時間を経過したかどうかを判断する。図示は省略するが、CPU50は、接続中メッセージをサーバ102に送信してからの時間を、RTC68によって計時される時間に基づいて取得し、取得した時間が一定時間(たとえば、30秒)を経過したかどうかを判断する。
ステップS29で“NO”であれば、つまり一定時間を経過していなければ、そのままステップS27に戻る。一方、ステップS29で“YES”であれば、つまり一定時間を経過すれば、ステップS31で、受信不能データを作成して、ステップS33に進む。ここで、受信不能データは、サーバ102から全員接続データおよび切断数データを受信できなかったことを示すデータである。また、この受信不能データは、メインメモリ52のバッファ領域(図示せず)に一時記憶される。
ステップS33では、全員接続データまたは受信不能データが有るかどうかを判断する。ステップS33で“YES”であれば、つまり全員接続データまたは受信不能データが有れば、図9に示したステップS15に戻って通信ゲームを続行する。一方、ステップS33で“NO”であれば、つまり切断数データが有れば、ステップS35で、切断したプレイヤの総数が全参加者数−1よりも小さいかどうかを判断する。つまり、自己のゲーム装置10だけが通信ゲームに参加している状態でないかどうかを判断する。ただし、切断数データが示す数は、通信ゲームの開始から現時点までの間に、通信ゲームを途中終了したゲーム装置10の総数(切断したプレイヤの総数)である。
なお、この第1実施例では、受信不能データが有る場合にも通信ゲームを続行するようにしてあるが、受信不能データが連続して作成される場合には、自己のゲーム装置10の通信が途絶えている可能性が高い。このため、受信不能データが連続して作成される個数をカウントしておき、その個数が一定数(たとえば、3)を超える場合には、通信(通信ゲーム)を終了するようにしてもよい。
図10に戻って、ステップS35で“YES”であれば、つまり切断したプレイヤの総数が全参加者数−1よりも小さければ、そのままステップS15に戻り、通信ゲームを続行する。一方、ステップS35で“NO”であれば、つまり切断したプレイヤの総数が参加者数−1以上であれば、ステップS37で、サーバ102に終了通知を送信して、ステップS53に進む。この第1実施例では、通信ゲームの参加者が自己のゲーム装置10のみになった場合には、通信ゲームを終了(正常終了)するようにしてある。ただし、かかる場合であっても、通信ゲームを続行してもよい。これらは、通信ゲームの種類や設計に応じて決定される事項である。
また、対戦が終わると、上述したように、ステップS15で“YES”となり、図11に示すステップS39で、終了通知をサーバ102に送信する。なお、自己のゲーム装置10が通信ゲームを途中終了した場合には、このような終了通知が送信されることはない。続くステップS41では、対戦結果をサーバ102に送信する。この第1実施例では、対戦結果をサーバ102に送信するようにしてあるが、各ゲーム装置10で対戦結果をバックアップするようにしてもよい。
次のステップS43では、続けて対戦するかどうかをプレイヤに問い合わせる。ここでは、CPU50は、同じ対戦相手と再度通信ゲームをプレイするか否かを選択するための選択画面を第1LCD16または第2LCD18或いはそれらの両方に表示する。ただし、上述したように、選択画面では、通信ゲームを止めることや他のプレイヤと対戦することも選択することができる。
ステップS45では、続けて対戦するかどうかを判断する。つまり、CPU50は、選択画面において、同じ対戦相手と再度通信ゲームをプレイすることが選択されたかどうかを判断する。ステップS45で“NO”であれば、つまり通信ゲームを止めることや他のプレイヤと対戦することが選択されれば、ステップS46で継続拒否通知をサーバに送信し、ステップS53に進む。
なお、図示は省略するが、他のプレイヤと対戦する場合には、通信を終了せずに、他のプレイヤと対戦するための通信ゲームの参加の申し込みの通知をサーバ102に送信して、図8に示したステップS3に戻る。
また、ステップS45で“YES”であれば、つまり、同じ対戦相手と続けて対戦することが選択されれば、ステップS47で、継続許可通知をサーバ102に送信して、ステップS49で、サーバ102から次回の参加予定者の識別情報を受信したかどうかを判断する。ステップS49で“NO”であれば、つまりサーバ102から次回の参加予定者の識別情報を受信していなければ、同じステップS49に戻る。一方、ステップS49で“YES”であれば、つまりサーバ102から次回の参加予定者の識別情報を受信すれば、ステップS51で、次回の参加予定者が2人以上であるかどうかを判断する。つまり、CPU50は、受信した参加予定者の識別情報に、当該ゲーム装置10(プレイヤ)の識別情報以外の識別情報も記載されているかどうかを判断するのである。
ステップS51で“YES”であれば、つまり次回の参加予定者が2人以上であれば、図8に示したステップS9に戻り、再度対戦ゲームを行う。一方、ステップS51で“NO”であれば、つまり次回の参加予定者が2人未満であれば、通信ゲームが成立しないため、ステップS53で、通信を終了して、全体処理を終了する。
図12に示すように、サーバ102のCPU102aは全体処理を開始すると、ステップS71で、ゲーム装置10からの接続リクエスト(参加の申し込みの通知)を受信したかどうかを判断する。ステップS71で“NO”であれば、つまりゲーム装置10からの接続リクエストを受信していなければ、そのまま図13に示すステップS89に進む。一方、ステップS71で“YES”であれば、つまりゲーム装置10からの接続リクエストを受信すれば、ステップS73で、当該ゲーム装置10の対戦中フラグ154hがオンかどうかを判断する。ここでは、CPU102aは、接続リクエストの送り主であるゲーム装置10についての対戦中フラグ154hをデータベース106から読み込み、その対戦中フラグ154hがオンであるかどうかを判断するのである。
ステップS73で“NO”であれば、つまり当該ゲーム装置10の対戦中フラグ154hがオフであれば、前回の通信ゲームを正常終了したと判断して、そのままステップS77に進む。一方、ステップS73で“YES”であれば、つまり当該ゲーム装置10の対戦中フラグ154hがオンであれば、前回の通信ゲームを正常終了していないと判断して、つまり前回の通信ゲームを途中で終了したと判断して、ステップS75で、当該ゲーム装置10の継続拒否回数を1加算して、ステップS77に進む。つまり、ステップS75では、CPU102aは、接続リクエストの送り主であるゲーム装置10についての継続拒否回数データ154gをデータベース106から読み込み、その継続拒否回数データ154gが示す継続拒否回数を1加算するのである。
ステップS77では、当該ゲーム装置10をリクエストリストに追加する。ここでは、CPU102aは、リクエストリストデータ154bが示すリクエストリストに、接続リクエストの送り主であるゲーム装置10の識別情報を追加する。続いて、ステップS79で、参加受付を終了するかどうかを判断する。たとえば、CPU102aは、参加受付の開始(前回の対戦相手の決定処理)から一定時間(たとえば、60秒)を経過したり、所定数の参加申し込みを受け付けたりすると、参加受付の終了であると判断する。ステップS79で“NO”であれば、つまり参加受付を終了しない場合には、ステップS71に戻る。一方、ステップS79で“YES”であれば、つまり参加受付を終了する場合には、ステップS81で、各ゲーム装置10(プレイヤ)についての悪評スコアを取得する。つまり、CPU102aは、リクエストリストに記載された識別情報に対応するゲーム装置10(プレイヤ)の各々についての悪評スコアデータ154fをデータベース106から読み込む。
続くステップS83では、悪評スコアが一定値以上のゲーム装置10に通信ゲーム不可通知を送信する。この第1実施例では、悪評スコアは最低値(0)から加算されるようにしてあり、一定値はこのゲームシステム100(サーバ102)の管理者等によって任意に決定される。このため、上述したように、悪評スコアが一定値以上であるゲーム装置10(プレイヤ)は通信ゲームへの参加すら拒否される。
図13に示すように、次のステップS85では、悪評スコアが所定範囲内のプレイヤを結びつける(マッチングする)。つまり、CPU102aは、悪評スコアが同じまたは同程度のプレイヤ(ゲーム装置10)同士が対戦相手となるように参加予定者を決定する。したがって、参加予定者としての2つのゲーム装置10または3つ以上のゲーム装置10で構成されるグループが生成される。たとえば、ステップS85では、2つ以上のグループが生成される場合があり、ステップS87以降の処理は、グループ毎に実行される。ただし、簡単のため、ステップS85では、1つのグループが生成されたと仮定して、ステップS87以降の処理について説明する。
ステップS87では、参加予定者の接続情報を各ゲーム装置10に送信する。つまり、CPU102aは、グループに含まれる各参加予定者(ゲーム装置10)に、他の参加予定者の接続情報(IPアドレス)を送信する。次のステップS89では、接続情報を送信したゲーム装置のうち、今回の通信ゲームへの参加者となるゲーム装置が確定したかどうかを判断する。ここでは、CPU102aは、グループに含まれる各参加予定者のゲーム装置10に、他の参加予定者のゲーム装置10の接続情報を送信してから一定時間(たとえば、60秒)を経過したか、または、それらすべての参加予定者のゲーム装置10から開始通知を受信したかどうかを判断する。
なお、図示は省略するが、一定時間(60秒)をカウントするためのタイマはサーバ102の内部に設けられており、CPU102aは、ステップS87の処理を実行したときにタイマをスタートし、ステップS89で、タイマのカウント値に応じて一定時間を経過したかどうかを判断する。タイマのカウント値が所定値に達した場合は、タイムアウトになったとして、参加者が確定したと判断される。カウント値が所定値に達していない場合でも、全ての参加予定者のゲーム装置10から開始通知を受信した場合には、参加者が確定したと判断される。また、タイマのカウント中に参加予定者のゲーム装置10のいずれかから開始通知を受信したときは、カウント値をリセットすることで、最後に参加予定者のゲーム装置10のいずれかから開始通知を受信してから一定時間を経過したかによって参加者の確定を判断するようにしてもよい。
ステップS89で“NO”であれば、つまり今回の通信ゲームへの参加者が確定していなければ、ステップS91へ進む。一方、ステップS89で“YES”であれば、つまり今回の通信ゲームへの参加者が確定すれば、ステップS101へ進む。
ステップS91では、参加予定者の接続情報を送信したゲーム装置10のいずれかから開始通知を受信したかどうかを判断する。ステップS91で“NO”であれば、つまりゲーム装置10から開始通知を受信していなければ、ステップS89に戻る。一方、ステップS91で“YES”であれば、つまりゲーム装置10から開始通知を受信すれば、ステップS93で、開始通知の送り主であるゲーム装置10についての対戦中フラグ154hをオンし、ステップS95で、開始通知の送り主であるゲーム装置10を現在参加プレイヤリストに記憶して、ステップS89へ戻る。つまり、ステップS95では、CPU102aは、図6に示したような現在参加プレイヤリストデータ154dが示す現在参加プレイヤリストに、開始通知の送り主であるゲーム装置10の識別情報を記載するとともに、その識別情報に対応して設けられる途中終了フラグをオフする。このようにして、開始通知の送り主であるゲーム装置10のプレイヤが、今回の通信ゲームの参加者として現在参加プレイヤリストに登録される。
そして、ステップS101で、参加者情報データを全参加者のゲーム装置10に送信して、図14に示すステップS103に進む。ただし、参加者情報データは、現在参加プレイヤリストに記載されたゲーム装置10の識別情報を抽出した情報(リスト)についてのデータである。
なお、上述したように、参加者情報データとして、参加者数(参加者の総数)のデータを送信するようにしてもよい。
図14に示すように、ステップS103では、通信ゲームに参加しているゲーム装置10のいずれかから終了通知を受信したかどうかを判断する。ステップS103で“NO”であれば、つまりゲーム装置10から終了通知を受信していなければ、そのままステップS111に進む。一方、ステップS103で“YES”であれば、つまりゲーム装置10から終了通知を受信すれば、ステップS105で、終了通知の送り主であるゲーム装置10についての対戦中フラグ154hをオフして、ステップS111に進む。つまり、ステップS105では、終了通知の送り主のゲーム装置10が通信ゲームを正常終了したことが記録される。
ステップS111では、ゲーム装置10から接続中メッセージを受信したかどうかを判断する。ステップS111で“NO”であれば、つまりゲーム装置10から接続中メッセージを受信していなければ、そのままステップS115に進む。一方、ステップS111で“YES”であれば、つまりゲーム装置10から接続中メッセージを受信すれば、ステップS113で、接続中メッセージの送り主のゲーム装置10の識別情報をRAM102bのバッファ領域(図示せず)に一時記憶して、ステップS115に進む。
ステップS115では、現在参加中の全ゲーム装置10から接続中メッセージを受信したかどうかを判断する。つまり、CPU102aは、現在参加プレイヤリストにおいて、途中終了フラグがオフである識別情報のゲーム装置10のすべてから接続中メッセージを受信したかどうかを判断する。ステップS115で“NO”であれば、つまり現在参加中のゲーム装置10のうち、接続中メッセージを受信していないゲーム装置10が有れば、そのまま図15に示すステップS119に進む。一方、ステップS115で“YES”であれば、つまり現在参加中の全ゲーム装置10から接続中メッセージを受信すれば、ステップS117で、全員接続データを現在参加中の各ゲーム装置に送信して、図15に示すステップS127に進む。
図15に示すステップS119では、一定時間を経過したかどうかを判断する。図示は省略するが、CPU102aは、ステップS111において、今回のセッションにおいて、接続メッセージを最初に受信したときに、内部タイマのカウントを開始し、そのカウント値が一定時間(たとえば、10秒)を経過したかどうかを判断する。
ただし、一定時間をカウントする方法はこれに限られず、接続メッセージを最初に受信したときに、内部タイマの値を保存しておき、現在のタイマ値との差を算出し、当該差が一定値に達しているかによって判断してもよい。
ステップS119で“NO”であれば、つまり一定時間を経過していなければ、図14に示したステップS111に戻る。一方、ステップS119で“YES”であれば、つまり一定時間を経過すれば、ステップS121で、現在参加プレイヤリストを更新する。つまり、ステップS121では、CPU102aは、接続中メッセージを一定時間内に受信しなかったゲーム装置10については、通信ゲームを途中終了したと判断して、現在参加プレイヤリストにおいて、当該ゲーム装置10の識別情報に対応する途中終了フラグをオンする。
続いて、ステップS123では、切断数データを現在参加中の各ゲーム装置に送信する。つまり、CPU50は、現在参加プレイヤリストにおいて、途中終了フラグがオンであるゲーム装置10の数に対応する切断数データを、途中終了フラグがオフであるゲーム装置10に送信する。さらに、ステップS125で、後述する悪評スコアの更新処理(図17参照)を実行して、ステップS127で、受信したすべての接続中メッセージを削除する。つまり、今回のセッションについての接続中データが削除される。ただし、ステップS125の処理は、通信ゲームを途中終了されたゲーム装置10すなわち通信ゲームに参加中のゲーム装置10が複数存在する場合には、各ゲーム装置10について実行される。
ステップS129では、一度通信ゲームが終了した後に、次回の通信ゲームの参加予定者が確定したかどうかを判断する。ここでは、CPU102aは、後述の継続許可通知または継続拒否通知を受信することなく一定時間(たとえば、30秒)を経過したか、または、最後に継続許可通知または継続拒否通知を受信してから一定時間(たとえば、30秒)を経過したか、あるいは、直前の通信ゲームを正常終了したすべてのゲーム装置10から継続許可通知または継続拒否通知を受信したかどうかを判断する。すべてのゲーム装置10から継続許可通知または継続拒否通知を受信したかどうかについては、CPU102aは、参加予定プレイヤリストや不参加予定プレイヤリストを参照することで判断することができる。
なお、参加予定プレイヤリストおよび不参加予定プレイヤリストに識別情報が記載されていないゲーム装置10からの継続許可通知や継続拒否通知については、CPU102aは、継続許可通知や継続拒否通知を受信していないと判断することができる。
なお、CPU102aは、最初にステップS129の判断を行ったときに、図示しない内部タイマをスタートし、そのカウント値が一定時間を経過したかどうかを判断する。また、継続許可通知や継続拒否通知を受信するたびに、内部タイマのカウント値をリセットすることで、最後に継続許可通知や継続拒否通知を受信してからの時間を計測することも可能である。
ステップS129で“NO”であれば、つまり参加予定者が確定していなければ、ステップS131へ進む。一方、ステップS129で“YES”であれば、つまり参加予定者が確定すれば、後述する図16のステップS139へ進む。ステップS131で、ゲーム装置10から継続許可通知を受信したかどうかを判断する。ステップS131で“NO”であれば、つまりゲーム装置10から継続許可通知を受信していなければ、ステップS132へ進む。一方、ステップS131で“YES”であれば、つまりゲーム装置10から継続許可通知を受信すれば、ステップS133で、参加予定プレイヤリストに当該ゲーム装置10(プレイヤ)を追加し、ステップS129へ戻る。つまり、CPU102aは、ステップS133で、参加予定プレイヤリストデータ154cが示す参加予定プレイヤリストに、継続許可通知の送り主であるゲーム装置10の識別情報を記載する。
また、ステップS132では、ゲーム装置10から継続拒否通知を受信したかどうかを判断する。ステップS132で“NO”であれば、つまりゲーム装置10から継続拒否通知を受信していなければ、そのままステップS129に戻る。一方、ステップS132で“YES”であれば、つまりゲーム装置10から継続拒否通知を受信すれば、不参加予定プレイヤリストに当該プレイヤを追加して、ステップS129に戻る。つまり、CPU102aは、ステップS134で、不参加予定プレイヤリストデータ154eが示す不参加予定プレイヤリストに、継続拒否通知の送り主であるゲーム装置10の識別情報を記載する。
図16に示すように、ステップS139では、直前の通信ゲームを正常終了したゲーム装置10の識別情報を取得する。ここでは、CPU102aは、現在参加プレイヤリストを参照して、途中終了フラグがオフであるゲーム装置10(プレイヤ)の識別情報を取得する。
次のステップS141では、参加予定者の識別情報を取得する。ここでは、CPU102aは、参加予定者リストを参照して、当該参加予定者リストに記載されているゲーム装置10(プレイヤ)の識別情報を取得する。続いて、ステップS143では、直前の通信ゲームを正常終了したゲーム装置10(プレイヤ)のうち、次回不参加のゲーム装置10(プレイヤ)が存在するかどうかを判断する。つまり、CPU102aは、ステップS139で取得した直前の通信ゲームを正常終了した参加者の識別情報の数が、ステップS141で取得した参加予定者の識別情報の数よりも多いかどうかどうかを判断する。
ステップS143で“NO”であれば、つまり直前の通信ゲームを正常終了したすべてのゲーム装置10(プレイヤ)が次回の通信ゲームに参加予定である場合には、そのままステップS151に進む。一方、ステップS143で“YES”であれば、つまり直前の通信ゲームを正常終了したプレイヤのうち、次回不参加のゲーム装置10(プレイヤ)が存在する場合には、ステップS145で、不参加人数が所定値以上であるかどうかを判断する。たとえば、所定値は「3」に設定される。ただし、所定値に代えて、前回正常終了したゲーム装置10(プレイヤ)の総数に対する不参加人数の割合が所定の割合(たとえば、30%)以上かどうかを判断するようにしてもよい。また、所定値や所定の割合は、前回正常終了したゲーム装置10(プレイヤ)の総数に応じて可変的に設定するようにしてもよい。
なお、この第1実施例では、不正行為や不快な行為に出会うと、参加者の多くが次回の通信ゲームを継続したくないと感じ、一斉に次回の通信ゲームの継続を拒否すると思われる。しかし、何らかの用事ができた場合のように、単に次回の通信ゲームの継続を拒否するような場合には、参加者の多くが一斉に次回の通信ゲームの継続を拒否することは考えにくく、少数の人が拒否するに過ぎないと考えられる。このような前提のもとで、不参加人数が所定値(所定の割合)以上である場合に、次の通信ゲームを継続してプレイするプレイヤが不正行為や不快な行為を行う者として判断して、悪評スコアを更新するようにしてあるが、これに限定される必要はない。不参加人数に拘わらず、不参加者が1人でも存在する場合には、次の通信ゲームを継続してプレイするプレイヤの悪評スコアを更新するようにしてよい。
ステップS145で“NO”であれば、つまり不参加人数が所定値未満であれば、悪評スコアを更新しないと判断して、そのままステップS149に進む。一方、ステップS145で“YES”であれば、つまり不参加人数が所定値以上であれば、ステップS147で、悪評スコアの更新処理を実行する。ただし、ステップS147では、直前の通信ゲームを正常終了し、次回参加予定のゲーム装置10(プレイヤ)についての悪評スコアが更新される。そして、ステップS149で、次回不参加のゲーム装置10(プレイヤ)の継続拒否回数を1加算し、ステップS151で、参加予定者の識別情報を参加予定者のゲーム装置10に送信して、ステップS71に戻る。
図17は、図15に示したステップS125および図16に示したステップS147の悪評スコアの更新処理のフロー図である。図17に示すように、CPU102aは、悪評スコアの更新処理を開始すると、ステップS161で、継続を拒否した対戦相手の継続拒否回数データ154gから加算スコア値を取得する。ただし、「継続を拒否した対戦相手」は、通信ゲームを途中終了したゲーム装置10(プレイヤ)または次回の通信ゲームへの参加を拒否したゲーム装置10(プレイヤ)である。このステップS161では、継続拒否回数が多い場合には、加算スコア値は比較的小さい値に設定される。これは、通信ゲームを頻繁に途中終了したり、次回の通信ゲームへの参加を拒否したりして、通信ゲームを途中終了または次回の通信ゲームへの参加を拒否されるプレイヤの悪評スコアを故意に高くするような行為を防止するためである。また、通信ゲームを様々なプレイヤとプレイしたいと考えるプレイヤは、継続拒否回数が自然と多くなるため、このような悪意の無い行為によって切断されるプレイヤの悪評スコアが高くなってしまうのを防止するためでもある。
たとえば、継続拒否回数毎や継続拒否回数の範囲毎に、悪評スコアの加算スコア値が予め決定されている。ただし、上述したように、継続拒否回数が大きくなるに従って加算スコア値は小さくされる。したがって、継続拒否回数またはその範囲に対応して、加算スコア値を予め設定したテーブルを用意しておき、これを参照して、加算スコア値を決定することができる。また、継続拒否回数に対する加算スコア値を数式(たとえば、反比例の式)によって決定してもよい。
ただし、ステップS161では、継続を拒否した対戦相手が複数存在する場合には、それぞれの対戦相手の継続拒否回数データ154gから加算スコア値を取得し、それらを合計した値を得る。
続くステップS163では、継続を拒否した対戦相手が複数存在するかどうかを判断する。つまり、同時または同時期に、継続を拒否した対戦相手が複数存在するかどうかを判断するのである。ステップS163で“NO”であれば、つまり継続を拒否した対戦相手が1人であれば、そのままステップS167に進む。一方、ステップS163で“YES”であれば、つまり継続を拒否した対戦相手が複数存在する場合には、ステップS165で、継続を拒否した対戦相手の数から加算スコア値を補正する。ここでは、継続を拒否した対戦相手の数が多いほど、加算スコア値が大きくされる。したがって、たとえば、継続を拒否した対戦相手の数やその範囲に応じて、加算スコア値を増大させる数値ないし倍率を記載したテーブルを用意しておき、このテーブルを参照して、加算スコア値を補正することができる。また、継続を拒否した対戦相手の数に対する補正後の加算スコア値を数式(たとえば、比例の式)によって決定してもよい。または、加算スコア値に、継続を拒否した対戦相手の数を乗算してもよい。
なお、この第1実施例では、同時または同時期に、一度に複数の対戦相手に継続を拒否された場合には、異なる時期に分散して複数の対戦相手に継続を拒否された場合よりも、不正行為や不快な行為が悪質であったと考えて、ステップS165において、さらに加算スコア値を大きくするようにしてある。ただし、複数人分についての加算スコア値は、ステップS161で算出されているため、ステップS165の処理は無くてもよい。かかる場合には、ステップS163も省略される。
そして、ステップS167で、補正後の加算スコア値を、当該プレイヤ(ゲーム装置10)の悪評スコアに加算して、全体処理にリターンする。
第1実施例によれば、通信ゲームを途中で終了されたり、継続して行う次回の通信ゲームを拒否されたりしたプレイヤについての悪評スコアを更新し、悪評スコアが一定値以上の場合には、通信ゲームに参加できないようにするため、ゲームプログラムを改造したり、ゲームプログラムを想定外使用したりするような不正行為や対戦相手に過度の嫌がらせを行うような不快な行為を間接的な方法によって検知し、そのような行為を抑制ないし防止することができる。
なお、第1実施例では、通信ゲームの内容についてはその詳細を説明していないが、たとえば、悪評スコアに応じて、通信ゲームにおけるプレイヤキャラクタの属性(体力値、レベル、技、性能など)を変更し、悪評スコアが高いプレイヤについては通信ゲームにおいて不利な状況になるように設定してもよい。これは、悪評スコアが段階的にまたは線形的に大きくなるについて、同じく段階的にまたは線形的にプレイヤキャラクタの属性を変化させるようにすればよい。プレイヤキャラクタの属性に限らず、ゲームフィールドやコースにおいて、悪評スコアの高いプレイヤを不利な状況に置くようにしてもよい。ただし、悪評スコアは、サーバ102で管理されるため、通信ゲームの開始時に、サーバ102から各ゲーム装置10に、悪評スコアに応じたプレイヤキャラクタの属性を変化させるためのデータを送信するようにする必要がある。または、各々のゲーム装置10に、悪評スコアを送信し、ゲーム装置10が悪評スコアに応じて、自己のプレイヤキャラクタの属性値を変化させるようにしてもよい。
また、第1実施例では、通信ゲームが開始されると、ゲーム装置間で操作データないし結果データを送受信するようにしたが、これに限定される必要はない。たとえば、サーバを介して操作データないし結果データを送受信するようにしてもよい。また、各ゲーム装置から操作データを受けたサーバがゲーム処理を実行し、その結果を結果データとして各ゲーム装置に送信するようにしてもよい。このように、ゲーム処理をサーバが実行する場合には、各プレイヤの悪評スコアを比較することにより、サーバ側で上述したように、プレイヤキャラクタの属性を変化させることができる。また、プレイヤキャラクタの属性を変化させることに代えて、サーバは、各プレイヤの悪評スコアを比較することにより、比較結果をゲーム処理に反映させることもできる。たとえば、格闘ゲームをプレイする場合には、プレイヤ同士の悪評スコアを比較し、悪評スコアの大きさに応じて、攻撃する側のプレイヤキャラクタの攻撃力の大小を変化させたり、防御する側のプレイヤキャラクタの生命力の減算値の大小を変化させたりすることができる。
さらに、第1実施例では、対戦中フラグをオン/オフすることにより、ゲーム装置が次に通信ゲームへの参加を申し込んだ際に、当該ゲーム装置に対応する対戦中フラグがオンである場合に、当該ゲーム装置についての継続拒否回数を1加算するようにしたが、通信ゲームを途中終了した際に、すぐに継続拒否回数を1加算するようにしてもよい。かかる場合には、対戦中フラグを設ける必要がなく、一定時間内に接続中メッセージを受信しなかったゲーム装置についての継続拒否回数を1加算すればよい。つまり、図12−図16に示したサーバ102のCPU102aの全体処理において、ステップS73、S75、S93、S103およびS105を削除するとともに、ステップS119で“YES”と判断された後であり、ステップS127までの間に、一定時間内に接続中メッセージを受信しなかったゲーム装置についての継続拒否回数を1加算する処理を実行するようにすればよい。
さらにまた、第1実施例では、携帯型のゲーム装置について説明したが、家庭用のゲーム装置やアーケードゲーム機のような据置型のゲーム装置を用いることもできる。
また、ゲーム装置は、ケーブルを用いてネットワークに接続されるようにしてもよい。
さらに、ゲーム装置の構成は第1実施例のものに限定される必要はない。たとえば、表示装置(LCD)およびカメラは、それぞれ1つでもよい。また、タッチパネルは無くてもよい。
<第2実施例>
第2実施例のゲームシステム100は、第1実施例において、通信ゲームへの参加の申し込み時に、対戦中フラグ154hの状態(オン/オフ)に応じて継続拒否回数を加算すること、および、通信ゲームの実行中に、各ゲーム装置10が接続中メッセージをサーバ102に送信することに代えて、ゲーム装置10が他のゲーム装置10から一定時間内に操作データ(または結果データ)を受信しない場合に、当該他のゲーム装置10が切断したことの通知をサーバ102に送信し、切断したことが通知されたゲーム装置10についての継続拒否回数をカウントするようにしたものである。以下、第2実施例のゲームシステム100について説明するが、第1実施例で説明した内容と重複する内容については説明を省略することにする。
図示は省略するが、第2実施例では、対戦中フラグ154hを使用しないため、対戦中フラグ154hは、サーバ102のRAM102bのデータ記憶領域154に記憶されない。したがって、対戦中フラグ154hは、データベース106に記憶(バックアップ)されることもない。また、接続中メッセージを受信したことに応じて、全員接続データや切断数データを各ゲーム装置10に送信する処理が不要であるため、接続確認プログラム152gはプログラム記憶領域152に記憶されることはない。また、第2実施例では、継続拒否回数カウントプログラム152iは、通信処理プログラム152bに従ってゲーム装置10からの切断通知を受信したときに、切断通知に含まれる識別情報に対応するゲーム装置10(プレイヤ)の継続拒否回数を1加算する。
一方、図示は省略するが、ゲーム装置10のメインメモリ50のプログラム記憶領域52には、接続確認プログラム202fに代えて、他のゲーム装置10から一定時間内に操作データ(または結果データ)を受信しない場合に、当該他のゲーム装置10が通信ゲームを途中終了したことと当該他のゲーム装置10の識別情報とを含む切断通知をサーバ102に送信するためのプログラムが記憶される。
したがって、第2実施例では、第1実施例に示したゲーム装置10のCPU50の全体処理の一部が変更されるとともに、同じく第1実施例に示したサーバ102のCPU102aの全体処理の一部も変更される。以下、異なる処理について具体的に説明する。
第2実施例では、ゲーム装置10のCPU50は、図18に示すように、一定時間内に操作データを受信しない対戦相手が存在する場合には、つまりステップS21で“YES”であれば、ステップS201で、操作データを受信していない対戦相手についての切断通知をサーバ102に送信する。ここでは、CPU50は、操作データを受信していない対戦相手のゲーム装置10についての識別情報を含む切断通知をサーバ102に送信する。ただし、一定時間内に操作データを受信していない対戦相手のゲーム装置10が複数存在する場合には、そのような複数のゲーム装置10の各々についての識別情報を含む切断通知がサーバ102に送信される。
このように、切断通知をサーバ102に送信するようにしてあるため、各ゲーム装置10から接続中メッセージをサーバ102に送信する必要がない。したがって、第2実施例では、図18に示すように、第1実施例に示したステップS25−S33の処理が省略される。
一方、サーバ102のCPU102aの全体処理では、図19および図20に示すように、対戦中フラグ154hに関するステップS73、S75、S93、S103およびS105の処理が削除される。また、ゲーム装置10からは、接続中メッセージに代えて、必要に応じて切断通知が送信されるため、図21および図22に示すように、ステップS111−S127の処理に代えて、ステップS211−S223の処理が実行される。
具体的には、CPU102aは、ステップS211で、切断通知を受信したかどうかを判断する。ステップS211で“NO”であれば、つまり切断通知を受信していなければ、図22に示すステップS129に進む。一方、ステップS211で“YES”であれば、つまり切断通知を受信すれば、ステップS213で、切断通知の送り主であるゲーム装置10の識別情報をRAM102bのバッファ領域(図示せず)に一時記憶する。次のステップS215では、通知されたプレイヤ(切断通知の送り主であるゲーム装置10が操作データを受信していない対戦相手)が通信ゲームに現在参加中であるかどうかを判断する。ここでは、CPU102aは、現在参加プレイヤリストデータ154dを参照して、切断通知に含まれる識別情報に対応して設定された途中終了フラグがオフであるかどうかを判断するのである。
ステップS215で“NO”であれば、つまり通知されたプレイヤが通信ゲームに参加中でなければ、そのままステップS221に進む。一方、ステップS215で“YES”であれば、つまり通知されたプレイヤが通信ゲームに参加中であれば、ステップS217で、切断通知されたプレイヤの継続拒否回数を1加算し、ステップS219で、現在参加プレイヤリストを更新して、ステップS221に進む。ただし、ステップS219では、今回の切断通知に記載された識別情報に対応して設定された途中終了フラグがオンされる。このとき、切断通知に2つ以上の識別情報が記載されている場合には、その数に応じて、ステップS215−S219の処理が並列的に実行される。
なお、このように、ステップS215の判断処理を設けるのは、この第2実施例では、一定時間内に操作データを受信しない場合に、各ゲーム装置10が切断通知を送信するので、通信ゲームを途中終了したゲーム装置10の継続拒否回数が一度に複数加算されないようにするためである。たとえば、4人で対戦(通信ゲーム)を行っているような状況で、或る1人のプレイヤが通信ゲームを途中終了した場合には、他の3人はサーバへ切断通知を送信することになる。このような場合に、すべての切断通知に応じて継続拒否回数を加算すると、途中終了を行ったプレイヤ(ゲーム装置10)の継続拒否回数は「3」だけ加算されてしまう。しかし、途中終了は1回しか行われていないため、本来であれば、途中終了を行ったゲーム装置10の継続拒否回数は「1」だけ加算されるべきである。つまり、ステップS215は、1回の途中終了に対して、途中終了を行ったゲーム装置10の継続拒否回数を「1」だけ加算するための処理である。すなわち、切断通知をされたプレイヤの継続拒否回数を加算した後は、当該プレイヤの途中終了フラグがオンになっているので、他のプレイヤから同様の通知を受け取ったとしても、ステップS215で“NO”となり、重複して当該通知されたプレイヤの継続拒否回数が重複加算されることはない。
ステップS221では、図17に示した悪評スコアの更新処理を実行する。ただし、ステップS221では、ステップS213において識別情報を一時記憶した切断通知の送り主であるゲーム装置10のプレイヤについての悪評スコアが更新される。次のステップS223では、受信した切断通知を削除し、図22に示すステップS129に進む。ただし、ステップS223では、切断通知の送り主であるゲーム装置10の識別情報も削除(消去)される。
第2実施例においても、第1実施例と同様に、ゲームプログラムの想定外使用による不正行為や過剰な嫌がらせなどの不快な行為を抑制したり防止したりすることができる。また、接続中データを用いることなく、通信ゲームを行う際に不可欠な操作データ(または結果データ)の受信の有無によって切断の有無を判断することができるため、データの送受信量を少なくすることができ、ネットワークへのトラフィックを抑えることができる。
なお、第2実施例では、第1実施例に示した対戦中フラグを使用しない場合について説明したが、第1実施例と同様に、対戦中フラグを用いて、継続拒否回数をカウントするようにしてもよい。かかる場合には、第1実施例に示したステップS73,S75、S93、S103およびS105の処理が実行され、図21に示したステップS215およびS217の処理が削除される。
<第3実施例>
第3実施例のゲームシステム100は、通信ゲームへの参加を希望するゲーム装置10からの参加の申し込み通知が送信されてから通信ゲームの参加予定者を決定(マッチング)するまでの処理をサーバ102で行い、自己の継続拒否回数および自己の悪評スコアを各ゲーム装置10で管理するようにした以外は、第1実施例と同じである。以下、第3実施例のゲームシステム100について説明するが、第1実施例および第2実施例と同様の内容については簡単に説明することにする。
図23は、第3実施例のゲーム装置10のメインメモリ52のメモリマップ300の例を示す。図23に示すように、メインメモリ52は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、メイン処理プログラム302a、通信処理プログラム302b、画像生成プログラム302c、画像表示プログラム302d、接続処理プログラム302e、接続確認プログラム302f、悪評スコア算出プログラム302g、次ゲーム拒否判断プログラム302h、接続拒否回数カウントプログラム302i、通信強制終了プログラム302jおよびバックアッププログラム302kなどが記憶される。
これらのプログラム302a−302kのうち、悪評スコア算出プログラム302gが新たに加えられ、次ゲーム拒否判断通知プログラム202hに代えて継続拒否回数カウントプログラム302iが記憶された以外は、第1実施例で説明したゲーム装置10のメインメモリ52に記憶されるプログラムと同じであるため、重複した説明は省略する。第3実施例では、ゲーム装置10のメインメモリ52には、悪評スコア算出プログラム302gがさらに記憶されているが、この悪評スコア算出プログラム302gは、第1実施例では、サーバ102のRAM102bに記憶されていたものと同じであるため、重複した説明は省略する。また、継続拒否回数カウントプログラム302iは、通信ゲームへの参加の申し込み通知を送信する際に対戦中フラグ304iがオンである場合や次回の通信ゲームへの参加を拒否する場合に、自己の継続拒否回数を1加算するためのプログラムである。
図24は、図23に示したデータ記憶領域304の具体的な内容を示す図解図である。図24に示すように、データ記憶領域304には、操作データバッファ304aおよび送受信データバッファ304bが設けられる。また、データ記憶領域304には、画像データ304c、参加予定プレイヤリストデータ304d、現在参加プレイヤリストデータ304e、悪評スコアデータ304f、自己の継続拒否回数データ304gおよび相手の継続拒否回数データ304hが記憶される。さらに、データ記憶領域304には、対戦中フラグ304iが設けられる。
第3実施例では、上述したように、自己の継続拒否回数および自己の悪評スコアを各ゲーム装置10で管理するため、参加者情報データ204dに代えて、参加予定プレイヤリストデータ340dおよび現在参加プレイヤリストデータ304eがデータ記憶領域304に記憶される。また、悪評スコアデータ304f、自己の継続拒否回数データ304g、相手の継続拒否回数データ304hがさらに記憶される。ここで、相手の継続拒否回数データ304hは、他の参加者(対戦相手)についての継続拒否回数のデータである。したがって、対戦相手が複数人である場合には、相手の継続拒否回数データ304hには、それぞれの対戦相手についての継続拒否回数が記載される。
これらは、第1実施例では、サーバ102のRAM102bのデータ記憶領域154に記憶されていたデータである。ただし、第3実施例では、自己の継続拒否回数データ304gおよび相手の継続拒否回数データ304hを分けて記載してあるが、これらは第1実施例の継続拒否回数データ154gに相当する。さらに、第3実施例では、ゲーム装置10のデータ記憶領域304に、対戦中フラグ304iが設けられるが、これは自己のゲーム装置10のみについてのフラグである。これらは、第1実施例で説明した内容と同様であるため、重複した説明は省略する。
第3実施例では、各ゲーム装置10のCPU50は、図25−図29に示すような全体処理を実行する。なお、図示および詳細な説明は省略するが、第3実施例では、サーバ102は、第1実施例に示したステップS71−S87の処理を繰り返し実行することになる。また、第1実施例で説明した処理と同じ処理については簡単に説明することにする。
図25に示すように、CPU50は、全体処理を開始すると、ステップS301で、対戦中フラグ304iがオンであるかどうかを判断する。なお、図示は省略するが、CPU50は、全体処理を開始したときに、メモリカード26、28または保存用データメモリ56から、悪評スコアデータ304f、自己の継続拒否回数データ304gおよび対戦中フラグ304iなどのバックアップデータをデータ記憶領域304に読み込んでいる。ステップS301で“NO”であれば、つまり対戦中フラグ304iがオフであれば、そのままステップS305に進む。一方、ステップS301で“YES”であれば、つまり対戦中フラグ304iがオンであれば、ステップS303で、自己の継続拒否回数を1加算して、ステップS305に進む。
ステップS305では、自己の悪評スコアと接続リクエストとをサーバ102に送信する。次のステップS307では、サーバ102から通信ゲーム不可通知を受信したかどうかを判断する。ステップS307で“YES”であれば、つまり通信ゲーム不可通知を受信すれば、図29に示すように、ステップS365で、通信を終了して、全体処理を終了する。一方、ステップS307で“NO”であれば、つまり通信ゲーム不可通知を受信していなければ、ステップS309で、サーバ102から参加予定者の接続情報を受信したかどうかを判断する。
なお、第3実施例では、悪評スコアを自身のゲーム装置10で管理するようにしてあるため、サーバ102が通信ゲームの実行の許可または不可を判断せずに、ゲーム装置10自身で判断するようにしてもよい。かかる場合には、ステップS307の処理を削除して、ステップS303の処理とステップS305の処理との間において、悪評スコアが一定値以上であるかどうかが判断される。悪評スコアが一定値以上であれば、そのままステップS365に進む。一方、悪評スコアが一定値未満あれば、ステップS305の処理が実行される。
図25に戻って、ステップS309で“NO”であれば、つまり参加予定者の接続情報を受信していなければ、再びステップS309を繰り返す。一方、ステップS309で“YES”であれば、つまり参加予定者の接続情報を受信すれば、ステップS311で、参加予定者と接続する。つまり、参加予定者のゲーム装置10との間で接続状態が確立される。なお、図示は省略するが、第3実施例では、サーバ102から参加予定者の接続情報を受信すると、ゲーム装置10はサーバ102との接続を解除する。
続くステップS313では、参加者が確定したかどうかを判断する。ここでは、CPU50は、サーバ102から受信した接続情報に従ってすべての参加予定者と接続状態を確立するか、参加予定者との接続処理を開始してから一定時間を経過したかどうかを判断する。ステップS313で“NO”であれば、つまり参加者が確定していなければ、そのままステップS311に戻る。一方、ステップS313で“YES”であれば、つまり参加者が確定すれば、図26に示すステップS315で、現在参加プレイヤリストデータ304eを作成および記憶し、ステップS317で、自己の継続拒否回数データ304gを対戦相手に送信する。
なお、現在参加プレイヤリストデータ304eが示す現在参加プレイヤリストは、図6に示した第1実施例の現在参加プレイヤリストと同じで良いが、第3実施例では、自己のゲーム装置10についての内容(識別情報および途中終了フラグ)は現在参加プレイヤリストに記載(登録)しなくてもよい。このことは、参加予定プレイヤリスト(図示せず)についても同様である。
続くステップS319では、相手の継続拒否回数データ304hを受信する。次のステップS321では、対戦中フラグ304iをオンし、ステップS323で、バックアップ処理を実行する。ここでは、データ記憶領域304に記憶されているデータやフラグのうち、上述したバックアップデータがメモリカード26、28や保存用データメモリ56に記憶される。
なお、簡単のため、第3実施例では、ステップS319において、対戦相手(他の参加者)の継続拒否回数データ304hをすべて受信できることを前提としてあるが、対戦相手の継続拒否回数データ304hをすべて受信できたか否かを判断するようにしてもよい。また、かかる場合には、一定時間を経過しても受信できない場合には、継続拒否回数データ304hを受信しない対戦相手を現在参加プレイヤリストから削除(消去)し、当該対戦相手を参加者として含めないようにしてもよい。
図27に示すように、次のステップS325では、対戦が終わったかどうかを判断する。ステップS325で“NO”であれば、つまり対戦が終わっていなければ、ステップS327で、自己の操作データを対戦相手のゲーム装置10に送信する。そして、ステップS329で、すべての対戦相手から操作データを受信したかどうかを判断する。ステップS329で“YES”であれば、つまりすべての対戦相手から操作データを受信した場合には、そのままステップS339に進む。一方、ステップS329で“NO”であれば、つまり操作データを受信していない対戦相手が存在する場合には、ステップS331で、一定時間を経過したかどうかを判断する。
なお、ステップS331では、CPU50は、RTC68によって計時される時間を参照して、ステップS327の処理を実行してから一定時間(たとえば、10秒)を経過したかどうかを判断する。
また、第3実施例では、ゲーム装置10間で操作データを送受信するようにしてあるが、プレイヤの操作によって各ゲーム装置10のCPU50がゲーム処理を行い、その結果データを送受信するようにしてもよい。
ステップS331で“NO”であれば、つまり一定時間を経過していなければ、そのままステップS329に戻る。一方、ステップS331で“YES”であれば、つまり一定時間を経過すれば、ステップS333で、図17に示したフロー図に従って自己の悪評スコアの更新処理を実行する。
次のステップS335では、現在参加プレイヤリストを更新する。つまり、CPU50は、現在参加プレイヤリストデータ304eが示す現在参加プレイヤリストにおいて、一定時間内に操作データを受信しなかった対戦相手(プレイヤ)の識別情報に対応して設定されている途中終了フラグをオンする。
続いて、ステップS337では、全対戦相手の操作データを受信していないかどうかを判断する。ここでは、CPU50は、現在参加プレイヤリストを参照し、すべての対戦相手の識別情報に対して設定されている途中終了フラグがオンであるかどうかを判断する。つまり、通信ゲームの参加者が自己のゲーム装置10のみであるかどうかを判断するのである。ステップS337で“YES”であれば、つまり全対戦相手の操作データを受信していない場合には、通信ゲームを終了するべく、図29に示すステップS365に進む。一方、ステップS337で“NO”であれば、つまり少なくとも1人の対戦相手の操作データを受信している場合には、ステップS339で、自己および対戦相手の操作データを通信ゲームに反映させて、ステップS325に戻る。
また、ステップS325で“YES”であれば、つまり対戦が終われば、ステップS341で、対戦中フラグ304iをオフする。つまり、通信ゲームを正常終了したことが記録される。次のステップS343では、バックアップ処理を実行する。このバックアップ処理は、上述したステップS323のバックアップ処理と同じである。次にステップS345で、続けて対戦するかどうかをプレイヤに問い合わせる。ここでは、第1実施例で説明したように、選択画面がゲーム装置10の第1LCD16または第2LCD18或いはそれらの両方に表示される。
図28に示すように、次のステップS347では、続けて対戦するかどうかを判断する。ステップS347で“NO”であれば、つまり続けて対戦しない場合には、ステップS361で、自己の継続拒否回数を1加算して、ステップS365に進む。一方、ステップS347で“YES”であれば、つまり続けて対戦する場合には、ステップS349で、継続許可通知を対戦相手に送信する。ただし、ここでは、直前の通信ゲームを正常終了した対戦相手のゲーム装置10のみに、継続許可通知が送信される。
次のステップS351では、直前の通信ゲームを正常終了した対戦相手からの継続許可通知を受信したかどうかを判断する。ステップS351で“NO”であれば、つまり継続許可通知を受信していない場合には、そのままステップS357に進む。一方、ステップS351で“YES”であれば、つまり継続許可通知を受信した場合には、ステップS353で、参加予定者リストを更新する。ここでは、継続許可通知の送り主であるゲーム装置10の識別情報が参加予定者リストに追加される。
そして、次のステップS355では、直前の通信ゲームを正常終了した対戦相手の全員から継続許可通知を受信したかどうかを判断する。具体的には、CPU50は、現在参加プレイヤリストにおいて、途中終了フラグがオフであるすべてのゲーム装置10の識別情報が、参加予定者リストに記載されているかどうかを判断する。ステップS355で“YES”であれば、つまり直前の通信ゲームを正常終了した対戦相手の全員から継続許可通知を受信した場合には、そのまま図29に示すステップS363に進む。一方、ステップS355で“NO”であれば、つまり直前の通信ゲームを正常終了した対戦相手のうち継続許可通知を受信していない対戦相手が存在する場合には、ステップS357に進む。
ステップS357では、一定時間を経過したかどうかを判断する。ここでは、CPU50は、RTC68によって計時される時間を参照して、ステップS349の処理を実行してから一定時間(たとえば、60秒)を経過したかどうかを判断する。ステップS357で“NO”であれば、つまり一定時間を経過していなければ、そのままステップS351に戻る。一方、ステップS357で“YES”であれば、つまり一定時間を経過すれば、ステップS359で、図17に示したフロー図に従って自己の悪評スコアの更新処理を実行して、ステップS363に進む。
図29に示すように、ステップS363では、次回の参加予定者が2人以上であるかどうかを判断する。ステップS363で“YES”であれば、つまり次回の参加予定者が2人以上であれば、図25に示したステップS311に戻る。一方、ステップS363で“NO”であれば、つまり次回の参加予定者が1人(自身のみ)であれば、ステップS365で、通信を終了してから、全体処理を終了する。
第3実施例によれば、第1実施例と同様に、ゲームプログラムの想定外使用による不正行為や過剰な嫌がらせなどの不快な行為を抑制したり防止したりすることができる。
また、第3実施例によれば、通信ゲームへの参加者を決定した後では、ゲーム装置間で処理を実行するので、つまり、サーバは通信ゲーム中に各ゲーム装置の状態を管理したり、ゲーム処理を実行したりする必要がないので、サーバへの負担を軽減することができる。
なお、第3実施例では、通信ゲームの対戦相手をサーバがマッチング(決定)するようにしたが、他の実施例としては、サーバを用いずに、ゲーム装置間で対戦相手を決定するようにしてもよい。かかる場合には、たとえば、通信ゲームの対戦相手を募集したゲーム装置が親機として機能し、そのような親機に通信ゲームの参加を申し込んだゲーム装置が子機として機能し、対戦相手が決定された後に、通信ゲームが実行される。したがって、サーバを用いる必要がない。
また、第3実施例では、直前の通信ゲームを正常終了したゲーム装置のうち、次回の通信ゲームに不参加のゲーム装置が存在する場合には、その数に拘わらず、自己の悪評スコアを更新するようにしたが、第1実施例および第2実施例と同様に、一定数以上の不参加者が存在する場合にのみ、自己の悪評スコアを更新するようにしてもよい。
さらに、第3実施例では、同じ対戦相手と再度通信ゲームをプレイすることが選択されず、通信ゲームを止めることや他のプレイヤと対戦することが選択された場合には、つまり次回の通信ゲームの参加を拒否する場合には、自己の継続拒否回数を1加算して、通信を終了するようにした。ただし、次回の通信ゲームへの参加を拒否する場合には、自己の継続拒否回数を1加算する前後において、継続拒否通知を他の参加者のゲーム装置10に送信するようにしてもよい。かかる場合には、正常終了した相手から継続拒否通知を受信した場合には、参加予定者リストには当該相手を追加しないようにすればよいと考えられる。具体的には、継続拒否通知を相手に送信する処理をステップS347で“NO”と判断された後に追加し、さらに、継続拒否通知を受信したかどうかを判断する処理をステップS351で“NO”と判断された後に追加し、継続拒否通知を受信した場合には、参加予定者リストに追加しない処理を実行して、ステップS355に進む。したがって、ステップS355では、CPU50は、全員から継続許可通知または継続拒否通知を受け取ったかどうかを判断する。ただし、継続拒否通知を受信していないと判断された場合には、ステップS357に進むようにすればよい。
さらにまた、上述の第1実施例および第2実施例では、サーバが悪評スコアを管理するようにしたが、第3実施例では、各ゲーム装置10が悪評スコアを管理するので、各ゲーム装置は、ゲーム開始時に、悪評スコアに従ってプレイヤキャラクタの属性を変化させるようにしてもよい。かかる場合には、たとえば、CPU50は、ステップS323とステップS325との間において、悪評スコアに従うプレイヤキャラクタの属性を変化させる処理を実行すればよい。
なお、上述の実施例では、ゲーム装置(プレイヤ)の悪評スコアが一定値以上である場合に、当該プレイヤの通信ゲームへの参加を拒否するようにしてあるが、一度でも通信ゲームを途中終了されたり、次回の通信ゲームへの参加を断られたりした場合に、当該ゲーム装置の通信ゲームへの参加を拒否するようにしてもよい。
また、上述の実施例では、悪評スコアを更新する場合には、加算スコア値を求めて、それを加算するようにしたが、単に通信ゲームの継続を拒否された回数をカウントするようにしてもよい。かかる場合には、ゲーム装置(プレイヤ)の悪評スコアが一定値以上である場合に、つまり通信ゲームの継続を拒否された回数が一定回数以上である場合に、当該ゲーム装置の通信ゲームへの参加を拒否するようにしてもよい。
さらに、上述の実施例では、通信ゲームを途中終了された場合と、次回の通信ゲームへの参加を断られた場合との両方において、悪評スコアを更新するようにしたが、いずれか一方の場合にのみ、悪評スコアを更新するようにしてもよい。
さらにまた、上述の実施例では、通信ゲームを途中終了された場合と、次回の通信ゲームへの参加を断られた場合とで、同じ悪評スコアの更新処理を実行するようにしたが、場合に応じて、加算スコア値を変化させたり、加算スコア値の補正方法を変化させたりしてもよい。たとえば、通信ゲームを途中終了された場合には、通信環境の悪化により、通信が途絶えることもあるため、次回の通信ゲームへの参加を断られる場合よりも、加算スコア値を小さい値に設定してもよい。また、通信ゲームを途中終了することは、次回の通信ゲームへの参加を断る場合に比べて、悪質であると考える場合には、通信ゲームを途中終了する場合の加算スコア値を大きい値に設定してもよい。いずれを選択するのかは、開発者等が任意に設定する事項である。
また、上述の実施例では、サーバで通信ゲームの対戦相手となる参加予定者をマッチングする際に、悪評スコアが同じまたは同程度のプレイヤ(ゲーム装置)を決定するようにしたが、プレイヤ自身が対戦相手となる参加予定者を決定するようにしてもよい。かかる場合には、各プレイヤの悪評スコアを表示するようにすれば、悪評スコアを対戦相手となる参加予定者を決定する際の指標にすることができる。
さらに、上述の実施例では、悪評スコアが一定値以上であるプレイヤ(ゲーム装置)については、通信ゲームへの参加を拒否し、悪評スコアが一定値未満であるプレイヤについては、その値が同じまたは同程度のプレイヤ同士を通信ゲームへの参加予定者として決定するようにしてあるが、いずれかの方法のみを採用するようにしてもよい。また、悪評スコアが一定値未満である場合には、特に制限無く、参加の申し込み通知のあったプレイヤ同士を参加予定者として決定し、一定値以上である場合には、悪評スコアの値が同じまたは同程度のプレイヤ同士で通信ゲームを行うようにしてもよい。
さらにまた、上述の実施例では、直前の通信ゲームを正常終了した参加者と、次回の通信ゲームへの参加予定者との差分を求め、その差分に基づいて悪評スコアを更新するようにしてあるが、単に次回の通信ゲームへの参加を拒否した者に基づいて悪評スコアを更新するようにしてもよい。
また、上述の実施例では、悪評スコアの初期値(最低値)を「0」として、悪評スコアが更新されるたびに、悪評スコアを加算するようにしたが、これに限定される必要はない。たとえば、悪評スコアの初期値(最高値)を設定しておき、悪評スコアが更新される度に、悪評スコアを減算するようにしてもよい。かかる場合には、悪評スコアが一定値以下になると、通信ゲームへの参加が拒否される。
さらに、上述の実施例では、悪評スコアの加算のみを行うようにしたが、通信ゲームを正常終了したゲーム装置(プレイヤ)については、悪評スコアを減算するようにしてもよい。かかる場合には、通信ゲームを途中終了されかった場合に、悪評スコアが更新され、その値が減算される。
さらにまた、上述の実施例では、次回の通信ゲームへの参加を拒否されたゲーム装置(プレイヤ)の全員について悪評スコアを更新するようにしたが、これに限定されるべきではない。たとえば、直前に通信ゲームを行った対戦相手のうち、一部の対戦相手についてのみ、悪評スコアを更新するようにしてもよい。かかる場合には、次回の通信ゲームを行うか否かの選択画面に、どのプレイヤ(ゲーム装置)とプレイしたくないかを選択する項目をさらに設けるようして、その選択結果もサーバに送信するようにすればよい。また、ゲームプログラムの想定外使用による不正行為や過剰な嫌がらせなどの不快な行為を受けておらず、単に通信ゲームを止める場合もある。したがって、次回の通信ゲームに参加するか否かの選択画面において、そのような不正行為や不快な行為があったために通信ゲームを止めることを選択するボタン画像(第1ボタン画像)と、単に通信ゲームを止めることを選択するボタン画像(第2ボタン画像)とを設けておき、第1ボタン画像がオンされた場合にのみ、悪評スコアを更新するようにしてもよい。これは、上述した一部の対戦相手についてのみ悪評スコアを更新することと共に採用されてもよい。
また、上述の実施例では、ステップS89においてサーバは、直前のステップS87で参加予定者の接続情報を参加者のゲーム装置に送信してからの時間をカウントし、カウント値によって参加者の確定を判断しているが、ゲーム装置側で、ステップS5で接続情報を受信してからの時間を計測し、一定時間内に開始通知をサーバに送信することができなかった場合にその旨をサーバに通知し、サーバがその旨の通知を受信することによって、当該ゲーム装置は参加者とならないと判断することもできる。
10 …ゲーム装置
12,14 …ハウジング
16,18 …LCD
20 …操作ボタン
22 …タッチパネル
24 …タッチペン
26,28 …メモリカード
32,34 …カメラ
50 …CPU
52 …メインメモリ
54 …メモリ制御回路
56 …保存用データメモリ
58 …プリセットデータ用メモリ
60,62 …メモリカードI/F
64 …無線通信モジュール
66 …ローカル通信モジュール
68 …RTC
70 …電源回路
72 …I/F回路
74,76 …GPU
78,80 …VRAM
82 …LCDコントローラ
84 …マイク

Claims (16)

  1. 通信ゲームを行うゲームシステムであって、
    1のゲーム装置が他のゲーム装置によって前記通信ゲームの継続を拒否されたか否かを判断する拒否判断手段、および
    前記拒否判断手段の判断結果に応じて、前記1のゲーム装置の前記通信ゲームについての制限情報を更新させる制限情報更新手段を備える、ゲームシステム。
  2. 各前記ゲーム装置の前記制限情報に基づいて前記通信ゲームの対象となるゲーム装置を選択する通信対象選択手段をさらに備える、請求項1記載のゲームシステム。
  3. 前記通信対象選択手段は、前記制限情報が少なくとも近似する複数の前記ゲーム装置を前記通信ゲームの対象として選択する、請求項2記載のゲームシステム。
  4. 少なくとも前記通信ゲームを実行する通信ゲーム処理手段をさらに備え、
    前記通信ゲーム処理手段は、前記通信ゲームに参加中の各前記ゲーム装置の前記制限情報を、当該通信ゲームの処理に反映させる、請求項1ないし3のいずれかに記載のゲームシステム。
  5. 前記通信ゲームに参加する各前記ゲーム装置の前記制限情報を比較する比較手段をさらに備え、
    前記通信ゲーム処理手段は、さらに、前記比較手段の比較結果を、前記通信ゲームの処理に反映させる、請求項4記載のゲームシステム。
  6. 前記通信ゲーム処理手段は、前記制限情報が所定の条件を満たすとき、前記通信ゲームに対して影響を及ぼす、請求項4記載のゲームシステム。
  7. 前記通信ゲーム処理手段は、前記制限情報に基づく値が所定以上であるとき、前記通信ゲームへの参加自体を拒否する、請求項6記載のゲームシステム。
  8. 前記通信ゲームの継続を拒否されたことは当該通信ゲーム中に切断されたことを含む、請求項1ないし7のいずれかに記載のゲームシステム。
  9. 前記拒否判断手段は、前記他のゲーム装置からの通信データを前記1のゲーム装置で一定時間受信しなかったとき、当該1のゲーム装置が当該他のゲーム装置によって前記通信ゲームの継続を拒否されたことを判断する、請求項8記載のゲームシステム。
  10. 前記通信ゲームの継続を拒否されたことは次回の前記通信ゲームへの参加を拒否されたことを含む、請求項1ないし9のいずれかに記載のゲームシステム。
  11. 前記他のゲーム装置が前記通信ゲームの継続を拒否した回数を示す拒否情報を更新する拒否情報更新手段をさらに備え、
    前記制限情報更新手段は、さらに、前記拒否情報更新手段によって更新された拒否情報に基づいて、前記1のゲーム装置の前記通信ゲームについての前記制限情報を更新させる、請求項1ないし10のいずれかに記載のゲームシステム。
  12. 前記制限情報更新手段は、前記拒否情報更新手段によって更新された拒否情報が示す回数が大きい程、前記制限情報を変更する度合いを小さくする、請求項11記載のゲームシステム。
  13. 前記通信ゲームの継続を拒否した前記他のゲーム装置の数を検出する拒否数検出手段をさらに備え、
    前記制限情報更新手段は、さらに、前記拒否数検出手段の検出結果に基づいて、前記1のゲーム装置の前記通信ゲームについての前記制限情報を更新させる、請求項1ないし12のいずれかに記載のゲームシステム。
  14. 前記通信ゲームの開始時に当該通信ゲームに参加する前記ゲーム装置を参加者として登録する参加者登録手段、および
    前記通信ゲームの終了時に前記参加者から再度前記通信ゲームへ参加するか否かの指示を受け付ける再度参加受付手段をさらに備え、
    前記拒否判断手段は、前記再度参加受付手段によって受け付けられた指示に基づいて、前記通信ゲームの継続が拒否された前記ゲーム装置が存在するか否かを判断する、請求項1記載のゲームシステム。
  15. 前回の前記通信ゲームの参加者数と次回の前記通信ゲームの参加者数との差分を取得する差分取得手段、および
    前記差分取得手段によって取得された差分が所定の条件を満たしているか否かを判断する差分判断手段をさらに備え、
    前記拒否判断手段は、前記差分判断手段によって前記差分が前記所定の条件を満たしていないことが判断されたとき、前記通信ゲームの継続が拒否された前記ゲーム装置を判断する、請求項14記載のゲームシステム。
  16. 通信ゲームを行うゲームシステムのゲームプログラムであって、
    コンピュータを、
    1のゲーム装置が他のゲーム装置によって前記通信ゲームの継続を拒否されたか否かを判断する拒否判断手段、および
    前記拒否判断手段の判断結果に応じて、前記1のゲーム装置の前記通信ゲームについての制限情報を更新させる制限情報更新手段として機能させる、ゲームプログラム。
JP2009253116A 2009-11-04 2009-11-04 ゲームシステムおよびゲームプログラム Active JP5478198B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009253116A JP5478198B2 (ja) 2009-11-04 2009-11-04 ゲームシステムおよびゲームプログラム
US12/912,121 US9174127B2 (en) 2009-11-04 2010-10-26 Video game with matchmaking based upon denial of communications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009253116A JP5478198B2 (ja) 2009-11-04 2009-11-04 ゲームシステムおよびゲームプログラム

Publications (2)

Publication Number Publication Date
JP2011097993A true JP2011097993A (ja) 2011-05-19
JP5478198B2 JP5478198B2 (ja) 2014-04-23

Family

ID=43926011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009253116A Active JP5478198B2 (ja) 2009-11-04 2009-11-04 ゲームシステムおよびゲームプログラム

Country Status (2)

Country Link
US (1) US9174127B2 (ja)
JP (1) JP5478198B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014068870A (ja) * 2012-09-28 2014-04-21 Konami Digital Entertainment Co Ltd ゲームシステム、ゲームシステムの制御方法、ゲーム制御装置、ゲーム制御装置の制御方法、及びプログラム
JP2014535097A (ja) * 2011-10-13 2014-12-25 ネオプル インコーポレイテッド 異常アカウント検出装置及び方法
US10009186B2 (en) 2011-10-19 2018-06-26 Nintendo Co., Ltd. Server device, communication system, information-processing device, communication method, and storage medium
WO2019116987A1 (ja) * 2017-12-13 2019-06-20 株式会社セガゲームス 情報処理装置、ゲーム装置、及びゲームシステム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5572142B2 (ja) * 2011-09-30 2014-08-13 株式会社スクウェア・エニックス ネットワークゲームシステム、サーバ装置及びゲーム装置
GB2501457A (en) * 2012-02-10 2013-10-30 Rational Intellectual Holdings Ltd Assigning player positions in an online table game
WO2016073589A1 (en) * 2014-11-05 2016-05-12 Mobi-Holdings Inc. Method and apparatus for networked social betting
JP6884600B2 (ja) * 2017-03-02 2021-06-09 任天堂株式会社 無線通信システム、通信方法、情報処理装置、および、情報処理プログラム
US10265626B2 (en) * 2017-03-08 2019-04-23 Sony Interactive Entertainment LLC System and method for making free-to-play and activity suggestions
US11052311B2 (en) 2018-09-07 2021-07-06 Valve Corporation Machine-learned trust scoring based on sensor data
US10905962B2 (en) * 2018-09-07 2021-02-02 Valve Corporation Machine-learned trust scoring for player matchmaking

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001187273A (ja) * 1999-01-28 2001-07-10 Sega Corp ネットワークゲームシステム、これに使用されるゲーム装置端末及び記憶媒体
JP2001321570A (ja) * 2000-05-15 2001-11-20 Casio Comput Co Ltd 通信対戦システム、サーバ装置、通信対戦プログラムが記憶された記憶媒体
JP2006212288A (ja) * 2005-02-04 2006-08-17 Konami Digital Entertainment:Kk 不正行為防止方法、ゲーム装置及び不正行為防止プログラム
JP2006285806A (ja) * 2005-04-04 2006-10-19 Hewlett-Packard Development Co Lp データ処理システム、データ伝送装置およびこれらの方法
JP2006296769A (ja) * 2005-04-21 2006-11-02 Sega Corp ゲームシステム
JP2007215716A (ja) * 2006-02-16 2007-08-30 Konami Digital Entertainment:Kk ゲーム管理方法及びゲーム管理システム
JP2009240565A (ja) * 2008-03-31 2009-10-22 Konami Digital Entertainment Co Ltd ゲームプログラム、ゲーム装置、ゲーム制御方法及びゲームシステム
JP2009247479A (ja) * 2008-04-03 2009-10-29 Konami Digital Entertainment Co Ltd ゲームシステム、ゲーム装置、ゲーム制御方法及びゲームプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6641481B1 (en) * 2000-11-17 2003-11-04 Microsoft Corporation Simplified matchmaking
US20020115488A1 (en) * 2001-02-22 2002-08-22 Nicholas Berry System and method for conducting an online competition
US7288027B2 (en) * 2003-05-28 2007-10-30 Microsoft Corporation Cheater detection in a multi-player gaming environment
US7367888B1 (en) * 2004-01-28 2008-05-06 Microsoft Corporation Player trust system and method
US7614955B2 (en) * 2004-03-01 2009-11-10 Microsoft Corporation Method for online game matchmaking using play style information
US7354345B2 (en) * 2004-05-25 2008-04-08 Microsoft Corporation Multilevel online tournament
US8231469B1 (en) * 2005-01-04 2012-07-31 Sprint Spectrum L.P. Method and system for tracking drop-out events in a wireless gaming system
US8066568B2 (en) * 2005-04-19 2011-11-29 Microsoft Corporation System and method for providing feedback on game players and enhancing social matchmaking
JP4933381B2 (ja) * 2007-08-23 2012-05-16 株式会社コナミデジタルエンタテインメント ネットワークゲームシステム、ネットワークゲームシステムの制御方法、ゲーム装置、ゲーム装置の制御方法及びプログラム
JP4690432B2 (ja) * 2008-02-15 2011-06-01 株式会社コナミデジタルエンタテインメント 通信システム、通信方法、ならびに、プログラム
CA2717599C (en) * 2008-03-03 2017-06-27 William Levy Verification system for on-line gamers performing automatic verification of game results

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001187273A (ja) * 1999-01-28 2001-07-10 Sega Corp ネットワークゲームシステム、これに使用されるゲーム装置端末及び記憶媒体
JP2001321570A (ja) * 2000-05-15 2001-11-20 Casio Comput Co Ltd 通信対戦システム、サーバ装置、通信対戦プログラムが記憶された記憶媒体
JP2006212288A (ja) * 2005-02-04 2006-08-17 Konami Digital Entertainment:Kk 不正行為防止方法、ゲーム装置及び不正行為防止プログラム
JP2006285806A (ja) * 2005-04-04 2006-10-19 Hewlett-Packard Development Co Lp データ処理システム、データ伝送装置およびこれらの方法
JP2006296769A (ja) * 2005-04-21 2006-11-02 Sega Corp ゲームシステム
JP2007215716A (ja) * 2006-02-16 2007-08-30 Konami Digital Entertainment:Kk ゲーム管理方法及びゲーム管理システム
JP2009240565A (ja) * 2008-03-31 2009-10-22 Konami Digital Entertainment Co Ltd ゲームプログラム、ゲーム装置、ゲーム制御方法及びゲームシステム
JP2009247479A (ja) * 2008-04-03 2009-10-29 Konami Digital Entertainment Co Ltd ゲームシステム、ゲーム装置、ゲーム制御方法及びゲームプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014535097A (ja) * 2011-10-13 2014-12-25 ネオプル インコーポレイテッド 異常アカウント検出装置及び方法
US10009186B2 (en) 2011-10-19 2018-06-26 Nintendo Co., Ltd. Server device, communication system, information-processing device, communication method, and storage medium
JP2014068870A (ja) * 2012-09-28 2014-04-21 Konami Digital Entertainment Co Ltd ゲームシステム、ゲームシステムの制御方法、ゲーム制御装置、ゲーム制御装置の制御方法、及びプログラム
WO2019116987A1 (ja) * 2017-12-13 2019-06-20 株式会社セガゲームス 情報処理装置、ゲーム装置、及びゲームシステム
JP2019103673A (ja) * 2017-12-13 2019-06-27 株式会社セガゲームス 情報処理装置、ゲーム装置、及びゲームシステム
JP7042072B2 (ja) 2017-12-13 2022-03-25 株式会社セガ 情報処理装置、ゲーム装置、及びゲームシステム

Also Published As

Publication number Publication date
US20110105221A1 (en) 2011-05-05
US9174127B2 (en) 2015-11-03
JP5478198B2 (ja) 2014-04-23

Similar Documents

Publication Publication Date Title
JP5478198B2 (ja) ゲームシステムおよびゲームプログラム
US10569178B2 (en) Automatic movement of player character in network game
JP5800483B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5572494B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、情報処理方法
US20210021663A1 (en) Method for processing network data, and terminal, server and storage medium thereof
US20160023116A1 (en) Electronically mediated reaction game
KR101138917B1 (ko) 네트워크를 이용한 게임 시스템, 게임 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체, 게임 장치, 및 네트워크를 이용한 게임 제어 방법
JP5783686B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
CN112717423B (zh) 游戏对局的直播方法、装置、设备及存储介质
JP2004070821A (ja) ネットワークシステムの制御方法
CN111228811B (zh) 虚拟对象的控制方法、装置、设备及介质
KR20090079252A (ko) 네트워크 게임 시스템, 네트워크 게임 시스템의 제어 방법, 프로그램 및 정보 기억 매체
JP3730248B1 (ja) ゲーム装置およびゲームシステム
CN110755850A (zh) 竞技对局的组队方法、装置、设备及存储介质
CN112675547B (zh) 竞技对局的竞赛方法、装置、设备及存储介质
JP2012170674A (ja) ゲーム装置、ゲームプログラム、ゲーム制御方法およびゲームシステム
JP7266446B2 (ja) サーバシステムおよびゲームシステム
JP2012045422A (ja) プログラム、情報記憶媒体およびゲームシステム
JP2001212365A (ja) ゲームシステム及びゲーム方法
JP2006043091A (ja) ゲーム装置およびゲームシステム
JP5706173B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
JP2010200975A (ja) ゲームシステム、ゲーム管理方法及びゲーム管理プログラム
JP5947335B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、情報処理方法
JP2020120707A (ja) ゲームシステム、モバイル端末、ゲーム装置、情報処理装置およびゲームプログラム
JP2020044079A (ja) コンピュータシステム、ゲームシステム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120918

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: 20140128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5478198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250