ウェブソケットでネトゲ作るよ〜 途中報告

解説しながら作る、と言ってた気がするんだけど、ドキュメント書くの飽きてがっーと作ってたら出来てしまった。
とりあえずGithubにおいた mizchi/ws-netgame - GitHub

localhost以外の環境で動くかは、まだ確認してない。以下のTODOが終わったらさくら鯖あたりに置いてテストしてみる。

TODO:

  • HP残量表示
  • WebSocket用のデータシリアライズをもうちょい頑張る
  • 共有データの切り出し(ObjectGroup)
  • セーブ機能
  • マップチップ表示
  • マニュアル書く

実装済み

  • 複数人プレイ
  • isometricのビュー

これはこのコードではじめて実装したもの。というかクオータビューの実装って案外簡単で

  to_ism : (x,y)->
    [cx,cy] = @cam
    [
     320-cx+(x+y)/2
     240-cy+(x-y)/4
    ]

@cam は 中心となるプレイヤーの座標

すべての座標にこの関数で変換した座標でレンダリングしなおせば一瞬で終わった。
もちろん二次元アフィン変換を一度手計算でやって確認したんだけど、よく考えたら当たり前な結果が出た。

実装したい

現状1プロセスで1リージョン。
複数インスタンスの立ち上げでリージョン移動とスケールアウトの実装。(セーブにはDBサーバーを一台)
Node v0.6の cruster で実装できる気がする。まだ0.4使ってるし.socket.io次第かなー。