2017/12/10
■ [変愚蛮怒/開発]変愚蛮怒開発日誌part77…現状の開発路線
最初に
本記事はRoguelike Advent Calendar 2017の10日目の記事です。というか今年こそはよりガチ参加しようと思ってまた、しそこないました(小声)
去年のアドベントカレンダーでまとめた変愚蛮怒の今後のマイルストーン@2016末はあんのじょう空回りしまして、それにはもうリアルの事情がどうしようもならんことがあって、平謝りする他ない次第です。
それをまたどう補正して続けていくかはともかく、今回はここまで何に苦心しているのかをまとめて、せめてやることはやっておるのよ、という見苦しいアピールに走ろうかなと思います。
やっぱり、まだドキュメントが足りないのでDoxygenとリリースノートは書かないといけない
これまでもDoxygenにより開発のドキュメントはまとめてきてはいるのですが、本WEBサイトへの更新は止めているのに加えて、まだまだまとめ足りないところが多くあります。
実際の所、いざ「変愚の各課題に取り組もう」とすると「これどうなっていたっけ」な状態に陥ることが多く、変愚蛮怒/スポイラーで集めた内容も古かったり、修正済みであったりするものも多く、参照性がないことに自分自身が苦しんでいます。
また、本日夏場にかけて長らく更新を止めていた変愚蛮怒の改訂履歴を2.2.0まで具体的に列挙はしたのですが、この件について総括してどういう方針で修正を行ってきたのかという、もうちょっと簡潔な「リリースノート」をまとめないと、私自身の方でも、メンテナと任される以前の経緯を含めてしっくりきません。
この辺は今後さらに変愚蛮怒を私個人の手でメンテしていくだけでなく、既にあるバリアントや今後バリアントを発展させていく上での基盤としてやらなければならんと思っている点です。以下の他件よりも後回しになるとは思いますが、私自身が開発が続けられなくなるという「最悪のケース」を回避するためには必ずやっておきたいと考えています。
後先の拡張性も維持しつつ、アイデアを加えていく基盤を確保しないといけない
去年のマイルストーンや、某改良スレ、ジョークスレ、IRCの「#ぐりっどばぐ」チャンネル等でネタなり本気なりでまとめてきたアイデアは数多くあります。そいつを実行に移そうという上で毎回枷になってきたのはこれまで違法建築を続けられてきたソースコードの壁です。
みやまさ氏の変愚蛮怒勝手版を主とした大きな改変、改良例はその違法建築からちゃんと実装をやっているではないか、その間、本家を任されている手前はどんだけ拡張や改良を重ねて行けたんだと思うと、非常に心苦しいものです。
が、やはり変愚蛮怒のベースをやって「一つモンスターに新しい特性フラグを加える」「プレイヤーに一つ新しい技能を加える」が、難儀になっている所の問題は、やはり多くあります。
取り分けて、ハードコーディング下に引っかかって、プログラムを知らないユーザにカスタマイズできない要素が多い、というのは大本のバリアントが抱える所としては依然大きな問題と感じています。祖先のAngbandが4系までで固めたこのカスタマイズ性は、何とか変愚にも反映させたいところです。
そもそも腐るほど出てくる警告とアンチパターンを何とかしろや
前述の拡張性を何とか実現するために手をつけていて、今のところ直接大きな改良が見込めそうなのはこの件です。現在、hengbandのリポジトリには、FixWinWarningsというブランチを切って、秋口からひたすらにリファクタリング(とそれに伴う安易なエンバグの駆逐)を繰り返しています。
具体的にはVC++で警告レベルを4(一部陳腐化過ぎたものや、公式でも非推奨となったものは抑止しています)にして出たものを直してきましたが、出るわ出るわのいい加減な型定義や、二十年前のハードスペック事情でもなければ意味をなさないメモリのケチり等々。
当初警告が500~600件出てきたものを若干の仕様変更も含めながらなんとか減らしてきました。この辺は順調ならば今年中には何とかなるかもしれません。逆に言えばこれを何とかしないと他に手も付けられなかったりなんともまあ。
最後になりましたが
取り留めなく品なく愚痴りましたがまたさっさと手を動かします。はい。