新年

生ゴミを入れるための袋に本屋のビニール袋を使うのは危ない。
水分が漏れる。
水分が漏れたところで袋が悪いわけではない。本は漏れない。
ゴミの重さで袋に微細な亀裂ができると、その生ゴミから少しずつ水が漏れ、床に水溜りができ、こされた液体でぬるっとして気付く。
という警告の知恵袋。知恵袋じゃなくて袋の知恵やないかい。
全く面白くならなくて絶望する。
あけましておめでとうございます。
☆☆☆☆☆☆
ゲームつくるって話は、今ある例の描画クラスをどうきれいにして維持して、ゲームに仕立てるかで、考えているだけは考えている。けど、考えが行き詰ってしまう。クラスの"hoge.cpp"と"hoge.h"をここで公開したのと同じ使い方で再利用可能なようにするにはどうすればいいのか…? たとえば、hoge.hで書かれるクラスの中でマップを動くプレイヤーキャラがいたとして、その"player.h"をhoge.hでインクルードしてhogeのクラス内で使うと、そのhogeの2つのファイルだけでは何も動かなくなってしまう。C++のわけのわからない機能「継承」を使って継承元の独立性を保つのがいいのだろうか。ゆでたまごのマンガのようにリングの外の味方キャラが「おまえには継承があるではないか〜!」「おおそうだわたしには継承があっ(以下略
☆☆☆☆☆☆
継承の例として昔の入門書に「冒険者クラス(だか人間クラスだか)」をもとに「勇者クラス」や「魔法使いクラス」にするみたいのがあったがそれはおかしいと当時は思った。
が、「クリーチャークラス」を継承して「プレイヤーキャラクラス」や「モンスタークラス」を書くと考えるとローグライクの中身を少し覗いた人から見ても意外とスマートなのではないか。
☆☆☆☆☆☆
実際のところ、スマートである必要も再利用可能度を考える必要もない。実はない。ゲームがうごけばいい。でもそういう態度を実行するのが意外と難しい。そんでその逆「保守の」「きれいに書く拡張」のほうも当然難しい。
☆☆☆☆☆☆
パスに日本語があるとうまくいかないとか、ほかのアプリに切り替えると固まるとか、ほかのアプリに切り替えるとなにも表示されなくなるとか、ウィンドウモードで一部ウェイトがゼロになって超速でカーソルが動くとか、とにかく「くたばれ!」とそのゲームプログラムに向かって言いたくなるような、初歩的な問題のあるゲームプログラムがある。私が公開しているなかのどれかが、そういうのにあてはまるから、あるとわかる。1,2個はソースコードがもうないからなおせない。残りはソースもあるけど直すのが面倒でなおせない。そしてより面倒なのが、なおせないことを説明して「くたばれ!」と言わないでねと説明すること、かもしれない。だが、意外とそういう苦情は来ないのでとくに返事が面倒だと思ったことはない。
ひとつだけいいわけする。allegroを使ったゲームでCPU占有率がやたら高い場合があることについて。あれらの大概は、ゲームが50fpsになるように意図している。そんでどうしても変にフレームが遅れてしまう現象があって悩まされていた。全く同じプログラムを、一回目に起動したときは普通に50fpsで動くのに、二回目には30fpsに減速したり、それでそこまでの変更を泣きそうになりながら全削除して動かしたらそれでも減速して……。それでウェイトの中で(たとえばsleep(1)、1ミリ秒待つルーチン)があり、そのsleepを一回も呼ばないように取り去るというやりかたへ散々の試行錯誤の一部でたどりつき、そうしてみると、ちゃんと50fpsになった。ちゃんと動かすのにallegroのデモゲームでも使われているコードとは違うやりかたをしなくてはならなかったが、そのためにはCPUを占有してしまう。
何が言いたいかというと、超初歩的な部分に見える場所がちゃんと動かない変なゲームプログラムは、わりとどんどん出てきてしまうという話。
悪意はないけど、あやまりたいところ。
☆☆☆☆☆☆
キャラクターについて。
D.G.E.とかパ……とかいう名前を知っている奇特な人にはわかるかもしれない。
エリスさんは今後も活躍してもらえそうな気がするけど、パ……さんはなんか私の中では地に落ちた感じだ。パ……さんには非常に申し訳ない。パ……の内面的な部分やパ……の武器がどうとかを語ることもできたらいいと思っていたこともあり、今ならマッ……の原作者が犬を見るとへこむほどだったのがよくわかる。
パ……の冒険のときはテキトーに落書きしてたらこうなったのが最初で確かにオリジナルなのだけど、どうにも何かの劣化コピーと見える。
でもコピーではない。コピーではないが、コピー元っぽい! と思いながらその「劣化前」を少し確かめると、その「劣化前」キャラクターの登場時の読んでてぎこちないせりふまわし(これははじめの40ページくらいは読者がなじまないだけだが)や描写に寒気とあぶら汗におそわれはじめるもののつまらなくはなく寒気はすぐになくなり、やがて「これは普通に面白いね」と言いながら、私のこの「劣化後」はなかったことにしたいと思った。
でも公開停止願いとかはまずしないですが。
そうとうに高い授業料でキャラクターの意味が少しわかったと思えばいいか。
☆☆☆☆☆☆
本気のと雑のについて。
雑なものを作ろうとすると、意外と本気のところへの道が見えてきてしまうことが、ゲームプログラムで何回かあった。
たとえば(中略)は、ミニゲームとしてつくられたミニゲームだ。雑に作ったところが多い。けど、その雑のために、味方のスキルのリストを作ったり、それの効果を実装したりというのは、実はあと少しいくと本気の中長編ゲームにしたてあげる下地が出来てきていると感じるところがあった。
雑なのでも、本気でやる場合と同じくらい中身が必要になってしまうと気付いた。
でもいかんせん最初が雑なので、プログラムもうまく伸ばせない。
そして最初から本気でやろうとすると、ゲームとして動くまでにいったところで放置してしまう。
☆☆☆☆☆☆
何のためにゲームをやってるのかわからなくなる。
などと去年FF4のDS版をクリアして思った。
ノーヒントでやろうと思ったが詰まり、レベル上げもやる気起きない状態になり、
結局攻略サイトを見て、
ボスキャラにもとくにあのバステが有効だと知り、その後出てくるボスのパターンを知り、初見では一撃で全滅したラスボスのパターンを知り、でもラストダンジョンで放置し、その後ふとレベル上げをしてみてLV70くらいまで上げて最強武器とかとって、それでももう一回全滅し、攻略サイトをよく確認し、3回目でムービーを飛ばしてラスボスに勝ってエンディングを見た。
この↑段落に見える「空しさ」に対して、「難易度は高いけどわりと面白いゲームだった」って気分が少しはあるからおそろしい。
このへんで「選択肢無しのアドベンチャーゲーム*こそが*実はいいんじゃないか?」という思想にすら染まりかけたのかもしれない。