(57)【特許請求の範囲】
【請求項１】
所定のプログラムを実行することによって、通信可能に接続された端末装置を操作するユーザに対して所定のゲームを提供するサーバであって、
前記所定のプログラムを格納するメモリと、
前記所定のプログラムを実行する１又は複数のコンピュータプロセッサとを備え、
前記所定のプログラムは、
前記所定のゲームの進行を制御し、当該所定のゲームの進行に応じて当該所定のゲームに参加する複数のユーザを２以上のグループに分類するように構成されたゲーム進行制御モジュールと、
前記複数のユーザの端末装置に対してクイズの問題を送信するように構成された問題送信モジュールと、
前記複数のユーザの端末装置から、当該ユーザによって入力されたメッセージを受信するように構成されたメッセージ受信モジュールと、
前記ユーザの端末装置からの入力情報に基づいて当該ユーザが前記問題に正解したか否かを判定するように構成された正解判定モジュールと、
前記受信したメッセージを、前記複数のユーザのうち、少なくとも当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置に対して送信するように構成されたメッセージ送信モジュールと、を備え、
前記ゲーム進行制御モジュールは、前記複数のユーザを、所定のゲーム目標を達成していない未達成者グループと当該所定のゲーム目標を達成している達成者グループを含むグループに分類するように構成され、
前記所定のゲーム目標は、前記問題に正解することである、
サーバ。
【請求項２】
前記メッセージ送信モジュールは、前記受信したメッセージを入力したユーザが前記未達成者グループに分類される場合には、当該受信したメッセージを、当該未達成者グループに分類されるユーザの端末装置に加え、前記達成者グループに分類されるユーザの端末装置に対して送信し、前記受信したメッセージを入力したユーザが前記達成者グループに分類される場合には、当該受信したメッセージを、当該達成者グループに分類されるユーザの端末装置に対してのみ送信するように構成される請求項１記載のサーバ。
【請求項３】
請求項１又は２記載のサーバであって、
前記所定のプログラムは、前記受信したメッセージに含まれる文字列と前記問題の正解を示す正解文字列との比較に基づいて、当該受信した文字列が当該正解を示すか否かを判定するように構成された文字列判定モジュールを更に備え、
前記正解判定モジュールは、前記文字列判定モジュールによる判定結果に基づいて前記受信したメッセージを入力したユーザが前記問題に正解したか否かを判定するように構成される、
サーバ。
【請求項４】
１又は複数のコンピュータによって、通信可能に接続された端末装置を操作するユーザに対して所定のゲームを提供する方法であって、
前記所定のゲームの進行を制御し、当該所定のゲームの進行に応じて当該所定のゲームに参加する複数のユーザを２以上のグループに分類し、
前記複数のユーザの端末装置に対してクイズの問題を送信し、
前記複数のユーザの端末装置から、当該ユーザによって入力されたメッセージを受信し、
前記ユーザの端末装置からの入力情報に基づいて当該ユーザが前記問題に正解したか否かを判定し、
前記受信したメッセージを、前記複数のユーザのうち、少なくとも当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置に対して送信し、
前記複数のユーザの分類は、前記複数のユーザを、所定のゲーム目標を達成していない未達成者グループと当該所定のゲーム目標を達成している達成者グループを含むグループに分類し、
前記所定のゲーム目標は、前記問題に正解することである、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームを提供するサーバ及び方法に関し、詳しくは、通信可能に接続された複数の端末装置を操作するユーザに対して所定のゲームを提供するサーバ及び方法に関する。
【背景技術】
【０００２】
従来より、ユーザ同士がチャット機能を用いてコミュニケーションを取りながらプレイすることができるゲームシステムが提案されている（例えば、特許文献１参照）。こうしたゲームシステムでは、ビデオチャットやテキストチャットによるリアルタイムなコミュニケーションを楽しみながら、ゲームをプレイすることができるようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２４９８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、こうしたチャット機能を有するゲームでは、複数のユーザ間でコミュニケーションを取りながらゲームを楽しむことができるものの、全てのユーザのメッセージが全てのユーザによって閲覧されてしまうと、ゲームを進行する上で適切とは言えない場合も想定され得る。例えば、複数のユーザでチームを構成し、このチームを構成する全てのユーザそれぞれがゲーム目標を達成する（例えば、クイズの問題に正解する）ことを目指すようなゲームでは、既にゲーム目標を達成したユーザ間で行われるコミュニケーションと、未だゲーム目標を達成していないユーザ間で行われるコミュニケーションとでは、その内容及び頻度が異なると考えられる。従って、チャット機能を有するゲームにおいて、より適切にユーザ間のコミュニケーションを取ることができる仕組みの提供が望まれる。
【０００５】
本発明の実施形態は、チャット機能を有するゲームにおいてより適切なユーザ間のコミュニケーションを実現することを目的の一つとする。本発明の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るサーバは、通信可能に接続された端末装置を操作するユーザに対して所定のゲームを提供するサーバであって、前記所定のプログラムを実行する１又は複数のコンピュータプロセッサを備え、前記所定のプログラムは、前記所定のゲームの進行を制御し、当該所定のゲームの進行に応じて当該所定のゲームに参加する複数のユーザを２以上のグループに分類するように構成されたゲーム進行制御モジュールと、前記複数のユーザの端末装置から、当該ユーザによって入力されたメッセージを受信するように構成されたメッセージ受信モジュールと、前記受信したメッセージを、前記複数のユーザのうち、当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置に対して送信するように構成されたメッセージ送信モジュールと、を備える。
【０００７】
本発明の一実施形態に係る方法は、１又は複数のコンピュータによって、通信可能に接続された端末装置を操作するユーザに対して所定のゲームを提供する方法であって、前記所定のゲームの進行を制御し、当該所定のゲームの進行に応じて当該所定のゲームに参加する複数のユーザを２以上のグループに分類し、前記複数のユーザの端末装置から、当該ユーザによって入力されたメッセージを受信し、前記受信したメッセージを、前記複数のユーザのうち、当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置に対して送信する。
【発明の効果】
【０００８】
本発明の様々な実施形態によって、チャット機能を有するゲームにおいてより適切なユーザ間のコミュニケーションを実現することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るサーバ１０を含むシステム１のネットワーク構成を概略的に示すブロック図。
【図２】一実施形態におけるプログラム５０のモジュール構成を概略的に示すブロック図。
【図３】一実施形態におけるゲーム処理の一例を示すフロー図。
【図４】一実施形態におけるゲーム用画面６０の一例を示す図。
【図５】一実施形態におけるクイズ処理の一例を示すフロー図。
【図６】一実施形態におけるゲーム用画面６０の一例を示す図。
【図７】一実施形態におけるゲーム用画面６０の一例を示す図。
【図８】一実施形態における正解者用画面７０の一例を示す図。
【図９】一実施形態におけるゲーム用画面６０の一例を示す図。
【図１０】一実施形態におけるステージ選択処理の一例を示すフロー図。
【図１１】一実施形態におけるゲーム用画面６０の一例を示す図。
【発明を実施するための形態】
【００１０】
図１は、本発明の一実施形態に係るサーバ１０を含むシステム１のネットワーク構成を概略的に示すブロック図である。図１に示すように、一実施形態におけるサーバ１０は、一般的なコンピュータとして構成される端末装置３０とインターネット等の通信網２０を介して通信可能に接続されており、この端末装置３０を操作するユーザに対して様々なゲームを提供することができる。なお、サーバ１０には端末装置３０以外の図示しない端末装置も通信可能に接続される。また、サーバ１０は、端末装置３０を操作するユーザに対してゲーム以外の様々なデジタルコンテンツを提供することができ、デジタルコンテンツの提供以外の様々なインターネットサービスを提供することができ、更に、それぞれ端末装置３０を操作する複数のユーザ間の様々なコミュニケーションを実現するプラットフォームサービス（ＳＮＳサービス）を提供することができる。
【００１１】
サーバ１０は、図示のとおり、ＣＰＵ（コンピュータプロセッサ）１１と、メインメモリ１２と、ユーザＩ／Ｆ１３と、通信Ｉ／Ｆ１４と、外部メモリ１５と、ディスクドライブ１６とを含み、これらの各構成要素がバス１７を介して互いに電気的に接続されている。ＣＰＵ１１は、外部メモリ１５からオペレーティングシステムやオンラインゲームの進行を制御するための制御用プログラム等の様々なプログラムをメインメモリ１２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ１２は、ＣＰＵ１１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００１２】
ユーザＩ／Ｆ１３は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、ＣＰＵ１１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ１４は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介して端末装置３０と通信可能に構成される。
【００１３】
外部メモリ１５は、例えば磁気ディスクドライブで構成され、オンラインゲームの進行を制御するための制御用プログラム等の様々なプログラムが記憶される。また、外部メモリ１５には、ゲームにおいて用いられる各種データも記憶され得る。外部メモリ１５に記憶され得る各種データは、サーバ１０と通信可能に接続されるサーバ１０とは物理的に別体のデータベースサーバに格納されてもよい。ディスクドライブ１６は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。例えば、記憶メディアに格納されたゲームアプリケーションやゲームデータ等のデータは、ディスクドライブ１６により読み込まれ、外部メモリ１５にインストールされる。
【００１４】
一実施形態において、サーバ１０は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバであり、端末装置３０に対してゲームサービスを提供することができる。端末装置３０は、ウェブページを表示するためのＨＴＭＬデータをサーバ１０から取得し、取得したＨＴＭＬデータを解析して、当該ウェブページを端末装置３０のユーザ（ゲームのプレイヤ）に提示することができる。このようなウェブページを介して提供されるゲームは、ブラウザゲームと称されることがある。外部メモリ１５には、このウェブページを表示するためのＨＴＭＬデータも記憶される。ＨＴＭＬデータは、ＨＴＭＬ等のマークアップ言語で記述されたＨＴＭＬ文書から成り、このＨＴＭＬ文書には、様々な画像が関連付けられる。また、ＨＴＭＬ文書には、ＡｃｔｉｏｎＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。
【００１５】
外部メモリ１５には、端末装置３０においてブラウザソフトウェア以外の実行環境上で実行されるゲームアプリケーションも格納され得る。このゲームアプリケーションには、ゲームを実行するためのゲームプログラムや当該ゲームプログラム実行時に参照される画像データ等の各種データを含めることができる。ゲームプログラムは、例えば、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）等のオブジェクト指向プログラミング言語で作成される。作成されたゲームプログラムは、各種データとともに、アプリケーションソフトウェアとして外部メモリ１５に記憶される。外部メモリ１５に記憶されたアプリケーションソフトウェアは、配信要求に応じて端末装置３０に配信される。サーバ１０から配信されたアプリケーションソフトウェアは、端末装置３０において、ＣＰＵ３１の制御に従って通信Ｉ／Ｆ３４を介して受信され、受信されたゲームプログラムが外部メモリ３５に送信され記憶される。このアプリケーションソフトウェアは、ユーザによる端末装置３０の操作に応じて起動され、端末装置３０に実装されたＮｇＣｏｒｅ（商標）やＡｎｄｒｏｉｄ（商標）等のプラットフォーム上で実行される。サーバ１０は、端末装置３０で実行されているゲームアプリケーションに対してゲームの進行に必要な各種データを提供する。また、サーバ１０は、端末装置３０から送信される各種データをユーザごとに記憶することで、ユーザごとにゲームの進行を管理することができる。
【００１６】
このように、サーバ１０は、ゲームサービスを提供するウェブサイトを管理し、当該ウェブサイトを構成するウェブページを端末装置３０からの要求に応じて配信することにより、ゲームを進行させることができる。また、サーバ１０は、このようなブラウザゲームとは代替的に、又は、ブラウザゲームに加えて、端末装置３０で実行されるゲームアプリケーションとの通信に基づいてゲームを進行させることができる。サーバ１０は、いずれの態様でゲームを提供するにしても、各ユーザを識別する識別情報ごとにゲームの進行に必要なデータを記憶することができる。詳細な説明は省略するが、サーバ１０は、ゲームの開始時のユーザの認証処理やゲームの進行に応じて発生する課金処理を行う機能を有することもできる。サーバ１０によって提供されるゲームには、アクションゲーム、ロールプレイングゲーム、スポーツ対戦ゲーム、カードゲーム、クイズゲーム等の任意のゲームが含まれる。サーバ１０のウェブサイト又はゲームアプリケーションによって実現されるゲームの種類は、本明細書において明示されたものに限られない。
【００１７】
端末装置３０は、一実施形態において、サーバ１０から取得したゲーム用ウェブサイトのウェブページをウェブブラウザ上で表示すると共にゲームアプリケーションを実行するためのアプリケーション実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、及びゲーム専用端末等が含まれ得る。
【００１８】
端末装置３０は、図示のとおり、ＣＰＵ（コンピュータプロセッサ）３１と、メインメモリ３２と、ユーザＩ／Ｆ３３と、通信Ｉ／Ｆ３４と、外部メモリ３５と、を含み、これらの各構成要素がバス３６を介して互いに電気的に接続されている。
【００１９】
ＣＰＵ３１は、外部メモリ３５からオペレーティングシステム等の様々なプログラムをメインメモリ３２にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ３２は、ＣＰＵ３１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭによって構成される。
【００２０】
ユーザＩ／Ｆ３３は、ユーザの入力を受け付ける情報入力装置と、ＣＰＵ３１の演算結果を出力する情報出力装置であり、タッチパネルを備える液晶ディスプレイなどの表示装置を含む。
【００２１】
通信Ｉ／Ｆ３４は、ハードウェア、ファームウェア、又は、ＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介してサーバ１０と通信可能に構成される。
【００２２】
外部メモリ３５は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、外部メモリ３５は、サーバ１０から通信Ｉ／Ｆ３４を介してゲームアプリケーションを受信した場合には、この受信したゲームアプリケーションを記憶する。
【００２３】
このようなアーキテクチャを有する端末装置３０は、例えば、ＨＴＭＬ形式のファイル（ＨＴＭＬデータ）を解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ１０から取得したＨＴＭＬデータを解釈して、受信したＨＴＭＬデータに対応するウェブページを表示することができる。また、端末装置３０は、ブラウザソフトウェアに組み込まれるプラグインソフト（例えば、アドビシステムズ社から提供されているＦｌａｓｈ  Ｐｌａｙｅｒ）を備えており、ＨＴＭＬデータに埋め込まれたＳＷＦ形式のファイルをサーバ１０から取得し、当該ＳＷＦ形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することができる。
【００２４】
端末装置３０においてゲームが実行されると、例えば、プログラムにより指示されたアニメーションや操作用アイコンが端末装置３０の画面に表示される。ユーザは、端末装置３０の入力インタフェースを用いてゲームを進行させるための指示を入力することができる。ユーザから入力された指示は、端末装置３０のブラウザやＮｇＣｏｒｅ（商標）等のプラットフォームの機能を通じてサーバ１０に伝達される。
【００２５】
次に、一実施形態におけるサーバ１０のＣＰＵ１１によって実行されるプログラム５０について説明する。プログラム５０は、外部メモリ１５等に記憶され、サーバ１０が提供可能な様々なゲームのうち、チャット機能を有するクイズゲーム（所定のゲーム）を提供する際に実行される。図２は、一実施形態におけるプログラム５０のモジュール構成を示すブロック図である。プログラム５０は、図示するように、クイズゲームの進行を制御し、当該クイズゲームの進行に応じてゲームに参加する複数のユーザを２以上のグループに分類するように構成されたゲーム進行制御モジュール５１と、複数のユーザの端末装置３０に対してクイズの問題を送信するように構成された問題送信モジュール５２と、複数のユーザの端末装置３０から、当該ユーザによって入力されたメッセージを受信するように構成されたメッセージ受信モジュール５３と、受信したメッセージに含まれる文字列と問題の正解を示す正解文字列との比較に基づいて、当該受信した文字列が当該正解を示すか否かを判定するように構成された文字列判定モジュール５４と、ユーザの端末装置３０からの入力情報に基づいて当該ユーザが問題に正解したか否かを判定するように構成された正解判定モジュール５５と、受信したメッセージを、複数のユーザのうち、当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置３０に対して送信するように構成されたメッセージ送信モジュール５６と、を備える。ここで、正解判定モジュール５５は、文字列判定モジュール５４による判定結果に基づいて受信したメッセージを入力したユーザが問題に正解したか否かを判定するように構成され得る。こうしたプログラム５０をＣＰＵ１１に実行させることによって、一実施形態におけるサーバ１０は、プログラム５０が備える各モジュールの機能に対応する手段又はユニットとして機能することができる。
【００２６】
次に、こうして構成された一実施形態におけるサーバ１０の動作について説明する。図３は、上述したクイズゲームを提供する際に、一実施形態におけるサーバ１０によって実行されるゲーム処理の一例を示すフロー図である。クイズゲームは、例えば、このクイズゲーム用のアプリケーション又はウェブページ等を介してクイズゲームへの参加エントリを複数のユーザから受け付けると共に、参加エントリを受け付けた複数のユーザの中からクイズゲームに参加する（一緒にプレイする）所定数（例えば、５人）のユーザをサーバ１０によって又はユーザの選択に基づいて特定し、この特定された所定数のユーザによってクイズゲームの開始が指示されたとき等に開始される。
【００２７】
ゲーム処理では、まず、図示するように、クイズゲームに用いられるゲーム用画面６０をクイズゲームに参加する各ユーザの端末装置３０に表示させる（ステップＳ１００）。一実施形態において、ゲーム用画面を含む各種画面は、サーバ１０がゲーム進行制御モジュール５１を実行することによって端末装置３０に表示させる。図４は、各ユーザの端末装置３０に表示されるゲーム用画面６０の一例である。ゲーム用画面６０は、図示するように、画面上端に位置しクイズゲームの状況を表示する状況表示領域６２と、この状況表示領域６２の下側に位置しクイズゲームの進行に用いられる情報を表示するゲーム用情報表示領域６４と、このゲーム用情報表示領域６４の下側に位置し各ユーザが入力及び送信した文字列（メッセージ）をチャットとして表示するチャット用情報表示領域６６と、このチャット用情報表示領域６６の下側に位置しユーザが文字列を入力するための文字列入力領域６８と、この文字列入力領域６８の右側に位置し文字列入力領域６８に入力された文字列のサーバ１０への送信をユーザが指示するための送信ボタン６９と、を有する。状況表示領域６２には、一実施形態では、クイズの問題に正解したユーザ（正解者）に関する情報、及び、クイズの解答時間（解答の制限時間）の残り時間が表示される。
【００２８】
図４は、クイズゲームの開始時におけるゲーム用画面６０の一例であり、図示するように、ゲーム用情報表示領域６４には、経路によって結ばれる複数のゲームステージ（ＧＳ）によって構成されたゲームステージマップが表示される。一実施形態におけるクイズゲームでは、ゲームステージマップ内の各ゲームステージにそれぞれクイズの問題のレベル（難易度）が設定されており、クイズゲームに参加する全てのユーザが各ゲームステージにおいてクイズの問題に正解することによって各ゲームステージをクリアし、次のゲームステージへと進むことができる。また、１のゲームステージが経路によって複数のゲームステージと結ばれている場合には、この複数のゲームステージの中からユーザによって選択されたゲームステージへと進むことができる。クイズゲームに参加する各ユーザは、順にゲームステージをクリアして最後のゲームステージ（ゴール）をクリアすることを目指す。
【００２９】
チャット用情報表示領域６６には、図示するように、クイズゲームに参加する各ユーザによって入力及び送信された文字列（メッセージ）が、この文字列を送信したユーザの情報（例えば、名称及びアバター画像等）と共に送信された順序に従って一覧表示される。具体的には、ユーザがゲーム用画面６０の文字列入力領域６８に所望の文字列を入力して送信ボタン６９を選択すると、文字列入力領域６８に入力されている文字列が端末装置３０からサーバ１０に対して送信される。そして、サーバ１０が、受信した文字列をクイズゲームに参加する各ユーザの端末装置３０に送信することによって、ユーザによって入力及び送信された文字列が各ユーザの端末装置３０においてチャット用情報表示領域６６に一覧表示される。なお、こうしたサーバ１０による文字列の送受信は、サーバ１０がメッセージ受信モジュール５３及びメッセージ送信モジュール５６をそれぞれ実行することによって行われる。このような文字列（メッセージ）の送受信（チャット機能）によって、クイズゲームに参加する各ユーザは、他のユーザとのコミュニケーションを楽しむことができる。
【００３０】
図３のゲーム処理に戻り、ゲーム用画面６０を各ユーザの端末装置３０に表示させると、次に、上述したゲームステージをユーザが選択するステージ選択処理（ステップＳ１１０）及びユーザがクイズの問題に解答するクイズ処理（ステップＳ１２０）が、クイズゲームの終了条件が成立するまで（ステップＳ１３０）、繰り返し実行される。ここで、一実施形態では、クイズゲームの開始の際のゲームステージ（スタート）は予め設定されており、ユーザによる選択は行われない（ステップＳ１１０のステージ選択処理はスキップされる）。そこで、まず、ステップＳ１２０のクイズ処理について説明する。
【００３１】
図５は、クイズ処理の一例を示すフロー図である。クイズ処理では、まず、図示するように、クイズの問題を各ユーザの端末装置３０に対して送信する（ステップＳ２００）。このステップは、サーバ１０が問題送信モジュール５２を実行することによって行われる。具体的には、一実施形態では、外部メモリ１５等に予め記憶されている複数のクイズの問題の中から、現在のゲームステージのレベルに適合する１つの問題をランダムに又は所定のルールに従って特定し、この特定した問題を各ユーザの端末装置３０に送信する。なお、各ゲームステージにこのゲームステージのレベルに適合する１つの問題を予め設定しておき、この設定されている問題を送信するようにしても良い。図６は、サーバ１０から送信された問題を受信した端末装置３０において表示されるゲーム用画面６０の一例である。図示するように、端末装置３０が問題を受信すると、受信した問題がゲーム用画面６０のゲーム用情報表示領域６４に表示される（図６の例では「２０２０年の夏季オリンピックの開催都市は？」という問題が表示されている）。
【００３２】
端末装置３０に対して問題を送信すると、次に、端末装置３０から文字列を受信し（ステップＳ２１０）、受信した文字列が問題の正解を示すか否かを判定する（ステップＳ２２０）。ここで、ステップＳ２１０は、サーバ１０がメッセージ受信モジュール５３を実行することによって行われ、ステップＳ２２０は、サーバ１０が文字列判定モジュール５４を実行することによって行われる。受信した文字列が問題の正解を示すか否かの判定は、受信した文字列と、問題の正解を示す正解文字列との比較に基づいて行われる。一実施形態において、問題の正解を示す正解文字列は、外部メモリ１５等に各クイズの問題に対応付けて予め記憶されている。受信した文字列と正解文字列との比較に基づく判定は、様々なルールを適用して行うことができる。例えば、受信した文字列と正解文字列とが完全一致する場合（例えば、正解文字列が「東京」である場合において、受信した文字列が「東京」である場合）に正解を示すと判定するルールを適用することができる。また、受信した文字列に正解文字列が含まれる場合（例えば、正解文字列が「東京」である場合において、受信した文字列が「答えは、東京！」である場合）に正解を示すと判定するルールを適用することができる。さらに、受信した文字列及び／又は正解文字列を所定の変換ルールで変換した変換後文字列を用いた比較に基づく判定を行うようにしても良い。例えば、所定の変換ルールとして、文字列を平仮名に変換するルールを適用すれば、正解文字列が平仮名で入力された場合（例えば、正解文字列が「東京」である場合において、受信した文字列が「とうきょう」である場合）であっても、受信した文字列が問題の正解を示すと判定することができる。所定の変換ルールの他の例としては、正解文字列をカタカナに変換するルール、又は、アルファベットに変換するルール等を挙げることができるが、これらに限定されない。また、受信した文字列から所定の文字を除去した除去後文字列と正解文字列との比較に基づく判定を行うようにしても良い。例えば、受信した文字列から除去する所定の文字としてスペースを適用すれば、正解文字列の文字間にスペースが挿入されて入力された場合（例えば、正解文字列が「東京」である場合において、受信した文字列が「東  京」である場合）であっても、受信した文字列が問題の正解を示すと判定することができる。受信した文字列から除去する所定の文字の他の例としては、句読点、又はその他の記号等を挙げることができるが、これらに限定されない。
【００３３】
そして、受信した文字列が問題の正解を示すと判定されない場合には、受信した文字列がそのまま各ユーザの端末装置３０に送信される（ステップＳ２５０）。ここで、ステップＳ２５０は、サーバ１０がメッセージ送信モジュール５６を実行することによって行われる。図６に例示するように、例えば、誤った解答を示す文字列（ユーザＢによる「ロンドン！」）や他のユーザに対する発言を示す文字列（ユーザＣによる「分かる人いる？」）は、ステップ２２０において問題の正解を示すと判定されないから、受信した文字列がそのまま各ユーザの端末装置３０に送信され、ゲーム用画面６０のチャット用情報表示領域６６にそのまま一覧表示される。このように、クイズゲームに参加する各ユーザは、クイズの問題に解答する際においても、文字列（メッセージ）の送受信（チャット機能）によって、他のユーザとのコミュニケーションを楽しむことができる。
【００３４】
一方、ステップＳ２２０において、受信した文字列が問題の正解を示すと判定された場合には、まず、受信した文字列を入力したユーザを問題に正解した正解者ユーザと判定する（ステップＳ２３０）。ここで、ステップＳ２３０は、サーバ１０が正解判定モジュール５５を実行することによって行われる。正解者ユーザと判定されると、サーバ１０がゲーム進行制御モジュール５１を実行することによって、そのユーザが正解者ユーザであることを示す情報がメインメモリ１２又は外部メモリ１５等に記憶され、この結果、クイズゲームに参加する複数のユーザが、正解者ユーザのグループと未だ問題に正解していない未正解者ユーザのグループとに分類される。
【００３５】
そして、正解文字列がユーザによって認識されないようにするための所定の処理を施して（ステップＳ２４０）、受信した文字列を各ユーザの端末装置３０に送信する（ステップＳ２５０）。ここで、ステップＳ２４０は、サーバ１０がメッセージ送信モジュール５６を実行することによって行われる。図７は、所定の処理が施された文字列が表示されているゲーム用画面６０の一例である。図示するように、ユーザＡによって入力及び送信された「答えは、東京！」という文字列（図６を参照）が、問題の正解を示すと判定されて「答えは、＊＊！」という文字列に加工（正解文字列が変換）されている。この例では、正解文字列に対応する文字をアスタリスク（＊）に変換するという処理を行っているが、これは例示であって、正解文字列がユーザによって認識されないようにすることができれば、その他の様々な処理を適用することができ、例えば、入力された文字列全体をアスタリスク等の他の文字に変換する処理や正解文字列に対応する文字又は文字列全体をモザイク表示する処理等を適用することができる。このように、受信した文字列が問題の正解を示すと判定された場合には、正解文字列がユーザによって認識されないように処理されて各ユーザの端末装置３０において表示されるから、他のユーザが正解文字列を認識してしまうのを防止することができる。さらに、上述したように、受信した文字列及び／又は正解文字列を所定の変換ルールで変換した変換後文字列を用いた比較に基づく判定を行うようにすることによって、正解文字列を容易に推測できるような文字列（例えば、正解文字列を平仮名、カタカナ又はアルファベットを用いて表現した文字列等）も問題の正解を示すと判定されてユーザが認識されないように処理されるから、他のユーザが正解文字列を認識してしまうのをより確実に防止することができる。
【００３６】
ここで、図７に例示するように、ステップＳ２３０において正解者ユーザと判定されたユーザは、ゲーム用画面６０において、その正解者ユーザに対応する画像が正解者として状況表示領域６２に表示される。そして、この正解者ユーザの端末装置３０には、ゲーム用画面６０に代えて、図８に例示する正解者用画面７０が表示されるようになる。こうした端末装置３０に表示させる画面の切り替えは、サーバ１０がゲーム進行制御モジュール５１を実行することによって行われる。正解者用画面７０は、図８に示すように、ゲーム用画面６０と同様に、状況表示領域６２と、ゲーム用情報表示領域６４と、チャット用情報表示領域６６と、文字列入力領域６８と、送信ボタン６９とを有するが、正解者用画面７０の状況表示領域６２には、クイズの問題に正解したユーザに関する情報に代えて、未だ正解していないユーザ（未正解者ユーザ）に関する情報が表示される。また、図示するように、正解者用画面７０のゲーム用情報表示領域６４には、クイズの問題に加えて、この問題の正解が表示される。正解者用画面７０においても、文字列入力領域６８及び送信ボタン６９を用いて正解者ユーザは文字列の入力及び送信を行うことができる。
【００３７】
ここで、ステップＳ２５０において、受信した文字列を各ユーザの端末装置３０に送信する際には、受信した文字列を入力したユーザが未正解者ユーザである場合には、未正解者ユーザの端末装置３０に加え、正解者ユーザの端末装置３０に対して（即ち、クイズゲームに参加する全てのユーザの端末装置３０に対して）受信した文字列を送信し、受信した文字列を入力したユーザが正解者ユーザである場合には、正解者ユーザの端末装置３０に対して受信した文字列を送信するようになっている。従って、正解者用画面７０のチャット用情報表示領域６６には、正解者ユーザ及び未正解者ユーザによって入力及び送信される文字列が表示される。この結果、正解者ユーザは、未正解者ユーザによる発言（入力及び送信される文字列）を確認しながら、正解者ユーザ間でコミュニケーションを行うことができる。一方、未正解者ユーザの端末装置３０に表示されているゲーム用画面６０のチャット用情報表示領域６６には、正解者ユーザによって入力及び送信される文字列は表示されず、未正解者ユーザによって入力及び送信される文字列のみが表示される。図９は、正解者ユーザの端末装置３０に図８に例示した正解者用画面７０が表示されている際に、未正解者ユーザの端末装置３０に表示されるゲーム用画面６０の一例である。図示するように、図８の正解者用画面７０のチャット用情報表示領域６６に表示されている正解者ユーザの発言（ユーザＡによる「難しい問題だった。」及びユーザＣによる「早く正解しないかな。」）は、図９のゲーム用画面６０のチャット用情報表示領域６６には表示されていない。ここで、正解者ユーザによる発言（文字列の入力及び送信）に応じて、ゲーム用画面６０の状況表示領域６２に表示されている正解者ユーザの画像を特別な表示態様（例えば、点滅等）とするようにしても良い。こうすれば、未正解者ユーザは、正解者ユーザの発言の内容は分からないものの、正解者ユーザが発言していることを知ることができ、例えば、これをきっかけとした未正解者ユーザ間でのコミュニケーションを楽しむことができる。
【００３８】
そして、上述した端末装置３０からの文字列の受信（ステップＳ２１０）、受信した文字列が問題の正解を示すか否かの判定（ステップＳ２２０）、正解を示す場合の正解者ユーザとの判定（ステップＳ２３０）、文字列の処理（ステップＳ２４０）及び文字列の送信（ステップＳ２５０）が、繰り返し実行され、クイズゲームに参加する全てのユーザが問題に正解するか、又は、全てのユーザが正解する前に解答の制限時間が経過すると（ステップＳ２６０）、クイズの結果を各端末装置３０に送信して（ステップＳ２７０）、このクイズ処理を終了する。ここで、ステップＳ２６０及びステップＳ２７０は、サーバ１０がゲーム進行制御モジュール５１を実行することによって行われる。全てのユーザが正解した場合には、例えば、このゲームステージをクリアしたことを示す情報等が正解者用画面７０のゲーム用情報表示領域６４に表示される。また、全てのユーザが正解する前に解答の制限時間が経過した場合には、例えば、このゲームステージをクリアできなったことを示す情報等がゲーム用画面６０及び正解者用画面７０のゲーム用情報表示領域６４に表示される。
【００３９】
図３のゲーム処理に戻り、クイズ処理を終了すると、次に、クイズゲームの終了条件が成立するまで（ステップＳ１３０）、ステージ選択処理（ステップＳ１１０）及びクイズ処理（ステップＳ１２０）が繰り返し実行される。クイズゲームの終了条件としては、例えば、クイズ処理においてゲームステージをクリアできなかったこと、又は、最後のゲームステージ（ゴール）をクリアしたこと等が含まれる。ここで、ステージ選択処理について説明する。
【００４０】
図１０は、ステージ選択処理の一例を示すフロー図である。ステージ選択処理では、まず、図示するように、ゲームステージの選択を受け付けるための選択受付情報を各ユーザの端末装置３０に対して送信する（ステップＳ３００）。このステップは、サーバ１０がゲーム進行制御モジュール５１を実行することによって行われる。図４のゲーム用画面６０を用いて説明したように、一実施形態におけるクイズゲームは、１のゲームステージが経路によって複数のゲームステージと結ばれている場合には、この複数のゲームステージの中からユーザによって選択されたゲームステージへと進むことができ、上述した選択受付情報は、直前にクリアしたゲームステージから進むことができる複数のゲームステージに関する情報に基づいて設定される。図１１は、サーバ１０から送信された選択受付情報を受信した端末装置３０において表示されるゲーム用画面６０の一例である。図示するように、端末装置３０が選択受付情報を受信すると、受信した選択受付情報がゲーム用画面６０のゲーム用情報表示領域６４に表示される。選択受付情報は、この例では、次に進むゲームステージを「左」又は「右」によって選択することをユーザに要求すると共に「左」及び「右」に対応する各ゲームステージの情報（例えば、設定されているクイズの問題のレベル）を含む。
【００４１】
端末装置３０に対して選択受付情報を送信すると、次に、端末装置３０から文字列を受信し（ステップＳ３１０）、受信した文字列が所定のコマンドを示すか否かを判定する（ステップＳ３２０）。ここで、ステップＳ３１０は、サーバ１０がメッセージ受信モジュール５３を実行することによって行われ、ステップＳ３２０は、サーバ１０が文字列判定モジュール５４を実行することによって行われる。受信した文字列が所定のコマンドを示すか否かの判定は、受信した文字列と、所定のコマンドに対応するコマンド文字列との比較に基づいて行われる。一実施形態において、所定のコマンドに対応するコマンド文字列は、クイズゲームの進行状況に応じて実行可能な所定のコマンドに対応するコマンド文字列が予め設定されており、例えば、図１１に例示したゲーム用画面６０が表示されている状況では、左方向を選択するコマンドに対応するコマンド文字列「左」及び右方向を選択するコマンドに対応するコマンド文字列「右」が実行可能なコマンドに対応するコマンド文字列として設定される。これらのコマンド文字列は例示であって、その他のコマンド文字列（例えば、その他の方向（上、下、直進等）を選択するコマンドに対応するコマンド文字列等）を適用することもできる。受信した文字列とコマンド文字列との比較に基づく判定は、上述した正解文字列との比較に基づく判定と同様に、様々なルールを適用して行うことができる。例えば、受信した文字列とコマンド文字列とが完全一致する場合に対応する所定のコマンドを示すと判定する（例えば、受信した文字列が「右」である場合に、コマンド文字列「右」に対応する右方向を選択するコマンドを示すと判定する）ルールを適用することができる。また、受信した文字列にコマンド文字列が含まれる場合に対応する所定のコマンドを示すと判定する（例えば、受信した文字列が「左！！」である場合に、コマンド文字列「左」に対応する左方向を選択するコマンドを示すと判定する）ルールを適用することができる。さらに、受信した文字列及び／又はコマンド文字列を所定の変換ルールで変換した変換後文字列を用いた比較に基づく判定を行うようにしても良い。例えば、所定の変換ルールとして、文字列を平仮名に変換するルールを適用すれば、コマンド文字列が平仮名で入力された場合（例えば、コマンド文字列が「右」である場合において、受信した文字列が「みぎ」である場合）であっても、受信した文字列がコマンド文字列に対応する所定のコマンドを示すと判定することができる。所定の変換ルールの他の例としては、コマンド文字列をカタカナに変換するルール、又は、アルファベットに変換するルール等を挙げることができるが、これらに限定されない。また、受信した文字列から所定の文字を除去した除去後文字列とコマンド文字列との比較に基づく判定を行うようにしても良い。例えば、受信した文字列から除去する所定の文字としてスペースを適用すれば、コマンド文字列の文字間にスペースが挿入されて入力された場合（例えば、コマンド文字列が「ひだり」である場合において、受信した文字列が「ひ  だ  り」である場合）であっても、受信した文字列がコマンド文字列に対応する所定のコマンドを示すと判定することができ��。受信した文字列から除去する所定の文字の他の例としては、句読点、又はその他の記号等を挙げることができるが、これらに限定されない。
【００４２】
そして、受信した文字列が所定のコマンドを示すと判定された場合には、このコマンドをこの文字列を送信したユーザからのコマンドとして設定する（ステップＳ３３０）。ここで、ステップＳ３３０は、サーバ１０がゲーム進行制御モジュール５１を実行することによって行われる。コマンドの設定は、具体的には、サーバ１０のメインメモリ１２又は外部メモリ１５等にユーザとコマンドとを関連付けて記憶することによって行われる。図１１に例示したゲーム用画面６０のゲーム用情報表示領域６４に示すように、コマンドの設定状況に応じて、各ユーザによるゲームステージの選択の状況を表示するようにしても良い（図１１の例では、選択可能なゲームステージ毎に（即ち、「左」及び「右」毎に）その時点におけるこのゲームステージを選択したユーザの数を表示している）。
【００４３】
続いて、受信した文字列を各ユーザの端末装置３０に送信する（ステップＳ３４０）。ここで、ステップＳ３４０は、サーバ１０がメッセージ送信モジュール５６を実行することによって行われる。
【００４４】
そして、上述した端末装置３０からの文字列の受信（ステップＳ３１０）、受信した文字列が所定のコマンドを示すか否かの判定（ステップＳ３２０）、所定のコマンドを示す場合のコマンドの設定（ステップＳ３３０）及び文字列の送信（ステップＳ３４０）が、繰り返し実行され、クイズゲームに参加する全てのユーザのコマンドが設定されるか、又は、ゲームステージの選択の制限時間が経過すると（ステップＳ３５０）、ゲームステージの選択を確定させて（ステップＳ３６０）、このステージ選択処理を終了する。ここで、ステップＳ３５０及びステップＳ３６０は、サーバ１０がゲーム進行制御モジュール５１を実行することによって行われる。ゲームステージの選択の確定は、様々なルールを適用して行うことができ、例えば、選択可能なゲームステージのうち選択したユーザの数が多いゲームステージへの選択を確定させるルールとすることができる。ゲームステージの選択が確定されると、選択が確定されたゲームステージが各ユーザに通知される（例えば、選択が確定されたゲームステージに関する情報をゲーム用情報表示領域６４に表示させる）。なお、直前にクリアしたゲームステージから進むことができるゲームステージが１つである場合には、ユーザによる選択の必要がないから、ステップＳ３００−Ｓ３５０をスキップして、ゲームステージの選択の確定（ステップＳ３６０）のみを行うようにしても良い。
【００４５】
以上説明した一実施形態におけるサーバ１０では、クイズゲームの進行に応じてこのクイズゲームに参加する複数のユーザを、問題に正解していない未正解者ユーザ（ゲーム目標を達成していない未達成者グループ）と問題に正解している正解者ユーザ（ゲーム目標を達成している達成者グループ）とに分類し、複数のユーザの端末装置３０からユーザによって入力された文字列（メッセージ）を受信し、受信した文字列を入力したユーザが未正解者ユーザ（第１のグループに分類されるユーザ）である場合には、この受信した文字列を、未正解者ユーザの端末装置３０に加え、正解者ユーザ（第２のグループに分類されるユーザ）の端末装置３０に対して送信し、受信した文字列を入力したユーザが正解者ユーザである場合には、この受信した文字列を、正解者ユーザの端末装置３０に対して送信する。従って、クイズゲームに参加するユーザは、未正解者／正解者に応じたユーザ間でのコミュニケーションを楽しむことができる。この結果、チャット機能を有するゲームにおいてより適切なユーザ間のコミュニケーションを実現することができる。
【００４６】
また、一実施形態におけるサーバ１０では、受信した文字列と所定の文字列（正解文字列／コマンド文字列）との比較に基づいて、この受信した文字列が所定の文字列に対応する（正解を示す／コマンドを示す）か否かを判定し、この判定結果に少なくとも基づいてクイズゲームの進行を制御する。従って、クイズゲームに参加するユーザは、文字列の送受信（チャット機能）によって他のユーザとのコミュニケーションを楽しむことができると共に、この文字列の送信によってクイズゲームを進行させることができる。即ち、チャット機能とより一層連携したゲームを提供することができ、この結果、ユーザがゲームの進行及びチャット機能によるコミュニケーションの一方のみに集中してしまうのを抑制することができる。
【００４７】
一実施形態のサーバ１０では、受信した文字列を入力したユーザが未正解者ユーザである場合には、この受信した文字列を、未正解者ユーザの端末装置３０に加え、正解者ユーザの端末装置３０に対して送信するようにしたが、正解者ユーザの端末装置３０に対して送信することなく、未正解者ユーザの端末装置３０に対して送信するようにしても良い。この場合であっても、クイズゲームに参加するユーザは、未正解者／正解者に応じたユーザ間でのコミュニケーションを楽しむことができる。
【００４８】
一実施形態のサーバ１０では、受信した文字列と正解文字列との比較に基づいて、この受信した文字列が正解を示すか否かを判定するようにしたが、こうした受信した文字列と正解文字列との比較に基づく方法以外の方法を適用して、ユーザが問題に正解したか否かを判定するようにしても良い。例えば、ゲーム用画面６０においてクイズの問題の解答の選択肢を表示すると共に、ユーザによって選択された選択肢を特定可能な情報を受け付けて、ユーザが問題に正解したか否かを判定する等、ユーザの端末装置３０からの様々な形式の入力情報に基づいてユーザが問題に正解したか否かを判定する方法を適用し得る。この場合、メッセージ受信モジュール５３及びメッセージ送信モジュール５６を実行することによってなされるメッセージの送受信（チャット機能）は、必ずしも文字列を含むメッセージを送受信する態様とする必要はなく、例えば、スタンプ等の画像のみを用いたメッセージを送受信する態様とすることもできる。
【００４９】
一実施形態のサーバ１０では、クイズゲームに参加する複数のユーザを、クイズの問題に正解していない未正解者ユーザとこの問題に正解している正解者ユーザとに分類して受信した文字列を送信するようにしたが、ゲームの進行に応じて複数のユーザを分類する際の基準・ルールはその他の様々な基準・ルールを適用し得る。例えば、ゲームの進行に応じて、このゲームに参加している複数のユーザが複数のチームに分けられて、チーム同士の対戦を行うようなゲームの場合には、このチームによる分類に応じて受信した文字列を送信するようにすることもできる。
【００５０】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【００５１】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び／又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【００５２】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【００５３】
１  システム
１０  サーバ
２０  通信網
３０  端末装置
５１  ゲーム進行制御モジュール
５２  問題送信モジュール
５３  メッセージ受信モジュール
５４  文字列判定モジュール
５５  正解判定モジュール
５６  メッセージ送信モジュール
６０  ゲーム用画面
７０  正解者用画面
【要約】
【課題】  チャット機能を有するゲームにおいてより適切なユーザ間のコミュニケーションを実現する。
【解決手段】  一実施形態に係るサーバは、クイズゲームの進行に応じてゲームに参加する複数のユーザを２以上のグループに分類するゲーム進行制御モジュールと、クイズの問題を送信する問題送信モジュールと、ユーザによって入力されたメッセージを受信するメッセージ受信モジュールと、受信したメッセージに含まれる文字列と問題の正解を示す正解文字列との比較に基づいて当該受信した文字列が当該正解を示すか否かを判定する文字列判定モジュールと、ユーザが問題に正解したか否かを判定する正解判定モジュールと、受信したメッセージを、複数のユーザのうち、当該メッセージを入力したユーザと同じグループに分類されるユーザの端末装置に対して送信するメッセージ送信モジュールとを備えるプログラムを実行可能なように構成されている。
【選択図】  図２【図１】
0005586771.tif 000002
【図２】
0005586771.tif 000003
【図３】
0005586771.tif 000004
【図４】
0005586771.tif 000005
【図５】
0005586771.tif 000006
【図６】
0005586771.tif 000007
【図７】
0005586771.tif 000008
【図８】
0005586771.tif 000009
【図９】
0005586771.tif 000010
【図１０】
0005586771.tif 000011
【図１１】
0005586771.tif 000012