セーブデータを保存する

ゲームのセーブデータ

ゲームにおいて獲得したスコアや最高記録などはセーブデータとしてストレージに保存します。

そして次回以降の起動でセーブデータを復元します。

 

WindowsRuntimeにおけるデータ保存方法

WindowsRuntimeでは設定データとファイルデータの2つのデータ保存方法があります。

単純な設定データなどは設定データとして~Settingに保存します。 大きいデータやファイル単位で保存したいデータは~Folder内にファイルを作って保存します。

設定データは、ApplicationDataContainerクラスで作られていて、キーそれに対応する値のセットでつくられます。

ファイルデータは、StorageFolderクラスとして保存するフォルダーを取得することができるのでそこにファイルとして書き込みます。

具体的には、ApplicationDataクラスの中に、

設定データ(ApplicationDataContainer型)

  • LocalSetting – ローカルの設定データ
  • RoamingSetting – ローミング設定データ

ファイルデータを入れるフォルダー(StorageFolder型)

  • LocalFolder – ローカルファイルフォルダー
  • RoamingFolder – ローミングファイルフォルダー
  • TemporaryFolder – 一時的なデータを保存するファイルフォルダー
  • LocalCacheFolder – 一時データ?

の6つのプロパティがあり、そこにデータを入れることになります。

20140714130709

 

ローカルデータとローミングデータ

さらに、WindowsRuntimeでは複数のデバイス間でデータを同期できるようにデータローミングという概念を採用しています。 Roamingがつく設定やフォルダーにデータを入れると、データはOneDriveで同期され、別のデバイスでも同じデータを扱うことができます。 ユニバーサルアプリの場合、「アプリをストアに関連付ける」をした後、WindowsアプリとWindowsPhoneアプリ間でデータがローミングされます。

 

別のデバイスでゲームをプレイしても、自分のスコアを引き継ぐことができるため、データローミングは非常に重要です。

20140714130531

 

ローカル設定データ

以下の名前空間を追加します。

 

ローカル設定データは、LocalSettingというコンテナーにキーと値をセットにしてデータを保存します。

データを復元するときは、ContainsKeyを使ってキーがすでにあるかどうかを判定しましょう。

 ローミング設定データ

データが同期される設定データは、RoamingSettingに保存します。 保存方法はLocalSettingと同じですが、この設定データは異なるデバイス間の同じアプリで同期されます。

データ復元

 ローカルファイルデータ

大きいファイルを保存する場合は、LocalFolderにStorageFolderを作って保存しましょう。

StorageFildeのCreateFileAsyncメソッドを使ってファイルを作ります。

今回はFileIOクラスのWriteTextAsyncでテキストデータを書き込みます。

 

データ復元は、GetFileAsyncでデータを取得します。

その前に、GetFilesAsyncでファイル一覧を取得し、データが保存されているかどうかを判定します。

 

ローミングファイルデータ

ファイルもデータローミングすることができます。

RoamingFolderに先ほどと同じようにファイルをつくり、書き込みます。

データ復元

 

サンプル

スペースキーを押すと、スコアが保存され、次回以降の起動でスコアがロードされます。

104

 

 

サンプルコード

SampleGameMono_10_SaveData.zip

 

目次