カードゲーム対戦サーバ構築への道
疑似コード

Flying Object lab

飛行物体の実験室 > 記事 > カードゲーム対戦サーバ構築への道 > カードゲーム対戦サーバ構築への道 4 -レイアウトの想定とフロントエンド技術の検討-

カードゲーム対戦サーバ構築への道 4 -レイアウトの想定とフロントエンド技術の検討-

2025年01月01日

2025年、明けましておめでとうございます。特に言うことはないので引き続き開発を行いましょう。

前回はゲームの仕様を明らかにしました。

今回は、通信の前段階の検討を進めていきます。

今回の内容

私が作ろうとしているゲームはカードゲームなので、本来のアナログ環境におけるカードやチップの配置、使い方には制約があります。

しかし、今はWeb上での動作を想定しているので、制約は画面比やタップ/クリックの入出力に関わるものとなります。

その上で、まずはゲームのプレイヤーのロールのうちの一つである「勇者」のみのものを考えます。

今回は、おおまかな疑似コードを書いてからレイアウトを考えていきます。

勇者サイドの擬似コード

処理を擬似コードで書いていきます。

                
            

擬似コードができたので、レイアウトの変化を決めていきます。

レイアウト

戦略フェーズ、戦闘フェーズ、清算フェーズとそれぞれ決めていきます。

背景はまだ考えていませんが、恐らく単色で構成すると思われます。

全て暫定的なので、完成版は全く変わっている可能性があります。

戦略フェーズ

戦闘フェーズ

基本レイアウト

カード選出画面1

カード選出画面2

カーソルがカードにホバーした時のイメージ

清算フェーズ

詳細は記述しませんが、これらをベースに進めていこうと思います。

ゲーム用に何の技術を使う?

Webブラウザでアニメーションなどの描画を実現する方法の一つとして、HTMLでCANVAS要素を定義し、JavaScriptから操作する方法があります。

これをそのまま使ってゲームを構成する事は十分に可能ですが、これ単体でゲームを扱うのは少々骨が折れます。

以前にCANVAS単体の操作でゲームを作っていますが、これはある程度仕組みが簡単でした。今回はよりダイナミックでGUI的な動きができるようにしたいので、他のゲームエンジン的な仕組みを検討します。

調べた限りだと、Phaserを利用するのが今回のケースに合っていそうです。

Phaser

Phaserは完全フリーのゲーム用HTML5フレームワークです[1]。2次元ベースのゲームに強いようで、日本語資料が乏しいのに対して英語の資料は豊富とのことです。また、全てのコードはユーザに丸見えになってしまうそうです[2]

私が現在作ろうとしているのは「Webブラウザで動作する1~2人用ゲーム」の体裁です。そもそもこの記事群で大方経緯を説明してしまうので、この点は問題無いでしょう。

まとめ・次回予告

今回は大雑把な擬似コードとレイアウトを決めました。

利用するフレームワークにPhaserを選出したので次回はPhaserを扱って実際に想定した動きがある程度作れそうか試します。

参考

[1]:PHASER: Making your first Phaser 3 game

[2]:Zenn@nyoroko: PhaserでHTML5ゲームを作ってみた