はてなカタンのためのAjax汎用ゲームテーブル草案
http://d.hatena.ne.jp/jkondo/20051217/1134774642
でカタン話が出てたので、あんまり関係ないけど以前考えてたWebゲームテーブルシステムの草案をてきとうに載せてみる。
概要
フレームワークだけ提供して、コマやカードの画像はユーザが用意する(というたてまえ)。画面上に表示されたオブジェクトはすべてドラッグ&ドロップ可能(設定で固定可能)で、コミュニケーションはSkypeとかにまかせる。
とりあえずふつうのカタンを実現するためには
プロパティ
- 角度
- 座標
- 裏表
- z-index
オブジェクト一覧
- 位置さえ変えればいい紙
- マップ構成パーツ
- 陸
- 数字
- マップ構成パーツ
- 回す必要のある紙
- マップ構成パーツ
- 海
- マップ構成パーツ
マップ構成パーツをある制約を満たすようなランダム配置にできるようにはしたい。
- 裏返す必要のある紙
- 資源カード
- チャンスカード
裏返す必要のある紙を安心して表にできるようなプライベートな領域が欲しい。ここに立体物が置ければなおよし。
- 立体物
- 家
- 都市
- 盗賊
- 回す必要のある立体物
- 道
- 数値さえあればいいオブジェクト
- サイコロ
システムの構成
- サーバ側
- ゲーム初期化時にXMLで書かれた設定ファイルを読み込み、現在のステータスを保存
- 設定ファイル
- オブジェクトの個数
- オブジェクトのプロパティ
- 貼りつける画像
- 初期位置、角度、裏表、z-index
- 設定ファイル
- GETで以前のGET後に変更されたオブジェクトを返す。
- ステータスを返すのはロックされていないオブジェクトのみ。
- ロックされたオブジェクトは動かすことはできない。
- 転送量の問題があるので、ロックのタイミングを細かく設定できるようにすることが重要。
- ステータスを返すのはロックされていないオブジェクトのみ。
- メッセージがPOSTされたらプロパティ変更。
- 「サイコロを振る」メッセージだったらサイコロの値を変更。
- ゲーム初期化時にXMLで書かれた設定ファイルを読み込み、現在のステータスを保存
- Javascriptクライアント側
- n秒ごとにGET
- プライベート領域のオブジェクトの管理
- ステータスの変更されたオブジェクトを再配置
ということで、誰かつくってください。