2011-12-20 5 views
1

学校のプロジェクトとして、Google App Engineプラットフォーム用のJavaでブラウザゲームを作成しています。そのタイルベースのボード上でお互いに戦っているプレイヤーの戦略ゲームです。GAEブラウザゲームのボード/マップデータの表現方法は?

私はマッチとボードの構造を動的にします。ボードのサイズは、試合ごとに異なります(試合が作成されたときに選択されます)。試合の途中で参加または離脱することができます。ボードのタイルには複数の異なるオブジェクト(プレーヤーのポーン、タイルボーナスなど)タイルの間を移動することができます。

問題は、私がJavaを使い慣れていないことと、そのようなマルチレベルの動的構造を表現して格納する方法がわかりません。

1)概念的には、「オブジェクトのリストの2D配列」のように見えますが、Java言語でどのように定義する必要がありますか?それは「オブジェクトのリストのリスト」または「オブジェクトのリストの2D配列」ですか、それとも別のものですか?

2)その構造のどの部分をデータストア(GAEのオブジェクト指向データベース)に格納し、ボードをプレーヤに表示するときに動的に構築する必要がありますか? ボードが表示されるほど、保存が容易になりますが、オブジェクトが移動したときに更新するのは苦痛になります。

答えて

1

2d座標で独立した地図エントリのリストとして保存することをお勧めします。

class Map { 
    Long id 
} 

class MapEntry { 
    Long id 

    Long mapId //better to use Key for parent map 

    int x 
    int y 
    MapEntryType type //if you have different elements of map 

    //some other fields/payload 
} 

と、select MapEntry where map = ?のようなクエリによって、すべてのマップ要素を照会することによって、あなたはすべてのマップの詳細を取得し、メモリにそれを構築することができます(あなたが使用しているものをデータベースマッピングツールに依存します):

何かのようにサーバー側またはクライアント側。ほとんどの場合、マップ全体をメモリにロードする必要はありません。

関連する問題