
How can game developers ensure save data compatibility in Early Access games ?
EAゲームってセーブデータの互換性が無くなるのを防ぐことは出来ねえの?
ゲーム開発者が早期アクセス(アーリーアクセス)ゲームでセーブデータに互換性をもたらすためにはどうしたら良いのか?これね、一見不可能に思うでしょ?できるんですよ、そんな魔法みたいなことが。…つってもいきなり専門的な話を始めてもわからんでしょうから、これを引っ越しに例えます!よく覚えてくださいよ。此処で言うセーブデータは「プレイヤーの引っ越し荷物」であり、ゲームのアップデートは「新築への引っ越し」です。ではどうしたら良いのか?
荷物を入れる箱(セーブデータ)には番号と内容の札を振っておく
まず、プレイヤーの荷物は当然ゲーム本体のアプデと共に増えていきます。これを古いゲームのセーブデータだからといって、ぎゅうぎゅうにわけのわからん箱にまとめておくと、無理が生じますね。そこでこれらのイミフだった荷物のひとつひとつに、中身を示すラベルを貼っておくのです。これはレベルの箱・これは所持品の箱・これは関係性の箱と言うように。これでアプデによって新規要素が増えてもラベル貼りされてるがために迷うことが無くなる…というわけです。番号(バージョン情報のことな)も振っておくと良いでしょう。
あらかじめ新しい箱を用意しておく
また、次にそういった箱を事前に用意しておくことも重要です。例えば、アプデで満腹値やSAN値といったステイタスが増えたとします。そうすると、事前に箱が用意されておらず初期値も設定されていないので当然ゲームは混乱しますよね?それを防ぐ方法があるのです。単純です。事前に(あらかじめ)そうした仮のステイタスを作り、取り置きしておくのです。例えば、初期値100としてラベル貼りする前の箱に予定データを入れ込んでおく。これによって混乱しない…というわけですね。データ割当を事前に予約しておく。
事前に新しい箱を作るルール決めをしておく
でもねこれ、誤解があるとダメなんで言っておくけど、事前にデータ割当分を100%用意しておく必要はありませぬ。重要なのは、「新しい要素が追加されたらば古い荷物にはその箱がないと認めること」なんです。そして、検索して割り当てる箱が存在しないときこそ「満腹値やSAN値は100から始める」等に決めた初期値をその場で足すことなんですよね。よーするに…「後から箱が増えても古い荷物を新しい形に作り直す係員を置いておく」ことが重要なんすよ。ま、いわば古典的なマイグレーションのルール決めだね。
部屋と箱を切り分け十分引っ越しに備え準備しておく
さらに、そもそもこう言ったことも考えられます。部屋(ゲームの舞台)の形が大きく変わったとしましょう。この時、部屋(ゲームの舞台)と荷物(セーブデータ)は区別がつくよう事前にしっかり線引きしておくことです。つまり、ゲーム本体データとセーブデータを区別して保持しておくわけですね。ゲームのプログラムをそのままゲーム本体と合わせて保存しておかないことで、引っ越しが上手く行く…とこういうことです。整理整頓された部屋だからこそ、スムーズに引っ越しもできる。忘れないでね。
部屋の間取り(ゲーム本体の構造)が変わっても荷物箱(セーブデータ)で保持しておけば大丈夫
ゲーム本体(プログラム=部屋の間取り)とセーブデータ(プレイヤーの荷物)は、本来別物であるべきなんですよね。ゲームのクラスや処理をそのまま保存すると、家のリフォームの時に当然今ある荷物の形までを壊しちゃうわけです。このぶっ壊しを事前に防ぐための大まかな箱を設けておくわけですね。割り切っておく、と言うべきか。身近過ぎて気付きにくいところなんですが…部屋が変わっても荷物は荷物として扱えるようにする!これが一番効くのです。
まとめ
まとめるけど、引っ越しで例えるならば…まず「第何回目の引っ越しかを箱に書く」ことを忘れない。さらにその際「種類ごとに箱を分けて分別しておく」。「新しい家に新しい棚ができたら古い荷物をその棚向けに詰め直す係を置く」ことです。また、「家の間取りと荷物は別ファイルにしておく」。これなら、早期アクセスゲームとしての建屋(ゲーム本体)を何度建て直しても(引っ越ししても)荷物(セーブデータ)を全部捨てなくて済むわけだね。
そもそも論:んで何でこんなこと言ってんの?
これはチョー簡単なことでEAゲームってゲーム更新されるたびにセーブデータ破損が起きて互換可能性がないといちプレイヤーとしてゲームをやる気なくなるじゃないですか。だから、引っ越しのための準備をゲーム設計者がゲーム開発の時に事前にしておくことで、ゲームの継続性というか、ここで言う住みやすさ・住居の快適性を保っておくことが重要なんすよ。データ破損が起きてこれまでの進行が無くなったら(荷物が保持されないなら…と言う意)生活の快適性が保たれないじゃないですか。だから、わざわざこんなことをゲヲログが言っているわけ。
