Posts Issued on September 12, 2025

GameFSMの改良

posted by sakurai on September 12, 2025 #1021

過去の外部発表記事において、初めてのBSVによるかなり規模の大きなプログラムを開発しましたが、まだノウハウがあまりなかったため、以下のような課題がありました。

改良点
本プログラムには、以下のような改良点があります。

・グローバル変数のローカル化
関数内でのみ使用している変数は、通常関数スコープ内で定義されるローカル変数とすべきですが、現在はグローバル変数になっている。

・関数内シーケンシャル構文のローカル化
メインループでは関数を多数呼び出していますが、それぞれがインライン展開されているようです。これはBSCコンパイル時間も1時間以上と莫大になり、また資源も再利用できないので、サブルーチンのように呼び出したい。

ChatGPTも"5"になり、相当推論能力も上がっているので、ChatGPTの助けを借りてこの辺りを最適化してみます。

現状は例えばCopyAreaは9回呼び出されていますが、functionであり、moduleではないため、メインモジュールからinlineで呼び出され、そのたびに展開されるのでハードウエアとしては膨大な量になります。

一方、module化すれば呼び出し毎にインスタンスされないので、関数は再利用され、また呼び出すパラメータはローカル変数化できるようです。BSVにローカル変数は無いとのことでした。


左矢前のブログ 次のブログ右矢