[実施形態]
本発明の実施形態にかかるゲームシステム1について、図面を参照して説明する。
本発明のゲームシステム1により、例えば、家庭用のゲーム装置3においてマルチプレイが実行可能なマルチプレイヤゲームのマッチングが実行される。
本実施形態で説明されるマルチプレイヤゲームにおいて、ユーザは、任意のキャラクタ(以下、プレイヤキャラクタ)を操作して仮想空間上の敵キャラクタと戦う。以下では、所定の地域ごとに、4名のご近所ユーザ(以下、単に「ユーザ」とする場合がある)がマッチングされた場合に、これらのユーザ同士が協力して共通の敵キャラクタと戦うマルチプレイヤゲームを例に本発明を説明する。このようなゲームとしては、例えば、複数のハンター(プレイヤキャラクタ)がモンスター(敵キャラクタ)と戦うアクションハンティングゲームがある。
ここで、所定の地域とは、ユーザが生活する実在の世界のことであって、たとえば、国ごと、都道府県ごと、市町村ごと、または、地図を四角形もしくは六角形などの多角形で区切って構成されたマス目ごとなどの単位で分割されている地域のことをいう。以下では、市町村の単位で分割されている地域を所定の地域の例として本発明を説明する。
<ハードウェア構成について>
図1を参照して、ゲームシステム1を実現するサーバ装置2のハードウェア構成、および、このサーバ装置2を介して互いに通信接続される複数のゲーム装置3のハードウェア構成について説明する。
なお、各ゲーム装置および各ユーザには、それぞれ異なるアカウント情報(固有の識別情報)が付与される。そして、アカウント情報ごとにID(識別符号)が付与される。各ゲーム装置3が通信ネットワーク4を介してサーバ装置2と通信を行う場合には、このゲーム装置3からアカウント情報が送信される。送信されたアカウント情報は、サーバ装置2において所定の認証がなされる。これにより、サーバ装置2と各ゲーム装置3との通信が可能となる。
<サーバ装置について>
サーバ装置2は、制御部20、記憶部21、および、ネットワークインターフェース22を備える。
記憶部21およびネットワークインターフェース22は、バス200を介してサーバ装置2の制御部20に接続される。
制御部20は、サーバ装置2の動作を制御する。
記憶部21は、主にHDD(Hard Disk Drive)、RAM(Random Access Memory)およびROM(Read Only Memory)で構成される。
記憶部21には、例えば、マルチプレイヤゲームを実行するためのゲームプログラムおよびデータ、本発明のゲームシステム1を実現するための情報処理モジュール、クエスト生成モジュールおよびクエスト内容候補のデータ、マッチングモジュール、カウントモジュール、ならびに、ノンプレイヤキャラクタ参加モジュール、および各種データ(たとえば、各モジュールに関係するデータ、市町村別の地域の情報(以下、地域情報という)、地図データなど)が記憶される。
情報処理モジュールは、ゲーム進行に必要なデータを各ゲーム装置3との間で送受信処理するモジュールであり、たとえば、後述するマッチング要求情報、位置情報、第1特殊マッチング要求情報、および第2特殊マッチング要求情報、などを受信するモジュールである。また、情報処理モジュールは、ゲーム装置3から送信されるアカウント情報を用いて、アカウント情報の認証を行うモジュールである。
クエスト生成モジュールは、クエスト内容候補のデータに基づいて、クエスト内容を無作為に設定し、クエスト内容の情報を生成するモジュールである。
ここで、クエスト内容とは、クエストに登場するメインモンスターの種類とその出現数、サブモンスターの種類とその出現数、ステージ、および発生イベントなどの内容である。そして、クエスト内容候補とは、クエスト内容生成プログラムによってクエスト内容として適宜決定され得るクエスト内容のことである。
また、ユーザに関する情報は、ユーザのアカウント情報、ユーザ情報、およびプレイヤキャラクタ情報などを示すデータである。
マッチングモジュールは、ユーザからのマッチング要求情報(地域情報が関連付けられている)が受信されたか否か市町村別の地域情報ごとに判定する処理を行うモジュールである。
また、マッチングモジュールは、前記地域においてクエストに係るマルチプレイ(マルチプレイヤゲーム)に参加するユーザのキャラクタの総数があらかじめ所定数(本実施形態では「4」)に設定されている場合において、情報処理モジュールを介して受信したマッチング要求情報を、情報処理モジュールが受信処理した位置情報に基づいて前記地域の情報(以下、地域情報)ごとに分けて関連付けする処理を行うモジュールである。
また、マッチングモジュールは、マッチング要求情報が受信された数を市町村別の地域情報ごとにカウントする処理を行うモジュールである。
また、マッチングモジュールは、前記地域において前記地域情報に関連付けられたマッチング要求情報を送信したゲーム装置3に対応するキャラクタの数が、あらかじめ設定されている所定数(本実施形態では「4」)となった場合、関連付けしたマッチング要求情報を送信したゲーム装置3同士をマッチング処理するモジュールである。
また、マッチングモジュールは、ノンプレイヤキャラクタ参加モジュールから送信された後述の第1特殊マッチング要求情報を情報処理モジュールが受信処理した場合、ゲストであるノンプレイヤキャラクタと、ホストまたはゲストとして参加するためのユーザの操作に基づいてマッチング要求情報を送信したゲーム装置3のそれぞれに対応するプレイヤキャラクタと、をマッチングする処理を行うモジュールでもある。
また、マッチングモジュールは、ノンプレイヤキャラクタ参加モジュールから送信された後述の第2特殊マッチング要求情報を情報処理モジュールが受信処理した場合、ホストであるノンプレイヤキャラクタと、ゲストとして参加するためのユーザの操作に基づいてマッチング要求情報を送信したゲーム装置3のそれぞれに対応するプレイヤキャラクタと、をマッチングする処理を行うモジュールでもある。
カウントモジュールは、マッチングモジュールの処理によってマッチングが成立した回数(以下、マッチング成立回数)を、前記地域情報ごとかつ所定期間ごとにカウントし、前記地域情報に関連付けする処理を行うモジュールである。
ノンプレイヤキャラクタ参加モジュールは、前記地域ごとに所定期間内のマッチング成立回数が所定数以下であるか否か判定するとともに、マッチング成立回数が前記所定数以下になった前記地域情報に対応する地域において、マッチングモジュールの処理によるマッチングが開始されてから所定時間までにマッチングされたプレイヤキャラクタの数が前記所定数に達しているか否か判定するモジュールである。
また、ノンプレイヤキャラクタ参加モジュールは、(1)カウントモジュールの処理によってカウントしたマッチング成立回数が、所定数以下になった前記地域情報があった場合、かつ、(2)マッチング成立回数が前記所定数以下になった前記地域情報に対応する地域において、マッチングモジュールの処理によるマッチングが開始されてから所定時間までにマッチングされたプレイヤキャラクタの数が前記所定数に達していない場合、には、第1特殊マッチング要求情報を情報処理モジュールに送信して処理させることで、ゲームプログラムに基づいて動作するノンプレイヤキャラクタをゲストとして、前記マッチングに参加させる処理をするモジュールでもある。
ここで、ノンプレイヤキャラクタをゲストとして前記マッチングに参加させる処理とは、たとえば、マッチングモジュールにゲストとしてのノンプレイヤキャラクタのデータを送信することなどである。ゲストとしてのノンプレイヤキャラクタのデータを受信したマッチングモジュールは、マッチングに参加しているユーザに対応するプレイヤキャラクタとのマッチング処理を行う。
また、ノンプレイヤキャラクタ参加モジュールは、(1)カウントモジュールの処理によってカウントした前記マッチング成立回数が、所定数以下になった前記地域情報があった場合、かつ、(2)前記マッチング成立回数が前記所定数以下になってから所定時間マッチングモジュールによるマッチングが実行されなかった場合、には、第2特殊マッチング要求情報を情報処理モジュールに送信して処理させることで、ノンプレイヤキャラクタをホストとして前記マッチングに参加させる処理を行うモジュールである。
ここで、ノンプレイヤキャラクタをホストとして前記マッチングに参加させる処理とは、たとえば、マッチングモジュールにホストとしてのノンプレイヤキャラクタのデータを送信することなどである。ホストとしてのノンプレイヤキャラクタのデータを受信したマッチングモジュールは、マッチングに参加しているユーザに対応するプレイヤキャラクタとのマッチング処理を行う。
ネットワークインターフェース22は、サーバ装置2と各ゲーム装置3との間でデータを送受信するために、通信ネットワーク4に接続される。
<サーバ装置の制御部の機能的構成について>
サーバ装置2の制御部20は、前記情報処理モジュール、クエスト生成モジュール、マッチングモジュール、カウントモジュール、ノンプレイヤキャラクタ参加モジュール、およびゲームプログラムを実行することにより、情報処理手段201、クエスト生成手段202、マッチング手段203、カウント手段204、およびノンプレイヤキャラクタ参加手段205として機能する。
情報処理手段201は、現在位置に関するデータ、マッチングに関するデータ、クエスト内容生成に関するデータ、およびマルチプレイヤゲームの進行に必要なデータを、各ゲーム装置3との間で送受信する。また、情報処理手段201は、ゲーム装置3から送信されるアカウント情報を用いて、アカウント情報の認証を行う。
例えば、情報処理手段201が各ゲーム装置3から受信する情報は、現在の位置情報、ユーザの操作に基づくプレイヤキャラクタの動作情報、マッチング要求情報、ユーザのアカウント情報、ゲーム装置のアカウント情報、ユーザ情報、およびプレイヤキャラクタ情報などがある。
前記現在の位置情報には、GPSなどの位置情報に関するサービスから得た情報が含まれる。
マッチング要求情報には、ユーザがホストユーザおよびゲストユーザいずれの立場としてのマッチングを要求しているかの情報が含まれる。
アカウント情報には、ゲーム装置3に設定されたゲーム装置識別情報、およびユーザに設定されたユーザ識別情報が含まれる。ゲーム装置識別情報およびユーザ識別情報は、ユニークな識別符号(ID)である。
ユーザ情報には、ユーザのランク情報が含まれる。ユーザのランク情報は、ユーザがプレイヤキャラクタを操作して仮想空間上の敵キャラクタと戦って勝利することなどにより上昇する、いわゆるプレイヤランクまたはプレイヤレベルである。
プレイヤキャラクタ情報には、ユーザが選択したプレイヤキャラクタの種類、そのプレイヤキャラクタのランク情報、およびそのプレイヤキャラクタに設定された装備品が含まれる。
プレイヤキャラクタの種類は、ユーザがマルチプレイヤゲームにおいて操作するプレイヤキャラクタの種類である。例えば、ユーザは、選択可能な複数のキャラクタ「ハンターA」、「ハンターB」などから使用するキャラクタを1または複数選択できる。
プレイヤキャラクタのランク情報は、ユーザがプレイヤキャラクタを操作して仮想空間上の敵キャラクタと戦って勝利したり、プレイヤキャラクタを強化する操作したりすることにより上昇する、いわゆるキャラクタランクまたはキャラクタレベルである。
プレイヤキャラクタに設定された装備品は、プレイヤキャラクタに装備された武器(大剣、ハンマー、弓など)、防具(頭防具、胴防具、腕防具、脚防具など)、およびアイテム(装飾品、ピッケル、虫網など)である。
ノンプレイヤキャラクタに関しても、ユーザ情報に含まれる情報と同種類の情報を有したノンプレイヤ情報、および、プレイヤキャラクタに関する情報と同種類の情報、が記憶部21に記憶されている。
情報処理手段201が各ゲーム装置3へ送信する情報としては、クエスト内容(メインモンスターの種類とその出現数、サブモンスターの種類とその出現数、ステージ、および発生イベントなど)、および、マルチプレイヤゲームを行うための通信に必要なマッチングしたユーザ(ゲーム装置3)にかかる情報がある。
クエスト生成手段202は、たとえば、マルチプレイヤゲームのクエストに出現するメインモンスターの種類とその出現数、サブモンスターの種類とその出現数、ステージ、および発生イベントを、無作為に決定する。
マッチング手段203は、情報処理手段201によってユーザからのマッチング要求情報が受信されたか否か市町村別の地域情報ごとに判定する。
また、マッチング手段203は、前記地域においてクエストに係るマルチプレイ(マルチプレイヤゲーム)に参加するユーザのキャラクタの総数があらかじめ所定数(本実施形態では「4」)に設定されている場合において、情報処理モジュールを介して受信したマッチング要求情報を、情報処理手段201が受信処理した位置情報に基づいて前記地域情報ごとに分けて関連付けし、記憶部21に記憶させる。
マッチング手段203は、情報処理手段201によってユーザからのマッチング要求情報(地域情報が関連付けられている)が受信されたか否か市町村別の地域情報ごとに判定するとともに、マッチング要求情報が受信された数を市町村別の地域情報ごとにカウントし、記憶部21に記憶させる。
マッチング手段203は、情報処理手段201がユーザからのマッチング要求情報を受信したと判定した場合、市町村別の地域情報に対応するユーザ(ゲーム装置3)にマッチングルームID(セッション情報)および各ゲーム装置3のアカウント情報を送信することでユーザ(ゲーム装置3)に対応するプレイヤキャラクタのマッチングを行う。
具体的には、マッチング手段203は、市町村別の地域情報ごとに、マルチプレイヤゲームの参加を希望するホストユーザ(ホストゲーム装置)からの要求に応じて、ホストユーザのプレイヤキャラクタを含む4名のプレイヤキャラクタが参加可能なセッション(部屋)を生成する。そして、マッチング手段203は、市町村別の地域情報ごとに、そのセッションへの参加を希望するゲストユーザ(ゲストゲーム装置)3名に対応する各プレイヤキャラクタをこのセッションに加える。
このとき、情報処理手段201は、各ゲーム装置3に対して、各ゲーム装置のアカウント情報およびIPアドレスなどを送信する。マルチプレイヤゲームは、クライアントサーバ型のマルチプレイヤゲームまたはP2P型マルチプレイヤゲームのいずれでもよい。また、サーバ装置2がマッチングを行うマルチプレイヤゲームのほか、近距離通信によって通信可能領域内にいるユーザ(ゲーム装置3)と行うアドホックモードのゲームであってもよい。以下、同様である。
カウント手段204は、マッチング手段203によってマッチングが成立した回数(以下、マッチング成立回数)を、市町村別の地域情報ごとかつ所定期間(たとえば前日までの3日間または前日1日間など、あらかじめ設定した期間)ごとにカウントして、市町村別の地域情報に関連付けし、このマッチング成立回数が関連付けられた地域情報を記憶部21に記憶させる。
ノンプレイヤキャラクタ参加手段205は、所定期間内のマッチング成立回数が所定数以下であるか否か判定するとともに、マッチング成立回数が前記所定数以下になった前記地域情報に対応する地域において、マッチング手段203によるマッチングが開始されてから所定時間までにマッチングされたプレイヤキャラクタの数が前記所定数に達しているか否か判定する。
ノンプレイヤキャラクタ参加手段205は、カウント手段204によってカウントした前記所定期間内のマッチング成立回数が所定数以下(たとえば100以下)になった前記地域情報があった場合、かつ、マッチング成立回数が前記所定数以下になった前記地域情報に対応する地域において、マッチング手段203によるマッチングが開始されてから所定時間までにマッチングされたプレイヤキャラクタの数が前記所定数に達していない場合には、第1特殊マッチング要求情報を情報処理手段201に送信し、ゲームプログラムに基づいて動作するノンプレイヤキャラクタをゲストとしてマッチングに参加させる。
具体的には、マッチング手段203は、通常時においては前述のマッチングを行うが、マッチングの頻度が少ないだけでなく、マッチングが開始されたとしても、クエストを行うために必要な所定数のキャラクタ人数が所定時間以上揃わない状態(所定数のゲーム装置3からの所定数以上のマッチング要求情報を所定時間以上受信していない状態)となっている場合、マッチングが成立しないことがある。
このとき、ノンプレイヤキャラクタ参加手段205は、情報処理手段201に第1特殊マッチング要求情報を送信する。情報処理手段201による第1特殊マッチング要求情報の受信を契機として、マッチング手段203は、マッチング要求情報を送信したゲーム装置3に対応するプレイヤキャラクタと、ゲストとしてのノンプレイヤキャラクタとをマッチングする。
以下、ノンプレイヤキャラクタがゲストとなる場合のマッチングの具体例を示す。たとえば、マッチング手段203は、マルチプレイヤゲームの参加を希望するホストユーザ(ホストゲーム装置)からの要求に応じて、4つのプレイヤキャラクタ(ノンプレイヤキャラクタを含む場合もある)が揃った場合にクエストを行うことができるセッション(部屋)を生成する。
そして、マッチング手段203は、たとえば、そのセッションへの参加を希望する2人のゲストユーザ(ゲストゲーム装置)からのマッチング要求があった場合、その要求に応じて、2人のゲストユーザにそれぞれ対応するプレイヤキャラクタをこのセッションに加える。
このとき、所定時間以上経過しても、4人目のユーザ(4つ目のゲーム装置)からのマッチング要求がない場合、ノンプレイヤキャラクタ参加手段205は、このマッチングに関する地域情報(以下、マッチング関連地域情報)が、カウント手段204によってカウントした前記所定期間内のマッチング成立回数が所定数以下(たとえば100以下)になっている地域情報であるか否か判定する。
ノンプレイヤキャラクタ参加手段205により、前記マッチング関連地域情報が、カウント手段204によってカウントした前記所定期間内のマッチング成立回数が所定数以下(たとえば100以下)になっている地域情報であると判定された場合、ノンプレイヤキャラクタ参加手段205は、第1特殊マッチング要求情報を情報処理手段201に送信する。情報処理手段201がノンプレイヤキャラクタ参加手段205からの第1特殊マッチング要求情報を受信した場合、マッチング手段203は、ノンプレイヤキャラクタをセッションに加える。
また、ノンプレイヤキャラクタ参加手段205は、カウント手段204によってカウントしたマッチング成立回数が所定数以下(たとえば100以下)になっている前記地域情報があった場合、かつ、マッチング成立回数が前記所定数以下になってから所定時間(たとえば5分間)までマッチング手段203によるマッチングが実行(開始)されなかった場合には、第2特殊マッチング要求情報を情報処理手段201に送信し、ノンプレイヤキャラクタをホストとしてマッチングに参加させる。
具体的には、マッチング手段203は、通常時においては前述のマッチングを行うが、ゲーム装置3からホストになるためのマッチング要求がされず、まったくマッチングが開始されない状態となる場合がある。
このような場合において、情報処理手段201がノンプレイヤキャラクタ参加手段205からの第2特殊マッチング要求情報を受信した場合、マッチング手段203は、セッションを生成し、ノンプレイヤキャラクタをホストとするマッチングを開始する。このマッチングが開始された場合、マッチング手段203は、ゲーム装置3を介して、マルチプレイヤゲームのマッチングが可能な状態になっていることをご近所ユーザに告知する。
ゲーム装置3を介して前記マッチング募集の告知を知ったご近所ユーザの操作に基づいて、ゲーム装置3からのマッチング要求があった場合、マッチング手段203は、ホストであるノンプレイヤキャラクタと、ゲーム装置3(ゲストゲーム装置)に対応するプレイヤキャラクタと、をマッチングする。
以下、ノンプレイヤキャラクタがホストとなる場合のマッチングの具体例を示す。たとえば、マッチング手段203は、マルチプレイヤゲームの参加を希望するユーザがいない場合、ノンプレイヤキャラクタ参加手段205は、カウント手段204によってカウントしたマッチング成立回数が所定数以下(たとえば100以下)になっている前記地域情報があった場合、かつ、マッチング成立回数が前記所定数以下になってから所定時間(たとえば5分間)までマッチング手段203によるマッチングが実行(開始)されなかった場合には、第2特殊マッチング要求情報を情報処理手段201に送信する。
情報処理手段201が第2特殊マッチング要求情報を受信した場合、マッチング手段203は、ノンプレイヤキャラクタをホストとして4つのプレイヤキャラクタ(ノンプレイヤキャラクタを含む)が揃った場合にクエストを行うことができるセッション(部屋)を生成する。
そして、マッチング手段203は、ゲーム中のマッチング用ロビーにおいてマッチング募集の告知をする、または、情報処理手段201を介して、前記地域情報に対応する位置情報を有したゲーム装置3にマッチング募集の告知信号を送信する。マッチング募集の告知信号を受信したゲーム装置3は、画面または音声などでマッチング募集の告知があったことをユーザに報知する。
ゲーム装置3を介して前記マッチング募集の告知を知ったご近所ユーザの操作に基づいて、たとえば、そのセッションへの参加を希望する3人のゲストユーザ(ゲストゲーム装置)からのマッチング要求があった場合、その要求に応じて、3人のゲストユーザにそれぞれ対応するプレイヤキャラクタをこのセッションに加える。
なお、本実施形態では、サーバ装置2がマッチングを行い、その後にP2Pにて複数のゲーム装置3がゲームを実行するシステムを説明する。また、本実施形態では、ユーザに関する情報として、ユーザのアカウント情報を例にあげる。
<ゲーム装置について>
ゲーム装置3には、モニタ330、スピーカ340およびコントローラ350が外部接続あるいは内蔵される。このゲーム装置3において、記憶媒体などから読み込んだゲームプログラムおよびデータに基づいてゲームが進行する。また、ゲーム装置3は、他ゲーム装置3およびサーバ装置2との間で、インターネットあるいは無線LAN通信などの通信ネットワーク4を介して互いにデータ通信をすることができる。
ゲーム装置3は、制御部30、記憶部31、ネットワークインターフェース32、グラフィック処理部33、オーディオ処理部34、および操作部35を備える。
記憶部31、ネットワークインターフェース32、グラフィック処理部33、オーディオ処理部34、および操作部35は、バス300を介して、制御部30に接続される。
制御部30は、ゲーム装置3の動作を制御する。
記憶部31は、主にHDD、RAMおよびROMで構成される。記憶部31には、例えば、マルチプレイヤゲームを実行するためのゲームプログラムおよびデータが記憶される。
ネットワークインターフェース32は、他ゲーム装置3、およびサーバ装置2との間でデータを送受信するために、通信ネットワーク4に接続される。これにより、同一のゲーム空間内で同期してマルチプレイヤゲームが実行される。
グラフィック処理部33は、制御部30の指示に従って仮想空間および各キャラクタなどを含むゲーム画像を動画形式で描画する。グラフィック処理部33にて動画形式に描画されたゲーム画像は、ゲーム画面としてモニタ330に表示される。
オーディオ処理部34は、制御部30の指示に従ってデジタルのゲーム音声を再生および合成する。また、オーディオ処理部34には、スピーカ340が接続される。ゲーム音声は、スピーカ340から外部へと出力される。
操作部35は、ゲーム装置3に付属するコントローラ350との間で有線または無線により接続され、操作入力に関するデータを送受信することが可能である。ユーザは、コントローラ350に設けられたボタン等の操作子(図示略)を操作することにより、ゲーム装置3へ操作信号を入力する。
<ゲーム装置の制御部の機能的構成について>
ゲーム装置3の制御部30は、ゲーム装置3に挿入された記憶媒体またはゲーム装置3の記憶部31にダウンロード(インストール)されているゲームプログラムを実行することで、ゲーム制御手段301、および通信手段302として機能する。
ゲーム制御手段301は、ゲームデータに含まれるオブジェクトおよびテクスチャなどのデータを記憶部31から読み出し、二次元または三次元の仮想ゲーム空間を生成する。さらに、ゲーム制御手段301は、仮想空間を生成し、その仮想空間にプレイヤキャラクタ、敵キャラクタなどのノンプレイヤキャラクタ、を配置する。
また、ゲーム制御手段301は、必要に応じて、生成した仮想空間に、ユーザ(プレイヤキャラクタ)の仲間のキャラクタであるノンプレイヤキャラクタ(以下、仲間ノンプレイヤキャラクタ)を配置する。ここでの仲間ノンプレイヤキャラクタは、前記マッチングにおいてホストまたはゲストとして参加したノンプレイヤキャラクタである。
また、ゲーム制御手段301は、自ゲーム装置3に接続されるコントローラ350への操作信号、および、ゲームの進行状況に応じて、仮想空間における自プレイヤキャラクタの行動、および、敵キャラクタの行動を制御する。また、ゲーム制御手段301は、仲間ノンプレイヤキャラクタが仮想空間に存在する場合、仲間ノンプレイヤキャラクタの行動を制御する。
マルチプレイヤゲームを進行するにあたっては、後述する通信手段302が、サーバ装置2またはホストゲーム装置を介して他ゲーム装置3に接続されるコントローラ350からの操作信号を受信する。その信号に基づいて、ゲーム制御手段301は自プレイヤキャラクタに加え、他プレイヤキャラクタの行動を制御する。
ゲーム制御手段301は、これらの仮想空間およびキャラクタをゲーム画面としてモニタ330に表示するための情報を生成する。これらの情報に従って、グラフィック処理部33がゲーム画像を描画する。
通信手段302は、例えば、ユーザの操作に基づいて、ユーザの操作に基づくプレイヤキャラクタの動作情報、マッチング要求情報、ユーザのアカウント情報、ユーザ情報、およびプレイヤキャラクタ情報をサーバ装置2に送信する。また、通信手段302は、マッチング完了情報、およびクエスト内容のデータをサーバ装置2から受信する。
また、通信手段302は、必要に応じて、仲間ノンプレイヤキャラクタに関する情報などをサーバ装置2から受信する。通信手段302は、その他、マルチプレイヤゲームの進行に必要なデータを他ゲーム装置3およびサーバ装置2との間で送受信する。
<マッチング処理について>
図2〜図6を用いて、サーバ装置2のマッチング処理について説明する。
図2は通常時のマッチングがされた場合のアカウント情報を示す図、図3はノンプレイヤキャラクタがゲストとなるマッチングがされた場合のアカウント情報を示す図、図4はノンプレイヤキャラクタがホストとなるマッチングがされた場合のアカウント情報を示す図である。図5は、市町村ごとの前日1日のマッチング成立数を示す図である。図6は、本実施形態にかかるマッチング処理の流れを示すフローチャートである。
図2に示すように、各ユーザにはアカウント情報が設定されているが、後述する通常時のマッチングがされた場合には、マッチング手段203によってホストであるかゲストであるかの情報が関連付けられ、サーバ装置2の記憶部21に記憶される。User1のアカウント情報は「12345」、User2のアカウント情報は「67890」、User3のアカウント情報は「76543」、User4のアカウント情報は「99009」である。
図3および図4に示すように、図2と同様、各ユーザにはアカウント情報が設定されているが、ユーザと同等にノンプレイヤキャラクタに対応するアカウント情報も設定されている。ノンプレイヤキャラクタであるNPC1のアカウント情報は「99999」である。また、図3および図4においても、各アカウント情報には、後述する通常時以外のマッチングがされた場合には、マッチング手段203によってホストであるかゲストであるかの情報が関連付けられ、サーバ装置2の記憶部21に記憶される。
図5に示すように、サーバ装置2の記憶部21には、カウント手段204によってカウントされた市町村ごとの前日1日のマッチング成立回数が毎日定時に更新された上で記憶されている。ここでは、例として、A市、B市、C町、D町、E村、F村など仮名の市町村を示している。
図6を用いて、サーバ装置2のマッチング処理のフローを説明する。
まず、マッチング手段203は、情報処理手段201によって、所定時間内にいずれかのゲーム装置3からマッチング要求情報を受信したか否か、すなわち、所定時間内にマッチング要求(ホスト)があったか否かを判定する(ステップS1)。
ステップS1において、マッチング手段203により所定時間内にマッチング要求(ホスト)があったと判定された場合(ステップS1:YES)、マッチング手段203は、マッチング要求情報とともに送信された位置情報に基づいて、マッチング要求情報を地域情報に関連付けし、記憶部21に記憶させる(ステップS2)。
次に、マッチング手段203は、マッチング要求(ホスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタをマッチングのホストとして決定する(ステップS3)。
続いて、クエスト生成手段202は、サーバ装置2の記憶部21に記憶されたクエスト内容候補のデータを読み出す(ステップS4)。
そして、クエスト生成手段202は、ホストとなったプレイヤキャラクタに対応するユーザのゲーム装置3の操作に基づいて選択されたクエスト内容を、マッチング手段203による今回のマッチング後に行うクエストとして決定する(ステップS5)。
次に、マッチング手段203は、マッチング要求(ホスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタをホストとするセッションを生成する。そして、マッチング手段203は、ゲーム装置3の位置情報に基づいて、このセッションを生成した地域内に位置する他のゲーム装置3に、セッションが生成されたこと(マッチング可能な状態であること)を告知する。このとき、クエスト生成手段202は、ゲーム装置3(ホストゲーム装置または告知された全てのゲーム装置)に、ユーザの操作によって選択されたまたはクエスト生成手段202が自動決定したクエスト内容を送信(告知)する(ステップS6)。
続いて、マッチング手段203は、所定時間内に、マッチング要求(ホスト)以外の3つのマッチング要求(ゲスト)があったか否か判定する(ステップS7)。
ステップS7において、マッチング手段203により所定時間内に3つのマッチング要求(ゲスト)があったと判定された場合(ステップS7:YES)、マッチング手段203は、前記セッションに、マッチング要求(ゲスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタのそれぞれを追加する(ステップS8)。
具体的には、マッチング手段203は、たとえば、マッチングされた4つのアカウント情報として、図2に示した各ユーザに対応する「12345」、「67890」、「76543」、および「99009」のアカウント情報を読み出して、セッションに追加する。
このような一連の処理がされたあと、マッチング処理は終了する。
一方、ステップS7において、マッチング手段203により所定時間内に3つのマッチング要求(ゲスト)がなかったと判定された場合(ステップS7:NO)、ノンプレイヤキャラクタ参加手段205は、地域情報に関連付けられた所定期間(たとえば前日1日)内のマッチング成立回数の情報に基づいて、現在行っているマッチングに対応する地域について、所定期間内(たとえば前日1日間)のマッチング成立回数が所定数(たとえば100)以下であるか否か判定する(ステップS9)。
ステップS9において、ノンプレイヤキャラクタ参加手段205により、現在行っているマッチングに対応する地域について、所定期間(たとえば前日1日間)内のマッチング成立回数が所定数(たとえば100)以下でないと判定された場合(ステップS9:NO)、マッチング処理は終了する。
具体的には、たとえば、現在行っているマッチングに対応する地域が図5のA市またはB市だった場合、ノンプレイヤキャラクタ参加手段205は、図5に示したマッチング成立回数の情報に基づいて、前日1日間のマッチング成立回数が100以下でないと判定する。すなわち、A市においては、前日1日間で十分な回数のマッチングが行われていると判定されたことになる。そして、マッチング処理は終了する。
一方、ステップS9において、ノンプレイヤキャラクタ参加手段205により、現在行っているマッチングに対応する地域について、所定期間内(たとえば前日1日間)のマッチング成立回数が所定数(たとえば100)以下であると判定された場合(ステップS9:YES)、マッチング手段203は、マッチングの募集開始から終了までの間(たとえば1分間)に、マッチング要求(ホスト)以外の2つのマッチング要求(ゲスト)があったか否か判定する(ステップS10)。
ステップS10において、マッチング手段203により、マッチングの募集開始から終了までの間(たとえば1分間)に、マッチング要求(ホスト)以外の2つのマッチング要求(ゲスト)があったと判定された場合(ステップS10:YES)、マッチング手段203は、前記セッションに、マッチング要求(ゲスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタのそれぞれを追加する(ステップS11)。
具体的には、たとえば、現在行っているマッチングに対応する地域が図5のC町、D町、E村、F村のいずれか1つであった場合、ノンプレイヤキャラクタ参加手段205は、前日1日のマッチング成立回数が100以下であると判定する。
そして、たとえば、マッチングが募集開始から1分で終了する場合、この終了までの1分の間に、マッチング要求(ホスト)以外の2つのマッチング要求(ゲスト)があったとマッチング手段203により判定された場合、マッチング手段203は、前記セッションに、マッチング要求(ゲスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタのそれぞれを追加する。
すなわち、マッチング手段203は、たとえば、マッチングされた3つのアカウント情報として、図3に示した各ユーザに対応する「12346」、「67891」、および「76544」のアカウント情報を読み出して、セッションに追加する。
続いて、ノンプレイヤキャラクタ参加手段205は、第1特殊マッチング要求を情報処理手段201に送信する(ステップS12)。
そして、情報処理手段201が第1特殊マッチング要求を受信したことを契機として、マッチング手段203は、前記セッションに、ノンプレイヤキャラクタをゲストとして追加する(ステップS13)。
具体的には、マッチング手段203は、たとえば、マッチングされたノンプレイヤキャラクタに対応するアカウント情報として、図3に示したノンプレイヤキャラクタに対応する「99999」のアカウント情報を読み出して、セッションに追加する。
一方、ステップS10において、マッチング手段203により、所定時間(たとえば1分)内に、マッチング要求(ホスト)以外の2つのマッチング要求(ゲスト)がなかったと判定された場合(ステップS10:NO)、マッチング処理は終了する。
ステップS1に戻って、マッチング手段203により所定時間内にマッチング要求(ホスト)がなかったと判定された場合(ステップS1:NO)、ノンプレイヤキャラクタ参加手段205は、地域におけるマッチング成立回数の情報に基づいて、所定期間(たとえば前日1日)内のマッチング成立回数が所定数(たとえば100)以下の地域があるか否か判定する(ステップS14)。
ノンプレイヤキャラクタ参加手段205により、所定期間(たとえば前日1日)内のマッチング成立回数が所定数(たとえば100)以下の地域がないと判定された場合(ステップS14:NO)、マッチング処理は終了する。
一方、ノンプレイヤキャラクタ参加手段205により、所定期間(たとえば前日1日)内のマッチング成立回数が所定数(たとえば100)以下の地域があると判定された場合(ステップS14:YES)、ノンプレイヤキャラクタ参加手段205は、所定期間(たとえば前日1日)内のマッチング成立回数が所定数(たとえば100)以下の地域のうちいずれか1つを選択する(ステップS15)。
具体的には、ノンプレイヤキャラクタ参加手段205は、たとえば、図5に示したマッチング成立回数の情報に基づいて、前日1日内のマッチング成立回数が100以下の地域があると判定した場合、図5に示したC町、D町、E村、F村のうちいずれか1つを選択する。
次に、ノンプレイヤキャラクタ参加手段205は、選択した地域の情報に関連付けられた第2特殊マッチング要求を情報処理手段201に送信する(ステップS16)。
そして、情報処理手段201が第2特殊マッチング要求を受信したことを契機として、マッチング手段203は、前記セッションに、ノンプレイヤキャラクタを後の工程で生成するセッションのホストとして決定する(ステップS17)。
続いて、クエスト生成手段202は、サーバ装置2の記憶部21に記憶されたクエスト内容候補のデータを読み出す(ステップS18)。
そして、クエスト生成手段202は、クエスト内容候補のデータからノンプレイヤキャラクタ参加手段205によって自動選択(抽選によって選択)されたクエスト内容を、マッチング手段203による今回のマッチング後に行うクエストとして決定する(ステップS19)。
次に、マッチング手段203は、ノンプレイヤキャラクタをホストとするセッションを生成する。そして、ゲーム装置3の位置情報に基づいて、このセッションを生成した地域内に位置する他のゲーム装置3に、セッションが生成されたこと(マッチング可能な状態であること)を告知する(ステップS20)。このとき、クエスト生成手段202は、ゲーム装置3(告知された全てのゲーム装置)に決定したクエスト内容を送信する。
続いて、マッチング手段203は、所定時間内に、第2特殊マッチング要求以外の3つのマッチング要求(ゲスト)があったか否か判定する(ステップS21)。
ステップS21において、マッチング手段203により所定時間内に3つのマッチング要求(ゲスト)があったと判定された場合(ステップS21:YES)、マッチング手段203は、前記セッションに、マッチング要求(ゲスト)をしたゲーム装置3のユーザに対応するプレイヤキャラクタのそれぞれを追加する(ステップS22)。
具体的には、マッチング手段203は、たとえば、ノンプレイヤキャラクタに対応するアカウント情報として、図4に示したノンプレイヤキャラクタに対応する「99999」のアカウント情報をマッチングに関するホストの情報として読み出す。
また、セッションに追加される3つのアカウント情報として、図4に示した各ユーザに対応する「67892」、「76545」、および「99010」のアカウント情報をマッチングに関するゲストの情報として読み出して、セッションに追加する。
このような一連の処理がされたあと、マッチング処理は終了する。
一方、ステップS21において、マッチング手段203により所定時間内に3つのマッチング要求(ゲスト)がなかったと判定された場合(ステップS7:NO)、マッチング処理は終了する。
なお、マルチプレイヤゲームのゲーム進行は、ゲーム装置3(ホストゲーム装置)で管理される。各ゲーム装置3は、それぞれ通信を行ってゲーム進行に必要な情報を送受信する。これにより、各ゲーム装置3上でクエスト内容に沿ったマルチプレイヤゲームが実行される。
また、マルチプレイヤゲームがクエストの達成条件を満たしたり、ゲームオーバーになったりしたことを契機に、ゲーム装置3(ホストゲーム装置またはマッチングされた全てのゲーム装置)は、サーバ装置2にその情報を送信する。
以上をまとめると、本件発明は、ユーザの操作に基づいて仮想空間上で所定の地域ごとにマルチプレイを行うことができるマルチプレイヤゲームを実行する複数のゲーム装置3と、
複数のゲーム装置3とネットワークを介して接続されるサーバ装置2と、を備えたゲームシステムであって、
ゲーム装置3は、
前記ユーザの操作に基づいて前記仮想空間上でプレイヤキャラクタの動作を制御し、前記マルチプレイを実行するゲーム制御部301、および
他のゲーム装置との間におけるマッチング要求情報と、前記ゲーム装置の位置情報とを前記サーバ装置に対して送信する通信部302、
を備え、
前記サーバ装置2は、
前記マッチング要求情報および前記位置情報を受信する情報処理部201、
前記地域において前記マルチプレイに参加するキャラクタの総数があらかじめ所定数に設定されている場合において、前記情報処理部を介して受信した前記マッチング要求情報を、前記情報処理部が受信した前記位置情報に基づいて前記地域の情報(以下、地域情報)ごとに分けて関連付けし、前記地域情報に関連付けられた前記マッチング要求情報を送信したゲーム装置3に対応する前記キャラクタの数が前記所定数となった場合、関連付けした前記マッチング要求情報を送信したゲーム装置3同士をマッチングするマッチング部203、
マッチング部203によって前記マッチングが成立した回数(以下、マッチング成立回数)を、前記地域情報ごとかつ所定期間ごとにカウントし、前記地域情報に関連付けするカウント部204、ならびに
前記マッチング成立回数が所定数以下になった前記地域情報に対応する地域の前記マッチングに、前記ゲームプログラムに基づいて動作するノンプレイヤキャラクタを参加させるノンプレイヤキャラクタ参加部205、
を備えたゲームシステムである。
[発明の効果]
本実施形態のゲームシステムによれば、オンライン通信が可能な場合において、ユーザ人口の少ない地域でもご近所ユーザとのマルチプレイヤゲームを楽しむことができる。
さらに、本実施形態のゲームシステムによれば、マルチプレイヤゲームを通じて知り合ったご近所ユーザとコミュニケーションをとるきっかけを提供することができる。
[他の実施形態]
前記実施形態においては、サーバ装置2と、ゲーム装置3とが別個のコンピュータである例が記載されているが、本発明の実施形態はこれには限られない。すなわち、必要に応じて、ホストユーザのゲーム装置3であるホストゲーム装置が前記実施形態におけるサーバ装置2の役割を果たしてもよい。
図6において説明した制御手段および処理手順は一例であり、本発明の実施形態はこれらには限られない。処理手順等は、本発明の要旨を変更しない範囲で適宜設計変更が可能である。
クライアントサーバ型のマルチプレイヤゲーム、およびアドホックモードのマルチプレイヤゲームでは、図6に示したフローの一部が本実施形態と異なる。
クライアントサーバ型のゲームシステムを採用する場合、サーバ装置2の制御部20は、情報処理モジュール、クエスト生成モジュール、マッチングモジュール、カウントモジュール、およびノンプレイヤキャラクタ参加モジュールなどを含むプログラム、ならびに、ゲームプログラムを実行することにより、情報処理手段、クエスト生成手段、マッチング手段、カウント手段、およびノンプレイヤキャラクタ参加手段として機能する。このとき、制御部20は、ユーザの操作によって選択されたまたはクエスト生成手段が自動決定したクエスト内容を各ゲーム装置3に送信することを必要としない。クライアントサーバ型のマルチプレイヤゲームでは、サーバ装置2がゲームの進行を実行する。
また、アドホックモードのゲームシステムを採用する場合、ホストゲーム装置の制御部30が、情報処理モジュール、クエスト生成モジュール、マッチングモジュール、カウントモジュール、およびノンプレイヤキャラクタ参加モジュールなどを含むプログラム、ならびに、ゲームプログラムを実行することにより、情報処理手段、クエスト生成手段、マッチング手段、カウント手段、およびノンプレイヤキャラクタ参加手段として機能する。
すなわち、アドホックモードのゲームシステムによれば、本件発明は、ゲーム装置3とネットワークを介して接続されるコンピュータ(サーバ装置2またはホストゲーム装置)を、前記ゲーム装置3からマッチング要求情報を受信する情報処理部、受信した前記マッチング要求情報に基づいて複数の前記ゲーム装置3同士をマッチングするマッチング部、マルチプレイヤゲームのクエスト内容を決定するクエスト生成部、マッチング成立回数をカウントするカウント手段、およびノンプレイヤキャラクタ参加手段、として機能させるプログラムである。
また、前記実施形態には、ゲーム装置3として家庭用のゲーム装置を用いた例が記載されているが、本発明の実施形態はこれには限られない。例えば、ゲームセンターなどに提供されるアーケードゲーム筐体を用いて本発明を実現することもできる。また、ゲーム装置3として、タッチパネル(操作部)を備えたスマートフォンなどの携帯端末装置を用いることもできる。
前記実施形態には、マルチプレイヤゲームの例としてアクションハンティングゲームが記載されているが、本発明の実施形態はこれには限られない。シューティングゲーム、ロールプレイングゲーム、シミュレーションゲーム、ボードゲーム、およびパズルゲームなど、様々な種類のマルチプレイヤゲームに本発明を適用することができる。
前記実施形態において、ユーザが1回のマルチプレイヤゲーム(クエスト)にて操作するプレイヤキャラクタは1体として説明したが、これに限らない。例えば、ユーザが操作するプレイヤキャラクタは複数(5体)であってもよく、この5体をいわゆるデッキに設定して敵キャラクタと戦うマルチプレイヤゲームを実行するようにしてもよい。
前記実施形態のステップS15においては、ノンプレイヤキャラクタ参加手段205が、所定期間(たとえば前日1日間)内のマッチング成立回数が所定数(たとえば100)以下の地域のうちいずれか1つを選択することとしたが、これに限られない。たとえば、ノンプレイヤキャラクタ参加手段205が、所定期間(たとえば前日1日間)内のマッチング成立回数が所定数(たとえば100)以下の地域のうち複数を選択し、この複数選択した地域のそれぞれについて前記ステップS17以降の工程を実行してもよい。
前記実施形態のノンプレイヤキャラクタ参加手段においては、前記地域情報のうちいずれか1つ以上の情報を無作為に選択し、選択された前記地域情報にのみ対応するマッチング(選択された地域で行われたマッチングのみ)に、ノンプレイヤキャラクタを参加させるものであってもよい。
また、前記実施形態のノンプレイヤキャラクタ参加手段においては、マッチング成立回数が少ない地域ほど選択されやすい確率テーブルに基づいて、前記地域情報のうちあらかじめ設定されている数の前記地域情報を抽選によって選択し、選択された地域情報にのみ対応するマッチング(選択された地域で行われたマッチングのみ)に、ノンプレイヤキャラクタを参加させるものであってもよい。
また、前記実施形態のノンプレイヤキャラクタ参加手段は、あらかじめ設定された期間内において前記ノンプレイヤキャラクタを前記マッチングに参加させるが、前記マッチングがされたあとは前記マルチプレイが完了するまで前記ノンプレイヤキャラクタのマッチングが解除されない状態とするものであってもよい。
また、前記実施形態のノンプレイヤキャラクタ参加手段は、前記マッチングされた前記ノンプレイヤキャラクタについて、前記マッチング成立回数、または、前記地域情報に関連付けられた前記位置情報に対応する前記ゲーム装置の前記ユーザの投票操作、に基づいて、前記ノンプレイヤキャラクタの前記ゲームに対する能力値を上昇させることとしてもよい。
ここで、ノンプレイヤキャラクタについて、前記マッチング成立回数に基づいて、前記ノンプレイヤキャラクタの前記ゲームに対する能力値を上昇させる場合とは、具体的には、以下のとおりである。たとえば、その地域でノンプレイヤキャラクタが参加したマッチングについての成立回数が多くなれば多くなるほど、ノンプレイヤキャラクタの能力値を上げ、クエストを攻略しやすくしてもよい。
また、ノンプレイヤキャラクタについて、前記地域情報に関連付けられた前記位置情報に対応する前記ゲーム装置の前記ユーザの投票操作に基づいて、前記ノンプレイヤキャラクタの前記ゲームに対する能力値を上昇させる場合とは、具体的には、以下のとおりである。たとえば、その地域においてノンプレイヤキャラクタを含むマッチングがあった場合、そのプレイヤキャラクタに対して人気投票操作ができる(たとえば「いいね」ボタンを押す操作ができる)ようにしておき、投票数によって、ノンプレイヤキャラクタの能力値を上げ、クエストを攻略しやすくしてもよい。
前記実施形態においては、記憶部21に前記地域の地図情報を記憶させておき、仮想空間に前記地域の地図情報に基づく仮想地図を生成し、この仮想地図上においてノンプレイヤキャラクタを所定条件に基づいてまたは無作為に移動させる処理を行う移動手段が含まれるものであってもよい。
また、前記実施形態においては、前記仮想地図上を移動するノンプレイヤキャラクタに、ユーザの操作に基づいて前記仮想地図上を移動するプレイヤキャラクタが接触することで、前記ノンプレイヤキャラクタとプレイヤキャラクタとのマッチングが可能となるマッチング参加用情報を生成するマッチング参加用情報生成手段が含まれるものであってもよい。
なお、前記仮想地図上を移動するノンプレイヤキャラクタとプレイヤキャラクタとの接触判定は、前記ユーザの操作に基づいて前記マッチング参加用情報と接触した状態となったか否かによって行うことができる。
ここで、前記マッチング参加用情報を、前記仮想地図上のノンプレイヤキャラクタの現在位置だけでなく、前記ノンプレイヤキャラクタの前記移動の経路上に所定時間が経過するまで残存させ、所定時間経過後にまたは生成した順に徐々に消滅させる状態(生成したマッチング参加用情報を消去していくこと)としてもよい。
また、前記実施形態において、ノンプレイヤキャラクタがゲストとしてマッチングに参加する場合は、1キャラクタ分だけであったが、これに限られない。たとえば、マッチングには、ノンプレイヤキャラクタを複数参加させるものであってもよい。
また、前記実施形態におけるマッチングは、ユーザのキャラクタが所持するアイテムを使用することによって、行われることとしてもよい。
また、マッチングでのユーザの待ち時間が所定時間以上経過した場合にのみ、ノンプレイヤキャラクタがゲストとしてマッチングに参加することとしてもよい。
また、前記実施形態においては、4名分に対応するプレイヤキャラクタがマッチングされる場合を例にして説明したが、これに限られない。たとえば、2名分または3名分に対応するプレイヤキャラクタのみがマッチングされるものであってもよいし、5名分以上に対応するプレイヤキャラクタがマッチングされるものであってもよい。また、これらのプレイヤキャラクタのマッチングには、ノンプレイヤキャラクタが1つ以上含まれてもよい。
また、前記実施形態においては、市町村の単位などで分割されている地域ごとにマッチングするものであったが、これに限られない。たとえば、ホストとなるユーザのゲーム装置(ホストゲーム装置)の現在位置から、たとえば半径2km以内にゲストとなるユーザのゲーム装置(ゲストゲーム装置)が位置するのであれば、ゲストゲーム装置の位置が、ホストゲーム装置が位置する市町村に隣接する市町村に属する場合であっても、ゲストゲーム装置のユーザに対応するプレイヤキャラクタをゲストとしてマッチングに参加させてもよい。
これらの他の実施形態を採用した場合においても、本発明の作用効果は発揮される。また、本実施形態と他の実施形態、および他の実施形態同士を適宜組み合わせることも可能である。