RPGツクールでバグが少ないゲームを作るにはどうすれば良いですか?

tanaka1234

ユーザー
RPGツクールでバグが少ないゲームを作るにはどうすれば良いですか?
またはバグを減らすゲームを作るには
 
RPGツクールに限ったことではないのですが、自分が理解できる範囲の技術と量と複雑さで作るのがバグが少なくなる秘訣です。

具体的には、理解できてないコマンドやスクリプト、プラグインは使わない、大作を作らない、実行内容(システム)を極力シンプルにする、ということです。

例としては「戦闘がないシステム」にするとバグは少なくなります。RPGで複雑な部分はほとんど戦闘に関わる部分ですから。
僕も最初は戦闘がない一部屋だけの脱出ゲームを作りました。バグ怖いですからね!
 

tanaka1234

ユーザー
RPGツクールに限ったことではないのですが、自分が理解できる範囲の技術と量と複雑さで作るのがバグが少なくなる秘訣です。

具体的には、理解できてないコマンドやスクリプト、プラグインは使わない、大作を作らない、実行内容(システム)を極力シンプルにする、ということです。

例としては「戦闘がないシステム」にするとバグは少なくなります。RPGで複雑な部分はほとんど戦闘に関わる部分ですから。
僕も最初は戦闘がない一部屋だけの脱出ゲームを作りました。バグ怖いですからね!
回答ありがとうございます。
RPGツクールに最初からある戦闘システムでバグが出るのでしょうか?
 

DarkPlasma

ユーザー
まずはバグとは何か、というところを明確にされると良いかと思います。

ゲーム(に限らず、ソフトウェア全般の)開発においては、制作者の意図した仕様に沿わない挙動のことをバグと呼びます。

開発者がまず仕様を定義して、それに沿って実装していきますが、人間は必ず間違いをしますし、ツクールのようなフレームワーク、誰かの作ったプラグインのようなライブラリを使用した開発では、それらの仕様を把握できず、定義したゲームの仕様と挙動が乖離してしまうことも頻繁に起きます。

RPGツクールに最初からある戦闘システムでバグが出るのでしょうか?

仕様の定義次第です。

戦闘中にキャラクターが使う回復スキルをデータベースに定義したとして、ダメージタイプの設定をHP回復ではなくHPダメージに設定してしまったら、それは明らかにバグですね。

ゲームで定義すべき仕様は、特にRPGの戦闘ともなれば非常に巨大です。

ツクールのデフォルトがよろしくやってくれている部分に従うだけでそれっぽく動いてくれるので見落としがちですが、それがあっても定義すべき仕様は少なくありません。
スキルやアイテムの使用効果だとか、バトルイベントを使うならそのイベントがどのタイミングで起動してプレイヤーにどういう体験をさせるべきかとか、武器や防具といった装備のパラメータ、特徴もそうです。
一定確率でステートを付加するスキルを作りたい、でも攻撃自体は必中にしたいといったときに、単純に命中タイプを必中にしてしまうとステート有効度の影響が無視される、など、デフォルトの仕様がちょっと複雑な部分もあります。
そういった部分を、単にデフォルトの挙動を仕様として受け入れるか否かも考えなくてはなりません。

戦闘がないシステムにするということは、そのゲームについて戦闘に関する仕様を定義しなくて良くなる、ということに他なりません。

そこで発生し得るバグ(すなわち、仕様と乖離した挙動)がまるごとなくなるわけですから、単にバグのないゲームにしたいというのであれば、戦闘をごっそり切り捨てるのは非常に良い選択です。

バグを減らすゲームを作るには

意図されている内容が合っているかわかりませんが、言葉通りに受け取るのであれば、ゲーム自体にバグを減らさせる(実行中にゲーム自身にバグを直させる)、ということでしょうか。
プログラム自体にプログラムを生成・更新させる、いわゆるメタプログラミングと呼ばれる領域に足を突っ込むことになりそうです。
思考実験としては面白いですが、ツクールにおいて現実的に有用な手法かというと微妙な気がします。

