問題タブ [mmo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
778 参照

php - php-ブラウザゲームでイベントキューをオフラインモードで動作させる方法

ブラウザゲームを作ることを考えている間、私は気がかりな問題に遭遇しました。多くのゲームには、このように機能する「イベントキュー」と呼ばれるものがあります。私は「軍隊」を持っていて、それを敵に送ります。少し時間がかかります。私の「軍隊」が敵の「軍隊」の位置を取得すると、計算された戦いがあるので、私の「軍隊」は負けるか勝ちます。私または私の対戦相手がゲームに参加しているときは、すべてがうまくいきます。ある種のajax作業では、呼び出されるphpスクリプトを管理し、fightを計算して、その結果をデータベースに保存できます。しかし、戦闘が発生したときに私も対戦相手もログインしていない場合、どのように機能するのでしょうか?そのようなゲームの良い例は、あなたが別の惑星に船を送っているときのOgameであり、ログアウトしたときに目的地に会い、戦いを行い、敵の源を手に入れてカムバックすることができます、

私は、データベースの行で攻撃者と対戦相手の両方の攻撃の時間を節約し、いずれかのプレイヤーがゲームにログインしている間の戦いを計算できると考えていましたが、このソリューションには多くの欠点があります。たとえば、対戦相手を攻撃する前に攻撃するサードプレーヤーがいる場合、それは彼の軍の統計を変更し(彼は彼の軍の一部を殺すことができるため)、私は多くの結果をもたらします。また、プレイヤーの誰もが長時間ログアウトしない場合、彼らは戦っていなかったのでゲームに登場し、それは真実ではありません。

そのようなイベントキューを作成する方法を知っていますか?cronを使用することもお勧めできません。まれにしか使用されない場合があり、数千のプレーヤーが存在する場合、数千のcronインスタンスがパフォーマンスのキラーになる可能性があります。どんな概念でもありがたいです-私が私の問題を十分に説明したことを願っています:)

0 投票する
2 に答える
197 参照

java - データ、ネットワーキング、シン クライアント、MMORPG

2D MMORPG ゲーム (アプレット形式) を作成していますが、簡単な質問がありました。

一般的なハッキング防止手法としてのセキュリティ上の理由から、クライアントに含まれる論理データの量はできるだけ少なくする必要があることを理解しています (操作や悪用ができないようにするため)。

私の質問は次のとおりです。サーバーからクライアントにデータを送信するとしましょう(これは非常に頻繁に発生していると思われます)。パケットを受信したクライアント コードでは、そのパケットを「チャンク」に解析し、そのデータを正確な対応する変数に論理的に格納します。変数の 1 つにプレイヤーの健康状態が格納されているとします。つまり、この変数は実際には計算に使用できないということですか? つまり、それは論理的なデータであるため (したがって、クライアントに格納されているため操作できます)、唯一の代替手段は次を含むパケットを読み取ることです。健康量が必要になった場合の健康に関する情報は?

私の質問を読んでくれてありがとう。-ブライアン

0 投票する
1 に答える
749 参照

python - Python MMO ゲームでプレイヤー データを最も効率的に保存するにはどうすればよいですか?

私はPython 2.7 でゲームRealm of the Mad Godに似た MMO シューティング ゲームを開発しています。

ゲームのプレイヤー データには、ゲームの各プレイヤーの着用装備、プレイヤーの名前などが含まれます。そのため、プレイヤーがキャラクターをログオフすると、プレイヤー データが保存され、永続的な方法で保存され、ログオンすると、繰り返しますが、プレイヤー データがゲームに読み込まれます。安全のために、一意のプレーヤー データ エントリの数は 1,000,000 エントリになると見積もっています。

すべてのプレーヤー データを 1 つの大規模な txt ファイルに保存する方が効率的でしょうか?それとも 26 ファイル、または 26*26 ファイルに保存する方が効率的でしょうか? これらのエントリを整理する最良の方法は何ですか?

記入例:

0 投票する
2 に答える
481 参照

