私は最近、カードゲーム用のエンジンを書き始めることにしました。私は大規模な「カード」プレイヤーではありませんが、友人がゲームを紹介してくれました(デンマーク語のゲームのスピンです)。
ゲームを3つのセグメントで開発したいと思います。
- 基本的なエンジン、カード/デッキ/ゲーム状態などを処理します
- ユーザーインターフェイス(モバイル/デスクトップWebアプリの形式)
- さまざまな戦略/困難などを伴う人工知能
これらは私の心の中で非常に異なるプロジェクトです...そして私はそれらがすべて長期的にどのように組み合わさるかを見るのに苦労しています。最初は、エンジンを使用してゲームを「プレイ」できるようにしたくもありません。エンジンは主に単体テストによってテストされます。クライアントが存在するまで、プレイテストは開始されません。したがって、ここにはクライアントとサーバーの関係のようなものがあります。
エンジンは非常に大きなパズルのピースです。私が知りたいのは、このエンジンの「パブリックAPI」をどのように開発するかです。
エンジンは非常に基本的なWebサービスであり、クエリを介してRESTful APIに状態を返すことができると考えていましたが、エンジン自体をWebアプリとして開発すると、プログラミングの決定に悪影響を及ぼす可能性があると心配しています。(たとえば、MVCマイクロフレームワークを選択した場合、このAPIは実際にはビューを備えていません... JSONを介してシリアル化されたオブジェクトを返すか、そのための何かです。MVCを次のようなサービスに使用するのは悪いことですか?この? )
私のもう1つのアイデアは、エンジンは単なるコンソールアプリであり、後でそれとWebアプリの間でデータをパイプ処理するためのある種のブリッジを作成することでした。(ブリッジは実際には何でもかまいません。つまり、Webサーバーとゲームエンジンの両方がIRCサーバーでアイドル状態になり、その状態をチャネルで共有できます。)
どのようなアプローチをとりますか(Webサービスとして開発するか、スタンドアロンアプリケーションとして開発して後でブリッジする)、そしてその理由は何ですか?
ありがとう、ロビー。
編集:これはゲーム開発に属していると思います。わかりやすくするために、カードゲームエンジンを作成します。エンジンのAPIを公開して、将来的にWebクライアントやAIクライアントと統合できるようにする最善の方法を見つけ出そうとしています。
私はここにもアカウントを持っていなかったので、どうも:)