やっとサーバー側の実装が完了した。
上図は、ステートレスかつ、経路がクライアントからサーバーへの一方通行のネットワークで、ターンベースのカードバトルを実装した場合の状態遷移図だ。
もっとスマートな方法があるかもしれないが、いちおうこれで動いたので、今回の検証モデルはこれで行こうと思う。
一応、1人でも遊べるように、サーバー側で常時接続しているNPCも実装した。
ただし、NPCにAIは搭載していないので、ランダムにカードを選んでくる。
ゲームサーバー側のAPI(REST風)は以下のとおり。
//ステータスチェック "http://<HOST>:<PORT>/checkStatus" //コメント送信 "http://<HOST>:<PORT>/sendComment" //メンバ一覧 "http://<HOST>:<PORT>/findMemberList" //対戦要求 "http://<HOST>:<PORT>/challenge" //カードを引く "http://<HOST>:<PORT>/drawCard" //カードを選択する "http://<HOST>:<PORT>/selectCard" //相手のリアクションを待機する "http://<HOST>:<PORT>/waitReaction" //ターン結果要求 "http://<HOST>:<PORT>/resultTurn" //ゲーム終了 "http://<HOST>:<PORT>/closeGame"
Node.jsでの開発はIDEが無い分、タイプミスが多かったり、デバッグが面倒だったりする。
しかし、それを補うように、コマンドラインモードで、モジュール単位で動かすことが出来る。
ちょうどJSファイル単位で単体テストをするような感じだ。
残るはクライアント側のバトル実装のみとなった。
明日は休みだー!
Related Posts
カテゴリー: 制作実習