黄昏 2024/04/01 08:00

今のところ考えている今後の予定

++現在更新済みで差し替え申請をしておりこの記事の内容は古くなっています。++

この記事の内容の性質上ネタバレやプログラムの内部事情に関する事柄が多めなので読む際にはネタバレに注意して下さい。特にゲームの設計方針・設計思想に関わる内容を含むのでスポイルと見なせるかもしれません。


「強くならないと出られないダンジョン」で採用しなかった要素やアイディアの実験用プロジェクト

こちらで試したことが強くならないと出られないダンジョンにバックポートされるかもしれません。

強くならないと出られないダンジョン

以下は基本的に互換性を失う可能性のある変更のため互換性のある変更を優先的に行い後回しにされていた変更の内、今のところ採用される予定があったり可能性が高いものです。

初期マップにワープするためのメニューコマンド

上記プロジェクトにはメニューを開いて選択すれば初期マップの既定位置に移動するコマンドが追加されています。強くならないと出られないダンジョンのデバッグ中に、クリアするのに必要と想定する装備・消費アイテム・レベルを満たしていても消費アイテムが枯渇するまで再挑戦してもクリアできなかった乱数の状態を見つけたので資源が枯渇した状態で無コストで帰還する手段を追加するかもしれません。

++状態を戻すのが難しいので採用見送り++

ゲーム中の行動をある程度記録しそれを元にゲームクリア時のフレーバーテキストの生成と表示

クリア時のテキストにプロシージャルコンテンツを使用するということです。ある程度全体が完成していないと必要な作業を見積もるのも難しいので始めから搭載予定で後回しにしていた機能です。

この機能は「こんな事もあろうかと!」と今使わない機能を事前に用意しておく事が早すぎる最適化/共通化という深刻な問題を引き起こすために、ある程度後回しにする必要があるので必要に迫って後付になるものです。そのため、互換性を失う可能性が高い変更となります。また、こういった場合トレードオフ(trade-off、二律背反を伴う一得一失の事)を伴う事が多いので影響の調査なども難しくなるので直感的な複雑性よりも複雑になりやすいもので、すべての作業が完了するのは時間がかかる事が予想されます。

++WOLF RPG エディターで実装するのが困難なので採用見送り++

セーブ可能数増加

コメントで指摘されたのですが現在セーブ欄が一つである理由は特別にないので4つまでに変更しようと思います。ただ、変更の影響を調べるのに時間がかかるかもしれません。これには破壊的変更(プログラムの公開されている部分に対する以前のバージョンとの互換性が失われる変更の事)の有無、セーブデータの互換性、ゲームバランスの影響の調査などが含まれます。

ゲームバランスの影響については、現在余分にデータを保存出来ないのでセーブタイミングをずらした複数のデータを使用しセーブとロードを繰り返すリセットプレイが出来ませんがセーブ可能数を増やすとこれが可能となるのでその調査が主です。

もちろんOSの操作とファイルシステムの知識があれば現状でも可能ですが、またセーブ可能数が複数あってもこのゲームの性質上デスペナルティの影響が小さく、その場でHPを回復して稼ぎやボスとの戦闘を再開すればよくリセットプレイによる巻き戻し期間を小さくしようとして極端に頻繁にセーブしても時間効率が悪くなるだけなのでリセットのメリットが小さく、他のRPG、roguelikeなどでは一般的に不正行為とみなされるセーブデータの退避などの影響が小さいため概ねゲームバランスへの影響は小さいと考えていますが、昨今のRTAなどで奇天烈な手段が編み出される様子を踏まえるとゲームバランスに関する調査は必要と考えます。

乱数の最頻値が0の事が多い

これは非常に技術的な内容でどうなるかもまだ予想もできない変更なので読み飛ばしても支障ありません。


乱数アルゴリズムがMT19937なのでその性質から乱数が零超過状態から開始している可能性があるので改善できないか調査中。

使用しているWOLF RPGエディターはライセンス文から依存しているDXライブラリがオリジナルのMT19937の2002年版の実装のはずだが、seedが32bit値一つの場合適当な漸化式を解いて伸長した値を使用していた覚えがあるので0のビットが多いseedを使用すると影響を受けるのでこれが原因の可能性がある。ただ、MT法は一般的には過剰品質で必要なワーキングメモリが多く今となっては遅いアルゴリズムなので現在の主流ではないため、私自身が忘れていることが多いとみなすべきでMT19937自体も再学習の必要がある。そのため、おそらくこの変更には時間がかかる。更にDXライブラリはlibとヘッダのみの公開だがMITライセンスのためリバースエンジニアリングを許諾していないのでMT19937をどのように使用しているのかといった調査も難しい。

また、ゲームの様なプログラムのseedのソースに独立性を求めるのも意味がないのとWOLF RPGエディターはTRNGやCSPRNGを使用できないので本来的には実現できないので効率的な修正ができない場合はあくまで零超過状態に関する問題の解決が目的であるため0のビットが多くないseedを選ぶに留めるか修正しないかのどちらかになるかと思われます。

これはシミュレーション程の信頼性やネットワーク程の安全性は必要ないという話やseedにこだわったところで乱数列全体が変化するわけでもなくリングバッファや無限のテープの読み取り初期位置が変わるだけという話でもなく、それらを踏まえても人間の乱数に対するバイアスが強力なため演出のための恣意的な加工をした乱数値と統計的に信頼できる乱数値を比較しても人間は前者にランダム性を見出すので労力を特にかけるようなことではないという事です。

++通常プレイには問題がないのでデバッグ、テスト用の変更のみ。++

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索