シンプルなRPGゲームサーバーを作成するにはどうすればよいですか?[閉まっている]


8

私はSprite Kitゲームに取り組んでいます。私はそれを真のマルチプレイヤーゲームにしたいと思います。つまり、ゲームに参加する各人が自分のカメラを持っているということです。プレイヤーが同じゲーム画面を共有するマルチプレイヤーゲームのチュートリアルを見てきましたが、それは私が望んでいることではありません。

プレイヤーが接続するサーバーが必要であることを理解しています。つまり、プレイヤーが接続する「世界」はサーバー上で実行されている必要があります。これは正しいです?

このゲームの「ワールド」を実行しているサーバーをどのようにして使用しますか?特定のタイプのサーバーである必要がありますか、それともNode.jsやその他の必要なものを使用できますか?

回答:


17

あなたは正しい軌道に乗っています。

主旨クライアント・サーバ・ネットワーキング・モデルでは、ということであるサーバが、それはという知識の中心点であるということです、クライアントがに接続します。ゲームサーバーには通常、

  • インメモリの世界表現
  • リスト接続選手
  • ゲームループ(例えばプレイヤーコントロールハンドラで、物理エンジン&AI)。

サーバーとクライアントの間に通信チャネルも必要です。これにより、クライアントはプレーヤーのアクションを送信でき、サーバーはゲームの状態を送信できます。

より高度なクライアント/サーバー構成には、

  • パフォーマンス上の理由から、デルタ圧縮(ゲーム状態全体ではなく、ゲーム状態間で変更されたもののみを送信)
  • 知覚される入力遅延を減らすためのクライアント側の入力予測 CS:GOコントロールなど)、
  • ディスク上のデータベース(例えばWorld of Warcraftのの在庫保管)、
  • クライアントマシンMaple Story敵AIなど)への作業のオフロード
  • またはサーバー間の接続のハンドオーバーOpenSimulatorのワールドリンクなど)。

簡単に始めましょう。必要な場合にのみ複雑さ追加するのが最善です。このうさぎの穴は深いです。


Node.jsについて説明しました:小さなゲーム用のサーバーをいくつか作成しましたが、それはすばらしいことです。しかし、サーバーとクライアントは好きなように書くことができます。 Eve Onlineは主にErlangにありMinecraftはJavaにあり、ValveによるほとんどすべてがC ++などです。


詳しい回答ありがとうございます!それでも私を混乱させる1つのことは、このゲームはiPhone向けのスプライトキットを使用して記述されているため、サーバーはこれについてまったく知る必要があるのでしょうか。ゲームはスプライトキットにあるので、サーバーが提供する世界もスプライトキットである必要があると考え続けているので、私は混乱しています。あなたの考えは何ですか
duxfox-- 2015

@AbdulAhmadいいえ、必要な言語またはライブラリでサーバーを作成できます。サーバーは完全に分離されている必要があります。2つの異なるアプリケーションを構築していて、そのように考える必要があります。1つはクライアント用、もう1つはサーバー用です。それらを結びつける部分は、2つのアプリケーション間の通信プロトコルです。それらの間で調整する必要があるその他の詳細(ゲームの状態など)がありますが、本質的にはそれらは完全に無関係です。サーバー側ではSprite Kitをあまり使用しません。
ファジーロジック

@FuzzyLogicなので、これをよりよく理解しようとしています。サーバーが「世界」(画像、物理学など)を提供している場合、クライアントはこの環境の「ビュー」にすぎないため、クライアント(iPhone)にはそれがありません。これは正しいです?それで、クライアント側でスプライトキットを使用して、サーバーからのデータに視覚的なレイヤーを与えるだけですか?言い換えれば、ゲームは主にサーバー側(すべてのロジックなど)で構築する必要があり、クライアントは私の見解であり、イベント/コマンドをサーバーに送信できる場所です。これは、スプライトキット
duxfox)に

@AbdulAhmadうん!最小限の処理を行うクライアントは、シンクライアントと呼ばれます。それは素晴らしい出発点です。
あんこ

3
@AbdulAhmadはい、いいえ。それはそれについて考える良い方法ですが、主に効率上の理由から、クライアントは通常、サーバーにすべての詳細を尋ねるのではなく、多くのことを複製します。そうでなければ、おそらくパフォーマンスの問題が発生します。ankoが述べたように、それは始めるのに良い場所でしょう。これは大きなトピックであり、多くの方法、多くの考慮事項、および多くの部分があるため、すべてがどのように機能するかを完全に説明することは困難です。どれほど複雑になるかは、ゲームの詳細によって異なります。正直なところ、あなたの質問に基づいて、私はまだこれを試すことはお勧めしません。
ファジーロジック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.