JP2011194072A - ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム - Google Patents

ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム Download PDF

Info

Publication number
JP2011194072A
JP2011194072A JP2010065041A JP2010065041A JP2011194072A JP 2011194072 A JP2011194072 A JP 2011194072A JP 2010065041 A JP2010065041 A JP 2010065041A JP 2010065041 A JP2010065041 A JP 2010065041A JP 2011194072 A JP2011194072 A JP 2011194072A
Authority
JP
Japan
Prior art keywords
game
command
game program
output
program
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
JP2010065041A
Other languages
English (en)
Other versions
JP5386416B2 (ja
Inventor
Shoji Mori
昌二 森
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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment 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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2010065041A priority Critical patent/JP5386416B2/ja
Publication of JP2011194072A publication Critical patent/JP2011194072A/ja
Application granted granted Critical
Publication of JP5386416B2 publication Critical patent/JP5386416B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract


【課題】第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を収集して報告するゲーム装置等を提供する。
【解決手段】ゲーム装置200において、実行部304は、情報記録媒体303に記録される第1プログラムならびに第2プログラムとを並行に実行する。報告部305は、第2プログラムの実行に係る統計情報を報告する。ここで、実行部304は、実行すべき指令が検知指令である場合、当該検知指令がいずれのプログラムに含まれるかに関わらず、検知部301を制御してプレイヤーによる操作を検知する。一方、実行部304は、実行すべき指令が出力指令である場合、当該出力指令が第1プログラムに含まれていれば、出力部302を制御してプレイヤーに提示すべき情報を出力するが、第2プログラムに含まれていれば、当該出力指令を無視する。
【選択図】図3

Description

本発明は、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告するのに好適なゲーム装置、その制御方法、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体、ならびに、当該プログラムからなるテストプレイ用プログラムに関する。
従来から、ネットワーク通信機能を持ったゲーム装置などを用いた通信ゲームが提供されている。このような通信ゲームを快適に提供できるか否かは、プレイヤーが利用している通信経路の通信品質に大きく依存する。
このほか、同じ種類のゲーム装置であっても、製造時期やオプションのハードウェアを装着しているか否かが異なることも多い。このような場合には、通信ゲームやスタンドアロンのゲームを快適にプレイできるか否かは、プレイヤーの利用するハードウェア資源の状況に依存する。
このような状況下で、ゲームを本格的に提供する前にβテストを行ったり、テスト用のゲームプログラムを提供して実行させたりして、ゲームを実行する環境の統計情報を分析し、快適なゲームのプレイが可能であるか否かを一般人にテストさせることもある。このようなテストプレイの技術については、下記の特許文献1に開示されている。
特許第3120620号公報
しかしながら、プレイヤーがあるゲームのプレイを行いながら、他のゲームを同時にテストプレイすることは、通常できない。したがって、あるゲームのプレイと他のゲームのテストプレイを同時に行いたい場合には他のテストプレイヤーを用意しなければならない。一方で、テストプレイに参加できる人数には、限界がある。
また、ゲームの本格的な提供がなされる前にプレイヤーがテストプレイに参加したために、かえってゲームに対する興味を低減させてしまうという問題もある。
本発明は、上記のような課題を解決するもので、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告するのに好適なゲーム装置、その制御方法、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体、ならびに、当該プログラムからなるテストプレイ用プログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係るゲーム装置は、検知部、出力部、記憶部、実行部、報告部を備え、以下のように構成する。
まず、検知部は、プレイヤーによる操作を検知するための構成要素である。
典型的には、検知部は、ゲーム用のコントローラにより実現される。当該コントローラには、各種のボタンやスイッチ、ジョイスティック等が設けられており、検知部は、これらのボタン等が、プレイヤーにより操作されている状態を検知する。
このほか、動画撮影が可能な可視光用のカメラ、赤外線センサ、赤外線カメラ、超音波センサ等を利用して、プレイヤーの身振りや姿勢の変化を操作入力として利用する態様に本発明を適用することも可能である。
一方、出力部は、プレイヤーに提示すべき情報を出力するための構成要素である。
典型的には、出力部は、テレビジョン装置や液晶ディスプレイ、タッチスクリーンなどの表示装置により実現される。この場合、プレイヤーに提示すべき情報は、文字や図形などを含む画像によって提示される。
このほか、出力部として、スピーカやヘッドフォンなどの音声出力装置を採用することとしても良い。この場合、プレイヤーに提示すべき情報は、楽曲や言葉を含む音声によって提示される。
さらに、これらを組み合わせることとしても良い。
さらに、記憶部には、第1のゲームを実現するための第1のゲームプログラムならびに第2のゲームを実現するための第2のゲームプログラムが記憶される。
本発明では、プレイヤーは、自らの意思で第1のゲームをプレイする。一方、第2のゲームは、テストプレイの対象となるゲームであり、プレイヤーは、第2のゲームをプレイしていることを意識する必要はない。
さらに、実行部は、記憶部に記憶された第1のゲームプログラムに含まれる指令と、記憶部に記憶された第2のゲームプログラムに含まれる指令と、を、並行に実行する。
典型的には、実行部は、コンピュータにおいて、CPU(Central Processing Unit)がRAM(Random Access Memory)に第1のゲームプログラムと第2のゲームプログラムとをロードして、これらを並行に実行することにより実現される。
典型的には、これらのプログラムに含まれる指令は、RAMとの間の読み書きを行う指令や、各種の条件分岐を行う指令のほか、サブルーチンの呼び出し指令やシステムコールの呼び出し指令等がある。
さらに、報告部は、実行部による第2のゲームプログラムの実行に係る統計情報を報告する。
ここで、統計情報とは、たとえば、第2のゲームプログラムを実行している際にサブルーチンやシステムコールが、その種類ごとにどの程度の頻度で呼び出されたかなどの情報としても良いし、後述するように、サーバ装置等との通信状況などを統計情報として利用することとしても良い。
ここで、実行部は、
(a)実行すべき指令が、第1のゲームプログラムに含まれ、プレイヤーによる操作を検知すべき旨の検知指令である場合、検知部を制御してプレイヤーによる操作を検知し、
(b)実行すべき指令が、第1のゲームプログラムに含まれ、情報を出力すべき旨の出力指令である場合、出力部を制御して当該情報を出力し、
(c)実行すべき指令が、第2のゲームプログラムに含まれ、プレイヤーによる操作を検知すべき旨の検知指令である場合、検知部を制御してプレイヤーによる操作を検知し、
(d)実行すべき指令が、第2のゲームプログラムに含まれ、情報を出力すべき旨の出力指令である場合、当該出力指令を無視する。
典型的には、検知指令は、コントローラの状態を調べるためのサブルーチン呼び出し指令もしくはシステムコール呼び出し指令により実現され、出力指令は、モニターの画面に画像を表示するためもしくはスピーカ等に音声を出力するためのサブルーチン呼び出し指令もしくはシステムコール呼び出し指令により実現される。
すなわち、本発明においては、プレイヤーに対しては、第1のゲームにおける情報のみが提示される。したがって、プレイヤーは、第2のゲームの進行状況を知得することはできない。
しかしながら、プレイヤーによる操作は、第1のゲームと第2のゲームの両方に与えられるので、プレイヤーが第1のゲームをプレイしているのと並行して、その裏側で、プレイヤーは第2のゲームを同時にプレイしていることになる。
このため、第1のゲームの操作体系と第2のゲームの操作体系とを類似するものとしておけば、第2のゲームのテストプレイが実行されることになるのである。
また、第1のゲームの操作体系と第2のゲームの操作体系とが類似しないときであっても、プレイヤーが誤った操作を行った際に、第2のゲームプログラムが暴走しないことを確認する等のテストを行うことが可能である。
第2のゲームのテストプレイの様子は、統計情報として収集され、この統計情報は、第2のゲームプログラムのデバッグや、プレイヤーが所有するハードウェアなどのプレイ環境が第2のゲームプログラムを実行するだけの性能を有するかなどの判定に利用することができる。
本発明によれば、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告することができるようになる。
また、本発明のゲーム装置は、以下のように構成することができる。
すなわち、第1のゲームプログラムと、第2のゲームプログラムと、は、互いに異なるアドレスに配置される。
一般に、コンピュータにおいては、プログラムはハードディスク等の情報記録媒体からRAM内の異なる領域に読み出され、CPUは、実行すべき命令を読み出す領域を適宜切り替えることによって、プログラムを並行に動作させる。
さらに、出力指令は、所定のライブラリ関数を呼び出す指令である。
上記のように、サブルーチン呼び出し指令やシステムコール呼び出し指令は、ライブラリ関数の形式により実装されるのが一般的である。
そして、実行部は、ライブラリ関数が呼び出されると、当該関数の呼び出し元のアドレスに基づいて、当該出力指令が、第1のゲームプログラムと、第2のゲームプログラムと、のいずれに含まれるものかを判定する。
ライブラリ関数呼び出しの際には、CPUは、ライブラリ関数に渡すべき引き数をスタックに積み、さらに、次に実行すべき命令のアドレスを表すプログラムカウンタの値をスタックに積んでから、ライブラリ関数のアドレスをプログラムカウンタに代入する。したがって、スタックの中を調べれば、ライブラリ関数の呼び出し元のアドレスが判明する。
本発明では、呼び出し元のアドレスが、第1のゲームプログラムをロードした領域に含まれるものか、それとも第2のゲームプログラムをロードした領域に含まれるものか、に基づいて、当該出力指令が、いずれのゲームプログラムから呼び出されたものかを判定するのである。
本発明によれば、コンピュータの関数呼び出し機構を利用して、出力指令を実行しようとしているゲームプログラムがいずれであるかを容易に判定することができる。
また、本発明は、以下のように構成することができる。
すなわち、出力部は、モニターの画面に画像を表示することにより、プレイヤーに提示すべき情報を出力する。
上記のように、出力部によって出力されるのは、第1のゲームプログラムの情報のみである。したがって、モニターの画面には、第1のゲームの情報のみが表示されることになる。プレイヤーがプレイしようとしているゲームは第1のゲームであり、第2のゲームを、プレイヤーには見えない形式で進行させるためである。
一方、第1のゲームプログラムは、第1のサーバ装置と通信することにより、第1のゲームを実現させ、第2のゲームプログラムは、第2のサーバ装置と通信することにより、第2のゲームを実現させる。
本実施形態は、第1のゲーム、第2のゲームとも、いわゆる通信対戦ゲームに相当するものを想定しており、異なる通信相手を採用することにより、外部からゲーム装置が受信したパケットの振り分けを行う。
そして、報告部は、統計情報を第2のサーバ装置に送信することにより、当該統計情報を報告する。
上記のように、第2のゲームのテストプレイの様子が統計情報として収集されることになる。この統計情報には、上記のような情報のほか、当該ゲーム装置と第2のサーバ装置との間の通信状況、たとえば、パケットの送受に要する時間や通信経路のホップ数、パケット消失やパケット誤りの生じる割合等、プレイヤーが利用している通信環境に関する情報が含まれる。これによって、通信環境が第2のゲームプログラムを実行するだけの性能を有するかなどの判定に利用することができる。
また、ゲーム装置と第2のサーバとの間で通信が成立するため、第2のサーバで動作するサーバプログラムをデバッグしたり、第2のサーバ自体の計算能力や通信能力を検証することができる。
本発明によれば、第1の通信対戦ゲームをプレイヤーにプレイさせる裏側で第2の通信対戦ゲームを進行させ、当該プレイヤーが利用しているプレイ環境で第2の通信対戦ゲームを実行できるかどうかをテストしたり検証したりできるようになる。
また、本発明のゲーム装置において、実行部は、第2のゲームプログラムの実行において実行すべき指令が第2のゲームプログラムに含まれる出力指令である場合、第1のゲームプログラムの実行において第1のゲームプログラムに含まれる出力指令により、画面に情報が表示されるまで待機し、第1のゲームプログラムに含まれる出力指令の実行が終了した後に、第2のゲームプログラムの次の指令を実行することによって、第2のゲームプログラムに含まれる出力指令を無視するように構成することができる。
上記のように、出力指令は、典型的には画面への画像の表示指令である。画像を画面に表示する際には、ちらつきを防止するため、垂直同期割込周期ごとに画像の転送を行う必要がある。そのため、ゲームプログラムは、表示すべき画像を生成した後、垂直同期割込が生じるまで待機するのが通例である。
本発明は、垂直同期割込の待機を、プログラムの制御の切り替えに利用するものである。
すなわち、第2のゲームプログラムが画像を画面に表示しようとして垂直同期割込を待機すると、第1のゲームプログラムに制御が移る。
その後、第1のゲームプログラムにおいて画像を画面に表示しようとして垂直同期割込を待機し、垂直同期割込が生じてから画像を転送して画面に表示させると、第2のゲームプログラムに制御が戻る。
この際に、第2のゲームプログラムにおいては、画像の転送指令は実行せずに、その次の指令を実行する。このようなプログラムの制御の切り替えによって、第2のゲームプログラムによる画面表示は行わないこととするのである。
本発明によれば、ゲームプログラムにおいて、垂直同期割込待ちなど、特定の出力指令が行われる際にプログラムの制御の切り替えを行うことにより、プログラムの並行実行を簡易に行うことができるようになる。
また、本発明のゲーム装置において、実行部は、実行すべき指令が、第1のゲームプログラムに含まれ、第1のゲームを中断すべき旨の中断指令である場合、出力部を制御して報告部により報告されるべき統計情報をモニターの画面に表示させるように構成することができる。
中断指令とは、たとえば、第1のゲームの状態を保存して第1のゲームそのものを終了したり、第1のゲームのタイトル表示に戻ったりするような状況である。このような状況でプレイヤーに対して、第2のゲームを告知、広告すると、プレイヤーの興味を惹くことができる。
そこで本発明においては、プレイヤーのプレイ環境において第2のゲームがプレイ可能か否かの判定結果を提示することにより、プレイヤーに第2のゲームを紹介するのである。
本発明によれば、第1のゲームをプレイしたプレイヤーのプレイ環境に応じて、当該プレイヤーに第2のゲームを紹介することができるようになる。
また、本発明のゲーム装置において、統計情報には、ゲーム装置と、第2のサーバ装置と、の間の通信品質に係る情報が含まれるように構成することができる。
上記のように、通信品質としては、ゲーム装置と第2のサーバ装置の間の通信遅延、ホップ数、パケットの誤り率等の情報が含まれる。
本発明によれば、プレイヤーやゲームの提供者は、統計情報に基づいて、ゲーム装置のプレイ環境や第2のサーバ装置の能力等を知得し、適切に調整することが可能となる。
また、本発明のゲーム装置において、記憶部は、コンピュータ読取可能な情報記録媒体、もしくは、第1のゲームプログラムと第2のゲームプログラムとを記録したコンピュータ読取可能な情報記録媒体から読み出された第1のゲームプログラムと第2のゲームプログラムとが記憶されるランダムアクセスメモリであるように構成することができる。
本発明は、上記発明の好適実施形態に係るものであり、各プログラムが記録される媒体や装置を明らかにするものである。
本発明のその他の観点に係る制御方法は、プレイヤーによる操作を検知するための検知部、プレイヤーに提示すべき情報を出力するための出力部、第1のゲームを実現するための第1のゲームプログラムならびに第2のゲームを実現するための第2のゲームプログラムが記憶される記憶部、実行部、報告部を有するゲーム装置を制御する制御方法であって、実行工程、報告工程を備える。
ここで、実行工程では、実行部が、記憶部に記憶された第1のゲームプログラムに含まれる指令と、記憶部に記憶された第2のゲームプログラムに含まれる指令と、を、並行に実行する。
一方、報告工程では、報告部が、実行工程による第2のゲームプログラムの実行に係る統計情報を報告する。
さらに、実行工程では、
(a)実行すべき指令が、第1のゲームプログラムに含まれ、プレイヤーによる操作を検知すべき旨の検知指令である場合、実行部は、検知部を制御してプレイヤーによる操作を検知し、
(b)実行すべき指令が、第1のゲームプログラムに含まれ、情報を出力すべき旨の出力指令である場合、実行部は、出力部を制御して当該情報を出力し、
(c)実行すべき指令が、第2のゲームプログラムに含まれ、プレイヤーによる操作を検知すべき旨の検知指令である場合、実行部は、検知部を制御してプレイヤーによる操作を検知し、
(d)実行すべき指令が、第2のゲームプログラムに含まれ、情報を出力すべき旨の出力指令である場合、実行部は、当該出力指令を無視する。
本発明のその他の観点に係るコンピュータ読取可能な情報記録媒体は、コンピュータを、上記のゲーム装置の各部として機能させるプログラムを記録するように、構成する。
また、上記の情報記録媒体は、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体とすることができる。
本発明のその他の観点に係るテストプレイ用プログラムは、上記のシステムプログラム、第1のゲームプログラム、第2のゲームプログラムからなるように構成する。
各プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告するのに好適なゲーム装置、その制御方法、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体、ならびに、当該プログラムからなるテストプレイ用プログラムを提供することができる。
典型的な情報処理装置の概要構成を示す模式図である。 本実施形態に係るゲーム装置とサーバ装置との関係を示す説明図である。 本実施形態に係るゲーム装置の概要構成を示す模式図である。 単一のゲームプログラムを実行する際のゲーム処理の制御の流れを示すフローチャートである。 本実施形態に係る2つのゲームプログラムの制御の流れを示すフローチャートである。 出力処理の詳細を示すフローチャートである。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
(情報処理装置)
図1は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本図に示す情報処理装置101は、携帯可能なマルチメディア端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101のカセットリーダ110に装着することによって、本実施形態に係るゲーム装置が実現される。
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うなどが可能である。
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯ゲーム装置、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム装置が実現される情報処理装置として採用することもできる。
(ゲーム装置等の構成)
本実施形態においては、ROMカセット111に第1のゲームプログラムと第2のゲームプログラムの2つのプログラムが記録されており、これらのゲームプログラムが並行して動作する。
ここで、第1のゲームプログラムは、プレイヤーがプレイしようとしている第1のゲームを実現するためのものである。
典型的には、第1のゲームは、当該プレイヤーが購入したゲームであり、当該プレイヤーが自分の意思でプレイすることを選択したゲームである。
一方、第2のゲームプログラムは、裏側でテスト的に実行される第2のゲームを実現するためのものである。典型的には、第2のゲームは、第1のゲームと操作体系が類似する他のゲームであり、その実行中、プレイヤーは第2のゲームをプレイしていると感じることはない。
第2のゲームプログラムとしては、たとえば、β版のゲームプログラムや、プレイヤーの環境でプレイ可能か否かが不明なゲームプログラム、当該プレイヤーに対して購入を促す広告を提示したいゲームのゲームプログラムなどの態様が考えられる。
図2は、本実施形態に係るゲーム装置とサーバ装置との関係を示す説明図である。以下、本図を参照して説明する。
本実施形態においては、ゲーム装置200は、第1のサーバ装置210、ならびに、第2のサーバ装置220と、インターネット230を介して通信可能に接続される。
ここで、第1のサーバ装置210は、第1のゲームを実現するためのものであり、第2のサーバ装置220は、第2のゲームを実現するためのものである。
ゲーム装置200は、プレイヤーの指示に基づいて、第1のサーバ装置210と通信することによって、第1のゲームによる通信対戦を行い、第1のゲームの進行状況をプレイヤーに提示する。
一方、ゲーム装置200は、第1のゲームにおけるプレイヤーの指示を裏側で利用して、第2のサーバ装置220と通信することによって、第2のゲームによる通信対戦を行うが、第2のゲームの進行状況はプレイヤーには提示しない。
したがって、本実施形態においては、第1のゲームプログラムの実行と、第2のゲームプログラムの実行と、を、適切なタイミングで切り替える並行処理を利用する。
図3は、本実施形態に係るゲーム装置200の概要構成を示す模式図である。以下、本図を参照して説明する。
ゲーム装置200は、検知部301、出力部302、情報記録媒体303、実行部304、報告部305を備える。
なお、本実施形態は、サーバ装置210、220と通信することにより、第1のゲームならびに第2のゲームを進行させる態様を採用しているが、本発明は、このような通信ゲームのみに適用されるものではなく、スタンドアロン型のゲームにも適用可能である。たとえば、パーソナルコンピュータで動作するゲームの場合には、コンピュータそのものの計算能力が大きく異なる場合があり、第2のゲームプログラムのテストプレイを裏側で実行することには十分な意味がある。このため、本図においては、通信処理を担う要素の図示を省略している。
ここで、情報記録媒体303には、第1のゲームを実現する第1のゲームプログラムならびに第2のゲームを実現する第2のゲームプログラムが記録され、本実施形態では、ROMカセット111により実現される。
一方、検知部301は、プレイヤーによる操作を検知するための構成要素であり、本実施形態では、入力装置105により実現される。
たとえば、ゲーム用の情報処理装置101では、検知部301は、コントローラにより実現される。このようなコントローラには、各種のボタンやスイッチ、ジョイスティック等が設けられているのが一般的である。検知部301は、これらのボタン等が、プレイヤーにより操作されている状態を検知する。
このほか、動画撮影が可能な可視光用のカメラ、赤外線センサ、赤外線カメラ、超音波センサ等を利用して、プレイヤーの身振りや姿勢の変化を操作入力として利用する態様に本発明を適用することも可能である。
本実施形態では、検知部301で検知された操作は、第1のゲームと第2のゲームとで共用される。
さらに、出力部302は、プレイヤーに提示すべき情報を出力するための構成要素であり、本実施形態では、画像処理部106を介して制御される液晶ディスプレイ107によって実現される。
このほか、テレビジョン装置や液晶ディスプレイ、タッチスクリーンなどの表示装置により実現される。この場合、プレイヤーに提示すべき情報は、文字や図形などを含む画像によって提示される。
また、出力部302として、音声処理部108を介して制御されるヘッドフォン109やスピーカ等の音声出力装置を採用することとしても良い。この場合、プレイヤーに提示すべき情報は、楽曲や言葉を含む音声によって提示される。
実行部304は、第1のゲームプログラムに含まれる指令と、第2のゲームプログラムに含まれる指令と、を、情報記録媒体303から読み出して、並行に実行するもので、本実施形態では、実行部304は、CPU 102がRAM 103に第1のゲームプログラムと第2のゲームプログラムとをロードして、これらを並行に実行することにより実現される。
典型的には、これらのプログラムに含まれる指令は、RAM 103との間の読み書きを行う指令や、各種の条件分岐を行う指令のほか、サブルーチンの呼び出し指令やBIOSコールやシステムコールの呼び出し指令等がある。
なお、本実施形態では、プレイヤーは、自らの意思で第1のゲームをプレイする。一方、第2のゲームは、テストプレイの対象となるゲームであり、プレイヤーは、第2のゲームをプレイしていることを意識する必要はない。
このため、出力部302は、第1のゲームの進行情報のみを出力し、第2のゲームの進行情報は出力しない。このため、実行部304が2つのゲームプログラムを並行に実行する際に、後述する制御切り替えの技術を採用している。
さらに、報告部305は、実行部304による第2のゲームプログラムの実行に係る統計情報を報告する。
ここで、統計情報とは、たとえば、第2のゲームプログラムを実行している際にサブルーチンやシステムコールが、その種類ごとにどの程度の頻度で呼び出されたかなどの情報としても良いし、後述するように、サーバ装置等との通信状況などを統計情報として利用することとしても良い。
統計情報は、第2のゲームを進行させるにあたってゲームの状態を表すゲーム情報の一部として、RAM 103内に蓄積される。
後述するように、統計情報は、CPU 102が、第2のサーバ装置220へ無線LANインターフェース114を介して送信しても良いし、第1のゲームを終了もしくは中断したプレイヤーに対して、液晶ディスプレイ107に表示することとしても良い。したがって、報告部305は、CPU 102がRAM 103等と共働することにより実現される。
以下、まず、単独でゲームプログラムが動作する場合の様子について説明し、次に、並行して2つのゲームプログラムが動作する場合の様子について説明する。
図4は、単一のゲームプログラムを実行する際のゲーム処理の制御の流れを示すフローチャートである。これは、第1のゲームプログラム、もしくは、第2のゲームプログラムを単独で実行した場合に相当する。以下、本図を参照して説明する。
まず、CPU 102は、RAM 103内にプログラムをロードするためのメモリ空間を確保する(ステップS401)。
そして、CPU 102は、ROMカセット111からプログラムを読み出して、RAM 103内に確保したメモリ空間に書き込み(ステップS402)、当該メモリ空間の先頭のアドレスにジャンプする(ステップS403)ことによって、プログラムの実行を開始する。したがって、ROMカセット111が情報記録媒体303として機能することとなる。
ビジネス用コンピュータでは、ステップS401〜S403の処理は、オペレーティングシステムが担う作業である。一方、携帯可能なマルチメディア端末として情報処理装置101が実装されている場合には、ROM 104内に、このようなプログラムのロードおよび実行開始、ならびに、後述するようなプログラムの制御の切り替えのためのシステムプログラムを組み込んでおくのが通例である。
プログラムの実行が開始されたら、当該プログラムの制御の元、CPU 102は、RAM 103内において、ゲーム情報の初期化を行う(ステップS404)。
ゲーム情報には、たとえば、プレイヤーが操作するキャラクターや各種の敵キャラクターの体力パラメータ、所有するアイテム、当該キャラクターが配置される仮想空間内の位置、プレイヤーに提供されるゲームシナリオの弁別などが含まれる。
これらの情報は、ゲームの進行に必要な情報であり、適宜外部メモリ112からロードしたり、無線LANインターフェース114を介してサーバ装置と通信することによって取得したりすることができる。
そして、CPU 102は、画像処理部106を制御して、液晶ディスプレイ107に表示すべき画像をRAM 103内に生成する(ステップS405)。
そして、CPU 102は、液晶ディスプレイ107の垂直同期割込が生じるまで待機する(ステップS406)。この待機中には、CPU 102は、コルーチン的に他のプログラムを実行することが可能である。
垂直同期割込が生じたら、CPU 102は、画像処理部106を制御して、RAM 103内に生成された画像を液晶ディスプレイ107に転送して表示させる(ステップS407)。したがって、CPU 102は、画像処理部106と共働して、出力部302として機能することとなる。
その後、CPU 102は、入力装置105の現在の操作状態を検知して、プレイヤーからの操作入力を取得する(ステップS408)。したがって、入力装置105は、CPU 102の制御の下、検知部301として機能することとなる。
そして、CPU 102は、当該操作入力に基づいて、RAM 103内に記憶されるゲーム情報を更新する(ステップS409)。
さらに、CPU 102は、無線LANインターフェース114を介して、操作入力の状態や更新されたゲーム情報をサーバ装置へ送信する(ステップS410)。
ここで、実行されているプログラムが第1のゲームプログラムである場合には、送信先のサーバ装置は、第1のサーバ装置210であり、第2のゲームプログラムである場合には、送信先のサーバ装置は、第2のサーバ装置220である。また、必ずしも毎回情報を送信する必要はなく、適宜間引きを行っても良い。
そして、CPU 102は、現在のゲーム情報に基づいて、液晶ディスプレイ107に表示すべき画像をRAM 103内に生成する(ステップS411)。
そして、CPU 102は、液晶ディスプレイ107の垂直同期割込が生じるまで待機する(ステップS412)。この待機中には、CPU 102は、コルーチン的に他のプログラムを実行することが可能である。
垂直同期割込が生じたら、CPU 102は、画像処理部106を制御して、RAM 103内に生成された画像を液晶ディスプレイ107に転送して表示させる(ステップS413)。
ついで、CPU 102は、無線LANインターフェース114を介して、サーバ装置から、ゲームの進行に関する新たな指示を受信し(ステップS414)、当該指示に基づいて、RAM 103内に記憶されるゲーム情報を更新して(ステップS415)、ステップS408に戻る。
なお、ステップS414における通信相手のサーバ装置は、ステップS410における送信先のサーバ装置と同じである。また、インターネット230の通信遅延やゲームの仕様によっては、ステップS414において毎回指示が受信できるとは限らない。受信できない場合には、それに合わせて、ゲーム情報を更新することになる。
ステップS409ならびにステップS415におけるゲーム情報の更新の際には、統計情報も適宜蓄積、更新される。そして、サーバ装置に統計情報を報告する態様では、ステップS410においてCPU 102が無線LANインターフェース114と共働することにより、報告部305の機能が実現される。
第1のゲームプログラム、第2のゲームプログラムとも、基本的には、このような制御の流れを実現するものであるが、本実施形態では、この2つのプログラムを並行に実行する。そして、並行に実行する際のプログラムの制御の切り替えのタイミングとして、垂直同期割込の待機を用いる。
ステップS409ならびにステップS415におけるゲーム情報の更新によって、ゲームが進行され、以降で詳述するように、プログラムの制御を切り替えることによってプログラムの並行実行が実現される。したがって、これらの処理を行うCPU 102が、実行部304として機能することとなる。
さて、一般にプログラムに含まれる指令は、CPU 102が実行する機械語によって表現され、その中には、情報処理装置101の各部を制御するための指令が含まれる。一般には、これらの指令は、特定の入出力ポートへのアクセスや、BIOSコール、システムコール、ライブラリ関数等、特定のアドレスに配置されるプログラム断片の呼び出しによって実現されるが、本実施形態では、この呼び出し機構を用いて、並行処理の制御の切り替えを行う。
まず、CPU 102では、以下のようなレジスタが用意されている。
(a)プログラムカウンタ。これから実行しようとする指令のRAM 103内におけるアドレスが格納される。CPU 102が普通の指令を実行すると、自動的にインクリメントされるが、ジャンプ指令を実行すると、ジャンプ先に書き換えられる。
(b)スタックポインタ。RAM 103内の一時的な記憶域のアドレスを指すもので、値を一時的に保存する際にはプッシュ、保存した値を取り出す際にはポップと呼ばれる操作を行う。いわゆるLIFO(Last In First Out)あるいはFILO(First In Last Out)形式の記憶装置を実現するものである。
現在実行されている指令のあるアドレスに配置されるプログラム断片の呼び出しは、コール指令によって実現され、以下のような手順で行われる。
(1)現在のプログラムカウンタの値、すなわち、コール指令の次に配置されている指令のアドレスをスタックにプッシュする。
(2)プログラムカウンタの値を、コール指令に指定されたアドレスに変更する。
(3)当該プログラム断片のアドレスから、指令が順次実行される。
(4)リターン指令に到達すると、スタックから値をポップして、プログラムカウンタの値をポップした値に変更する。
(5)コール指令に引き続く指令が順次実行される。
なお、上記(1)の前に、当該プログラム断片に渡すべき引数をスタックに積むことも可能である。この場合には、上記(4)(5)の際に、積んだ引数をポップする必要がある。
また、複数のプログラムを並行にコルーチン的に動作させる場合には、それぞれのプログラム用にスタック領域を用意する。そして、プログラムカウンタとスタックポインタをまとめて、それぞれのプログラム用の値に書き換えることとすれば、プログラムの制御の切り替えを実現することができる。
一般には、プログラムカウンタとスタックポインタをまとめたものをコンテキストと呼ぶ。コンテキストの切り替えは、一般には、以下のような処理を行う。
(1)現在のプログラムカウンタの値とスタックポインタの値を、コンテクスト管理領域に保存する。
(2)切り替え先のプログラムカウンタの値とスタックポインタの値をコンテクスト管理領域から取得する。
(3)取得した値にスタックポインタを設定して、取得したプログラムカウンタのアドレスにジャンプする。
以下では、このようなコンテキスト切り替えに基づく並行処理により、図4に示すようなプログラムを並行に実行する際の制御の流れについて説明する。
図5は、本実施形態に係る2つのゲームプログラムの制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本図に示す各ステップは、図4に示す各ステップに対応するものであり、第1のゲームプログラムの各ステップの符号には添字として「a」を、第2のゲームプログラムの各ステップの符号には添字として「b」を、それぞれ付している。
本実施形態では、まず、第1のゲームプログラム用のメモリ確保およびロードと、第2のゲームプログラム用のメモリ確保およびロードを行う(ステップS401a〜S402a、S401b〜S402b)。上記のように、第1のゲームプログラムと第2のゲームプログラムとは、RAM 103内の異なるアドレスのメモリ空間にロードされることになる。
この際に、第1のゲームプログラムのコンテキストと第2のゲームプログラムのコンテキストの設定も行う。両者のコンテキスト内のプログラムカウンタの値は、各プログラムの先頭アドレスに設定され、両者のコンテキスト内のスタックポインタの値は、互いに重ならない一時記憶域を指すことになる。
そして、第2のゲームプログラムのコンテキストに制御を切り替えることにより、CPU 102は、第2のゲームプログラムの先頭にジャンプする。これによって、初期化ならびに画像生成が行われる(ステップS403b〜S405b)。
さらに、第2のゲームプログラムの実行において垂直同期割込を待機しようとすると(ステップS406b)、第1のゲームプログラムにコンテキストが切り替わる。また、実際には、ステップS406bにおいて垂直同期割込を待機するわけではないので、フローチャートのステップS406bは、破線で囲まれている。ステップS406bに相当する垂直同期待ちは、実際には、後述するステップS406aにおいて実行される。
制御が切り替わると、第1のゲームプログラムの先頭にジャンプして、第1のゲームが初期化され(ステップS403a〜S404a)、表示すべき画像が生成される(ステップS405a)。
第1のゲームプログラムにおいて垂直同期割込の待機に至ると(ステップS406a)、CPU 102は、液晶ディスプレイ107の垂直同期割込が生じるまで待機し、その後に、第1のゲーム用の画像が液晶ディスプレイ107に転送されて表示される(ステップS407a)。
この後、プログラムの制御は、第2のゲームプログラムのステップS407bではなく、その次のステップS408bに戻る。このため、第2のゲーム用の画像は液晶ディスプレイ107には表示されないことになる。そこで、ステップS407bは、点線で囲んで図示している。
ついで、第2のゲームプログラムにおいて、操作入力の取得(ステップSS408b)、ゲーム情報の更新(ステップS409b)、第2のサーバ装置220への送信(ステップS410b)、画像の生成(ステップS411b)を実行し、垂直同期割込を待機しようとする(ステップS412b)。すると、プログラムの制御は、第1のゲームプログラムに戻る。
ここでもステップS407aと同様に、実際には第2のゲームプログラムで垂直同期を待機するわけではないので、ステップS412は破線で囲んで図示している。なお、ステップS412に相当する垂直同期待ちは、実際には、後述するステップS412aにおいて実行される。
また、コンテキスト切り替えの原理に基づき、ステップS412bから初めて、第1のゲームプログラムに制御が戻る際には、ステップS408aに戻るが、2回目以降、第1のゲームプログラムに制御が戻る際には、ステップS414aに戻ることになる。
ステップS408aに制御が移ると、第1のゲームプログラムにおいて、操作入力の取得(ステップS408a)、ゲーム情報の更新(ステップS409a)、第1のサーバ装置210への送信(ステップS410a)、画像の生成(ステップS411a)を実行し、垂直同期割込の待機(ステップS412a)に至る。
ここで、ステップS406aと同様に、CPU 102は、液晶ディスプレイ107の垂直同期割込が生じるまで待機し、その後に、第1のゲーム用の画像が液晶ディスプレイ107に転送されて表示される(ステップS413a)。
この後、プログラムの制御は、第2のゲームプログラムのステップS413bではなく、その次のステップS414bに戻る。このため、第2のゲーム用の画像は液晶ディスプレイ107には表示されないことになる。このため、ステップS413bは、破線で囲むように図示している。
そして、第2のゲームプログラムにおいて、第2のサーバ装置220からの受信(ステップS414b)、ゲーム情報の更新(ステップS415b)、操作入力の取得(ステップS408b)、ゲーム情報の更新(ステップS409b)、第2のサーバ装置220への送信(ステップS410b)、画像の生成(ステップS411b)を実行し、垂直同期割込を待機しようとする(ステップS412b)。
すると、プログラムの制御は、第1のゲームプログラムに戻り、第1のゲームプログラムにおいて、第1のサーバ装置210からの受信(ステップS414a)、ゲーム情報の更新(ステップS415a)、操作入力の取得(ステップS408a)、ゲーム情報の更新(ステップS409a)、第1のサーバ装置210への送信(ステップS410a)、画像の生成(ステップS411a)を実行する。
以下同様に繰り返しが行われる。したがって、本実施形態では、垂直同期割込の待機(ステップS412a、S412b)を契機に、プログラムの制御が切り替えられることになる。
さて、本実施形態では、上記のように、第1のゲームプログラムと、第2のゲームプログラムと、は、RAM 103内の異なるメモリ空間にロードされる。
したがって、BIOSコールやシステムコール、ライブラリ関数の実行が開始される段階で、CPU 102は、スタックに保存される戻りアドレスを調べる。
そして、戻りアドレスが、第1のゲームプログラムがロードされたメモリ空間に含まれる場合には、呼び出し元は、第1のゲームプログラムである、と判定される。一方、戻りアドレスが、第2のゲームプログラムがロードされたメモリ空間に含まれる場合には、呼び出し元は、第2のゲームプログラムである、と判定される。
このように、本実施形態では、コンピュータのCPU 102の関数呼び出し機構を利用して、出力指令を実行しようとしているゲームプログラムがいずれであるかを判定する。
さて、図5に示すフローチャートでは、第1のゲームプログラムならびに第2のゲームプログラムで入力装置105の状態を調べているが、第2のゲームプログラムにおける画面への転送はスキップしている。本実施形態では、このスキップを実現するために、以下のような手法を採用する。
すなわち、本実施形態では、プレイヤーによる操作を検知すべき旨の検知指令や、情報を出力すべき旨の出力指令は、サーバ装置との通信のための通信指令は、BIOSコール、システムコール、ライブラリ関数等により実現される。
そこで、検知指令を実装するBIOSコール、システムコール、ライブラリ関数等は、その呼び出し元が、第1のゲームプログラムか、第2のゲームプログラムかにかかわらず、入力装置105の操作状態を調べることとする。
また、通信指令を実装するBIOSコール、システムコール、ライブラリ関数等も、第1のゲームプログラムか、第2のゲームプログラムかにかかわらず、実行される。ただし、第1のゲームプログラムは、通信相手として第1のサーバ装置210を指定して呼び出しを行い、第2のゲームプログラムは、通信相手として第2のサーバ装置220を指定して呼び出しを行う。
一方、出力指令により実行される出力処理を実装するBIOSコール、システムコール、ライブラリ関数等は、その呼び出し元が第1のゲームプログラムである場合には、RAM 103内に生成された画像を液晶ディスプレイ107に転送する。一方、呼び出し元が第2のゲームプログラムである場合には、そのままリターンする。
なお、本実施形態では、出力処理の呼び出しの際に、プログラムの制御の切り替えも行う。
図6は、出力処理の詳細を示すフローチャートである。以下、本図を参照して説明する。
本処理が呼び出されると、CPU 102は、まず、呼び出し元のプログラムが、第1のゲームプログラムか、第2のゲームプログラムか、を判定する(ステップS601)。
第2のゲームプログラムである場合には(ステップS601;第2)、コンテキストを第1のゲームプログラムに切り替える(ステップS611)。
一方、第1のゲームプログラムである場合には(ステップS601;第1)、液晶ディスプレイ107を監視して、垂直同期割込が発生するまで待機する(ステップS621)。
その後、垂直同期割込が実際に発生したら、画像処理部106を制御して、RAM 103内に生成された画像を転送して、液晶ディスプレイ107に表示させる(ステップS622)。
その後、第2のゲームプログラムにコンテキストを切り替える(ステップS623)。
制御の切り替えは、いわゆるコルーチンによって実装されるので、ステップS623の制御切り替えによって、制御はステップS611に戻ることになり、ステップS611の制御切り替えによって、制御はステップS623に戻ることになる。
ステップS611の後に、第1のゲームプログラムから制御が戻ってきた場合には、垂直同期割込の待機はすでにステップS621においてなされている。また、第2のゲームプログラムにより生成される画像は液晶ディスプレイ107には表示されない。したがって、そのまま出力処理の呼び出し元(これは、第2のゲームプログラムに含まれる。)にリターンして(ステップS612)、本処理を終了する。
一方、ステップS623の後に、第2のゲームプログラムから制御が戻ってきた場合には、出力処理の呼び出し元(これは、第1のゲームプログラムに含まれる。)にリターンして(ステップS624)、本処理を終了する。
出力処理は、いわゆるタスク切り替え、あるいは、コンテクスト切り替えの処理と、垂直同期割込待ちならびに画像転送処理を組み合わせたものとして実装される。
なお、通信指令において、通信相手から各種の情報を受信しようとする際にも、ステップS611、ステップS623と同様に、プログラムの制御の切り替えを適宜行うこととしても良い。受信の際には、パケットが到着するか、ある程度のタイムアウト時間が経過するまで、待機することが多いからである。
このように、本実施形態では、プレイヤーに対しては、第1のゲームにおける情報のみが提示される。したがって、プレイヤーは、第2のゲームの進行状況を知得することはできない。
しかしながら、プレイヤーによる操作は、第1のゲームと第2のゲームの両方に与えられるので、プレイヤーが第1のゲームをプレイしているのと並行して、その裏側で、プレイヤーは第2のゲームを同時にプレイしていることになる。
このため、第1のゲームの操作体系と第2のゲームの操作体系とを類似するものとしておけば、第2のゲームのテストプレイが実行されることになる。
また、第1のゲームの操作体系と第2のゲームの操作体系とが類似しないときであっても、プレイヤーが誤った操作を行った際に、第2のゲームプログラムが暴走しないことを確認する等のテストを行うことが可能である。
また、第2のゲームのテストプレイの様子は、統計情報として収集され、この統計情報は、第2のゲームプログラムのデバッグや、プレイヤーが所有するハードウェアなどのプレイ環境が第2のゲームプログラムを実行するだけの性能を有するかなどの判定に利用することができる。
このように、本実施形態では、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告することができるようになる。
なお、本実施形態では、第1のゲームプログラムと第2のゲームプログラムとで、同じBIOSコール、システムコール、ライブラリ関数を利用することを前提としている。
しかしながら、以下のような簡易な手法を採用することもできる。すなわち、第1のゲームプログラムでは、出力指令を、「RAM 103内に生成された画像を液晶ディスプレイ107に転送する処理を実行するプログラム断片の呼び出し」により実装する。一方、第2のゲームプログラムでは、出力指令を、「何もしない関数の呼び出し」により実装する。
具体的には、画面表示を行うためのライブラリと、画面表示を行わないライブラリと、の、2種類を用意する。そして、ゲームプログラムのコンパイル時には、前者を第1のゲームプログラムとリンクし、後者を第2のゲームプログラムとリンクするのである。
なお、本実施形態では、出力部302の出力先として、液晶ディスプレイ107を例として取り上げたが、液晶ディスプレイ107とヘッドホン109の両方を出力先とすることもできる。
携帯型のエンタテインメント装置においては、音声処理部108による音声処理も、垂直同期割込周期を単位として行うことが可能であり、その場合には、ステップS622における画像転送の前後に、音声処理部108の制御処理を追加すれば良い。
また、単純に、第2のゲームプログラムから音声出力処理の呼び出しがあった場合には、直ちにリターンし、第1のゲームプログラムから音声出力処理の呼び出しがあった場合には、その旨の処理を行うような、BIOSコール、システムコール、ライブラリ関数を利用することとしても良い。
さて、本実施形態では、第2のゲームプログラムを実行することによって、第2のゲームの統計情報が蓄積することができる。ここで、ゲームの統計情報としては、以下のようなものが考えられる。
(1)実行中のBIOSコール、システムコール、ライブラリ関数の呼び出しの回数。
(2)実行中の第2のサーバ装置220との通信状況。ステップS414において、第2のサーバ装置220からの指示を含むパケットが受信できた回数や、受信しようとして受信できなかった回数のほか、パケットの送受に要する通信遅延時間、通信経路のホップ数、パケット消失やパケット誤りの生じる割合等。
(3)プレイヤーによる操作入力の履歴。
(4)CPU 102の計算負荷。
これらの情報は、第2のゲームプログラムの実行の際の送信(ステップS410b)の際に、第2のサーバ装置220に通知される。
第2のゲームを実現するための第2のサーバ装置220や第2のゲームプログラムの動作を検証する際には、これらの情報を利用することで、より一層の最適化を図ることができる。
このほか、プレイヤーが、第1のゲームの状態をセーブして、プレイを終了したり、一時中断したりする際に、第2のゲームの広告を液晶ディスプレイ107に表示する態様も考えられる。
このような終了や一時中断は、CPU 102が中断指令を実行しようとすることによって開始される。終了や一時中断とは、たとえば、第1のゲームの状態を保存して第1のゲームそのものを終了したり、第1のゲームのタイトル表示に戻ったりするような状況である。このような状況でプレイヤーに対して、第2のゲームを告知、広告すると、プレイヤーの興味を惹くことができる。
この際に、第2のゲームの統計情報に基づいて、プレイヤーの通信環境が第2のゲームのプレイに好適か否かを否かを判定する。その結果に基づいて、「第2のゲームのネット対戦に十分な通信速度がある」「第2のゲームをプレイするには通信速度が不足している」等の情報とともに、第2のゲームの広告を画面に表示するのである。
このような態様を採用した場合には、顧客が第2のゲームの購入を検討する際のゲームのプレイ環境について、有益な判断材料を提供することができる。
以上説明したように、本発明によれば、第1のゲームをプレイヤーに提供しつつ、当該プレイヤーの環境において第2のゲームを提供できるか否かを判定等するための統計情報を適切に収集して報告するのに好適なゲーム装置、その制御方法、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体、ならびに、当該プログラムからなるテストプレイ用プログラムを提供することができる。
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
200 ゲーム装置
210 第1のサーバ装置
220 第2のサーバ装置
230 インターネット
301 検知部
302 出力部
303 情報記録媒体
304 実行部
305 報告部

Claims (10)

  1. プレイヤーによる操作を検知するための検知部、
    前記プレイヤーに提示すべき情報を出力するための出力部、
    第1のゲームを実現するための第1のゲームプログラムならびに第2のゲームを実現するための第2のゲームプログラムが記憶される記憶部、
    前記記憶部に記憶された第1のゲームプログラムに含まれる指令と、前記記憶部に記憶された第2のゲームプログラムに含まれる指令と、を、並行に実行する実行部
    前記実行部による前記第2のゲームプログラムの実行に係る統計情報を報告する報告部
    を備え、
    前記実行部は、
    (a)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (b)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、前記出力部を制御して当該情報を出力し、
    (c)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (d)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、当該出力指令を無視する
    ことを特徴とするゲーム装置。
  2. 請求項1に記載のゲーム装置であって、
    前記第1のゲームプログラムと、前記第2のゲームプログラムと、は、互いに異なるアドレスに配置され、
    前記出力指令は、所定のライブラリ関数を呼び出す指令であり、
    前記実行部は、前記ライブラリ関数が呼び出されると、当該関数の呼び出し元のアドレスに基づいて、当該出力指令が、前記第1のゲームプログラムと、前記第2のゲームプログラムと、のいずれに含まれるものかを判定する
    ことを特徴とするゲーム装置。
  3. 請求項1または2に記載のゲーム装置であって、
    前記出力部は、モニターの画面に画像を表示することにより、前記プレイヤーに提示すべき情報を出力し、
    前記第1のゲームプログラムは、第1のサーバ装置と通信することにより、前記第1のゲームを実現させ、
    前記第2のゲームプログラムは、第2のサーバ装置と通信することにより、前記第2のゲームを実現させ、
    前記報告部は、前記統計情報を前記第2のサーバ装置に送信することにより、当該統計情報を報告する
    ことを特徴とするゲーム装置。
  4. 請求項3に記載のゲーム装置であって、
    前記実行部は、前記第2のゲームプログラムの実行において実行すべき指令が前記第2のゲームプログラムに含まれる出力指令である場合、前記第1のゲームプログラムの実行において前記第1のゲームプログラムに含まれる出力指令により、前記画面に情報が表示されるまで待機し、前記第1のゲームプログラムに含まれる出力指令の実行が終了した後に、前記第2のゲームプログラムの次の指令を実行することによって、前記第2のゲームプログラムに含まれる出力指令を無視する
    ことを特徴とするゲーム装置。
  5. 請求項3または4に記載のゲーム装置であって、
    前記実行部は、実行すべき指令が、前記第1のゲームプログラムに含まれ、前記第1のゲームを中断すべき旨の中断指令である場合、前記出力部を制御して前記報告部により報告されるべき前記統計情報を前記モニターの画面に表示させる
    ことを特徴とするゲーム装置。
  6. 請求項4または5に記載のゲーム装置であって、
    前記統計情報には、前記ゲーム装置と、前記第2のサーバ装置と、の間の通信品質に係る情報が含まれる
    ことを特徴とするゲーム装置。
  7. 請求項1から6のいずれか1項に記載のゲーム装置であって、
    前記記憶部は、コンピュータ読取可能な情報記録媒体、もしくは、前記第1のゲームプログラムと前記第2のゲームプログラムとを記録したコンピュータ読取可能な情報記録媒体から読み出された当該第1のゲームプログラムと当該第2のゲームプログラムとが記憶されるランダムアクセスメモリである
    ことを特徴とするゲーム装置。
  8. プレイヤーによる操作を検知するための検知部、前記プレイヤーに提示すべき情報を出力するための出力部、第1のゲームを実現するための第1のゲームプログラムならびに第2のゲームを実現するための第2のゲームプログラムが記憶される記憶部、実行部、報告部を有するゲーム装置を制御する制御方法であって、
    前記実行部が、前記記憶部に記憶された前記第1のゲームプログラムに含まれる指令と、前記記憶部に記憶された前記第2のゲームプログラムに含まれる指令と、を、並行に実行する実行工程、
    前記報告部が、前記実行工程による前記第2のゲームプログラムの実行に係る統計情報を報告する報告工程
    を備え、
    前記実行工程では、
    (a)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記実行部は、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (b)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、前記実行部は、前記出力部を制御して当該情報を出力し、
    (c)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記実行部は、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (d)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、前記実行部は、当該出力指令を無視する
    ことを特徴とする制御方法。
  9. システムプログラムと、第1のゲームを実現するための第1のゲームプログラムと、第2のゲームを実現するための第2のゲームプログラムと、が記録されるコンピュータ読取可能な情報記録媒体であって、
    前記システムプログラムは、プレイヤーによる操作を検知するための検知部、前記プレイヤーに提示すべき情報を出力するための出力部を備えるコンピュータを、
    前記第1のゲームプログラムに含まれる指令と、前記第2のゲームプログラムに含まれる指令と、を、前記情報記録媒体から読み出して、並行に実行する実行部、
    前記実行部による前記第2のゲームプログラムの実行に係る統計情報を報告する報告部、
    として機能させ、
    前記実行部は、
    (a)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (b)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、前記出力部を制御して当該情報を出力し、
    (c)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (d)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、当該出力指令を無視する
    ように機能させることを特徴とする情報記録媒体。
  10. システムプログラムと、第1のゲームを実現するための第1のゲームプログラムと、第2のゲームを実現するための第2のゲームプログラムと、からなるテストプレイ用プログラムであって、
    前記システムプログラムは、プレイヤーによる操作を検知するための検知部、前記プレイヤーに提示すべき情報を出力するための出力部を備えるコンピュータを、
    前記第1のゲームプログラムに含まれる指令と、前記第2のゲームプログラムに含まれる指令と、を、並行に実行する実行部、
    前記実行部による前記第2のゲームプログラムの実行に係る統計情報を報告する報告部、
    として機能させ、
    前記実行部は、
    (a)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (b)実行すべき指令が、前記第1のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、前記出力部を制御して当該情報を出力し、
    (c)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記プレイヤーによる操作を検知すべき旨の検知指令である場合、前記検知部を制御して前記プレイヤーによる操作を検知し、
    (d)実行すべき指令が、前記第2のゲームプログラムに含まれ、前記情報を出力すべき旨の出力指令である場合、当該出力指令を無視する
    ように機能させることを特徴とするテストプレイ用プログラム。
JP2010065041A 2010-03-19 2010-03-19 ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム Active JP5386416B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010065041A JP5386416B2 (ja) 2010-03-19 2010-03-19 ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010065041A JP5386416B2 (ja) 2010-03-19 2010-03-19 ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム

Publications (2)

Publication Number Publication Date
JP2011194072A true JP2011194072A (ja) 2011-10-06
JP5386416B2 JP5386416B2 (ja) 2014-01-15

Family

ID=44873005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010065041A Active JP5386416B2 (ja) 2010-03-19 2010-03-19 ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム

Country Status (1)

Country Link
JP (1) JP5386416B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014068758A (ja) * 2012-09-28 2014-04-21 Konami Digital Entertainment Co Ltd ゲーム制御装置、ゲーム制御方法、プログラム、ゲームシステム
EP3300780A1 (en) 2016-09-28 2018-04-04 Nintendo Co., Ltd. Display control apparatus, display control system, display control method and display control program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10156039A (ja) * 1996-12-02 1998-06-16 Namco Ltd ゲーム装置及び情報記憶媒体
JP3120620B2 (ja) * 1993-03-04 2000-12-25 株式会社セガ 家庭用ゲーム機を用いた自動デモシステム
JP2001273255A (ja) * 2000-01-20 2001-10-05 Square Co Ltd オンライン複合サービス提供方法およびその方法を実現するためのプログラムを記録した記録媒体、ならびに、オンライン複合サービス提供システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3120620B2 (ja) * 1993-03-04 2000-12-25 株式会社セガ 家庭用ゲーム機を用いた自動デモシステム
JPH10156039A (ja) * 1996-12-02 1998-06-16 Namco Ltd ゲーム装置及び情報記憶媒体
JP2001273255A (ja) * 2000-01-20 2001-10-05 Square Co Ltd オンライン複合サービス提供方法およびその方法を実現するためのプログラムを記録した記録媒体、ならびに、オンライン複合サービス提供システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014068758A (ja) * 2012-09-28 2014-04-21 Konami Digital Entertainment Co Ltd ゲーム制御装置、ゲーム制御方法、プログラム、ゲームシステム
EP3300780A1 (en) 2016-09-28 2018-04-04 Nintendo Co., Ltd. Display control apparatus, display control system, display control method and display control program
EP3498352A1 (en) 2016-09-28 2019-06-19 Nintendo Co., Ltd. Display control apparatus, display control system, display control method and display control program
US10350499B2 (en) 2016-09-28 2019-07-16 Nintendo Co., Ltd. Display control apparatus, display control system, display control method and storage medium
US10918955B2 (en) 2016-09-28 2021-02-16 Nintendo Co., Ltd. Techniques for displaying character play records on a game map

Also Published As

Publication number Publication date
JP5386416B2 (ja) 2014-01-15

Similar Documents

Publication Publication Date Title
JP3574106B2 (ja) ネットワークゲームシステム、ゲームサーバ装置、ビデオゲーム装置、ネットワークゲームにおけるメッセージの送信方法及び表示制御方法、プログラム、並びに記録媒体
RU2734109C1 (ru) Способ воспроизведения нескольких видео на мобильном терминале, мобильный терминал и считываемая запоминающая среда
US9236088B2 (en) Application communication
CN108769814A (zh) 视频互动方法、装置及可读介质
US20040266529A1 (en) Methods and systems for remote execution of game content and presentation on a wireless portable device
JP2009521058A (ja) コマンド機能表示方法及びモバイルターミナル
CN107050850A (zh) 虚拟场景的录制和回放方法、装置以及回放系统
JP2007004797A (ja) 移動端末機のデータ処理装置及びその方法
CN104640608A (zh) 基于用户的迷你游戏生成和发布
MX2015005537A (es) Aparato para procesamiento de informacion y aparato de entrada de informacion.
JP5947876B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、情報処理装置
US20180005618A1 (en) Information processing method, terminal device and computer storage medium
JP2011056049A (ja) ゲーム装置、ゲーム制御方法、および、プログラム
JP5054215B2 (ja) 映像再生装置およびその制御方法およびプログラム
JP6359738B2 (ja) インタラクティブコンテンツに対するコメント方法及びコメントシナリオ再演方法
CN113268682A (zh) 基于导航栏的页面内容展示方法、装置、设备及存储介质
JP5386416B2 (ja) ゲーム装置、その制御方法、情報記録媒体、ならびに、テストプレイ用プログラム
US20070022379A1 (en) Terminal for displaying distributed picture content
JP2016193052A (ja) ゲーム装置及びゲームプログラム
JP5898355B1 (ja) サウンド再生プログラムおよびサウンド再生システム
JP2014167520A (ja) 通信障害時にデュエット歌唱を継続可能な通信カラオケシステム
JP4960942B2 (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
JP2015107228A (ja) ビデオゲーム処理プログラム、ビデオゲーム処理システム、及びビデオゲーム処理装置
JP2020115252A (ja) 情報処理システム、情報処理方法およびコンピュータプログラム
JP5291741B2 (ja) ゲーム装置、ゲーム再開方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111017

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131007

R150 Certificate of patent or registration of utility model

Ref document number: 5386416

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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