マジックアクション製作中26 セーブはしない | LITTLE CLAP ゲーム製作日記

マジックアクション製作中26 セーブはしない

 ゲームのプレイ記録ってどこに保存すれば良いんでしょうね。

 Javaアプレットでゲームを作っていると、いつも困ることがあります。それは、ゲームを途中でやめて後日続きから遊びたいときの機能、セーブの方法です。
 そして、いつも同じ結論を出します。「セーブの必要が無いゲームシステムにしよう」と。



 以下はほぼ愚痴です。

 Windows用のスタンドアロンのゲームを作る場合ハードディスクに書き込みができますので、ゲームと同じディレクトリやユーザ毎のマイドキュメントなど、どこにでも保存できます。また、保存したファイルのバックアップ等のメンテナンスユーザに自由に行ってもらうことができます。
 DoCoMo携帯電話用のiアプリを作る場合、ゲームプログラムの保存領域とセットでデータ保存領域を確保できますので、そこに保存します。

 ネットワークを使用したある程度大規模なゲームの場合、ユーザにアカウントを作成してもらってサーバ側に保存します。アカウントにはユーザを識別するためのIDとパスワードが必須ですので、ユーザにとっても製作者にとっても管理は面倒です。
 JavaScriptでブラウザゲームを作る場合ブラウザのCookieに保存するのが手軽ですが、保存できる量に制限があるためいつの間にか消えてしまうこともあり確実性はありません。複数のブラウザ間でセーブデータの共有ができませんし、原則としてバックアップも取れません。
 FLASHでブラウザゲームを作る場合もJavaScriptと同様に一時領域に保存します。ブラウザのCookieよりは消えにくいようです。使ったことが無いので正しいかどうかは自信がないです。

 最後にJavaアプレットですが、私はベストな方法を知りません。
 アカウントを用意する方法はJavaアプレットの手軽さが大幅に失われますし、趣味のゲーム製作でユーザの個人情報を管理するなんて冗談じゃありません
 URLConnection経由でCookieを永続保存できないか検証しているのですが、思うようにいきません。これは私の知識不足である可能性が高いのですが。
 JavaScriptを経由してブラウザのCookieに保存するという方法もありますが、これは一部のブラウザで対応しておらず、またJavaアプレットとJavaScriptという2つの機能を使用することで環境依存の不具合が発生する危険性が増えてしまいます。
 あとは昔のドラゴンクエストの「復活の呪文」のように、パスワードを表示してユーザにメモしてもらう原始的な方法があります。テキストボックスに表示すればクリップボード経由でメモ帳にコピーすることもできますので、写し間違いが発生するようなことは少ないでしょう。とはいえ面倒をかけることには変わりありません。

 ……そして、いつもと同じ結論を出します。