(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-23
(45)【発行日】2024-09-02
(54)【発明の名称】ゲームプログラム
(51)【国際特許分類】
A63F 13/55 20140101AFI20240826BHJP
A63F 13/53 20140101ALI20240826BHJP
A63F 13/80 20140101ALI20240826BHJP
A63F 13/847 20140101ALI20240826BHJP
【FI】
A63F13/55
A63F13/53
A63F13/80 E
A63F13/847
(21)【出願番号】P 2021122524
(22)【出願日】2021-07-27
【審査請求日】2023-06-23
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】須貝 一晃
(72)【発明者】
【氏名】宮下 兼太朗
(72)【発明者】
【氏名】山崎 徹
【審査官】前地 純一郎
(56)【参考文献】
【文献】特開2020-168481(JP,A)
【文献】特開2004-016443(JP,A)
【文献】reflectの紹介とプレイ感想(公開終了),フリーゲームで遊ぼう![online],2018年06月24日,インターネット<URL:https://tkoolgamerev.com/tkool-mv/reflect>,[2024年3月29日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行されるゲームプログラムであって、
前記コンピュータ
を、
ゲームに設定された少なくとも1つのゲートオブジェクトを表示する
手段、
方向オブジェクト及び少なくとも1つのユーザオブジェクトを含む複数のオブジェクトを配置する配列オブジェクトを表示する
手段、
前記少なくとも1つのユーザオブジェクトに対するユーザの操作に基づいて、前記少なくとも1つのユーザオブジェクトの位置を更新する
手段、
前記配列オブジェクトにおいて前記少なくとも1つのゲートオブジェクトから移動する移動オブジェクトを表示する
手段、
前記少なくとも1つのユーザオブジェクトの位置
が、前記移動オブジェクト
が表示されないセルの位置
に含まれるか否かに基づいて前記少なくとも1つのユーザオブジェクトの位置の正解を判定する
手段、
として機能させ、
前記方向オブジェクトは、前記移動オブジェクトが移動する移動方向を変更する、ゲームプログラム。
【請求項2】
前記配列オブジェクトは、第1の方向と前記第1の方向に直交する第2の方向により規定された複数のセルにより構成される、
請求項1に記載のゲームプログラム。
【請求項3】
前記移動オブジェクトは、セルの一辺から入り他の一辺から出る光線である、
請求項2に記載のゲームプログラム。
【請求項4】
前記方向オブジェクトは、前記ゲームに設定されたセルに固定される、
請求項
1に記載のゲームプログラム。
【請求項5】
前記コンピュータを
前記ユーザと異なる他のユーザの操作に基づいて、前記少なくとも1つのユーザオブジェクトの位置を更新する
手段としてさらに
機能させる、
請求項
1に記載のゲームプログラム。
【請求項6】
前記移動オブジェクトを表示する
手段は、前記ゲームに設定された制限時間が経過したことに応答して前記移動オブジェクトを表示する
手段を含む、
請求項1から
5の何れか1項に記載のゲームプログラム。
【請求項7】
前記コンピュータを
前記ゲームに設定された制限時間までの残り時間に応じて前記少なくとも1つのゲートオブジェクトの表示態様を変えて表示する
手段としてさらに
機能させる、
請求項1から
6の何れか1項に記載のゲームプログラム。
【請求項8】
前記コンピュータを
前記正解の判定結果に応じて前記少なくとも1つのユーザオブジェクトの表示態様を変えて表示する
手段としてさらに
機能させる、
請求項1から
7の何れか1項に記載のゲームプログラム。
【請求項9】
前記正解を判定する
手段は、前記移動オブジェクトが表示されないセルを安全セルとして取得し、前記少なくとも1つのユーザオブジェクトの位置が前記安全セルの位置に含まれるか否かに応じて正解を判定する
手段を含む、
請求項
1に記載のゲームプログラム。
【請求項10】
前記コンピュータを
前記正解を判定したことに応答して、前記安全セルを示す安全セルオブジェクトを表示する
手段としてさらに
機能させる、
請求項
9に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ゲームプログラムに関する。
【背景技術】
【0002】
スマートフォン等のコンピュータ端末において、ユーザが複数のセルに配置されたパネルを組み合わせて経路を形成するパズルゲームが知られている。
【0003】
例えば、特許文献1には、ユーザが複数の要素の配置を変更して経路を形成するゲームが記載されている。特許文献2には、ユーザがオブジェクトを選択して生成した経路をスタート地点とゴール地点に基づいて正誤判定をするゲームが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-117389号公報
【文献】特開2020-168133号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
この発明の目的は、パズルゲームの興趣性を一層高めることを可能にする技術を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するためにこの発明の一態様は、コンピュータによって実行されるプログラムであって、ゲームに設定された少なくとも1つのゲートオブジェクトを表示することと、方向オブジェクト及び少なくとも1つのユーザオブジェクトを含む複数のオブジェクトを配置する配列オブジェクトを表示することと、少なくとも1つのユーザオブジェクトに対するユーザの操作に基づいて、少なくとも1つのユーザオブジェクトの位置を更新することと、配列オブジェクトにおいて少なくとも1つのゲートオブジェクトから移動する移動オブジェクトを表示することと、少なくとも1つのユーザオブジェクトの位置と移動オブジェクトの位置とに基づいてユーザオブジェクトの位置の正解を判定することと、を上記コンピュータに実行させるようにした。
【発明の効果】
【0007】
この発明の一態様に係るゲームプログラムは、パズルゲームの興趣性を一層高めることを可能にする。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態に係るゲームプログラムに関連するゲームシステムの全体構成の一例を示す図である。
【
図2】
図2は、
図1に示したゲームシステムにおけるサーバの機能構成の一例を示す図である。
【
図3】
図3は、
図1に示したゲームシステムにおけるユーザ端末の機能構成の一例を示す図である。
【
図4】
図4は、実施形態に係るユーザ端末が有するオブジェクトタイプテーブルを例示する図である。
【
図5】
図5は、実施形態に係るゲームプログラムによって実現されるユーザ端末に表示される画像の例を示す図である。
【
図6】
図6は、実施形態に係るユーザ端末の情報処理動作の一例を示すフローチャートである。
【
図7】
図7は、実施形態に係るユーザ端末の正解判定動作の一例を示すフローチャートである。
【
図8】
図8は、実施形態に係るゲームプログラムによって実現されるユーザ端末に表示される画像の例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照してこの発明に係わる実施形態を説明する。なお、以降、説明済みの要素と同一又は類似の要素には同一又は類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一又は類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあり、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【0010】
ゲームプログラムは、ゲームのプレイヤ(以下、「ユーザ」という)によって使用される端末装置(以下、「ユーザ端末」という)上でゲームを実現させるためのプログラムである。以下では、ゲームを実現させるためのプログラムを、一般的なコンピュータの機能を実現させるためのプログラムと区別して、ゲームプログラムと呼ぶ。
【0011】
ゲームプログラムによって実現されるゲームは、例えば、パズルゲームである。ゲームプログラムによって実現されるゲームは、ロールプレイングゲーム(RPG)、アクションゲーム、アドベンチャーゲーム、シミュレーションゲーム、育成ゲーム、シューティングゲーム、スポーツゲーム、パズルゲーム等、あらゆる分野のゲームの一部(ミニゲーム、クエスト、イベント等)のパズルゲームであり得る。
【0012】
ゲームプログラムは、ゲーム空間内に種々のオブジェクトを配置し、ゲームを実現し得る。ゲーム空間は、ゲームプログラムによって実現される種々のオブジェクトを配置するための空間である。ゲーム空間は、3次元(3D)で表現された空間であるものとして説明するが、2次元(2D)で表現された空間であってもよい。ゲーム空間は、仮想的な種々のオブジェクトを配置するための仮想空間の一例である。仮想空間は、3次元で表現された空間であってもよいし、2次元で表現された空間であってもよい。
【0013】
ゲームプログラムは、ゲーム空間内に少なくとも1つのゲートオブジェクトを配置し、ゲートオブジェクトから移動する移動オブジェクトを表示するゲームであって、ゲーム空間内に配置されたユーザオブジェクトをユーザの操作に従って移動するゲームを実現する。ゲームは、少なくとも一つの問題を含む。ゲートオブジェクトは、問題毎に設定されてもよい。ゲームに1つの問題のみが設定される場合、「問題」の表記は「ゲーム」と読み替えてもよい。ゲームに複数のユーザオブジェクトが設定される場合、複数のユーザオブジェクトのそれぞれは、各ユーザオブジェクトと関連付けられた各ユーザにより操作されてもよい。
【0014】
ゲームは、ゲーム空間内に配置された配列オブジェクト内の複数のセルのうち、ゲートオブジェクトから移動する移動オブジェクトが通過しない安全セルにユーザがユーザオブジェクトを制限時間内に移動させるものである。ゲームは、複数のユーザが同時にプレイする場合、各ユーザが各ユーザオブジェクトを移動することができるものである。
【0015】
種々のオブジェクトは、キャラクタのオブジェクトを含む。キャラクタは、人間や擬人化キャラクタ等のキャラクタに限られるものではなく、任意のキャラクタであってもよい。キャラクタのオブジェクトは、動きのあるオブジェクトである。キャラクタのオブジェクトは、例えば、ゲーム空間内を移動するオブジェクトである。キャラクタのオブジェクトは、ユーザが操作可能なキャラクタのオブジェクトを含む。キャラクタのオブジェクトは、ユーザが操作不可能なNPC(Non Player Character)のオブジェクトを含む。種々のオブジェクトは、背景オブジェクトを含む。背景オブジェクトは、ゲームの背景を構成するオブジェクトである。背景オブジェクトは、ユーザが操作可能な背景オブジェクトを含む。背景オブジェクトは、ユーザが操作不可能であるが、キャラクタのオブジェクトが操作可能な背景のオブジェクトを含む。背景オブジェクトは、ユーザが操作不可能、かつ、キャラクタのオブジェクトが操作不可能な背景のオブジェクトを含む。種々のオブジェクトは、種々のUI(User Interface)オブジェクトを含む。UIオブジェクトは、ユーザの指示を入力可能にするオブジェクトを含む。UIオブジェクトは、ユーザへ情報を示すオブジェクトを含む。
【0016】
種々のオブジェクトは、配列オブジェクトを含む。配列オブジェクトは、第1の方向と第1の方向に直交する第2の方向により規定された複数のセルにより構成される。セルは、配列オブジェクトにおいて複数のオブジェクトの各々が配置される区分けされた領域である。各セルは、例えば、矩形のセルである。ここでは、各セルは正方形で構成されるものとする。配列オブジェクトは、例えば、複数のセルをグリッド状に配列するオブジェクトである。配列オブジェクトは、複数のオブジェクトを配列するオブジェクトである。セルは、マス目、又はパネルともいう。複数のオブジェクトの各々が配置されるセルは、オブジェクトの位置ともいう。複数のオブジェクトは、ユーザが操作不可能な固定オブジェクト、及びユーザが操作可能なユーザオブジェクトを含む。固定オブジェクトは、移動オブジェクトの移動を制御するオブジェクトである。移動オブジェクトは、ゲートオブジェクトから移動するオブジェクトである。ゲートオブジェクトは、配列オブジェクトの外縁の一部を構成するセルのうち1つのセルに関連付けられて配置されるオブジェクトである。配列オブジェクトの外縁の一部を構成するセルは、末端セルと通常セルを含む。末端セルは、移動オブジェクトの移動方向に沿って隣接するセルを有しないセルを指す。配列オブジェクトの外縁の一部を構成するセルのうち、末端セルでないセルは通常セルであるとする。通常セルは、固定オブジェクト又はユーザオブジェクトが配置されていない配列オブジェクト内のセルを指す。ゲートオブジェクトは、移動オブジェクトのスタート地点である。ゲートオブジェクトが関連付けられるセルは、スタートセルともいう。ゲートオブジェクトは、ゲートオブジェクトの位置情報、及びゲートオブジェクトから移動オブジェクトが移動する方向を示す情報と関連付けられる。ゲートオブジェクトの位置情報は、ゲートオブジェクトが関連付けられるスタートセルの位置情報を含む。移動オブジェクトは、例えば、セルの一辺から入り他の一辺から出る光線である。固定オブジェクトは、例えば、通過オブジェクト、及び方向オブジェクトを含む。固定オブジェクトは、ゲームに設定された配列オブジェクト内のセルに固定される。通過オブジェクトは、移動オブジェクトを通過させるオブジェクトである。通過オブジェクトは、移動オブジェクトの移動方向を維持する。方向オブジェクトは、移動オブジェクトが移動する移動方向を変更するオブジェクトである。方向オブジェクトは、例えば、光線を反射する反射板である。ユーザオブジェクトは、ゲームに設定された配列オブジェクト内の位置に配置される。ユーザオブジェクトの位置は、ユーザの操作に基づいて変更され得る。配列オブジェクトは少なくとも1つのユーザオブジェクトを含む。固定オブジェクトは、上述のオブジェクトに限られず、ゲームに設定された他のオブジェクトを含んでもよい。
【0017】
種々のオブジェクトは、テキストオブジェクトを含んでもよい。テキストオブジェクトは、テキスト情報を含むオブジェクトである。テキスト情報は、ゲームの進行に応じて表示されるテキスト情報を含む。テキスト情報は、例えば、指示文、又は正解を示すメッセージ等である。テキストオブジェクトは、ユーザが操作不可能なオブジェクトを含む。種々のオブジェクトは、インジケータを含んでもよい。インジケータは、時間に関する情報を含むオブジェクトである。時間に関する情報は、制限時間、及び残り時間等を含む。インジケータは、ユーザが操作不可能なオブジェクトを含む。種々のオブジェクトは、上述のオブジェクトの他、ゲームの進行に関連するゲーム進行オブジェクトを含む。
【0018】
ゲームプログラムは、1台のユーザ端末でローカルにゲームを実現させるゲームプログラム、ユーザ端末とサーバに協働してゲームを実現させるゲームプログラム、サーバ経由で又はサーバを介さず複数のユーザ端末に協働してゲームを実現させるゲームプログラム等であり得る。以下では単なる一例として、サーバがゲームプログラムを包括的に管理し、ユーザ端末からの要求に応じてゲームプログラム及び関連データ等を送信し、実際のゲーム進行は主にユーザ端末において実現されるゲームシステムについて説明する。また、以下では主に3次元のゲーム空間と3Dのオブジェクトで表現されるゲームに関して説明するが、これに限られるものではなく、本実施形態は2次元のゲーム空間と2Dのオブジェクトで表現されるゲームにも適用可能である。
【0019】
(1)構成
(1-1)ゲームシステム
図1は、第1の実施形態に係るゲームプログラムに関連するゲームシステム1の全体構成の一例を示す図である。
ゲームシステム1は、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200との間でネットワークNWを介して通信可能である。サーバ200には、任意の数のユーザ端末100が接続可能であるが、簡単のために1つのユーザ端末100についてのみ詳細な構成を図示し説明する。
【0020】
ネットワークNWは、例えばインターネットであり、LAN(Local Area Network)、WAN(Wide Area Network)、移動通信網、有線電話網、FTTH(Fiber To The Home)、CATV(Cable Television)網等のアクセス網を含み得る。
【0021】
ユーザ端末100は、ゲームをプレイするユーザによって使用される端末である。ユーザ端末100は、ゲームプログラムを実行することによりゲームを実現させ、ゲーム進行に応じた表示データに基づく画像を表示する。画像は、ゲーム空間に配置された複数のオブジェクトを描画した画像である。ユーザ端末100は、例えば、スマートフォン、タブレット端末、ノート型パーソナルコンピュータ等の携帯端末である。ユーザ端末100は、デスクトップ型パーソナルコンピュータのような据置型コンピュータであってもよい。ユーザ端末100はまた、ゲームプレイに適した専用のゲーム端末であってもよい。以下では一例としてユーザ端末100が、タッチスクリーンを備えるスマートフォンであるものとして説明する。
【0022】
サーバ200は、例えばゲーム開発業者等によって運営及び管理される装置である。サーバ200は、ゲームプログラム及びユーザ情報を包括的に管理し、ユーザ端末100におけるゲームの進行を支援する。サーバ200は、ワークステーションやパーソナルコンピュータ等の汎用コンピュータであってよい。例えばサーバ200は、ネットワークNWを介してユーザ端末100からユーザ情報や種々の要求を受け付け、ネットワークNWを介してユーザ端末100にゲームプログラムや関連データを送信する。サーバ200は、同時に複数のユーザ端末100との間で情報の送受信が可能であり、複数のユーザ端末100におけるゲームの進行を並行して支援し得る。
【0023】
ユーザ端末100は、サーバ200からゲームプログラム及び必要な設定データを一度に受信し、以後はサーバ200と通信することなくゲームを進行させてもよい。又はユーザ端末100は、ゲームの進行に応じて随時サーバ200と通信し、その都度必要なゲームプログラム又はデータをサーバ200から受信するようにしてもよい。
【0024】
(1-2)ハードウェア構成
(1-2-1)サーバ
図1に示すように、サーバ200は、ハードウェアとして、プロセッサ2001と、メモリ2002と、ストレージ2003と、通信インタフェース(通信I/F)2004と、入出力インタフェース(入出力I/F)2005とを備え、これらがバス2006を介して互いに電気的に接続される。
【0025】
プロセッサ2001は、サーバ200全体の動作を制御する。プロセッサ2001は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の汎用プロセッサを含む。プロセッサ2001は、汎用プロセッサに限らず、ASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)等の専用プロセッサであってもよい。
【0026】
メモリ2002は、主記憶装置であり、ROM(Read Only Memory)及びRAM(Random Access Memory)等を含む。
【0027】
ストレージ2003は、補助記憶装置であり、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD:Solid State Drive)等の不揮発性記憶装置を含む。ストレージ2003は、プロセッサ2001により実行されるプログラムや、プログラムの実行に必要な設定データ等を記憶する。プログラムの一部は、ROMに記憶されてもよい。
【0028】
プロセッサ2001は、ストレージ2003からプログラムを読み出してメモリ2002に展開し、展開したプログラムを解釈及び実行することによって、後述する処理機能を実現し得る。
【0029】
通信インタフェース(通信I/F)2004は、ネットワークNWを介してユーザ端末100等の外部装置と通信するためのモジュールであり、送受信のための信号処理回路、光コネクタ等を含む。通信インタフェース2004は、例えば光通信モジュールを含んでもよい。
【0030】
入出力インタフェース(入出力I/F)2005は、キーボードやマウス等の入力装置を通じてオペレータが入力した操作データを取り込むとともに、出力データを液晶又は有機EL(Electro Luminescence)ディスプレイやスピーカ等の出力装置に出力する。
【0031】
(1-2-2)ユーザ端末
図1に示すように、ユーザ端末100は、ハードウェアとして、プロセッサ1001と、メモリ1002と、ストレージ1003と、センサ1004と、通信インタフェース(通信I/F)1005と、入出力インタフェース(入出力I/F)1006と、タッチスクリーン1007とを備え、これらがバス1008を介して互いに電気的に接続される。
【0032】
プロセッサ1001は、ユーザ端末100の全体の動作を制御する。プロセッサ1001は、例えば、CPU、MPU、GPU等の汎用プロセッサを含む。プロセッサ1001もまた、汎用プロセッサに限らず、ASIC又はFPGA等の専用プロセッサであってもよい。
【0033】
プロセッサ1001は、ストレージ1003からプログラムを読み出してメモリ1002に展開し、展開したプログラムを解釈及び実行することによって、後述する処理機能を実現し得る。
【0034】
メモリ1002は、主記憶装置であり、ROM及びRAM等を含む。
【0035】
ストレージ1003は、補助記憶装置であり、内蔵又は外付けの半導体メモリ(例えばフラッシュメモリ)等を含む。ストレージ1003は、プロセッサ1001により実行されるプログラムや、プログラムの実行に必要な設定データ等を記憶する。プログラムの一部は、ROMに記憶されてもよい。
【0036】
センサ1004は、例えば、イメージセンサ、加速度センサ、角速度センサ、地磁気センサ、GPSセンサ、近接センサ、環境光センサ等である。センサ1004は、感知された種々の情報を電気信号に変換し、出力する。
【0037】
通信インタフェース(通信I/F)1005は、ネットワークNWを介してサーバ200等の外部装置と通信するためのモジュールであり、送受信のための信号処理回路、アンテナ、LAN端子等を含む。通信インタフェース1005は、例えば、移動通信用のモジュール、無線/有線LAN用のモジュール、近距離無線通信用のモジュール等を含み得る。
【0038】
入出力インタフェース(入出力I/F)1006は、外部装置から入力データを取り込むとともに、出力データを外部装置に出力する。入出力インタフェース1006は、例えば、ユーザ端末100の物理ボタンや、ユーザ端末100に内蔵されたスピーカ、USB(Universal Serial Bus)ポート等を含み得る。
【0039】
タッチスクリーン1007は、入力部1071と、表示部1072とを備え、ユーザの入力操作を受け付けるとともにユーザに表示データに基づく画像を提示する機能を有する。
【0040】
入力部1071は、例えば静電容量式や抵抗膜式のタッチパネルである。入力部1071は、ユーザが指やタッチペン(スタイラスペン)で触れた接触位置を検知し、接触位置の座標情報を生成する。
【0041】
表示部1072は、例えば液晶ディスプレイや有機ELディスプレイであり、表示データに基づく種々の画像を表示する。
【0042】
ユーザ端末100は、入出力インタフェース1006を介して接続される、キーボード、マウス、コントローラ等の外部入力装置からユーザの操作を受け付けることもできる。ユーザ端末100は、入出力インタフェース1006を介して接続される、メモリカード等の外部記憶装置からゲームプログラム及び関連データを取得してもよい。ユーザ端末100は、入出力インタフェース1006を介して接続される、ディスプレイやスピーカ等の外部出力装置に表示情報を出力することもできる。ユーザ端末100は、入出力インタフェース1006を介して接続される、メモリカード等の外部記憶装置をストレージ1003として使用してもよい。ユーザ端末100はまた、センサ1004からの信号をユーザの操作として受け付けてもよい。
【0043】
(1-3)機能構成
(1-3-1)サーバ
図2は、
図1に示したゲームシステム1におけるサーバ200の機能構成の一例を示す図である。なお、一般的なコンピュータの機能構成及びゲームの実現に必要な公知の構成については、図示及び説明を省略する。
【0044】
サーバ200は、各ユーザ端末100と通信し、ユーザ端末100におけるゲームの進行を支援する機能を有する。例えば、サーバ200は、各ユーザ端末100からの要求に応じて、各ユーザ端末100にゲームプログラムや、ゲームプログラムの実行に必要な関連データ等を送信する機能を有する。
サーバ200は、制御部210と、記憶部220とを備える。
【0045】
記憶部220は、ストレージ2003により実現され得る。記憶部220は、ゲームプログラム記憶部221と、ゲーム情報記憶部222と、ユーザ情報データベース(DB)223とを備える。
【0046】
ゲームプログラム記憶部221は、ゲームプログラムを記憶する。
【0047】
ゲーム情報記憶部222は、ゲームプログラムを実行する際に参照される種々のゲーム情報を記憶する。
【0048】
ユーザ情報データベース(DB)223は、各ユーザ端末100に関連付けられるユーザに関する情報を記憶するデータベースであり、例えば、ユーザアカウント情報を記憶する。
【0049】
制御部210は、プロセッサ2001及びメモリ2002により実現され得る。制御部210は、サーバ200全体の機能を制御する。制御部210は、ゲームプログラム記憶部221に記憶されたゲームプログラムを実行することにより、受信制御部211、送信制御部212及びゲーム進行部213として機能し得る。
【0050】
受信制御部211は、各ユーザ端末100から、ユーザ情報、プログラム又は関連データの送信要求、各ユーザ端末100におけるゲームの進行状況に関する情報等を受け付ける。
【0051】
送信制御部212は、各ユーザ端末100に、要求されたプログラム又は関連データ、あるいは更新されたプログラム等を送信する。送信制御部212はまた、各ユーザ端末100にゲームの進行状況に関する情報の送信を要求し得る。
【0052】
ゲーム進行部213は、ゲームプログラムに記述されたコードに従って、ゲーム情報記憶部222に記憶されたゲーム情報及びユーザ情報データベース223に記憶されたアカウント情報を参照し、各ユーザ端末100におけるゲームの進行状況を管理する。ゲーム進行部213はまた、各ユーザ端末100からの情報収集の要否や、各ユーザ端末100へのデータ送信の要否を判定し得る。
【0053】
例えば、制御部210は、受信制御部211により、ユーザ端末100からゲームプログラムの送信要求を受け付け、ゲーム進行部213により、当該ユーザ端末100に送信すべきゲームプログラムと関連データを決定し、送信制御部212により、決定されたゲームプログラム及び関連データをユーザ端末100に送信する。
【0054】
(1-3-2)ユーザ端末
図3は、
図1に示したゲームシステム1において使用され得るユーザ端末100の機能構成の一例を示す図である。なお、一般的なコンピュータの機能構成及びゲームの実現に必要な公知の構成については、図示及び説明を省略する。
ユーザ端末100は、制御部110と、記憶部120とを含む。
【0055】
記憶部120は、ストレージ1003により実現され得る。記憶部120は、ゲームプログラム記憶部121と、ゲーム情報記憶部122とを含む。
【0056】
ゲームプログラム記憶部121は、ゲームプログラムを記憶する。
【0057】
ゲーム情報記憶部122は、ゲームプログラムを実行する際に参照される種々のゲーム情報を記憶する。ゲーム情報は、例えば、ゲーム空間に配置されるオブジェクトの情報を含む。オブジェクトの情報は、オブジェクトの位置情報を含み得る。ゲーム情報記憶部122は、オブジェクトデータ1221、オブジェクトタイプテーブル1222、配列オブジェクト管理情報1223、制限時間情報1225、及びクリア条件情報1226を含む。ゲーム情報記憶部122は、ゲーム情報を表示する表示データを生成する際に参照される画像、音声及び音楽等の表示情報を記憶する。
【0058】
オブジェクトデータ1221は、配列オブジェクト、ゲートオブジェクト、固定オブジェクト、ユーザオブジェクト、移動オブジェクト、及びゲーム進行オブジェクトを構成するデータである。
【0059】
オブジェクトタイプテーブル1222は、各オブジェクトを識別するオブジェクトタイプと、各オブジェクトに設定された移動オブジェクトの制御態様を規定するデータを格納するテーブルである。移動オブジェクトの制御態様は、各オブジェクトが配置されたセルにおける移動オブジェクトの制御態様である。オブジェクトタイプテーブル1222は、末端セルにおける移動オブジェクトの制御態様を規定するデータを格納する。オブジェクトタイプテーブル1222のオブジェクトタイプで示される末端セルは、固定オブジェクト又はユーザオブジェクトが配置されていない末端セルを指す。オブジェクトタイプテーブル1222は、通常セルにおける移動オブジェクトの制御態様を規定するデータを格納する。オブジェクトタイプテーブル1222のオブジェクトタイプで示される通常セルは、固定オブジェクト又はユーザオブジェクトが配置されていない配列オブジェクト内のセルを指す。通常セルは、末端セルを含まない。移動オブジェクトの制御態様は、通過、及び方向変更を含む。「通過」は、移動オブジェクトの移動方向を維持したまま通過させる。例えば、「通過」は以下のような制御を含む。移動オブジェクトがセルの上辺から入ってきた場合、「通過」は、下辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの下辺から入ってきた場合、「通過」は、上辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの右辺から入ってきた場合、「通過」は、左辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの左辺から入ってきた場合、「通過」は、右辺から出る態様で移動オブジェクトを制御する。
【0060】
「方向変更」は、移動オブジェクトの移動方向を変更することを含む。「方向変更」は、移動オブジェクトを反射することを含む。例えば、「方向変更」は固定オブジェクトのオブジェクトタイプに応じて異なる以下のような制御を含む。移動オブジェクトがセルの上辺から入ってきた場合、「方向変更」は、左辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの上辺から入ってきた場合、「方向変更」は、右辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの右辺から入ってきた場合、「方向変更」は、上辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの右辺から入ってきた場合、「方向変更」は、下辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの左辺から入ってきた場合、「方向変更」は、上辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの左辺から入ってきた場合、「方向変更」は、下辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの下辺から入ってきた場合、「方向変更」は、左辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの下辺から入ってきた場合、「方向変更」は、移動オブジェクトを右辺から出る態様で制御する。「方向変更」は、移動オブジェクトを停止する。停止は、移動オブジェクトの移動方向を逆方向に変えることを含む。
【0061】
固定オブジェクトの種類は、ゲームに含まれる問題毎に設定されてもよい。オブジェクトタイプテーブル1222の構成例については後述する。
【0062】
配列オブジェクト管理情報1223は、配列オブジェクトを構成する複数のセルを管理する管理情報である。配列オブジェクト管理情報1223は、複数のセルの位置情報と各セルに配置されるオブジェクトの情報を含む。配列オブジェクト管理情報1223は、各セルの位置情報と配置されるオブジェクトの情報を対応付けて管理する。セルの位置情報は、各セルを識別するセル番号により示されてもよい。セルの位置情報は、各セルの位置を示す座標により示されてもよい。オブジェクトの情報は、各オブジェクトを識別するオブジェクトタイプを含む。オブジェクトタイプは、1以上の固定オブジェクト及びユーザオブジェクトを識別するオブジェクトタイプを含む。配列オブジェクト管理情報1223は、後述するオブジェクト処理部115の処理に応じて更新される。
【0063】
移動オブジェクト管理情報1224は、配列オブジェクトの各セルにおける移動オブジェクトの制御態様を管理する管理情報である。移動オブジェクト管理情報1224は、配列オブジェクトの各セルの位置情報と各セルにおける移動オブジェクトの制御態様を対応付けて記憶する。移動オブジェクトは、移動オブジェクト管理情報1224に従って配列オブジェクト上を移動する。移動オブジェクト管理情報1224は、後述するオブジェクト処理部115の処理に応じて更新される。
【0064】
制限時間情報1225は、制限時間、及び残り時間に関するデータである。制限時間は、例えば、10秒、20秒、又は30秒等の時間である。残り時間は、制限時間からユーザがゲームを開始してからの経過時間を引いた時間である。制限時間は、ゲームに含まれる問題毎に設定されてもよい。制限時間は、ゲームプログラムに従い予め設定されてもよく、適宜更新されてもよい。
【0065】
クリア条件情報1226は、ゲームをクリアするためのクリア条件に関するデータである。クリア条件は、少なくとも一つのユーザオブジェクトの位置が安全セルの位置と一致することを含む。少なくとも一つのユーザオブジェクトの位置が安全セルの位置と一致することは、少なくとも一つのユーザオブジェクトの位置が安全セルの位置に含まれることを含む。クリア条件は、すべてのユーザオブジェクトの位置が安全セルの位置と一致することを含む。安全セルは、配列オブジェクト内の複数のセルのうち、移動オブジェクトが通過しないセルである。移動オブジェクトが通過しないセルは、移動オブジェクトが表示されないセルに対応する。クリア条件を満たすことは、ゲームをクリアすることに対応する。ゲームをクリアすることは、ユーザオブジェクトの位置が正解であることに対応する。ゲームに複数のユーザオブジェクトが設定される場合、ユーザオブジェクト毎にクリア条件が判定される。クリア条件の判定は、正解の判定を含む。ゲームに複数の問題が含まれる場合、問題毎に正解の判定をしてもよい。その場合、複数の問題に対する正解の判定に基づいてゲームのクリア条件の判定をしてもよい。
【0066】
制御部110は、プロセッサ1001及びメモリ1002により実現され得る。制御部110は、ユーザ端末100全体の機能を制御する。制御部110は、ゲームプログラム記憶部121に記憶されたゲームプログラムを実行することにより、操作受付部111、ゲーム進行部112、仮想カメラ制御部113、表示制御部114、オブジェクト処理部115、オブジェクト操作取得部116、及び正解処理部117として機能し得る。
【0067】
操作受付部111は、入力部1071を介して入力されたユーザの操作を受け付ける。以下では、「ユーザの操作」という表記は、入力部1071を介して入力されたユーザの操作を指すものとする。ユーザの操作は、タップ操作、ドラッグアンドドロップ操作、スワイプ操作等の入力部1071を介した種々の種類の操作を含む。タップ操作は、入力部1071において一点に接触し、短時間で接触を解除する操作の例である。接触を解除する操作は、入力部1071において接触している指を離す操作の例である。接触を解除する操作は、ユーザの操作の終了に対応する。タップ操作は、入力部1071において一点に接触することで配列オブジェクト内のユーザオブジェクトを選択する操作を含む。タップ操作は、入力部1071において一点に接触することで選択した配列オブジェクト内のユーザオブジェクトを移動する操作を含む。ドラッグアンドドロップ操作は、入力部1071において一点に接触し、接触位置を時系列に移動させる操作の例である。ドラッグアンドドロップ操作は、入力部1071において一点に接触することで配列オブジェクト内のユーザオブジェクトを選択する操作を含む。ドラッグアンドドロップ操作は、入力部1071において一点の接触位置を移動させることで配列オブジェクト内のユーザオブジェクトを移動する操作を含む。
【0068】
操作受付部111は、入力部1071による接触位置の検知に基づいて、ユーザの操作の開始を検知し得る。操作受付部111は、入力部1071による接触位置の検知から非検知への遷移に基づいて、ユーザの操作の終了を検知し得る。操作受付部111は、ユーザの操作の開始に対応する接触位置からユーザの操作の終了に対応する接触位置までの座標情報を入力部1071から連続的に取得する。操作受付部111によるユーザの操作の判別は、公知の方法で行われ得る。操作受付部111は、ゲームのモードに応じて、座標情報をゲーム進行部112に送ることもあるし、仮想カメラ制御部113に送ることもあるし、オブジェクト操作取得部116に送ることもある。
【0069】
操作受付部111は、ユーザの操作の開始に対応する接触位置からユーザの操作の終了に対応する接触位置までの座標情報に基づいて、ユーザの操作に関する情報を取得し得る。ユーザの操作に関する情報は、ユーザの操作を特定可能な情報である。ユーザの操作に関する情報は、ユーザの操作の種類を示す情報を含み得る。ユーザの操作に関する情報は、ユーザの操作の方向を示す情報を含み得る。例えば、ユーザの操作の方向は、上下左右の4方向、及び右上、右下、左上、左下の斜め4方向を含み得る。ユーザの操作に関する情報は、ユーザの操作の操作量を示す情報を含み得る。例えば、操作量は、ユーザの操作により接触位置の遷移した距離に基づく値である。ユーザの操作の操作量を示す情報は、ユーザの操作の開始に対応する接触位置とユーザの操作の終了に対応する接触位置との距離に基づく値を示す情報である。ユーザの操作の開始に対応する接触位置は、ユーザの操作開始位置ともいう。ユーザの操作の終了に対応する接触位置は、ユーザの操作終了位置、又は接触解除位置ともいう。
【0070】
なお、ユーザは、入力部1071への接触を解除することなく、互いに逆を向く2方向へスライドさせる操作を繰り返すこともあり得る。例えば、互いに逆を向く2方向は、上方向及び下方向である。例えば、互いに逆を向く2方向は、左方向及び右方向である。例えば、互いに逆を向く2方向は、右上方向及び左下方向である。例えば、互いに逆を向く2方向は、右下方向及び左上方向である。この例では、ユーザの操作の方向を示す情報は、時系列に沿った複数の方向を示す情報を含んでもよい。ユーザの操作の操作量を示す情報は、複数の方向のそれぞれの操作量を含んでもよい。操作受付部111は、ゲームのモードに応じて、ユーザの操作に関する情報をゲーム進行部112に送ることもあるし、仮想カメラ制御部113に送ることもあるし、オブジェクト操作取得部116に送ることもある。
【0071】
ゲーム進行部112は、ゲームプログラムに記述されたコードに従って、ゲーム情報記憶部122に記憶されたゲーム情報を参照し、ゲーム空間にオブジェクトを配置してゲームを進行させる処理を行う。ゲーム進行部112は、操作受付部111からのユーザの操作に応じた座標情報及びユーザの操作に関する情報から特定されるユーザの指示をゲームの進行に反映し得る。
【0072】
仮想カメラ制御部113は、ゲーム進行部112の指示に基づいて、仮想カメラの撮影態様を制御し得る。仮想カメラは、ゲーム空間から画像を得るための仮想的なカメラである。仮想カメラ制御部113は、仮想カメラの撮影態様を制御する。仮想カメラ制御部113は、操作受付部111からのユーザの操作に応じた座標情報又はユーザの操作に関する情報から特定されるユーザの指示に基づいて、仮想カメラの撮影態様を制御し得る。操作受付部111からのユーザの操作に応じた座標情報又はユーザの操作に関する情報から特定されるユーザの指示に基づくことは、ユーザの操作に基づくことに対応する。
【0073】
表示制御部114は、画像を表示させる。例えば、表示制御部114は、ゲーム進行部112及び仮想カメラ制御部113と連携し、仮想カメラにより得られる画像の表示データを生成する。表示制御部114は、表示データを表示部1072に出力する。表示制御部114は、表示データに基づく画像を表示部1072に表示させる。表示制御部114は、オブジェクトデータ1221に記憶された種々のオブジェクトに基づく画像を表示部1072に表示させる。
【0074】
オブジェクト処理部115は、表示制御部114と連携し、オブジェクトデータ1221に基づき、種々のオブジェクトを表示部1072に表示させる。オブジェクト処理部115は、種々のオブジェクトの表示態様を変える。
【0075】
オブジェクト操作取得部116は、操作受付部111と連携し、ユーザの操作に基づいてユーザオブジェクトの移動に関する情報を取得する。移動に関する情報は、ユーザオブジェクトが移動されたセルの位置の情報を含む。移動に関する情報は、ユーザオブジェクトの移動量を含んでもよい。
【0076】
正解処理部117は、配列オブジェクト管理情報1223及び移動オブジェクト管理情報1224を参照し、安全セルに基づいてユーザオブジェクトの位置が正解であると判定する。ユーザオブジェクトの位置が正解であると判定することは、例えば、ユーザオブジェクトが安全セルに配置されることを判定することである。
【0077】
(1-4)オブジェクトタイプテーブル1222の構成例
図4は、実施形態に係るユーザ端末100が有するオブジェクトタイプテーブル1222を例示する図である。
オブジェクトタイプテーブル1222は、1以上の固定オブジェクト及びユーザオブジェクトを識別するオブジェクトタイプと、各オブジェクトに設定された移動オブジェクトの制御態様を規定するデータを格納するテーブルである。オブジェクトタイプテーブル1222は、末端セル及び通常セルにおける移動オブジェクトの制御態様を規定するデータを格納する。
【0078】
図4の例では、オブジェクトタイプテーブル1222には、ゲームに設定された固定オブジェクト、ユーザオブジェクト、末端セル及び通常セルに対応する移動オブジェクトの制御態様がセットされる。オブジェクトタイプは、方向オブジェクト、通過オブジェクト、ユーザオブジェクト、末端セル、通常セル等を含む。
【0079】
方向オブジェクトは、移動オブジェクトの移動方向を変更する。方向オブジェクトは、
図4におけるオブジェクト番号1~4に示すオブジェクトを含む。方向オブジェクトは、配列オブジェクトにおけるセルの辺と平行な辺と、セルの対角線と平行な辺により構成される。セルの辺と平行な辺は、第1の辺ともいう。セルの対角線と平行な辺は、第2の辺ともいう。方向オブジェクトは、第1の辺において、移動オブジェクトを停止する。方向オブジェクトは、第2の辺において、移動オブジェクトの移動方向を変更する。
【0080】
各方向オブジェクトの第2の辺による移動オブジェクトの制御態様を説明する。オブジェクト番号1の方向オブジェクトによる移動オブジェクトの制御態様を説明する。移動オブジェクトがセルの上辺から入ってきた場合、方向オブジェクトは、右辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの右辺から入ってきた場合、方向オブジェクトは、上辺から出る態様で移動オブジェクトを制御する。オブジェクト番号2の方向オブジェクトによる移動オブジェクトの制御態様を説明する。移動オブジェクトがセルの右辺から入ってきた場合、方向オブジェクトは、下辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの下辺から入ってきた場合、方向オブジェクトは、右辺から出る態様で移動オブジェクトを制御する。オブジェクト番号3の方向オブジェクトによる移動オブジェクトの制御態様を説明する。移動オブジェクトがセルの左辺から入ってきた場合、方向オブジェクトは、下辺から出る態様で移動オブジェクトを制御する。移動オブジェクトがセルの下辺から入ってきた場合、方向オブジェクトは、左辺から出る態様で移動オブジェクトを制御する。オブジェクト番号4の方向オブジェクトによる移動オブジェクトの制御態様を説明する。移動オブジェクトがセルの上辺から入ってきた場合、方向オブジェクトは、左辺から出る形態で移動オブジェクトを制御する。移動オブジェクトがセルの左辺から入ってきた場合、方向オブジェクトは、上辺から出る態様で移動オブジェクトを制御する。
【0081】
通過オブジェクトは、
図4におけるオブジェクト番号5で示すオブジェクトである。通過オブジェクトは、移動オブジェクトを通過させる。通過オブジェクトは、移動オブジェクトの移動方向を維持する。
【0082】
ユーザオブジェクトは、
図4におけるオブジェクト番号6で示すセルである。ユーザオブジェクトは、移動オブジェクトを通過させる。ユーザオブジェクトは、移動オブジェクトの移動方向を維持する。
【0083】
末端セルは、
図4におけるオブジェクト番号7で示すセルである。末端セルは、移動オブジェクトを通過させる。末端セルは、移動オブジェクトの移動方向を維持する。通常セルは、
図4におけるオブジェクト番号8で示すセルである。通常セルは、移動オブジェクトを通過させる。通常セルは、移動オブジェクトの移動方向を維持する。
【0084】
(2)画像例
表示部1072に表示される画像の一例について説明する。
図5は、ゲームプログラムによって実現されるユーザ端末100に表示される画像Im1の例を示す図である。
【0085】
表示部1072は、ゲーム開始時の画像Im1を表示する。画像Im1は、配列オブジェクトOb1、ゲートオブジェクトOb21-1~Ob21-4、固定オブジェクトOb22-1~Ob22-3、Ob23、ユーザオブジェクトOb3、及びゲーム進行オブジェクトOb6~Ob8を含む画像である。なお、移動オブジェクトは、ゲーム開始時の画像Im1においては表示されない。
【0086】
配列オブジェクトOb1は、複数のセルをグリッド状に配列する。配列オブジェクトOb1は、例えば、5×5のセル群を配列する。なお、配列オブジェクトOb1に配列される複数のセルの数は、上述の数に限られず、4×4又は6×6等の任意の数であってよい。第1の方向に配置されるセルの数は、第2の方向に配置されるセルの数と同じであってもよいし、異なってもよい。なお、配列オブジェクトOb1の形状は、矩形に限られず、多角形等の任意の形であってもよい。例えば、配列オブジェクトOb1は、三角タイル、ハチの巣、モザイク等の形であってもよい。
【0087】
ゲートオブジェクトOb21-1~Ob21-4は、ゲームに設定された移動オブジェクトのスタート地点である。ゲートオブジェクトは、配列オブジェクトOb1上の任意の末端セルに関連付けられて配置され得る。ゲートオブジェクトは、ゲートオブジェクトから移動オブジェクトが移動する方向を示す。オブジェクト処理部115は、制限時間までの残り時間に応じてゲートオブジェクトの表示態様を変えて表示する。表示態様は、例えば、色、明度又は輝度、背景パターン、点滅表示等を含む。例えば、オブジェクト処理部115は、残り時間の減少に伴い、色及び点滅の間隔を変えてゲートオブジェクトを表示してもよい。
【0088】
固定オブジェクトOb22-1~Ob22-3は、方向オブジェクトである。オブジェクト処理部115は、方向オブジェクトが配置されたセルにおいて移動オブジェクトの移動する方向を変える。方向オブジェクトは、配列オブジェクトOb1上の任意のセルに設定され得る。方向オブジェクトの数は問題毎に設定され得る。方向オブジェクトの数は問題の難易度に応じて設定されてもよい。
【0089】
固定オブジェクトOb23は、通過オブジェクトである。オブジェクト処理部115は、通過オブジェクトが配置されたセルにおいて移動オブジェクトを通過させる。通過オブジェクトは、配列オブジェクトOb1上の任意のセルに設定され得る。通過オブジェクトの数は問題毎に設定され得る。通過オブジェクトの数は問題の難易度に応じて設定されてもよい。オブジェクト処理部115は、通過オブジェクトを透明なセルとして表示してもよい。
【0090】
ユーザオブジェクトOb3は、ユーザの位置を示すオブジェクトである。ユーザオブジェクトOb3は、ユーザにより選択されたキャラクタを示してもよい。オブジェクト処理部115は、ユーザオブジェクトOb3が配置されたセルにおいて移動オブジェクトを通過させる。ユーザオブジェクトOb3の位置は、ユーザの操作により変更される。ユーザオブジェクトOb3は、配列オブジェクトOb1上の任意のセルに設定され得る。配列オブジェクトOb1において、少なくとも1つのユーザオブジェクトOb3が設定される。ユーザオブジェクトOb3の数は、問題毎に設定され得る。ユーザオブジェクトOb3の数は、問題の難易度に応じて設定されてもよい。ユーザオブジェクトOb3の数は、ユーザと異なる他のユーザの数に応じて設定されてもよい。他のユーザは、複数のユーザが同一のゲームを同時にプレイする場合のユーザと異なる他のユーザである。例えば、ユーザと1人の他のユーザを合わせた2人が協力してゲームをプレイする場合、ユーザオブジェクトOb3の数は、2であってもよい。
【0091】
なお、ユーザオブジェクトOb3-1~Ob3-2が、複数のユーザにより操作される場合、オブジェクト処理部115は、ユーザにより操作されるユーザオブジェクトOb3-1をユーザと異なる他のユーザにより操作されるユーザオブジェクトOb3-2と識別可能な表示態様で表示してもよい。例えば、オブジェクト処理部115は、ユーザオブジェクトOb3-1の背景色をユーザオブジェクトOb3-2と異なる色で表示してもよい。オブジェクト処理部115は、ユーザオブジェクトOb3-1とユーザオブジェクトOb3-2にユーザと他のユーザを識別可能なユーザ名等を表示してもよい。オブジェクト処理部115は、ユーザオブジェクトOb3-1とユーザオブジェクトOb3-2にユーザと他のユーザにより選択されたキャラクタを表示してもよい。
【0092】
ゲーム進行オブジェクトOb6は、リタイアボタンを含む。ユーザによりリタイアボタンがタッチ操作されると、ゲーム進行部112は、ゲームを終了する。
【0093】
ゲーム進行オブジェクトOb7は、キャラクタオブジェクトを含む。キャラクタオブジェクトは、ユーザが操作不可能なオブジェクトである。キャラクタオブジェクトは、他のオブジェクトの表示態様の変化に伴い、表示態様を変えて表示されてもよい。例えば、キャラクタオブジェクトは、残り時間の減少に伴い動作を変えて表示されてもよい。
【0094】
ゲーム進行オブジェクトOb8は、キャラクタオブジェクトのステータス情報を示すステータスオブジェクトを含む。ステータスオブジェクトは、ユーザが操作不可能なオブジェクトである。ステータスオブジェクトは、例えば、キャラクタのレベル、攻撃力、防御力等を示すステータス情報を示す。
【0095】
ゲーム進行オブジェクトは、上述のOb6~Ob8の他、ゲームの進行に応じて表示されるテキストオブジェクトを含んでもよい。テキストオブジェクトは、ゲーム開始時に問題文を示すテキスト情報を含んでもよい。指示文は、例えば、「よけろ。」等である。テキストオブジェクトは、他のオブジェクトの表示態様の変化に伴い、表示態様を変えて表示されてもよい。例えば、テキストオブジェクトは、残り時間の減少に伴い、「残り5秒」等のメッセージを表示してもよい。テキストオブジェクトは、正解判定時では正解を示すメッセージを含んでもよい。正解を示すメッセージは、例えば、「GOOD」等である。
【0096】
(3)動作
図6は、
図3に示したユーザ端末100の情報処理動作の一例を示すフローチャートである。
【0097】
以降の動作の前提として、ユーザ端末100の制御部110及び記憶部120の協働により、ゲームプログラムに記述されたコードに従ってゲームが進行され、表示データが生成されているものとする。以降の動作は、ユーザの操作によりゲームが開始されると実行される。ゲーム進行部213は、ゲームの開始を指示するユーザの操作に応答してタイマを起動し、ゲームを開始してからの経過時間を計測する。ゲーム進行部213は、ゲームに設定された制限時間から経過時間を引いた残り時間を制限時間情報1225に保存する。ゲーム進行部213は、制限時間までのカウントダウンを開始してもよい。
【0098】
オブジェクト処理部115は、オブジェクトデータ1221に基づき、種々のオブジェクトを生成し、生成されたオブジェクトを表示部1072に表示する(ステップS1)。オブジェクトデータ1221は、問題毎に設定されたオブジェクトの情報を含む。ステップS1では、例えば、オブジェクト処理部115は、配列オブジェクト、少なくとも1つのゲートオブジェクト、固定オブジェクト、少なくとも1つのユーザオブジェクト、及びゲーム進行オブジェクトを表示部1072に表示する。例えば、ゲートオブジェクト、固定オブジェクト及びユーザオブジェクトは、問題毎に設定された配列オブジェクトのセルに配置される。
【0099】
オブジェクト操作取得部116は、ユーザの操作があったか否かを判定する(ステップS2)。ステップS2では、例えば、オブジェクト操作取得部116は、操作受付部111により取得されたユーザの操作に関する情報に基づいて、ユーザの操作があったと判定する。
【0100】
オブジェクト操作取得部116は、ユーザオブジェクトに対するユーザの操作に基づいて、ユーザにより操作されたユーザオブジェクトの情報を取得する。ユーザの操作は、少なくとも1つのユーザオブジェクトの位置を変更することを含む。ユーザオブジェクトの情報は、ユーザオブジェクトの位置を示す情報を含む。ユーザオブジェクトの位置を示す情報は、ユーザオブジェクトの移動先のセルの位置情報を含む。
【0101】
例えば、オブジェクト操作取得部116は、ユーザによるドラッグアンドドロップ操作に基づいてユーザオブジェクトの情報を取得する。オブジェクト操作取得部116は、操作受付部111により取得されたユーザの操作開始位置に基づいて、ユーザの操作の始点位置を取得する。オブジェクト操作取得部116は、始点位置に対応するセルに配置されたユーザオブジェクトを特定する。オブジェクト操作取得部116は、操作受付部111により取得されたユーザの接触解除位置に基づいて、ユーザの操作の終点位置を取得する。オブジェクト操作取得部116は、終点位置に対応するセルを特定する。オブジェクト操作取得部116は、終点位置と各セルとの距離に基づいて終点位置に対応するセルを特定する。終点位置に対応するセルは、中心位置が終点位置から最も近い距離にあるセルである。終点位置に対応するセルは、終点セルともいう。オブジェクト操作取得部116は、特定されたユーザオブジェクトの位置を終点セルと対応付けて配列オブジェクト管理情報1223に保存する。特定されたユーザオブジェクトは、移動対象オブジェクトともいう。オブジェクト操作取得部116は、配列オブジェクト管理情報1223における移動対象オブジェクトの位置を更新する。オブジェクト操作取得部116は、配列オブジェクト管理情報1223を参照し、終点セルに他のオブジェクトが配置されていると判断した場合、移動対象オブジェクトの位置を始点位置と対応付けて配列オブジェクト管理情報1223に保存する。この場合、オブジェクト操作取得部116は、配列オブジェクト管理情報1223における移動対象オブジェクトの位置を更新しない。
【0102】
なお、オブジェクト操作取得部116は、ユーザによるタップ操作に基づいてユーザオブジェクトの情報を取得してもよい。この場合、オブジェクト操作取得部116は、1タッチ目の位置を始点位置として取得する。オブジェクト操作取得部116は、2タッチ目の位置を終点位置として取得する。
【0103】
なお、オブジェクト処理部115は、オブジェクト操作取得部116により取得されたユーザオブジェクトに対するユーザの操作に応じて、ユーザオブジェクトの位置を時系列に変更して表示してもよい。
【0104】
なお、オブジェクト処理部115は、ユーザの操作を対象として処理を行うこととして説明したが、オブジェクト処理部115は、ユーザと異なる他のユーザの操作を対象として処理を行ってもよい。例えば、複数のユーザが同一のゲームを同時にプレイする場合、ステップS2において、オブジェクト操作取得部116は、ユーザと異なる他のユーザの操作があったことを示す情報を取得する。他のユーザの操作は、少なくとも1つのユーザオブジェクトの位置を変更することを含む。オブジェクト操作取得部116は、ユーザオブジェクトに対する他のユーザの操作に基づいて、他のユーザにより操作されたユーザオブジェクトの情報を取得する。
【0105】
オブジェクト操作取得部116により、ユーザの操作があったと判定された場合(ステップS2:YES)、処理は、ステップS2からステップS3へ遷移する。オブジェクト操作取得部116により、ユーザの操作がないと判定された場合(ステップS2:NO)、処理は、ステップS2からステップS4に遷移する。
【0106】
オブジェクト処理部115は、ユーザオブジェクトに対するユーザの操作に基づいて、配列オブジェクトにおいてユーザオブジェクトの位置を更新する(ステップS3)。ステップS3では、例えば、オブジェクト処理部115は、配列オブジェクト管理情報1223に基づいてユーザオブジェクトの位置を更新して表示部1072に表示させる。オブジェクト処理部115は、ステップS2からステップS3の処理を少なくとも1つのユーザオブジェクトに対するユーザの操作に基づいて実行する。オブジェクト処理部115は、配列オブジェクトにおける少なくとも1つのユーザオブジェクトに対するユーザの操作に基づいて少なくとも1つのユーザオブジェクトの位置を更新する。
【0107】
なお、オブジェクト処理部115がユーザと異なる他のユーザの操作を対象として処理を行う場合、オブジェクト処理部115は、ユーザオブジェクトに対する他のユーザの操作に基づいてユーザオブジェクトの位置を更新する。オブジェクト処理部115は、上述の処理と同様に、更新された位置にユーザオブジェクトを表示部1072に表示させる。
【0108】
正解処理部117は、制限時間情報1225を参照し、ゲームに設定された制限時間が経過したか否かを判定する(ステップS4)。ステップS4では、例えば、正解処理部117は、残り時間がゼロになったことに基づいて制限時間が経過したことを判定する。
【0109】
正解処理部117により、制限時間が経過したと判定された場合(ステップS4:YES)、処理は、ステップS4からステップS5へ遷移する。正解処理部117により、制限時間が経過していないと判定された場合(ステップS4:NO)、オブジェクト操作取得部116は、ステップS2の処理を繰り返す。
【0110】
正解処理部117は、配列オブジェクト管理情報1223を参照し、ユーザオブジェクトの位置に基づいてユーザオブジェクトの位置が正解であることを判定する(ステップS5)。ステップS5では、例えば、正解処理部117は、ユーザオブジェクトの位置が安全セルの位置と一致するか否かに応じて、ユーザオブジェクトの位置が正解であることを判定する。
【0111】
オブジェクト処理部115は、制限時間が経過したことに応答して、配列オブジェクトにおいてゲートオブジェクトから移動する移動オブジェクトを表示部1072に表示させる(ステップS6)。ステップS6では、例えば、オブジェクト処理部115は、移動オブジェクト管理情報1224に基づき、移動オブジェクトを生成し、生成された移動オブジェクトを表示部1072に表示する。なお、オブジェクト処理部115は、移動オブジェクトの先頭部分の表示態様を他の部分と異なる表示としてもよい。オブジェクト処理部115は、正解処理部117による正解の判定結果に応じてユーザオブジェクトの表示態様を変えて表示してもよい。例えば、オブジェクト処理部115は、安全セルに配置されたユーザオブジェクトを安全セル以外に配置されたユーザオブジェクトと異なる表示態様で表示してもよい。オブジェクト処理部115は、正解処理部117により正解を判定したことに応答して、安全セルを他のセルと識別可能に表示してもよい。オブジェクト処理部115は、安全セルに安全セルであることを示す安全セルオブジェクトを重ねて表示してもよい。安全セルオブジェクトは、色、明度又は輝度等が他のセルと異なるオブジェクトである。オブジェクト処理部115は、クリア条件を満たしたことに応答して、テキストオブジェクトを表示部1072に表示してもよい。テキストオブジェクトは、例えば、「FINISH」、「GOOD」、又は「クリア」等のメッセージを含むオブジェクトである。なお、オブジェクト処理部115は、クリア条件に応じて異なるテキストオブジェクトを表示部1072に表示してもよい。例えば、オブジェクト処理部115は、クリア条件が少なくとも一つのユーザオブジェクトの位置が安全セルの位置と一致することである場合は、テキストオブジェクト「GOOD」を表示してもよい。オブジェクト処理部115は、クリア条件がすべてのユーザオブジェクトの位置が安全セルの位置と一致することである場合は、テキストオブジェクト「GREAT」を表示してもよい。
【0112】
なお、ユーザによりリタイアボタンがタッチ操作された場合には、ゲームがステップS1からステップS6のどの状態にあったとしても、ゲーム進行部112はゲームを終了させる。ユーザは、任意にリタイアを選択することができる。
【0113】
なお、ユーザオブジェクトの位置は、ユーザの操作により複数回変更可能である。オブジェクト処理部115は、ユーザオブジェクトに対してユーザの操作がされる毎に、ステップS2からステップS6の処理を行う。
【0114】
なお、ユーザオブジェクトの位置は、上述のユーザの操作だけでなく、他のユーザの操作により複数回変更可能である。この例では、オブジェクト処理部115は、ユーザオブジェクトに対して他のユーザの操作がされる毎に、ステップS2からステップS6の処理を行う。
【0115】
図7は、
図6のステップS5に示した正解判定動作の一例を示すフローチャートである。
オブジェクト処理部115は、配列オブジェクト管理情報1223からゲートオブジェクトi(i=1~N(Nはゲートオブジェクトの総数))に関する情報を取得する(ステップS501)。ゲートオブジェクトiは、添え字「i」と関連付けられたゲートオブジェクトである。ステップS501では、例えば、オブジェクト処理部115は、i=1から昇順でゲートオブジェクトiを取得する。ゲートオブジェクトに関する情報は、ゲートオブジェクトの位置情報、及びゲートオブジェクトから移動オブジェクトが移動する方向を示す情報を含む。
【0116】
オブジェクト処理部115は、スタートセルを対象セルとして特定する(ステップS502)。対象セルは、移動オブジェクトの制御態様を判定する対象となるセルである。移動オブジェクトは、ゲートオブジェクトから移動する方向に沿って対象セルに入ってくるものとする。対象セルは、オブジェクト処理部115による移動オブジェクトの制御態様の判定毎に、制御態様を判定されたセルから、そのセルに隣接するセルに一つずつ遷移する。ステップS502では、例えば、オブジェクト処理部115は、対象セルの位置情報を取得する。
【0117】
オブジェクト処理部115は、配列オブジェクト管理情報1223を参照し、対象セルの位置情報に基づいて、対象セルに方向オブジェクトが配置されているか否かを判定する(ステップS503)。
【0118】
オブジェクト処理部115により、対象セルに方向オブジェクトが配置されていると判定された場合(ステップS503:YES)、処理は、ステップS503からステップS504へ遷移する。オブジェクト処理部115により、対象セルに方向オブジェクトが配置されていないと判定された場合(ステップS503:NO)、処理は、ステップS503からステップS505へ遷移する。
【0119】
オブジェクト処理部115は、対象セルに配置された方向オブジェクトに基づいて、移動オブジェクトの制御態様を移動オブジェクト管理情報1224に保存する(ステップS504)。ステップS504では、例えば、オブジェクト処理部115は、配列オブジェクト管理情報1223を参照し、対象セルに配置された方向オブジェクトに関する情報を取得する。方向オブジェクトに関する情報は、方向オブジェクトの種類を示すオブジェクトタイプを含む。オブジェクト処理部115は、オブジェクトタイプテーブル1222を参照し、オブジェクトタイプに基づいて移動オブジェクトの制御態様を取得する。オブジェクト処理部115は、取得した移動オブジェクトの制御態様と対象セルの位置情報とを対応付けて移動オブジェクト管理情報1224に保存する。
【0120】
例えば、
図4におけるオブジェクト番号1で示す方向オブジェクトが対象セルに配置されている場合について説明する。移動オブジェクトは対象セルの上辺から入るものとする。オブジェクト処理部115は、移動オブジェクトを対象セルの左辺から出る態様と対象セルの位置情報とを対応付けて移動オブジェクト管理情報1224に保存する。移動オブジェクト管理情報1224に移動オブジェクトの制御態様と位置情報が保存された対象セルは、処理済みセルという。
【0121】
その後、処理は、ステップS504からステップS502へ戻る。この場合、ステップS502において、オブジェクト処理部115は、「スタートセル」を「処理済みセルに隣接するセル」に読み替えて処理を行う。処理済みセルに隣接するセルは、移動オブジェクトが移動する方向に沿って処理済みセルに隣接するセルである。この場合、移動オブジェクトは、処理済みセルから移動する方向に沿って対象セルに入ってくるものとする。
なお、対象セルとなる方向オブジェクトが移動オブジェクトを停止する場合、処理は、ステップS504からステップS508に遷移する。オブジェクト処理部115は、移動オブジェクトの停止により、1つのゲートオブジェクトに対する処理を終了する。対象セルとなる方向オブジェクトが移動オブジェクトの移動方向を変更し、移動オブジェクトの変更された移動方向に沿った隣接するセルが存在しない場合、処理は、ステップS504からステップS508に遷移する。この場合、オブジェクト処理部115は、1つのゲートオブジェクトに対する処理を終了する。
【0122】
オブジェクト処理部115は、配列オブジェクト管理情報1223を参照し、対象セルの位置情報に基づいて、対象セルが末端セルであるか否かを判定する(ステップS505)。
【0123】
オブジェクト処理部115により、対象セルが末端セルであると判定された場合(ステップS505:YES)、処理は、ステップS505からステップS506へ遷移する。オブジェクト処理部115により、対象セルが末端セルでないと判定された場合(ステップS505:NO)、処理は、ステップS505からステップS507へ遷移する。
【0124】
オブジェクト処理部115は、末端セルにおける移動オブジェクトの制御態様を移動オブジェクト管理情報1224に保存する(ステップS506)。ステップS506では、例えば、オブジェクト処理部115は、オブジェクトタイプテーブル1222を参照し、末端セルにおける移動オブジェクトの制御態様を取得する。オブジェクト処理部115は、取得した移動オブジェクトの制御態様と対象セルの位置情報とを対応付けて移動オブジェクト管理情報1224に保存する。オブジェクト処理部115は、末端セルに対応する対象セルに対する処理により、1つのゲートオブジェクトに対する処理を終了する。
【0125】
オブジェクト処理部115は、対象セルにおける移動オブジェクトの制御態様を「通過」にセットし、セットした制御態様を移動オブジェクト管理情報1224に保存する(ステップS507)。一例では、オブジェクト処理部115は、配列オブジェクト管理情報1223を参照し、対象セルの位置情報に基づいて、対象セルに通過オブジェクトが配置されているか否かを判定する。オブジェクト処理部115は、対象セルに通過オブジェクトが配置されていることに基づいて、オブジェクトタイプテーブル1222を参照し、移動オブジェクトの制御態様を「通過」にセットする。別の例では、オブジェクト処理部115は、配列オブジェクト管理情報1223を参照し、対象セルの位置情報に基づいて、対象セルが通常セルであるか否かを判定する。オブジェクト処理部115は、対象セルが通常セルであることに基づいて、オブジェクトタイプテーブル1222を参照し、移動オブジェクトの制御態様を「通過」にセットする。オブジェクト処理部115は、セットした移動オブジェクトの制御態様と対象セルの位置情報とを対応付けて移動オブジェクト管理情報1224に保存する。
【0126】
その後、処理は、ステップS507からステップS502へ戻る。この場合、ステップS502において、「スタート地点」を「処理済みセルに隣接するセル」に読み替えて処理を行う。この場合、移動オブジェクトは、処理済みセルから移動する方向に沿って対象セルに入ってくるものとする。なお、対象セルとなる通過オブジェクトが移動オブジェクトの移動方向に沿った隣接するセルを有しない場合、処理は、ステップS507からステップS508に遷移する。この場合、オブジェクト処理部115は、1つのゲートオブジェクトに対する処理を終了する。
【0127】
オブジェクト処理部115は、ゲートオブジェクトiが配列オブジェクト管理情報1223に保存された最終ゲートオブジェクト(i=N)であるか否かを判定する(ステップS508)。オブジェクト処理部115により、ゲートオブジェクトiが最終ゲートオブジェクトであると判定された場合(ステップS508:YES)、処理は、ステップS508からステップS509へ遷移する。オブジェクト処理部115により、ゲートオブジェクトiが最終ゲートオブジェクトでないと判定された場合(ステップS508:NO)、処理は、ステップS508からステップS501へ戻る。この場合、オブジェクト処理部115は、配列オブジェクト管理情報1223から次のゲートオブジェクトiに関する情報を取得する。オブジェクト処理部115は、ゲートオブジェクトiが最終ゲートオブジェクトに一致するまでステップS501~ステップS508の処理を繰り返す。ゲートオブジェクトiが最終ゲートオブジェクトに一致することは、オブジェクト処理部115による全てのゲートオブジェクトに対するステップS501~ステップS508の処理の終了に対応する。
【0128】
正解処理部117は、ゲートオブジェクトiが最終ゲートオブジェクトであると判定されたことに応答して、安全セルを取得する(ステップS509)。ステップS509では、例えば、正解処理部117は、配列オブジェクト管理情報1223及び移動オブジェクト管理情報1224に基づいて、安全セルを取得する。安全セルは、移動オブジェクトの位置に基づくセルである。安全セルは、ゲートオブジェクトから移動する移動オブジェクトが通過しないセルである。正解処理部117は、移動オブジェクトが通過しないセルを安全セルとして配列オブジェクト管理情報1223に保存してもよい。
【0129】
正解処理部117は、配列オブジェクト管理情報1223に基づいて、ユーザオブジェクトの位置が安全セルの位置に含まれるか否かを判定する(ステップS510)。ステップS510では、例えば、正解処理部117は、ユーザオブジェクトの位置と安全セルの位置を比較し、ユーザオブジェクトの位置が安全セルの位置に一致するか否かを判定する。正解処理部117により、ユーザオブジェクトの位置が安全セルの位置に一致すると判定された場合(ステップS510:YES)、処理は、ステップS510からステップS511へ遷移する。正解処理部117により、ユーザオブジェクトの位置が安全セルの位置に一致しないと判定された場合(ステップS510:NO)、処理は、ステップS510からステップS512へ遷移する。
【0130】
正解処理部117は、ユーザオブジェクトの位置が安全セルの位置に一致すると判定されたことに応答して、ユーザオブジェクトの位置が正解であると判定する(ステップS511)。
【0131】
正解処理部117は、ユーザオブジェクトの位置が安全セルの位置に一致しないと判定されたことに応答して、ユーザオブジェクトの位置が不正解であると判定する(ステップS512)。
【0132】
図8は、実施形態に係るゲームプログラムによって実現されるユーザ端末100に表示される画像Im2の例を示す図である。
【0133】
表示部1072は、制限時間経過後の画像Im2を表示する。画像Im2は、配列オブジェクトOb1、ゲートオブジェクトOb21-1~Ob21-4、固定オブジェクトOb22-1~Ob22-3、Ob23、ユーザオブジェクトOb3、移動オブジェクトOb4-1~Ob4-4、安全セルオブジェクトOb5、及びゲーム進行オブジェクトOb6~Ob8を含む画像である。ユーザの操作によりユーザオブジェクトOb3の位置が画像Im1に示した位置から変更された場合を想定する。画像Im2は、制限時間が経過したことに応答して、移動オブジェクトOb4がゲートオブジェクトOb21から移動した場合の画像を示す。
【0134】
オブジェクト処理部115は、ユーザの操作に基づいて移動されたセルにユーザオブジェクトOb3を表示する。オブジェクト処理部115は、ユーザオブジェクトOb3が安全セルに配置された場合、ユーザオブジェクトOb3の表示態様を変えてもよい。例えば、オブジェクト処理部115は、ユーザオブジェクトOb3を画像Im1の場合と異なる色、明度又は輝度で表示してもよい。オブジェクト処理部115は、ユーザオブジェクトOb3を点滅表示させてもよい。
【0135】
オブジェクト処理部115は、配列オブジェクトOb1における固定オブジェクトOb22-1~Ob22-3、Ob23により制御された移動オブジェクトOb4-1~Ob4-4を表示する。
【0136】
図8の例では、移動オブジェクトOb4-1~Ob4-4は、ゲートオブジェクトOb21-1~Ob21-4から出発し、固定オブジェクトOb22-1~Ob22-3、Ob23により順次移動方向が変更される。
ゲートオブジェクトOb21-1から移動する移動オブジェクトOb4-1を例に説明する。移動オブジェクトOb4-1は、ゲートオブジェクトOb21-1から出発し、固定オブジェクトOb22-2により移動方向が変更され、固定オブジェクトOb22-3により移動方向が変更され、固定オブジェクトOb23を通過する。
【0137】
オブジェクト処理部115は、安全セルに安全セルオブジェクトOb5を重ねて表示する。例えば、オブジェクト処理部115は、安全セルオブジェクトOb5を他のセルと異なる色、明度又は輝度で表示してもよい。オブジェクト処理部115は、安全セルオブジェクトOb5を点滅表示させてもよい。
【0138】
オブジェクト処理部115は、ゲートオブジェクトOb21-1~Ob21-4を画像Im1の場合と異なる色、明度又は輝度で表示してもよい。オブジェクト処理部115は、ゲートオブジェクトOb21-1~Ob21-4を点滅表示させてもよい。
【0139】
ゲーム進行オブジェクトOb6において、リタイアボタンが表示される。
ゲーム進行オブジェクトOb7において、キャラクタオブジェクトが表示される。
ゲーム進行オブジェクトOb8において、ステータスオブジェクトが表示される。
ゲーム進行オブジェクトOb9において、テキストオブジェクトが表示される。テキストオブジェクトは、正解を示すメッセージを含む。
図8の例では、ユーザオブジェクトOb3-1~Ob3-2が安全セルに配置されているため、正解処理部117によりクリア条件を満たしたと判定される。この例では、ゲーム進行オブジェクトOb9において、「GOOD」が表示される。
【0140】
(4)効果
以上詳述したように、ゲームプログラムは、コンピュータに少なくとも1つのユーザオブジェクトに対するユーザの操作に基づいて、少なくとも1つのユーザオブジェクトの位置を更新させ、少なくとも1つのユーザオブジェクトの位置と移動オブジェクトの位置とに基づいてユーザオブジェクトの位置の正解を判定させることができる。これにより、ゲームプログラムは、ユーザによる簡単な操作に基づいて、コンピュータにユーザオブジェクトの位置を更新させ、更新されたユーザオブジェクトの位置に基づいて正解を判定させることができる。そのため、ユーザは、ユーザオブジェクトの移動操作のみで直感的にパズルゲームをプレイすることができる。また、ゲームプログラムは、コンピュータに配列オブジェクトにおいて少なくとも1つのゲートオブジェクトから移動する移動オブジェクトを表示させることができる。これにより、ゲームプログラムは、ゲートオブジェクトの数及び位置の設定により難易度を変えることができる。そのため、ユーザは、難易度の異なるゲームをプレイすることができる。このように、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0141】
ゲームプログラムは、コンピュータに第1の方向と第1の方向に直交する第2の方向により規定された複数のセルにより構成される配列オブジェクトを表示させることができる。これにより、ゲームプログラムは、不規則に配置された配列オブジェクトと比べ、コンピュータに複雑な処理を要せず移動オブジェクトの表示処理を行わせることができる。また、ユーザは、移動オブジェクトが表示されるセルを比較的短時間で把握して、ユーザオブジェクトの操作を行うことができる。そのため、ユーザは、短時間でゲームをプレイすることができる。このように、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0142】
ゲームプログラムは、コンピュータにセルの一辺から入り他の一辺から出る光線である移動オブジェクトを表示させることができる。これにより、ゲームプログラムは、移動オブジェクトの表示処理を容易に行うことができる。また、ユーザは、移動オブジェクトの移動を光の動きとして直感的に把握することができる。そのため、ユーザは、直感的にゲームをプレイすることができる。このように、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0143】
ゲームプログラムは、コンピュータに移動オブジェクトが移動する移動方向を変更する少なくとも1つの方向オブジェクトを表示させることができる。これにより、ゲームプログラムは、方向オブジェクトの数及び位置の設定により難易度を変えることができる。そのため、ユーザは、難易度の異なるゲームをプレイすることができる。このように、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0144】
ゲームプログラムは、コンピュータに方向オブジェクトをゲームに設定されたセルに固定して表示させることができる。これにより、ゲームプログラムは、コンピュータに設定された位置に停止オブジェクトを表示させることのみで容易にゲームの難易度を変更することができる。また、ユーザは、停止オブジェクトの位置を変更することができないため、制約されたルールの範囲でゲームをプレイすることとなる。そのため、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0145】
ゲームプログラムは、コンピュータにユーザと異なる他のユーザの操作に基づいて、少なくとも1つのユーザオブジェクトの位置を変更させることができる。これにより、ゲームプログラムは、コンピュータに他のユーザの操作に関する情報を取得させることで、容易にユーザオブジェクトの位置を更新させることができる。また、ユーザは、他のユーザの操作に応じた移動オブジェクトの移動を直感的に把握することができる。そのため、ユーザは、簡単な操作で複数のユーザと協力してゲームをプレイすることができる。さらに、ゲームプログラムは、コンピュータに他のユーザにより操作されるユーザオブジェクトの数を変更させることで、ゲームの難易度を変更することができる。このように、ゲームプログラムは、パズルゲームの興趣性を一層高めることができる。
【0146】
ゲームプログラムは、コンピュータにゲームに設定された制限時間が経過したことに応答して移動オブジェクトを表示させることができる。これにより、ゲームプログラムは、コンピュータに制限時間の経過に基づいて移動オブジェクトを表示させ、正解判定を行わせることができる。そのため、ゲームプログラムは、コンピュータに設定されたタイミングで表示処理及び正解判定処理を行わせることができるため、コンピュータによる処理を容易にすることができる。また、ユーザは、制限時間が経過するまでにユーザオブジェクトを操作するというスピード感を要求される。このように、ゲームプログラムは、ユーザが制限時間内にユーザオブジェクトを操作することへの動機付けを生み出し、パズルゲームの興趣性を一層高めることができる。また、ゲームプログラムは、制限時間の設定により、短時間で完結するゲームを提供することができる。そのため、ユーザは、隙間時間に気軽にゲームをプレイすることができる。このように、ゲームプログラムは、ユーザがゲームをプレイする機会を促し、パズルゲームの興趣性を一層高めることができる。
【0147】
ゲームプログラムは、コンピュータに制限時間までの残り時間に応じて少なくとも1つのゲートオブジェクトの表示態様を変えて表示させることができる。これにより、ゲームプログラムは、コンピュータに残り時間を示すインジケータを独立して表示させる必要がない。また、ユーザは、ゲートオブジェクトの表示態様の変化に基づいて直感的に時間経過を把握することができる。このように、ゲームプログラムは、表示の変化により高揚感をもたらし、パズルゲームの興趣性を一層高めることができる。
【0148】
ゲームプログラムは、コンピュータに正解の判定結果に応じて少なくとも1つのユーザオブジェクトの表示態様を変えて表示させることができる。これにより、ゲームプログラムは、コンピュータにユーザオブジェクトの表示態様を変化させることのみで正誤判定結果を表示させることができる。また、ユーザは、ユーザオブジェクトの表示態様の変化に基づいて直感的に正誤判定結果を把握することができる。このように、ゲームプログラムは、表示の変化により高揚感をもたらし、パズルゲームの興趣性を一層高めることができる。
【0149】
ゲームプログラムは、コンピュータに移動オブジェクトが表示されないセルを安全セルとして取得させ、少なくとも1つのユーザオブジェクトの位置が安全セルの位置に含まれるか否かに応じて正解を判定させることができる。これにより、ゲームプログラムは、コンピュータにユーザオブジェクトの位置と安全セルの位置との比較のみで正解判定処理を容易に行わせることができる。また、ユーザは、正解の判定基準を容易に理解することができる。このように、ゲームプログラムは、正解の判定基準を容易にし、パズルゲームの興趣性を一層高めることができる。
【0150】
ゲームプログラムは、コンピュータに正解を判定したことに応答して、安全セルを示す安全セルオブジェクトを表示させる。これにより、ゲームプログラムは、コンピュータに安全セルの表示態様を変更させることのみで正誤判定結果を表示させることができる。また、ユーザは、安全セルの表示態様の変化に基づいて直感的に正誤判定結果を把握することができる。このように、ゲームプログラムは、表示の変化により高揚感をもたらし、パズルゲームの興趣性を一層高めることができる。
【0151】
なお、この発明は上述の実施形態に限定されるものではない。
【0152】
上述の実施形態では、オブジェクト処理部115は、配列オブジェクト、ゲートオブジェクト、固定オブジェクト、ユーザオブジェクト、移動オブジェクト、及び安全セルオブジェクト以外に、ゲーム進行オブジェクトを表示する例について説明したが、これに限定されない。オブジェクト処理部115は、配列オブジェクト、ゲートオブジェクト、固定オブジェクト、ユーザオブジェクト、移動オブジェクト、及び安全セルオブジェクト以外に、ゲーム進行オブジェクトの少なくとも何れか1つのオブジェクトを表示してもよい。
【0153】
上述の実施形態では、移動オブジェクトは光線であるとして説明したが、これに限定されない。移動オブジェクトは、水流等の液体、パイプ等の固体等であってもよい。また、移動オブジェクトは、複数のセルにまたがって移動する軌跡を表すものであってもよく、軌跡を有しないキャラクタ等の移動体であってもよい。
【0154】
上述の実施形態では、方向オブジェクトは反射板であるとして説明したが、これに限定されない。方向オブジェクトは、移動オブジェクトの方向を制御可能なオブジェクトであればよい。
【0155】
タッチパネルを入力部1071の例にして説明したが、これに限定されない。入力部1071は、複数のボタンを備えるコントローラであってもよい。
【0156】
例えば、サーバ200及びユーザ端末100の構成は、実施形態に係るゲームプログラムを実現可能な他の構成に置き換えられてもよい。サーバ200の構成及びユーザ端末100の構成は、省略され、複数の装置に分散配置され、類似の構成に置き換えられてもよい。サーバ200及びユーザ端末100の各機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【0157】
さらに、フローチャートを用いて説明した処理の流れは、説明した手順に限定されるものではなく、いくつかのステップの順序が入れ替えられてもよいし、いくつかのステップが同時並行で実施されてもよい。また、以上で説明した一連の処理は、時間的に連続して実行される必要はなく、各ステップは任意のタイミングで実行されてもよい。
【0158】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイル又は実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等である。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネット等のネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
【0159】
なお、この発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【0160】
1…ゲームシステム、100…ユーザ端末、110…制御部、111…操作受付部、112…ゲーム進行部、113…仮想カメラ制御部、114…表示制御部、115…オブジェクト処理部、116…オブジェクト操作取得部、117…正解処理部、120…記憶部、121…ゲームプログラム記憶部、122…ゲーム情報記憶部、200…サーバ、210…制御部、211…受信制御部、212…送信制御部、213…ゲーム進行部、220…記憶部、221…ゲームプログラム記憶部、222…ゲーム情報記憶部、223…ユーザ情報データベース、1001…プロセッサ、1002…メモリ、1003…ストレージ、1004…センサ、1005…通信インタフェース、1006…入出力インタフェース、1007…タッチスクリーン、1008…バス、1071…入力部、1072…表示部、1221…オブジェクトデータ、1222…オブジェクトタイプテーブル、1223…配列オブジェクト管理情報、1224…移動オブジェクト管理情報、1225…制限時間情報、1226…クリア条件情報、2001…プロセッサ、2002…メモリ、2003…ストレージ、2004…通信インタフェース、2005…入出力インタフェース、2006…バス、Im1…画像、Im2…画像、NW…ネットワーク、Ob1…配列オブジェクト、Ob3…ユーザオブジェクト、Ob4-1~Ob4-4…移動オブジェクト、Ob5…安全セルオブジェクト、Ob6…ゲーム進行オブジェクト、Ob7…ゲーム進行オブジェクト、Ob8…ゲーム進行オブジェクト、Ob9…ゲーム進行オブジェクト、Ob21-1~Ob21-4…ゲートオブジェクト、Ob22-1~Ob22-3…固定オブジェクト、Ob23…固定オブジェクト。