まず、そのゲームにおいてバグとは何か(仕様とは何か)を明確に定義することが大前提となりますし、仕様から外れた挙動をしたことを検知する仕組も必要になります。
大規模なゲームを作っている場合には自動テストの仕組を導入しているところもありそうですが、それにしたってテスト結果を見て修正するのは人間でしょう。
ゲーム自体に自身を修正させる場合、その修正のためのロジックは予め把握しておかねばなりません。
修正のロジックをすでに把握できているなら、ゲーム自体にその修正をさせるような大掛かりな仕組のための工数をゲームを作るところに充てて、不具合を確認したあとで人力で直してしまうほうがトータルでは安上がりになるんではないかと思います。
 
回答ありがとうございます。
RPGツクールに最初からある戦闘システムでバグが出るのでしょうか?
僕はまさにDarkPlasmaさんが解説している「回復スキルでなぜかダメージを食らう」というバグを出したことがあります(笑)
パラメータの設定ミスですね。アイテムの名前を間違えるとかの「誤字」なんかもバグの一種と言えるでしょう。
バグは何か複雑なことをやったら必ず出るものです。

稀に「そもそもツクール本体がバグを持っている」ということも良くあります(どっちや)
使うシステムが少なければ、そういうものに遭遇する確率も減るでしょう。
 

tanaka1234

ユーザー
まずはバグとは何か、というところを明確にされると良いかと思います。

ゲーム(に限らず、ソフトウェア全般の)開発においては、制作者の意図した仕様に沿わない挙動のことをバグと呼びます。

開発者がまず仕様を定義して、それに沿って実装していきますが、人間は必ず間違いをしますし、ツクールのようなフレームワーク、誰かの作ったプラグインのようなライブラリを使用した開発では、それらの仕様を把握できず、定義したゲームの仕様と挙動が乖離してしまうことも頻繁に起きます。



仕様の定義次第です。

戦闘中にキャラクターが使う回復スキルをデータベースに定義したとして、ダメージタイプの設定をHP回復ではなくHPダメージに設定してしまったら、それは明らかにバグですね。

ゲームで定義すべき仕様は、特にRPGの戦闘ともなれば非常に巨大です。

ツクールのデフォルトがよろしくやってくれている部分に従うだけでそれっぽく動いてくれるので見落としがちですが、それがあっても定義すべき仕様は少なくありません。
スキルやアイテムの使用効果だとか、バトルイベントを使うならそのイベントがどのタイミングで起動してプレイヤーにどういう体験をさせるべきかとか、武器や防具といった装備のパラメータ、特徴もそうです。
一定確率でステートを付加するスキルを作りたい、でも攻撃自体は必中にしたいといったときに、単純に命中タイプを必中にしてしまうとステート有効度の影響が無視される、など、デフォルトの仕様がちょっと複雑な部分もあります。
そういった部分を、単にデフォルトの挙動を仕様として受け入れるか否かも考えなくてはなりません。

戦闘がないシステムにするということは、そのゲームについて戦闘に関する仕様を定義しなくて良くなる、ということに他なりません。

そこで発生し得るバグ(すなわち、仕様と乖離した挙動)がまるごとなくなるわけですから、単にバグのないゲームにしたいというのであれば、戦闘をごっそり切り捨てるのは非常に良い選択です。



意図されている内容が合っているかわかりませんが、言葉通りに受け取るのであれば、ゲーム自体にバグを減らさせる(実行中にゲーム自身にバグを直させる)、ということでしょうか。
プログラム自体にプログラムを生成・更新させる、いわゆるメタプログラミングと呼ばれる領域に足を突っ込むことになりそうです。
思考実験としては面白いですが、ツクールにおいて現実的に有用な手法かというと微妙な気がします。

まず、そのゲームにおいてバグとは何か(仕様とは何か)を明確に定義することが大前提となりますし、仕様から外れた挙動をしたことを検知する仕組も必要になります。
大規模なゲームを作っている場合には自動テストの仕組を導入しているところもありそうですが、それにしたってテスト結果を見て修正するのは人間でしょう。
ゲーム自体に自身を修正させる場合、その修正のためのロジックは予め把握しておかねばなりません。
修正のロジックをすでに把握できているなら、ゲーム自体にその修正をさせるような大掛かりな仕組のための工数をゲームを作るところに充てて、不具合を確認したあとで人力で直してしまうほうがトータルでは安上がりになるんではないかと思います。
詳しい説明ありがとうございます!
勉強になります
 
トップ