【制作】ダンジョン内のイベントシステムの実装

といっても、体験版で仕組みは作ってあって、多少手を加えただけだ。

ダンジョン内のイベントは、いわゆるスクリプト言語でできている。

スクリプトの仕様は独自仕様のものだ。

MSX時代のベーシックみたいな行単位での実行と、GOTOやIF文のような簡単な構文を持っている。

手を加えた部分は、チューニングに関するもので、体験版ではスクリプトにしたがってSendMessage()を呼び出すリフレクションのようなことをやっていた。

ところが、このSendMessage()はCPUコストが結構高いのと、オブジェクトがアクティブでないと呼び出せない、ということもあってDelegateの仕組みに変更したのである。

SendMessage()とDelegateの実行速度については過去の記事で検証している。

【制作実習】スクリプトの最適化

記事を要約すると、C#のDelegateの仕組みを使う(つまり関数ポインタから呼び出す)場合に比べて、SendMessageでの呼び出しは数百倍も処理時間がかかる、ということだ。

さて、明日からダンジョンマップの基本パーツをモデリングしていく。そのままリリース時に使えるクオリティのものを作れる気はしないのだけれども、最低でもモックアップ程度のものは用意しとかないと作業を進めづらいのである。

4年前

コメントを残す

メールアドレスが公開されることはありません。