La.系ぶろぐ

個人的いろいろメモ。シャープペンのメモにちょっぴりゲ○ツの悪口が混じってるただのチラ裏。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

たとえば高速なスクリプト化

うーん、おかしい。
そもそも最初はエロゲネタを書く予定だったはずなんだが。
いつの間にかシャーペンブログ。
しかし、更新を1ヶ月くらいサボってる(それくらい忙しいんだけど)ので、スクリプトの話しでも。

てか、普通の会社でシナリオのスクリプト化作業ってどれくらい掛けてるんですかね。
まあ、だいたい……ウォーターフォール?な作業工程だと下流が圧縮されるのが世の常な訳で。
どんなシナリオが来ても、短期間で変換作業を迫られるのがプログラマの宿命だったりします。
ていうと、プログラマって「シナリオめ」って思ってるって話しになりそうですが(まあ、そうなんだけど)
実際は自分でシナリオ書いてもそうなるわけで。あはは。

まあ、そうなると……まず、どうやって時間を短縮するかという話しになるわけですが、これは話しを
単純化すると「何パスでシナリオを変換するか?」ということになります。
たとえば……理想的な話しで考えると、まずシナリオ全体の構成を把握して、チャートを作成
(頭の中ででも)必要なフラグを洗い出して番号の割り振り……なんてなると思うのですが、そんな
ことをしていてはそれだけで数日掛かってしまいます。

ということで、どうするかというと……まずはフラグの簡略化、ですかね。
スクリプトエンジンの機能によりけりですが、普通フラグ管理は固定配列(フラグ12番、とかそう言う)
かグローバルな変数を使うことになると思います。
しかし、固定配列は言うに及ばず、変数は宣言が必要になります。あるいはrubyみたいに宣言が
要らなくてもセーブロードの際にはその処理が必要になってしまいます。

まあ、だいたい……宣言はファイル先頭に書くとか、inclideファイルに書くとかあると思いますが……
移動手間だって馬鹿になりません。そこでどうしたかというと……
文字列でフラグを管理したわけです。フラグ用の巨大文字列を一個用意して(PB-100を思い出そう^^)
そこにデリミタ込みで突っ込んでいくと。
そうすると、文字列なので宣言は要らないし、文字列一個だからセーブも変数一個。シンプルです。
ちなみに判定はstrstr使います。部分文字列になる心配があるなら、前後にデリミタつけて。
う~ん、我ながら横着。

変数とか配列は機能制限の多い簡易言語が多い気がしますが、結構文字列系は強いのではないでしょうか。まあ、もっとも、それらの操作を関数化するか、システム実装する必要が出ては来ますが、グローバル変数宣言の拡張よりかは遥かに楽でしょう。

いやーさすがにDOSの時代にこれやったら一瞬でメモリが干上がりますが(64kとか、軽く飛ぶので)
Windowsっていい時代ですね。(そんなことするからフラグデータがでかくなるんだyo!)
まあ、究極1bitデータを数バイト(場合によっては数十バイト)使ってセーブするわけですから。

まあ、1パスでスクリプト化計画としては初歩の初歩ですが、まあ、実作業はこんなローテクで
小細工しながらやっているわけです。ふう。
(たぶん、続く)

スポンサーサイト

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。