同人ソフトにおけるリプレイのおはなし
- sorcery_p5
- 18427
- 140
- 30
- 0
@Nuka_po 制御しないと一瞬でずれますね。ただC#自体にも色々問題はあります。Unityの物理は使わずにBullet等をラップすれば問題なかったと思います。
2020-05-13 23:09:00@__syousa__ TLをみていると理論上はあってるはずでもうまくはいかないようで…。外部ライブラリに影響されたり、プログラムのバグでうまくいかないってことなんでしょうかね。。。
2020-05-13 23:12:06@__syousa__ bulletは再現性(決定論?)とかは問題ない感じなんでしょうか。 大丈夫ならとても心強いんですが
2020-05-13 23:13:11@ishin_mosquito みんながどれくらいリプレイに力をかけているかわからないので何とも言えないですが、3作品作った範囲では、未初期化バグととりあえず、とかいてしまったグローバル変数、ドライバが浮動小数点の精度の制御を書き換えてしまった例がありますね
2020-05-13 23:14:04同ソでリプレイ機能が話題のようですが、録画環境が充実した現在でもあった方が嬉しいかな。今はエンジン絡みで難しいのも増えてるだろうけど…
2020-05-13 23:14:43@Nuka_po それはコード見てみないと何とも言えないですね。直感的には色々設定すればどうにかなりそうな気がしますが
2020-05-13 23:15:21@ishin_mosquito あとはみんなリプレイがオプションですけど、私の場合リプレイが動かないとリリースできないので、リプレイの再現性に対してハッシュも埋め込む、常にリプレイのデバッグのイテレーションを回し続ける、とかするとどうにかなりました。(が、多分みんなそこまでやってない気がします
2020-05-13 23:17:20@__syousa__ なるほどハッシュ取って挙動の整合性を見るのかー!その発想は全然考えてなかったです。参考になります。
2020-05-13 23:19:52@ishin_mosquito あとは任意タイミングで主要な要素の変数をエクセルに吐き出す仕組みとか実装してましたね...ずれた瞬間に差分がわかりますし
2020-05-13 23:21:56@__syousa__ なるほどです。 当時は浮動小数点が物理エンジン内部で使われてたらもう 再現性的にもう難ありだと思って敬遠しちゃってたんですよね。 floatの演算精度制御の情報は よく覚えておこうと思います!
2020-05-13 23:22:22@__syousa__ なるほどです…そこまでやればたしかに完璧ですが自分ならやりたくない…。やっぱりリプレイ甘く見てました…
2020-05-13 23:25:03リプレイは、試遊できるイベントの時にタイトルデモとして流しておけるからいいんですよ……。あと僕はデバッグとか挙動の観察のためにつけている。製作の合間にボケーと観察してると変なところが見つかったり新しいアイデアを閃いたりする。
2020-05-13 23:53:15プレイヤー視点ではリプレイ機能って必要ないとは思うんだけど、ゲーム製作入門者は挑戦してみる価値がある要素だと思っている。うまく動くとおもしろくてウキウキするし、なんか勉強になるっぽい部分もある。(それを勉強して何に応用できるかと言われたら困るけど)
2020-05-14 00:02:16乗り遅れたけどキー保存で作るのなんて昔のシューティングと格ゲーくらいでは……? 今は全フレーム位置と速度とステートを保存すればOKですヨ。スカイドリフトは通信もリプレイもそれで作ってる。 twitter.com/sorcery_p5/sta…
2020-05-14 00:24:01同人ソフトにおけるリプレイのおはなし togetter.com/li/1510178 まとめました。貴重な同ソ歴史資料としてご覧ください。
2020-05-13 23:53:16ちなみにTakkomanはアクションゲームで珍しくキー保存リプレイ対応したけど地獄を見たのでオススメしない。やる意味もない……。
2020-05-14 00:24:47同人ソフトリプレイの話というとLIONHEARTのエンドレスシリーズ、「30分以上のリプレイが取れないのを修正」みたいな文章あった気がするんだがどうだったか。「お前本気か」って思いながらチャレンジしてた記憶だけはある
2020-05-14 00:04:12