スクリプタはプログラマではない
ゲームでは多くの場合、スクリプタという作業があり、ゲームの組み込みに関与する。
多くの場合は、専用のスクリプト言語を使ったりして、組み込み作業をする事が多い。
IF FLAG_NAOYA_EAT_SYOYU == OFF
FACE NAOYA
コーラおいしいですFACE SINAMON
それはしょうゆですFLAG_NAOYA_EAT_SYOYU = ON // なおやは醤油を食した
ENDIF
こんな感じ。(スクリプトはイメージです
で、スクリプトをうつ人には勿論レベルがあって、
一歩間違うとこんなスクリプトがでてきたりする。
NAOYA_LOVE_CHECK: LOVE_VALUE = GET_LOVE NAOYA IF LOVE_VALUE >= 0 && LOVE_VALUE < 30 GOTO HOGE_1 ELSEIF LOVE_VALUE >= 30 && LOVE_VALUE < 50 GOTO HOGE_2 ELSEIF LOVE_VALUE >= 50 && LOVE_VALUE < 80 GOTO HOGE_3 ELSE GOTO HOGE_4 ENDIF HOGE_1: IF NAOYA_COLA_UMAUMA == ON GOTO NAOYA_LOVE_CHECK ENDIF FACE NAOYA コーラうまうま NAOYA_COLA_UMAUMA = ON EXIT HOGE_2: FACE NAOYA ケーキうまうま EXIT HOGE_3: FACE NAOYA かゆうま EXIT HOGE_4: FACE NAOYA はてなー! EXIT
で、これで最悪なのは、
HOGE_1:
のような構造を赦してしまうこと。
HOGE_1:
の中では、既にその会話が行われているかを調べて、再度LOVE_CHECKに戻しているが、
こいつは、どこにもLOVEを変化させるようなフローがないので、
所謂無限ループ(ハングアップ)になってしまう。
いや、こんなことするやついねえよ、って思うかも知れないけれど、
いないわけはないんだよ、これが。
プログラマだってまともにプログラムを書けない昨今、
プログラムの経験がない人たちに何が起きてもおかしくない。
そういう意味で、
安全で便利で、間違いがよくわかり、万が一間違っても安全な方に倒れる、
という言語が求められる。
それはRubyでもなければPythonでもないし、
ましてやCでもJavaでもない。
Lua? Luaをやるんだったら、プログラマの素養を期待してしまうし、
うーん、うーん、と頭を悩ませる日々。
非プログラマに優しい構造、ってのが今考えないといけないこと。(考えていきたいところ
スクリプタにプログラムの資質を期待してはいけない。
不自由かもしれないけれど、なるべく楽に安全に楽しくかけるものを目指すべきところ。
うーん。