ワールドフロンティア製作レポート
体験版の方がひと段落したので、製作レポートなんてものを書いてみようと思います。
役に立った技術総集編みたいな感じですね。
役に立った技術総集編みたいな感じですね。
・文字列変数の有効活用
→今回は文字列変数をガンガン使いました。
各キャラの手持ちアイテムや落ちているアイテム、習得特技や習得スキル、その他こまごましたところに至るまで文字列変数だらけです。改行区切りで使えば、文字列変数は実質容量(ほぼ)無限大のデータベースと同義なので、データベースの項目を増やしたくないときなんかは使ってみるといいと思います。
普通のRPGなんかでも、覚える特技&レベルとか、装備中の武器防具とか、戦闘コマンドとか、項目数がたくさん必要になってくるデータは全部文字列管理にした方が便利のような気もします(分かりやすさ担保のためか、基本システムではほとんど使用されてませんが…)。
重さについても、よっぽどのことをしない限りほとんど気になりません。
・並列イベントの使用を避ける
→並列実行イベントは便利ですが、他のイベントとの兼ね合い次第では途中で変数が変わってしまったりするので、どうしてもバグが出やすくなります。
しかもタチの悪いことに、並列イベントのバグはイベントの実行順序の問題で起こるバグだったりするので、コマンド自体は間違っておらず、原因を非常に特定しづらいことが多いです。
ので、並列イベントは使わずに、他の手段でどうにかできるならば、極力他の手段を選択した方がいいと思います。
特に長編なんかだと、デバッグのときに泣く羽目になります。ちなみにワールドフロンティアでは、並列実行イベントをまともに動かしているのは、オープニングのワールドマップがぬるぬる動いているあの場面だけだったりします。
同じことはピクチャのディレイにも言えますね。
ディレイコマンドを使ったら、次に表示する前にできるだけディレイリセットなどをはさんだ方がいいでしょう。
・テキストファイル、CSVファイルの活用
→ウディタには、セーブデータ以外でもデータを外部から入出力する機能があります。が、あんまり使っている人を見たことはないです。
使い道としては、一時的に使用するTMPデータとして、あるいはセーブデータ間の情報を記録するファイルとしてが考えられます。他にも、ワールドフロンティアでは街の建物なんかを配置する際に、事前にCSVファイルに出力しておいたマップデータ(チップ番号など)を読み込んでマップ上に再現していたりしていますね。
なお、ワールドフロンティアでは、キーコンフィグとか、ロード画面に必要な情報なんかも全部テキストファイルに出力して読み込むようにしています(セーブデータのサイズが3Mとかになってくると読込にもかなり時間がかかるので、テキストファイルで高速読込を可能にしているわけです)。
ただ、この場合は暗号化が使えないので、簡単に中を見れて、改竄できることも考慮に入れておきましょう。
改竄されて困るようなデータは、やっぱりセーブデータに頼るしかないでしょうね。
・画像・音声の事前読込
→まぁ、アクションとかローグとかSTGとかでなければ、そこまでこだわらなくてもいいかもですが。
ピクチャ類は不透明度0で事前に表示、サウンド類はメモリに先読みロードすることで、メモリにデータが入るため、ゲーム上で高速でピクチャを表示したり音を鳴らしたりすることができます。
どのくらいかはやってみないと分からないですが、正直予想していたよりもかなり影響が大きいです。
特に3Dモードを使用してピクチャ類をがんがん動かすような場合は、事前読込はほぼ必須といってもいいような気がします。
~以下はローグライク製作向けの知識です~
・キャラは全部ピクチャ表示
→前作はイベントとして表示してましたが、比べてみると、どう考えてもピクチャ表示の方が便利です。
細かい理由は述べませんが、ローグとか(もしかするとARPGとかも)製作する人には、全力でキャラのピクチャ表示による管理をお勧めします。
・アイテムは全部同一データベース管理
→これも前作との比較により、どう考えても同一データベース管理の方がやりやすいです。
アイテムも武器も防具も、落ちているアイテムも持っているアイテムも、全部可変データベースのひとつのタイプにまとめてしまった方が圧倒的に効率がいいです。バグが発生しにくい構造を心掛けたいところですね。
→今回は文字列変数をガンガン使いました。
各キャラの手持ちアイテムや落ちているアイテム、習得特技や習得スキル、その他こまごましたところに至るまで文字列変数だらけです。改行区切りで使えば、文字列変数は実質容量(ほぼ)無限大のデータベースと同義なので、データベースの項目を増やしたくないときなんかは使ってみるといいと思います。
普通のRPGなんかでも、覚える特技&レベルとか、装備中の武器防具とか、戦闘コマンドとか、項目数がたくさん必要になってくるデータは全部文字列管理にした方が便利のような気もします(分かりやすさ担保のためか、基本システムではほとんど使用されてませんが…)。
重さについても、よっぽどのことをしない限りほとんど気になりません。
・並列イベントの使用を避ける
→並列実行イベントは便利ですが、他のイベントとの兼ね合い次第では途中で変数が変わってしまったりするので、どうしてもバグが出やすくなります。
しかもタチの悪いことに、並列イベントのバグはイベントの実行順序の問題で起こるバグだったりするので、コマンド自体は間違っておらず、原因を非常に特定しづらいことが多いです。
ので、並列イベントは使わずに、他の手段でどうにかできるならば、極力他の手段を選択した方がいいと思います。
特に長編なんかだと、デバッグのときに泣く羽目になります。ちなみにワールドフロンティアでは、並列実行イベントをまともに動かしているのは、オープニングのワールドマップがぬるぬる動いているあの場面だけだったりします。
同じことはピクチャのディレイにも言えますね。
ディレイコマンドを使ったら、次に表示する前にできるだけディレイリセットなどをはさんだ方がいいでしょう。
・テキストファイル、CSVファイルの活用
→ウディタには、セーブデータ以外でもデータを外部から入出力する機能があります。が、あんまり使っている人を見たことはないです。
使い道としては、一時的に使用するTMPデータとして、あるいはセーブデータ間の情報を記録するファイルとしてが考えられます。他にも、ワールドフロンティアでは街の建物なんかを配置する際に、事前にCSVファイルに出力しておいたマップデータ(チップ番号など)を読み込んでマップ上に再現していたりしていますね。
なお、ワールドフロンティアでは、キーコンフィグとか、ロード画面に必要な情報なんかも全部テキストファイルに出力して読み込むようにしています(セーブデータのサイズが3Mとかになってくると読込にもかなり時間がかかるので、テキストファイルで高速読込を可能にしているわけです)。
ただ、この場合は暗号化が使えないので、簡単に中を見れて、改竄できることも考慮に入れておきましょう。
改竄されて困るようなデータは、やっぱりセーブデータに頼るしかないでしょうね。
・画像・音声の事前読込
→まぁ、アクションとかローグとかSTGとかでなければ、そこまでこだわらなくてもいいかもですが。
ピクチャ類は不透明度0で事前に表示、サウンド類はメモリに先読みロードすることで、メモリにデータが入るため、ゲーム上で高速でピクチャを表示したり音を鳴らしたりすることができます。
どのくらいかはやってみないと分からないですが、正直予想していたよりもかなり影響が大きいです。
特に3Dモードを使用してピクチャ類をがんがん動かすような場合は、事前読込はほぼ必須といってもいいような気がします。
~以下はローグライク製作向けの知識です~
・キャラは全部ピクチャ表示
→前作はイベントとして表示してましたが、比べてみると、どう考えてもピクチャ表示の方が便利です。
細かい理由は述べませんが、ローグとか(もしかするとARPGとかも)製作する人には、全力でキャラのピクチャ表示による管理をお勧めします。
・アイテムは全部同一データベース管理
→これも前作との比較により、どう考えても同一データベース管理の方がやりやすいです。
アイテムも武器も防具も、落ちているアイテムも持っているアイテムも、全部可変データベースのひとつのタイプにまとめてしまった方が圧倒的に効率がいいです。バグが発生しにくい構造を心掛けたいところですね。
- 関連記事
スポンサーサイト