c# - あるサーバーから別のサーバーに TcpClient を渡すことはできますか?

基本的にオンラインゲームを作っています。すべてのユーザー名/パスワード情報を保持する 1 つのサーバー (ログイン サーバー) と、ゲームをホストする 1 つ以上のサーバー (ゲーム サーバー) があります。クライアントは、資格情報を検証するログイン サーバーに接続し、使用しているゲーム サーバーを確認してから、そのサーバーにクライアントに接続するように指示します。

私はセキュリティについてほとんど知りませんが、ゲームサーバーがクライアントをリッスンするのではなく、クライアントがゲームサーバーからの接続をリッスンする方が安全であると考えました。これにより、少なくとも DDoS 攻撃の防止が容易になると考えました。

問題は、サーバーが特定のタイプのルーターまたはロードバランサーの背後にある場合、クライアントの IP を簡単に取得できないことを読んだことです。ログインサーバーがゲームサーバーに接続先を伝えるために必要です...開いている接続を転送できない限り。特定のゲームには、クライアントを 1 つまたは別のサーバー間でフロートさせるサーバー クラスターがあると思います。それは一般的にどのように行われますか?

多分私は道を外れていますか?

0 投票する
4 に答える
4009 参照

socket.io - Firebase を使用して Unity3D をバックエンドし、MMO を作成する

Firebase は、Unity ベースの MMO 実装に必要なバックエンドを提供できますか? Unity-socket.io 統合があることがわかりました。誰かが Firebase を試しましたか? MuchDifferent.com は確かに、Unity MMO をサポートするための完全なスイートを提供しています。Firebase を使用してアーキテクチャを簡素化できますか? どのような状況で試行が推奨されますか? お勧めしませんか?

0 投票する
0 に答える
306 参照

c# - ソケット サーバー マルチスレッド

サーバー プロジェクトには 3 つのメイン スレッドがあります。

  1. (TCP) ソケットの受け入れとクライアントのセットアップ操作
  2. 着信データ ハンドラー (TCP と UDP) とプロセッサ (ログイン、ロビーなど)
  3. 発信データ ハンドラー (TCP&UDP) およびプロセッサ (UDP または TCP 経由でクライアントにデータを送信します..)

ここで聞きたいのですが、それは良い方法ですか?つまり、データ処理 (ログイン) クライアント #32 を切断することができ、この場合、新しいクライアントがクライアント #32 として接続できる可能性があります。 )。このサーバーシステムについて誰か教えてください。

0 投票する
1 に答える
831 参照

c# - TCP ソケットのデータ送受信操作

私はMMOゲームサーバーに取り組んでいます。TCP データの送信/受信操作を理解する必要があります (使用法、詳細ではありません)。質問したいのですが、.net ソケット クライアントから 5kb のデータを送信した場合、サーバー ソケットはこのデータ送信操作をもう一度処理できますか? つまり、5kb = 1. 操作:2kb + 2. 操作:3kb のように、5kb のデータをもう 1 回受信できますか?

もう一度言いたい。クライアントがデータをサーバーに送信した場合、サーバー リスナーの Recv() メソッドはこのデータをもう一度ハンドラー クラスに渡すことができますか (コールバック操作)。

0 投票する
0 に答える
602 参照

c# - SocketAsyncEventArgs vs NetworkStream vs BeginXXX メソッドのパフォーマンス?

私は MMO ゲーム サーバー プロジェクトに取り組んでおり、ソケットを使用する方法を選択する必要があります。私はいくつかの記事を読み、ここでいくつかの質問をしましたが、これをよく理解できません: 一部のライブラリは networkStream を使用し、一部のアプリケーションは async のように beginreceive を使用します。メソッドと誰かが私に SocketAsyncEventArgs を使用すると言います (誰もが高性能です)。BeginReceive() メソッドを使用したい場合、間違いを犯すでしょうか (または、この選択はパフォーマンスに影響しますか)?

編集:それらの違いは何ですか?