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

こんばんは。新学期のShiroです。

ShiroScript処理系第一号の実装が完了しました。完全にテストはしていませんが、予定していた一通りの機能はすべて揃いまして、一応スクリプティングもできなくはない状態です。

ただ、すぐに実用化できるかというと難しいです。柔軟性を求めた結果、変数や文字列の取り回しがかなり複雑になったため、全体的に動作が重いのです。一部の単純な命令は限りなくノータイムに近い時間で終わりますが、一般的な命令は数マイクロ秒かかり、一部の重い命令は十数マイクロ秒かかります。これは私のパソコンの場合、足し算を数千回行うのにかかるのと同じくらいの時間です。

マイクロ秒単位の話なので随分細かいことを言っているようにも見えますが、結構これが馬鹿にできない時間なのです。一般的なゲームは秒間60フレームの更新速度で動きます。すなわち1フレームを完成させるのにかけられる時間は最大で1/60秒 ≒ 16.667ミリ秒 = 16667マイクロ秒です。例えばすべての命令が10マイクロ秒で動くとすれば、1フレームを完成させるために実行できる命令は約1667命令しかないというわけです。

1600命令超となるとこれまた多いように見えるかもしれませんが、もし入力処理やキャラ移動処理、画面の描画など全てをスクリプト主体で書くのであれば到底1600命令程度では足りません。そしてなにより問題なのが、この数値がわりと速いCPUでの結果だということです。一般的なパソコンでは1600命令も使えず、古いパソコンやネットブックでは数百命令しか使えないかもしれないのです!

一部の速いパソコンでしか動かないようではまだ完成とは言えません。ただでさえゲームは重い処理が多いのですから、スクリプトなどにかける時間は最小限にする必要があります。幸い高速化できる余地の見当はついており、そのうちいくつかは実際に効果が見られました。まだ試していない最適化もあるのではっきりしたことはわかりませんが、遅すぎてノベルゲームにしか使えないなんてことにはならなくて済みそうです。
関連記事

[2016/09/28 19:53] | (コードネーム:モンジュラ)
|
コメント:
この記事へのコメント:
コメント:を投稿
URL:

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