kowさんは天ざる大好き

創作に絶望すると、世界が反転した日記

Yanesdk.netによるノベルゲーム実装(5)

では、早速、それぞれの画面がどのように動作しているかをみてみよう。手始めにロゴタスクから。
しかし、タスクシステムについては何もふれないいのだろうか。
タスクシステムもまた、yanesdkの肝となる部分ではないだろうか。まさにその通りだろう。
確かに、この部分の感想をとばすのは暴挙だ。いっちょ、タスクシステムについて感想を。


タスクシステムについては、やね本2に詳しい。一つの章を割きメモリちゃんが詳しくタスクシステムについて説明してくれる。
とはいっても、やね本2は絶版で参照したくでもできない人が多いのだろうけど。そんな人は2053年末には青空文庫にならぶかもしれないのでそれをじっくりと待つのもいいかもしれない。(やね本3の付録につけばありがたいけど...)

あらゆるキャラクターは、フレーム単位で移動します。通例、1フレームごとに、キャラクターの移動関数が1回呼び出されます。移動関数は、1回分の移動処理を行なったあと帰還します。この処理を実現するために、さまざまな方法が編み出されました。
(やね本2より)

その様々な方法のうちの一つの実装がyanesdkのタスクシステムということになる。
シューティングなんかだと、弾とか、敵機がそれぞれ一つのタスクになるわけだけで、それこそタスクシステムの本領発揮というところだろうけど、ノベルゲームでは敵機や弾幕に興味はない。
近代的タスクシステムの発展的考察3(P.110)であげられている「シーンタスクの導入」ができればそれで十分である。

ところで、

貸してやったCCさくらのDVD全巻と、アリスの館456をいつまでたっても返しやがらない。ごほっごほっ。

とやね本2のちょっとした挿話にも時間の経過を感じるのだけど、yanesdkのタスクシステムは今でも変わらない。それはすなわち、十分に検討された柔軟なシステムになっているということを実証しているというわけである。
その一方で、今でもCCさくらのDVD全巻を返してもらえていないのだとしたらあまりの惨たらしさに心がひしひしと痛む。


たいして意味もわからん与太話で盛り上がってしまった。
タスクシステムがあり、それをシーンタスクみたいに使おう、ということであった。
結局タスクシステムの感想としては、switch 〜 caseを排除できた、それに従ってコード重複が減った。処理をクラスにカプセル化できた。シーンの遷移がらくちん。そしてこれは、タスクシステムを使わなかったらとんでもないことになってるに違いない。ああ、なんとありがたい、というところだ。


残念なのはシーンタスクにおいて、シーン間のトランジションは手前で用意しないといけないことだ。これはyanesdk.netでトランジションが用意されていないからしょうがないんだけれども。
トランジションがないのはOpenGLだったりする事情もあるのだろうけど、yanesdk.netユーザとしてはユニバーサルトランジションか、それに代わる機能がどうしても欲しいところではある。
yanesdk.netにトランジションがないことは、ノベルゲーム開発者がyanesdk.netを選択するのを難しくしているとも思う。
とはいっても、スクリプトが主流の今日、yanesdk.netが選択肢として挙がるのもまれなのかもしれない。
素直にノベルゲームを作るなら、スクリプターの表現力では足りないってこともそうそうないだろうし、生産効率を考えてもあえてスクリプト言語を捨てるのはあまりにも挑戦的だろう。
しかしこれから先、システムレベルでも素直にノベルゲームが作れなくなる時がくると予感するし、そのときyanesdkは力を発揮するんじゃないかなと思う。


話が大いに逸れてしまった。感想文というのはこれだから楽しい。
次は、ロゴ画面の実装をみてみようと思う。
そして、ノベルゲームの実装というタイトルが今となっては重荷になっていることは黙っておく。