(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-05-12
(45)【発行日】2022-05-20
(54)【発明の名称】ゲーム開発システム
(51)【国際特許分類】
A63F 13/60 20140101AFI20220513BHJP
A63F 13/211 20140101ALI20220513BHJP
A63F 13/77 20140101ALI20220513BHJP
【FI】
A63F13/60
A63F13/211
A63F13/77
(21)【出願番号】P 2020196144
(22)【出願日】2020-11-26
【審査請求日】2021-03-09
【新規性喪失の例外の表示】特許法第30条第2項適用 ▲1▼開催日:令和2年9月4日 ▲2▼集会名、開催場所:コンピュータエンターテインメントデベロッパーズカンファレンス2020(CEDEC2020)、オンライン開催 集会アドレス:https://cedec.cesa.or.jp/2020/
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100124039
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】稲葉 翔
【審査官】前地 純一郎
(56)【参考文献】
【文献】特表2009-501386(JP,A)
【文献】特開2016-114341(JP,A)
【文献】特開2003-58395(JP,A)
【文献】出村 成和,Android NDK ネイティブプログラミング,第1版,株式会社秀和システム,2011年08月06日,p.39~40
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
A63F 9/24
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
開発中のゲームプログラムを実行するゲーム装置と、
前記ゲーム装置と通信可能に接続された情報処理装置と、
を備え、
前記開発中のゲームプログラムが前記ゲーム装置のコンピュータに実行させる処理には、
ゲーム処理の実行中に当該ゲーム処理に用いられるデータに関するログを生成する処理であって、プレースホルダーを示す文字列とプレースホルダーではない文字列とが指定された並びで含まれると共に、さらに前記プレースホルダーに代入するための前記データが含まれるログを、バイナリ形式で生成するログ生成処理が含まれ、
前記情報処理装置は、前記ゲーム処理実行に伴い随時生成される前記ログを随時受信し、受信されたバイナリ形式の前記ログに基づいて、前記プレースホルダーに前記データが代入された文字列と前記プレースホルダーではない文字列が前記指定された並びで記述されたテキスト形式のログを随時生成して出力する文字列生成処理を行う、
ゲーム開発システム。
【請求項2】
前記データは前記ゲーム処理実行中のゲーム内のパラメータである、請求項1に記載のゲーム開発システム。
【請求項3】
前記ゲームは、センサを備えたゲームコントローラを用いるゲームであって、
前記ゲーム内のパラメータは、前記センサからの出力に基づいたパラメータを含む、請求項2に記載のゲーム開発システム。
【請求項4】
前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示するログビューワを表示装置に表示させるログビューワ表示処理を行う、請求項1から3のいずれかに記載のゲーム開発システム。
【請求項5】
前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じて前記ログに含まれる前記パラメータをグラフ形式で表示するログビューワを表示装置に表示させるログビューワ表示処理を行う、請求項2または3に記載のゲーム開発システム。
【請求項6】
前記センサは慣性センサであって、
前記情報処理装置はさらに、
所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、
操作者の指示に応じてさらに、前記ログに含まれる前記慣性センサからの出力に基づいてパラメータを用いて前記ゲームコントローラの姿勢を随時算出し、
当該ゲームコントローラの姿勢を示すオブジェクトを表示するログビューワを表示装置に表示させるログビューワ表示処理を行う、請求項3に記載のゲーム開発システム。
【請求項7】
前記データは、画像データをさらに含み、
前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる画像データに関して、画像を表示するログビューワを表示装置に表示させるログビューワ表示処理を行う、請求項1から3のいずれかに記載のゲーム開発システム。
【請求項8】
前記プレースホルダーではない文字列には、前記データのカテゴリを示す文字列が含まれ、
前記ログビューワは、操作者の指示に応じて、前記カテゴリ毎に前記テキスト形式のログを表示させる、請求項4から7のいずれかに記載のゲーム開発システム。
【請求項9】
前記カテゴリを示す文字列は、区切られた複数の文字列の組み合わせによって階層的にカテゴリを示し、
前記ログビューワは、操作者の指示に応じて、階層的に前記テキスト形式のログを表示させる、請求項8に記載のゲーム開発システム。
【請求項10】
前記情報処理装置はさらに、受信されたバイナリ形式の前記ログに基づいて、前記ゲーム処理のデータに基づいてデータベースを作成するデータベース生成処理をさらに行う、請求項1から9のいずれかに記載のゲーム開発システム。
【請求項11】
前記ゲーム装置は、前記ログ生成処理において、前記データの種類に対応する前記プレースホルダーとなる文字列を含んだ前記バイナリ形式のログを生成し、
前記情報処理装置は、前記データベース生成処理において、前記プレースホルダーとなる文字列の種類毎に、前記プレースホルダーに代入するためのデータを分類したデータベースを生成する、請求項10に記載のゲーム開発システム。
【請求項12】
前記プレースホルダーに代入するためのデータには、前記ゲーム装置で前記ゲーム処理を実行中の処理負荷またはメモリ占有度合を示すデータが含まれる、請求項10または11に記載のゲーム開発システム。
【請求項13】
前記プレースホルダーに代入するためのデータには、前記ゲーム装置で実行中のゲームのプレイ時間、ゲーム内で獲得できるアイテム、及びゲームの達成度の少なくともいずれかを示すデータが含まれる、請求項10または11に記載のゲーム開発システム。
【請求項14】
前記プレースホルダーに代入するためのデータには、前記ゲームをプレイするのに用いられるコントローラに対する操作内容を示すデータが含まれる、請求項10または11に記載のゲーム開発システム。
【請求項15】
ゲーム装置において、開発中のゲームプログラムによるゲーム処理を実行中に、当該ゲーム処理に用いられるデータに関するログを生成する処理であって、プレースホルダーを示す文字列とプレースホルダーではない文字列とが、指定された並びで含まれると共に、さらに前記プレースホルダーに代入するための前記データが含まれるログを、バイナリ形式で生成するステップと、
情報処理装置において、前記ゲーム処理実行に伴い随時生成される前記ログを随時受信し、受信されたバイナリ形式の前記ログに基づいて、前記プレースホルダーに前記データが代入された文字列と前記プレースホルダーではない文字列が前記指定された並びで記述されたテキスト形式のログを随時生成して出力するステップと、
を備えている、ゲーム開発方法。
【請求項16】
前記データは前記ゲーム処理実行中のゲーム内のパラメータである、請求項15に記載のゲーム開発方法。
【請求項17】
前記ゲームは、センサを備えたゲームコントローラを用いるゲームであって、
前記ゲーム内のパラメータは、前記センサからの出力に基づいたパラメータを含む、請求項16に記載のゲーム開発方法。
【請求項18】
前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示するログビューワを表示装置に表示させるステップをさらに備えている、請求項15から17のいずれかに記載のゲーム開発方法。
【請求項19】
前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じて前記ログに含まれる前記パラメータをグラフ形式で表示するログビューワを表示装置に表示させるステップをさらに備えている、請求項16または17に記載のゲーム開発方法。
【請求項20】
前記センサは慣性センサであって、
前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、
操作者の指示に応じてさらに、前記ログに含まれる前記慣性センサからの出力に基づいてパラメータを用いて前記ゲームコントローラの姿勢を随時算出し、
当該コントローラの姿勢を示すオブジェクトを表示するログビューワを表示装置に表示させるステップをさらに備えている、請求項17に記載のゲーム開発方法。
【請求項21】
前記データは、画像データをさらに含み、
前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる画像データに関して、画像を表示するログビューワを表示装置に表示させるステップをさらに備えている、請求項15から17のいずれかに記載のゲーム開発方法。
【請求項22】
前記プレースホルダーではない文字列には前記データのカテゴリを示す文字列が含まれ、
前記ログビューワは、操作者の指示に応じて、前記カテゴリ毎に前記テキスト形式のログを表示させる、請求項18から21のいずれかに記載のゲーム開発方法。
【請求項23】
前記カテゴリを示す文字列は、区切られた複数の文字列の組み合わせによって階層的にカテゴリを示し、
前記ログビューワは、操作者の指示に応じて、階層的に前記テキスト形式のログを表示させる、請求項22に記載のゲーム開発方法。
【請求項24】
前記情報処理装置はさらに、受信されたバイナリ形式の前記ログに基づいて、前記ゲーム処理のデータに基づいてデータベースを作成するステップをさらに備えている、請求項15から23のいずれかに記載のゲーム開発方法。
【請求項25】
前記ゲーム装置は、前記ログ生成処理において、前記データの種類に対応する前記プレースホルダーとなる文字列を含んだ前記バイナリ形式のログを生成し、
前記情報処理装置は、前記データベース生成処理において、前記プレースホルダーとなる文字列の種類毎に、前記プレースホルダーに代入するためのデータを分類したデータベースを生成する、請求項24に記載のゲーム開発方法。
【請求項26】
前記プレースホルダーに代入するためのデータには、前記ゲーム装置で前記ゲーム処理を実行中の処理負荷またはメモリ占有度合を示すデータが含まれる、請求項24または25に記載のゲーム開発方法。
【請求項27】
前記プレースホルダーに代入するためのデータには、前記ゲーム装置で実行中のゲームのプレイ時間、ゲーム内で獲得できるアイテム、及びゲームの達成度の少なくともいずれかを示すデータが含まれる、請求項24または25に記載のゲーム開発方法。
【請求項28】
前記プレースホルダーに代入するためのデータには、前記ゲームをプレイするのに用いられるゲームコントローラに対する操作内容を示すデータが含まれる、請求項24または25に記載のゲーム開発方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ゲーム開発システム、及びゲーム開発方法に関する。
【背景技術】
【0002】
従来、開発中のゲームのプログラム中にprintf等の文字列を出力する関数を含めることによって実行中のゲームのログを出力し、開発中のゲームの実行中の監視や分析に用いられることが行われていた(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】ジェイソン・グレゴリー著、「ゲームエンジン・アーキテクチャ」、第2版、SBクリエイティブ株式会社、2015年4月1日、p.408-409
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、分析のために大量のログを出力させようとすると、ゲーム装置のリソースを製品版に含まれないログ出力に割くことになり、本来のパフォーマンスでゲーム処理を実行することが阻害される懸念があった。
【0005】
本開示は、この問題を解決するためになされたものであり、開発中のゲームを実行中に、ログの出力によってゲーム装置のパフオーマンスが低下するのを抑制することができる、ゲーム開発システム及びゲーム開発方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の第1の観点に係るゲーム開発システムは、開発中のゲームプログラムを実行するゲーム装置と、前記ゲーム装置と通信可能に接続された情報処理装置と、を備え、前記開発中のゲームプログラムが前記ゲーム装置のコンピュータに実行させる処理には、ゲーム処理実行中に当該ゲーム処理に用いられるデータに関するログを生成する処理であって、プレースホルダーを示す文字列とプレースホルダーではない文字列とが指定された並びで含まれると共に、さらに前記プレースホルダーに代入するための前記データが含まれるログを、バイナリ形式で生成するログ生成処理が含まれ、前記情報処理装置は、前記ゲーム処理実行に伴い随時生成される前記ログを随時受信し、受信されたバイナリ形式の前記ログに基づいて、前記プレースホルダーに前記データが代入された文字列と前記プレースホルダーではない文字列が前記指定された並びで記述されたテキスト形式のログを随時生成して出力する文字列生成処理を行う。
【0007】
この構成によれば、ゲーム装置において、開発中のゲームプログラムを実行してゲーム処理を行う際に、ゲーム処理に用いられるデータをプレースホルダーに代入して文字列を生成する処理をゲーム実行中のゲーム装置側では行わずに、接続された情報処理装置側で行って出力するように構成されている。そのため、ゲーム装置側でログ生成のために行われる処理を抑えることができる。このようなログ生成のための処理は、製品版のゲームプログラムでは行われないため、そのような処理のためにゲーム装置のパフォーマンスを割くことを抑制することができる。すなわち、ゲーム装置でゲーム処理を実行中に、ログの文字列の生成のために、ゲーム装置のパフォーマンスが低下するのを抑制することができる。そのため、本開示に係るゲーム開発システムは、大量のログの文字列を出力してゲーム処理の分析を行うことに適している。
【0008】
第2の観点に係るゲーム開発システムは、上記第1の観点に係るゲーム開発装置において、前記データは前記ゲーム処理実行中のゲーム内のパラメータである。
【0009】
第3の観点に係るゲーム開発システムは、上記第2の観点に係るゲーム開発装置において、前記ゲームは、センサを備えたゲームコントローラを用いるゲームであって、前記ゲーム内のパラメータは、前記センサからの出力に基づいたパラメータを含む。
【0010】
センサを用いたゲームでは、監視すべきパラメータが多いため、そのパラメータをログの文字列として大量に生成することがあるが、そのような場合に、本開示に係るゲーム開発システムは好適である。
【0011】
第4の観点に係るゲーム開発システムは、上記第1から第3のいずれかの観点に係るゲーム開発装置において、前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示するログビューワを表示装置に表示させるログビューワ表示処理を行う。
【0012】
この構成によれば、ゲーム装置側に追加の処理をさせずにログビューワを生成することができる。したがって、ゲーム処理中のゲーム装置のパフォーマンスの低下を抑制することができる。
【0013】
第5の観点に係るゲーム開発システムは、上記第2または第3の観点に係るゲーム開発装置において、前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じて前記ログに含まれる前記パラメータをグラフ形式で表示するログビューワを表示装置に表示させるログビューワ表示処理を行う。
【0014】
この構成によれば、ゲーム装置側に追加の処理をさせずにグラフを生成することができる。したがって、ゲーム処理中のゲーム装置のパフォーマンスの低下を抑制することができる。
【0015】
第6の観点に係るゲーム開発システムは、上記第3の観点に係るゲーム開発装置において、前記センサは慣性センサであって、前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる前記慣性センサからの出力に基づいてパラメータを用いて前記ゲームコントローラの姿勢を随時算出し、当該ゲームコントローラの姿勢を示すオブジェクトを表示するログビューワを表示装置に表示させるログビューワ表示処理を行う。
【0016】
従来、コントローラの姿勢の視覚化は、ゲーム装置側に表示させるプログラムを組み込むことで行われていたが、本開示によれば、情報処理装置側においてコントローラの姿勢の視覚化ができるため、ゲーム装置側に余分な処理を行わせることを抑制できる。
【0017】
第7の観点に係るゲーム開発システムは、上記第1から第3のいずれかの観点に係るゲーム開発装置において、前記データは、画像データをさらに含み、前記情報処理装置はさらに、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる画像データに関して、画像を表示するログビューワを表示装置に表示させるログビューワ表示処理を行う。
【0018】
このように、ログに含まれるデータは、文字列だけでなく、画像であってもよいため、文字列と同様に画像もバイナリ形式で情報処理装置で受信し、表示等の処理をすることができる。したがって、ゲーム装置側で画像の処理を行わなくてもよいため、ゲーム装置の負荷を軽減することができる。
【0019】
第8の観点に係るゲーム開発システムは、上記第4から第7のいずれかの観点に係るゲーム開発装置において、前記プレースホルダーではない文字列には、前記データのカテゴリを示す文字列が含まれ、前記ログビューワは、操作者の指示に応じて、前記カテゴリ毎に前記テキスト形式のログを表示させる。
【0020】
このようにすることで、ログをカテゴリ毎に表示させることができるため、ログの分析を効率的に行うことができる。
【0021】
第9の観点に係るゲーム開発システムは、上記第8の観点に係るゲーム開発装置において、前記カテゴリを示す文字列は、区切られた複数の文字列の組み合わせによって階層的にカテゴリを示し、前記ログビューワは、操作者の指示に応じて、階層的に前記テキスト形式のログを表示させる。
【0022】
これにより、階層構造でカテゴリを示すことができるため、ログをより詳細なカテゴリ毎に表示させることができ、ログの分析をさらに効率的に行うことができる。
【0023】
第10の観点に係るゲーム開発システムは、上記第1から第9のいずれかの観点に係るゲーム開発装置において、前記情報処理装置はさらに、受信されたバイナリ形式の前記ログに基づいて、前記ゲーム処理のデータに基づいてデータベースを作成するデータベース生成処理をさらに行う。
【0024】
ログに含まれるパラメータ等のデータを情報処理装置に記憶することで、ゲーム処理に用いられるデータをデータベース化することができる。そのため、このデータベースを用いて、パラメータ等のデータの経時的な変化、例えば、プロセッサの負荷、コントローラの姿勢の監視等、パラメータの分析を容易にすることができる。
【0025】
第11の観点に係るゲーム開発システムは、上記第10の観点に係るゲーム開発装置において、前記ゲーム装置は、前記ログ生成処理において、前記データの種類に対応する前記プレースホルダーとなる文字列を含んだ前記バイナリ形式のログを生成し、前記情報処理装置は、前記データベース生成処理において、前記プレースホルダーとなる文字列の種類毎に、前記プレースホルダーに代入するためのデータを分類したデータベースを生成する。
【0026】
こうすることで、データベースを構築する際に、ログの種類に応じて、データベース内でログを分類することができる。したがって、ログの分析を効率的に行うことができる。
【0027】
第12の観点に係るゲーム開発システムは、上記第10または第11の観点に係るゲーム開発装置において、前記プレースホルダーに代入するためのデータには、前記ゲーム装置で前記ゲーム処理を実行中の処理負荷またはメモリ占有度合を示すデータが含まれる。
【0028】
第13の観点に係るゲーム開発システムは、上記第10または第11の観点に係るゲーム開発装置において、前記プレースホルダーに代入するためのデータには、前記ゲーム装置で実行中のゲームのプレイ時間、ゲーム内で獲得できるアイテム、及びゲームの達成度の少なくともいずれかを示すデータが含まれる。
【0029】
第14の観点に係るゲーム開発システムは、上記第10または第11の観点に係るゲーム開発装置において、前記プレースホルダーに代入するためのデータには、前記ゲームをプレイするのに用いられるコントローラに対する操作内容を示すデータが含まれる。
【0030】
このようにすることで、コントローラの構造に応じた操作のログを取得することができるため、例えば、新たなコントローラの評価を行うことができる。
【0031】
第15の観点に係るゲーム開発方法は、ゲーム装置において、開発中のゲームプログラムによるゲーム処理を実行中に、当該ゲーム処理に用いられるデータに関するログを生成する処理であって、プレースホルダーを示す文字列とプレースホルダーではない文字列とが、指定された並びで含まれると共に、さらに前記プレースホルダーに代入するための前記データが含まれるログを、バイナリ形式で生成するステップと、情報処理装置において、前記ゲーム処理実行に伴い随時生成される前記ログを随時受信し、受信されたバイナリ形式の前記ログに基づいて、前記プレースホルダーに前記データが代入された文字列と前記プレースホルダーではない文字列が前記指定された並びで記述されたテキスト形式のログを随時生成して出力するステップと、を備えている。
【0032】
第16の観点に係るゲーム開発方法は、上記第15の観点に係るゲーム開発方法において、前記データは前記ゲーム処理実行中のゲーム内のパラメータである。
【0033】
第17の観点に係るゲーム開発方法は、上記第16の観点に係るゲーム開発方法において、前記ゲームは、センサを備えたゲームコントローラを用いるゲームであって、前記ゲーム内のパラメータは、前記センサからの出力に基づいたパラメータを含む。
【0034】
第18の観点に係るゲーム開発方法は、上記第15から第17のいずれかの観点に係るゲーム開発方法において、前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示するログビューワを表示装置に表示させるステップをさらに備えている。
【0035】
第19の観点に係るゲーム開発方法は、上記第16または第17の観点に係るゲーム開発方法において、前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じて前記ログに含まれる前記パラメータをグラフ形式で表示するログビューワを表示装置に表示させるステップをさらに備えている。
【0036】
第20の観点に係るゲーム開発方法は、上記第17の観点に係るゲーム開発方法において、前記センサは慣性センサであって、前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる前記慣性センサからの出力に基づいてパラメータを用いて前記ゲームコントローラの姿勢を随時算出し、当該コントローラの姿勢を示すオブジェクトを表示するログビューワを表示装置に表示させるステップをさらに備えている。
【0037】
第21の観点に係るゲーム開発方法は、上記第15から第17のいずれかの観点に係るゲーム開発方法において、前記データは、画像データをさらに含み、前記情報処理装置において、所定のユーザインターフェースと共に前記テキスト形式のログを表示すると共に、操作者の指示に応じてさらに、前記ログに含まれる画像データに関して、画像を表示するログビューワを表示装置に表示させるステップをさらに備えている。
【0038】
第22の観点に係るゲーム開発方法は、上記第18から第21のいずれかの観点に係るゲーム開発方法において、前記プレースホルダーではない文字列には前記データのカテゴリを示す文字列が含まれ、前記ログビューワは、操作者の指示に応じて、前記カテゴリ毎に前記テキスト形式のログを表示させる。
【0039】
第23の観点に係るゲーム開発方法は、上記第22の観点に係るゲーム開発方法において、前記カテゴリを示す文字列は、区切られた複数の文字列の組み合わせによって階層的にカテゴリを示し、前記ログビューワは、操作者の指示に応じて、階層的に前記テキスト形式のログを表示させる。
【0040】
第24の観点に係るゲーム開発方法は、上記第15から第23のいずれかの観点に係るゲーム開発方法において、前記情報処理装置はさらに、受信されたバイナリ形式の前記ログに基づいて、前記ゲーム処理のデータに基づいてデータベースを作成するステップをさらに備えている。
【0041】
第25の観点に係るゲーム開発方法は、上記第24の観点に係るゲーム開発方法において、前記ゲーム装置は、前記ログ生成処理において、前記データの種類に対応する前記プレースホルダーとなる文字列を含んだ前記バイナリ形式のログを生成し、前記情報処理装置は、前記データベース生成処理において、前記プレースホルダーとなる文字列の種類毎に、前記プレースホルダーに代入するためのデータを分類したデータベースを生成する。
【0042】
第26の観点に係るゲーム開発方法は、上記第24または第25の観点に係るゲーム開発方法において、前記プレースホルダーに代入するためのデータには、前記ゲーム装置で前記ゲーム処理を実行中の処理負荷またはメモリ占有度合を示すデータが含まれる。
【0043】
第27の観点に係るゲーム開発方法は、上記第24または第25の観点に係るゲーム開発方法において、前記プレースホルダーに代入するためのデータには、前記ゲーム装置で実行中のゲームのプレイ時間、ゲーム内で獲得できるアイテム、及びゲームの達成度の少なくともいずれかを示すデータが含まれる。
【0044】
第28の観点に係るゲーム開発方法は、上記第24または第25の観点に係るゲーム開発方法において、前記プレースホルダーに代入するためのデータには、前記ゲームをプレイするのに用いられるゲームコントローラに対する操作内容を示すデータが含まれる。
【発明の効果】
【0045】
上記ゲーム開発システムによれば、開発中のゲームを実行中に、ログの出力によってゲーム装置のパフオーマンスが低下するのを抑制することができる。
【図面の簡単な説明】
【0046】
【
図1】本開示に係るゲーム開発システムの一実施形態を示す概略構成図である。
【
図2】本体装置に左コントローラおよび右コントローラ装着した状態のゲームシステムの一例を示す図である。
【
図3】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態のゲームシステムの一例を示す図である。
【
図4】本体装置の内部構成の一例を示すブロック図である。
【
図5】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図である。
【
図6】ゲーム装置の機能構成を示すブロック図の一例である。
【
図8】情報処理装置のハードウェア構成を示すブロック図である。
【
図10】出力コードからデータベースを構築する例を説明する図である。
【
図11】プロセッサの負荷を分析するための分析ツールの一例を示す図である。
【
図12】プレイヤーのレベルの変化を分析するための分析ツールの一例を示す図である。
【
図13】コントローラの姿勢を分析するための分析ツールの一例を示す図である。
【
図14】ログの取得等の処理を示すフローチャートである。
【
図16】変形したリング状コントローラの平面図である。
【
図17】リング状コントローラの押し込みを分析するための分析ツールの一例を示す図である。
【発明を実施するための形態】
【0047】
以下、本開示に係るゲーム開発システムの一実施形態について説明する。
図1は、このゲーム開発システムの概略構成図である。
【0048】
<1.ゲーム開発システムの概要>
本開示に係るゲーム開発システムは、ゲーム装置1と、このゲーム装置1に通信可能に接続される情報処理装置200と、を備えている。ゲーム装置1と情報処理装置200は有線または無線により接続することができる。あるいは、LAN、インターネットのようなネットワークを介して、ゲーム装置1と情報処理装置200とを接続することもできる。ゲーム装置1は、後述するように、開発中のゲームプログラムを実行することでゲーム処理を行うための装置である。そして、情報処理装置200では、ゲーム装置1において開発中のゲーム処理を行ったときに生成される各種のログを表示したり、分析用にログのデータベースを生成するように構成されている。以下、ゲーム装置1及び情報処理装置200の一例について、詳細に説明する。
【0049】
<2.ゲーム装置>
<2-1.ゲーム装置のハードウエア構成>
本実施形態におけるゲーム装置1の一例は、本体装置2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲーム装置1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲーム装置1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図3参照)。以下では、本実施形態のゲーム装置1のハードウエア構成について説明し、その後に本実施形態のゲーム装置1の制御について説明する。
【0050】
<2-1-1.本体装置>
図2は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図2に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲーム装置1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0051】
図3は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図2および
図3に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0052】
<2-1-2.本体装置の内部構成>
図4は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図4に示す各構成要素12、13、17、21、23、25、27、28、81~91、97、および98を備える。これらの構成要素12、13、17、21、23、25、27、28、81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0053】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0054】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0055】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0056】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0057】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0058】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。また、本体装置21は、左側端子17、右側端子21、および下側端子27を備える。
【0059】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0060】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0061】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0062】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0063】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図2に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0064】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図2に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0065】
本体装置2は、電源ボタン28、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0066】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0067】
<2-1-3.コントローラの内部構成>
図5は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図4で示しているため
図5では省略している。
【0068】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図5に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0069】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0070】
左コントローラ3は、各ボタン103を備える。また、左コントローラ3は、アナログスティック(
図5では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0071】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。
【0072】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0073】
左コントローラ3は、振動によってユーザに通知を行うためのコーデック部106及び振動子107を備える。本実施形態においては、コーデック部106及び振動子107は、本体装置2からの指令によって制御される。
【0074】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0075】
図5に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。また、右コントローラ4は、通信制御部111に接続された処理部121を備える。処理部121は、NFC通信部122、赤外撮像部123、および赤外発光部124に接続される。
【0076】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0077】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
【0078】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0079】
<2-2.ゲーム装置の機能構成>
次に、上記のように構成されたゲーム装置の機能構成(ソフトウエア構成)について説明する。
図6は、本実施形態に係るゲーム装置の機能構成の一例である。ゲーム装置1のプロセッサ81は、フラッシュメモリ84、あるいはスロット23に装着された外部記憶媒体に記憶されたゲームプログラムをDRAM85に展開する。そして、プロセッサは、DRAM85に展開されたゲームプログラムを解釈及び実行して、各機能構成要素を制御する。これにより、本実施形態に係るゲーム装置1は、ゲーム処理部811及びログ生成部812を備えるコンピュータとして機能する。
【0080】
ゲーム処理部811は、開発中のゲームをゲーム装置1に行わせる。すなわち、ゲーム装置1にゲーム処理を行わせる。ログ生成部812は、ゲーム処理の実行中にそのゲーム処理に用いられる各種パラメータに関するログをバイナリ形式で生成する。各種パラメータとは、例えば、ゲームに登場するキャラクタやオブジェクトの性質、性能を示すパラメータ(例えば、HP(ヒットポイント)、MP(マジックポイント)等)、実行中のゲームのプレイ時間、ゲーム内で獲得できるアイテム、ゲームの達成度、上述したゲーム装置1に設けられる各種センサ、例えば、慣性センサ89,90,104,105,114,115等からの出力に基づくパラメータ、ゲーム処理を実行中のプロセッサ81の処理負荷、メモリ占有度合、及びゲームにおける各種キャラクタやプレイヤのレベル、ゲーム処理中にプレイヤが取得した各種アイテム等、ゲーム内で用いられる種々のパラメータを設定することができる。
【0081】
なお、ログ生成部812は、開発中のゲーム処理において実行される機能構成であり、製品版のゲーム処理には含まれない。したがって、ゲームプログラムにおいて、ゲーム装置1にログ生成部812として機能させるためのプログラムは、製品版のゲームプログラムからは削除される。すなわち、本開示の中で用いられるゲームプログラムとの文言は、特に断りのない限り、製品版のゲームプログラムではなく、ゲーム開発中のゲームプログラムを意味する。
【0082】
次に、ログ生成部812について説明する。ログ生成部812は、ログを生成するための出力コードをバイナリ形式で生成する。そこで、まず、出力コードについて説明する。ゲーム処理の実行中には、上述した各種パラメータについてテキスト形式のログを生成するための出力コードが任意のタイミングで生成される。
【0083】
図7は出力コードの一例である。
図7に示す出力コードには、カテゴリ名、テーブル名、ログ本文、任意のキーバリューが含まれる。カテゴリ名は、ログのカテゴリであり、
図7の例では、戦闘キャラクタのHPである。テーブル名は、後述する情報処理装置200において構築されるログのデータベース内でのテーブル名である。すなわち、このログに含まれるデータは、データベース内の"player_status"という名称のテーブルに記憶される。ログ本文は、プレースホルダーである文字列と、プレースホルダーではない文字列とが含まれており、このログ本文がテキスト形式で、情報処理装置200において表示される。具体的には、"HP:"及び"/"がプレースホルダーではない文字列であり、この文字列のままテキスト化される。一方、{hp}及び{hp_max}は、プレースホルダーである文字列である。キーバリューは、プレースホルダーである{hp}及び{hp_max}に代入される数値(引数)である。すなわち、{hp}に12が代入され、{hp_max}に30が代入された上で、ログ本文がテキスト形式で出力される。したがって、この出力コードにより出力されるテキスト形式のログは、「HP:12/30」となり、これが情報処理装置200において表示される。このようなログがゲーム処理中に、任意のタイミングで生成される。
【0084】
なお、テーブル名は必ずしも必要ではなく、ログを後述するデータベースに記憶しない場合には、テーブル名を出力コードに含めなくてもよい。
【0085】
但し、本実施形態に係るゲーム装置1は、上記のようなテキスト形式のログを出力せず、後述するように、情報処理装置200においてテキスト形式のログを出力する。そのため、ログ生成部812は、
図7に示すような出力コードを、ゲーム処理中にバイナリ形式で生成し、情報処理装置200に送信する。
【0086】
<3.情報処理装置の概要>
<3-1.情報処理装置のハードウエア構成>
次に、情報処理装置200について、
図8を参照しつつ説明する。
図8は、本実施形態に係る情報処理装置200のハードウェア構成の一例を示すブロック図である。
【0087】
図8に示すように、この情報処理装置は、例えば、公知のパーソナルコンピュータやタブレットPC等によって構成することができ、バス201で相互に接続された、制御部202、記憶部203、表示部204、入力部205、及び通信部206を備えている。
【0088】
制御部202は、主としてCPU、RAM,ROM等により構成される。記憶部203は、HDDやSSDなどの公知の記憶装置で構成することができ、制御部202がテキスト形式のログの生成を行うために用いる各種のデータを記憶する。例えば、ログの生成等を行うためのプログラム213、ログ用のデータベース223等の各種データが記憶される。
【0089】
そして、制御部202が記憶部203に記憶されるプログラム213を実行すると、本実施形態に係る情報処理装置200は、文字列生成部212、ログビューワ表示部222、データベース生成部232、及び分析ツール表示部242を備えるコンピュータとして機能する。これらの機能構成については後述する。
【0090】
表示部204は、LCD等の表示装置により構成され、制御部202の指示にしたがって画像を表示する。なお、例えば、情報処理装置200が、パーソナルコンピュータで構成される場合、表示部204が情報処理装置200と別体で構成されることもある。
【0091】
入力部205は、ゲーム開発者の操作者によって操作可能な入力装置であればよく、キーボード、マウス、タッチパネルなどで構成することができる。本実施形態では、表示部204に表示されるボタン等を押す操作を行う場合、一例として、マウスで押下するものとする。
【0092】
通信部206は、所定の通信モジュールによって構成され、ゲーム装置との間でデータの送受信を行うものである。
【0093】
<3-2.情報処理装置の機能構成>
次に、上述した文字列生成部212、ログビューワ表示部222、データベース生成部232、及び分析ツール表示部242について説明する。
【0094】
<3-2-1.文字列生成部>
文字列生成部212は、上述したようにゲーム装置1で生成されるバイナリ形式の出力コードを通信部206が受信すると、これに基づいてテキスト形式のログを生成する。例えば、
図7に示す出力コードをバイナリ形式で受信した場合には、プレースホルダーに、キーバリューの数値を代入し、「HP:12/30」というテキスト形式のログを生成する。このログは、後述するログビューワ300に表示される。
【0095】
<3-2-2.ログビューワ表示部>
ログビューワ表示部222は、表示部204にログビューワを表示する。
図9は、ログを視認するためのユーザインターフェースとしてのログビューワの一例である。
図9に示すように、このログビューワ300は、カテゴリ表示部301と、ログ表示部302とを有している。カテゴリ表示部301には、ログのカテゴリが階層構造のリストとして表示されている。一方、ログ表示部302には、文字列生成部212で生成されたテキスト形式のログが経時的に表示される。すなわち、ゲーム装置1で随時生成され、情報処理装置200で随時受信したログを、テキスト形式で経時的に表示する。
図9の例では、上側のログが最も古いログとなっている。
【0096】
より詳細に説明すると、ログ表示部302には、各ログについて、Line, Category、Logが表示されるようになっている。Lineは、行番号であり、Categoryはそのログが属するカテゴリ、Logは、文字列生成部212によってテキスト化されたログである。
【0097】
図9のカテゴリ表示部301には、最も上位の階層のカテゴリが示されているが、これら上位の各カテゴリをクリックすると、各カテゴリに属する下層のカテゴリ(図示省略)が表示される。例えば、
図7に示す出力コードのログは、Battle.Plyer.HPというカテゴリであるが、このカテゴリは、
図9の(Battle)というカテゴリの下位に属するカテゴリである。
【0098】
また、カテゴリ表示部301に表示される各カテゴリの右側には、ONボタン303及びOFFボタン304が表示されており、ONボタン303をクリックすると、そのカテゴリに属するログがログ表示部302に表示される。一方、OFFボタン304をクリックすると、そのカテゴリに属するログがログ表示部302に表示されないようになっている。したがって、ONボタン303及びOFFボタン304を利用することで、閲覧したいカテゴリに関するログのみをログ表示部302に表示することができる。
【0099】
<3-2-3.データベース生成部>
次に、データベース生成部232について説明する。データベース生成部232は、ゲーム装置1から受信したバイナリ形式の出力コードから、テーブル名及びキーバリューを読み出し、これをデータベースに記憶する。例えば、
図7の出力コードを受信した場合には、データベース内のplayer_statusというテーブル234にキーバリューを記憶していく。
図10に示すように、player_statusというテーブル234には、キーが一致するhp及びhp_maxのカラムが設けられているため、受信した出力コードに含まれるキーバリューを、該当するキーのフィールドに時系列に書き込んでいく。こうして、ログに含まれるキーバリューをデータベース化することができる。
【0100】
<3-2-4.分析ツール表示部>
続いて、分析ツール表示部242について説明する。以下では3種類の分析ツールについて説明する。分析ツール表示部242は、ログに基づいて各種のゲーム装置1におけるパラメータを分析するためのユーザインターフェース、つまり分析ツールを表示する。
【0101】
図11はゲーム装置1の負荷を分析するための分析ツールである。この分析ツール400は、ゲーム装置1のCPU及びGPUの処理負荷をログから読み出した任意のテーブルに基づいて生成される。
図11に示すように、この分析ツール400の上部の第1領域401には、時系列に並ぶCPUとGPUの処理負荷が示されている。一方、この分析ツール400の下部の第2領域402には、所定の時間内のCPUとGPUの処理負荷の平均と、その時間内のゲーム処理で表示される任意のゲーム画面のスクリーンショット403とが示されている。第2領域402で示されるデータの時間は、例えば、第1領域401から所定の時間を選択することで設定することができるほか、マニュアルで所定の時間を設定することもできる。
【0102】
この分析ツール400により、例えば、CPUやGPUの処理負荷がどのタイミング、あるいはどのゲーム処理において高くなっているかを視認することができる。
【0103】
次に、
図12に示す分析ツールについて説明する。
図12の分析ツール500には、ゲームの進行度とプレイヤーのレベルとの関係を示すグラフが示されている。このグラフは、ログに含まれるゲームの進行度(ゲームを行った時間など)とプレイヤーのレベルとを含む任意のテーブルに基づいて生成されている。このグラフには、4つの線が示されているが、これらの線は、4人のプレイヤーがゲームを行ったときのレベルの変化を示している。このグラフにより、例えば、プレイヤー間のレベル向上のばらつきを視認することができる。また、レベル以外にも、ログに含まれるパラメータであれば、利用することができ、例えば、レベルに代えて、ゲーム内で獲得できるアイテム(例えば、獲得賞金等)にすることもできる。
【0104】
図13はゲーム装置1のコントローラ3,4の姿勢を可視化する分析ツール600である。上述したように、コントローラ3,4には慣性センサが内蔵されているため、各コントローラ3,4の経時的な姿勢の変化はログとして生成可能である。したがって、例えば、各コントローラ3,4のx,y,z軸周りの角度をログとして取得しておけば、その経時的な変化を情報処理装置200においてデータベース化することができ、これに基づいて、
図13に示すようにコントローラを示すオブジェクト601の姿勢を可視化することができる。この場合、任意の時刻の姿勢を示すこともできるし、所定の時間内における姿勢の変化をアニメーションで示すこともできる。
【0105】
<4.ログの生成処理>
次に、上述したログの処理について、
図14に示すフローチャートを参照しつつ説明する。
【0106】
まず、ゲーム開発者は、ゲーム装置1において、開発中のゲームプログラムによりゲーム処理を実行する(ステップS101)。そして、ゲーム処理の実行中に任意のタイミングで、ログ生成部812はバイナリ形式の出力コードを随時生成し、情報処理装置200に送信する(ステップS102)。バイナリ形式の出力コードを受信した情報処理装置200は、この出力コードに基づいて、随時テキスト形式のログを生成する(ステップS103)。また、このテキスト形式のログから抽出されたキーバリューは、データベース生成部232により該当するデータベース223のテーブルに記憶されていく(ステップS104)。なお、情報処理装置200がバイナリ形式の出力コードを受信した後であれば、テキスト形式のログの生成(ステップS103)とデータベース223の構築(ステップS104)はいずれを先に行ってもよいし、あるいは並行して行ってもよい。さらに、ログビューワ300が起動されると(ステップS105のYES)、ログビューワ表示部222は、生成されたテキスト形式のログを時系列にログビューワ300のログ表示部302に表示していく(ステップS106)。こうして、ゲーム開発者は、ゲーム処理中に生成されるログをログビューワ300により視認することができる。
【0107】
また、必要に応じて、上述した分析ツール400,500を起動すると、分析ツール表示部242は、該当するテーブルからログを読み出して各分析ツール400,500に含まれるグラフ等を生成し、表示部204に表示する。
【0108】
<5.特徴>
本実施形態に係るゲーム開発システムによれば、以下の効果を得ることができる。
(1)ゲーム装置1おいて、開発中のゲームプログラムを実行してゲーム処理を行う際に、ゲーム処理に用いられるパラメータをプレースホルダーに代入してログの文字列を生成する処理をゲーム実行中のゲーム装置1側では行わずに、これに接続された情報処理装置200側で行って表示するように構成されている。そのため、ゲーム装置1側でログ生成のために行われる処理を抑えることができる。このようなログ生成のための処理は、製品版のゲームプログラムでは行われないため、そのような処理のためにゲーム装置1のパフォーマンスを割くことを抑制することができる。すなわち、ゲーム装置1でゲーム処理を実行中に、ログの文字列の生成のために、ゲーム装置1のパフォーマンスが低下するのを抑制することができる。そのため、本実施形態に係るゲーム開発システムは、大量のログの文字列を出力してゲーム処理の分析を行うことに適している。
【0109】
(2)出力コードに含まれるキーバリューを記憶することで、ゲーム処理に用いられるパラメータをデータベース化することができる。そのため、このデータベースを用いて、パラメータの経時的な変化、例えば、上述したプロセッサの負荷、コントローラの姿勢の監視等、パラメータの分析を容易にすることができる。特に、センサを用いたゲームでは、監視すべきパラメータが多いため、そのパラメータをログの文字列として大量に生成することがあるが、そのような場合に、本開示に係るゲーム開発システムは好適である。
【0110】
<6.変形例>
以上、本発明の実施形態について説明したが、本発明は上記各実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて、種々の変更が可能である。例えば、以下の変更が可能である。また、以下の変形例は、適宜組み合わせることができる。
【0111】
(1)ゲーム装置1に用いられるコントローラは特には限定されず、上述したゲーム装置1に付属のコントローラ3,4のみならず、ゲームの種類に応じて追加で利用されるコントローラの挙動も、ログとして取得することができる。例えば、
図15に示すリング状コントローラ900は、弾性変形可能なリング状の本体部901と、この本体部901において180度離れた位置に取り付けられる把持部902と、把持部902から90度ずれた位置に設けられる取付部903とを備えている。このリング状コントローラ900を用いるゲームでは、プレイヤーは、ゲームの進行に応じて、把持部902を両手で握り、
図16に示すように、把持部902同士を近接させるように本体部901を変化させる。
【0112】
本体部901には、歪みゲージ(図示省略)が内蔵されており、取付部903に上述したいずれかのコントローラ3,4を装着することで、本体部901に作用する力、本体部901の変形度合いを歪みゲージを介してコントローラ3,4で取得することができる。したがって、例えば、本体部901に作用する力、変形度合い、変形回数をログとして出力すれば、リング状コントローラの劣化の度合いを監視することができる。このようなログの取得によって、分析ツールでは、例えば、
図17に示すような表を作成することができる。
図15及び
図16に示すコントローラ900は一例であるが、コントローラの構造に応じたログを取得すれば、新たなコントローラの評価を行うことができる。
【0113】
(2)上記実施形態では、ゲーム処理で用いられる各種のパラメータ(文字列)をログとして取得しているが、ログには画像データを含めることもできる。画像データはバイナリ形式であることから、変換処理をせずとも、情報処理装置200に送信することができ、情報処理装置200においてログとしての画像の表示を行うことができる。特に、画像の処理は負荷が大きいため、これをゲーム装置1ではなく、情報処理装置200で行うと、ゲーム装置1の負荷を軽減することができる。
【0114】
(3)上記実施形態におけるゲーム装置は一例であり、ゲーム処理、バイナリ形式のログの生成及び情報処理装置への送信ができるのであれば、その構成は特には限定されない。
【0115】
(4)上記実施形態で示したログを生成するための出力コードは一例であり、種々の書式にすることができる。すなわち、出力コードには、少なくとも、プレースホルダーを示す文字列と、プレースホルダーではない文字列とが指定された並びで含まれ、さらにプレースホルダーに代入するためのデータ(例えば、上記キーバリュー)が含まれていればよい。
【0116】
(5)上記実施形態におけるゲーム装置は一例であり、ゲーム処理、バイナリ形式のログの生成及び情報処理装置への送信ができるのであれば、その構成は特には限定されない。例えば、ディスプレイとコントローラが別体であるゲーム装置であってもよい。
【0117】
(6)上記実施形態における情報処理装置200は一例であり、例えば、複数のプロセッサや記憶部を有していてもよい。また、例えば、複数のコンピュータで情報処理装置200を構成したり、記憶部の一部を情報処理装置の外部に設けることもできる。
【符号の説明】
【0118】
1 ゲーム装置
200 情報処理装置
204 表示部(表示装置)
223 データベース
【要約】 (修正有)
【課題】開発中のゲームを実行中に、ログの出力によってゲーム装置のパフオーマンスが低下するのを抑制する。
【解決手段】開発中のゲームプログラムを実行するゲーム装置と、ゲーム装置と通信接続された情報処理装置とを備え、開発中のゲームプログラムがゲーム装置に実行させる処理には、ゲーム処理実行中にゲーム処理に用いられるデータに関するログを生成する処理であって、プレースホルダーを示す文字列とプレースホルダーではない文字列とが指定された並びで含まれると共に、さらにプレースホルダーに代入するためのデータが含まれるログを、バイナリ形式で生成するログ生成処理が含まれ、情報処理装置は、ゲーム処理実行に伴い生成されるログを受信し、受信されたバイナリ形式のログに基づいて、プレースホルダーにデータが代入された文字列とプレースホルダーではない文字列が指定された並びで記述されたテキスト形式のログを生成して出力する。
【選択図】
図14