フリーゲーム・フリーソフトの開発過程を記録していく、TDtechnic公式ブログです。製品はカテゴリの「ダウンロード場」からダウンロードして頂けます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

お久しぶりです。4面のマップができず月日が流れてしまいましたが、進まないのは4面が直接の原因ではなかったかもしれません。そう、またも製作方法が間違っていた可能性があるのです。

先日にも言っていたことなんですが、不死女はゲームシナリオやマップのプログラムもすべてハードコーディング(ソースコード内に記述)していました。巷ではダメなプログラムの典型と言われているのですが、私自身がその必要性を認められなかったのでそのままにしていました。実際、結構な規模になるまではその方が楽な面もありますし。

ところが、4面のマップを考えているうちに気づきました。ここで詰まるのは、単にマップが思いつかないからというだけでなく、マップデザインがしにくい環境なのもいけないのではないかと。あるいは、思いついても実装が面倒だからと無意識のうちにボツを量産しているのではないかと。というわけで、不死女もついにスクリプトへの道を進むことにしました。

<スクリプト化のメリット>
①簡単な内容を変えるだけなら、再コンパイルする必要がない。(スクリプトだけ再読み込みすればいい)
②致命的なバグを起こしにくい。(スクリプトの間違いは読み込んだ時に対処できるため)
③C++の記法に囚われずにプログラミングができる。

<スクリプト化のデメリット>
①スクリプトのコンパイラを作るのが面倒。(名前の二重化が大量発生する)
②スクリプト上で行うこととソースコード上で行うことの線引きが難しい。

要するにスクリプト化というのは簡単なプログラミング言語を自作して実行時に読み込むことですが、不死女におけるメリット・デメリットはこんな感じです。一番大きいのは、メリット③でしょうか。C++にはC++の思想があり、クラスの初期化などの手順は決まっているのですが、それらはゲームオブジェクトのように「ほとんど同じ」ものを「大量に」作るには往々にして冗長なものです。それを無理にC++で書いてきたため、ソースコードは同じような初期化コードで膨れ上がり、見るのも嫌な状態になっていました。スクリプト化ができれば、本当に必要なことだけを書けばオブジェクトが作れるので(というかそういう仕様に「私が」すればいい)、マップを作る作業がしやすくなることが期待できます。作業がしやすくなるということは作業が捗るということです。作業が捗るということはゲーム作りが楽しくなるということです。コードを見たくもない状況とは大違いですね。

デメリットというかスクリプト化を妨げる最大の要因はデメリット②です。これの感覚がわからないため、今までほとんど手を付けることもできませんでした。あまりに不自由ではスクリプト化する意味がありませんし、かといって何もかもスクリプト上でできるようにすると本体のプログラムがいらなくなってしまいますし(笑)、ゲームにおける「目安」がよくわかりません。とりあえず、当面の基準として私は「クラスを直接「使用」する最終段階」をスクリプト化することにしました。もう少し詳しく表現すると「クラスの種類、個数、順序、引数などのみによって制御できる部分」ですかね。これってまさに「ゲーム」のプログラムの本質じゃないでしょうか。例えば敵のプログラムにはモデルの読み込み・アニメーション・人工知能などいろいろありますが、それだけでは部品でしかなくて、やはり適切な「キャラ」「人数」「場所」などを設定して初めてゲームの要素となる。そしてそれこそがスクリプト化すべき部分なのではないか、というのが今回の結論です。

というわけでシステム部分をまた作り直すわけですが、今までの数回の大改造と比べたらかなり楽な方です。なぜなら、今までのものは不死女のプログラムの「全ての基盤」の修正だったのですが、今回は先ほど述べた通り上っ面の部分だけが対象です。よって今まで作った画像クラスとかキャラクタークラスとかは今後も使うことができます。やったぜ。
関連記事

[2015/04/15 23:15] | 不死女 -Immortal girl-
|


skaiio
素人が読むとふりだしに戻るのかとヒヤヒヤしました
頑張ってくだせぇ


Shiro
大丈夫です、ゲームシナリオのプログラムをメモ帳に書き出すだけの改造ですから。

ただ、ネタ不足なのは相変わらずなので、なにか面白い謎解きとか仕掛けとかイベントが思いついたら教えていただけると嬉しいです。

コメント:を閉じる▲
コメント:
この記事へのコメント:
素人が読むとふりだしに戻るのかとヒヤヒヤしました
頑張ってくだせぇ
2015/04/16(Thu) 13:04 | URL  | skaiio #-[ 編集]
大丈夫です、ゲームシナリオのプログラムをメモ帳に書き出すだけの改造ですから。

ただ、ネタ不足なのは相変わらずなので、なにか面白い謎解きとか仕掛けとかイベントが思いついたら教えていただけると嬉しいです。
2015/04/17(Fri) 10:33 | URL  | Shiro #-[ 編集]
コメント:を投稿
URL:

パスワード:
非公開コメント: 管理者にだけ表示を許可
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。