【3Dゲームエンジン】Unity 4 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0540名前は開発中のものです。
2015/07/26(日) 11:06:32.29ID:D3ATScL/PureなRogue Likeなら乱数発生器を自前で用意して乱数の使い方を切り分ける事で保存データを少なくすることができる
たとえばRNG方式ならX,Y,Z,Tの四変数(ビット数は実装者による)を保存することで達成できる。(詳細が知りたいならRNG Random Generatorとか Xor Shift Random Generatorでググれ)
さて、ローグライクと言う事から次のことがうかがえる
*各階層は完全に乱数で生成される
つまり各階層事に乱数のシードが生成できれば階層の生成は可能となる
そこで階層ごとのシードを決定する乱数ジェネレータと階層を生成を乱数ジェネレータの2つを用意することで保存すべきものは階層事のシード生成乱数ジェネレータの4変数で済む。
すなわち全階層を生成するための乱数シードと各階層の為の乱数シードの2つである、任意の階層を生成するにはループで回して全階層の乱数ジェネレータが各階層の乱数ジェネレータへシードを供給すればよい。
次にアプリケーションが終了したときに保存すべき情報について考える
1:再開するときは階層単位である
2:再開するときは元の位置情報を含む
1の場合は終了時に保存するのは階層に突入したときの保持アイテムと乱数のシードのみだ
2の場合はその階層の生成に必要な乱数シードとその階層ですでに倒した敵と取得したアイテムのリストと現在位置と言う事になる
ゲームであれば突然の終了(クラッシュなど)の為に1を階層突破時に自動保存し、2を為にアプリケーション異常終了時に保存する
特に2の保存で重要視するのは既に倒した敵と取得済みのアイテムである、これの保存は敵の再出現とアイテムの二重取りを防ぐようにする事だ
#と論文調で書いてみるテスト
#まぁ1を保存しておいて1から再実行でも問題ないんじゃないかな
■ このスレッドは過去ログ倉庫に格納されています