問題タブ [online-game]

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 投票する
4 に答える
2295 参照

java - Erlangで独自のフラッシュサーバーを作成する必要がありますか、それともRed5を使用する必要がありますか?

私は試験プロジェクトを開始しようとしている学生です。そこでは、フラッシュプレーヤーを対象としたオンラインゲームのサーバー実装を担当します。Erlangで独自の軽量サーバーを作成するか、オープンソースのRed5を使用するかを決めるのに苦労しています。

私の経験では、Java開発者は物事を複雑にしすぎて、APIの操作を困難にする傾向がありますが、これはRed5にも当てはまりますか?また、ゲームの同期に伴う高負荷の下でどのように機能しますか?

たぶん、私自身のErlangサーバーは、複数のマシンでの操作と配布が簡単になるでしょうか?

だから問題は、私は自分のErlangフラッシュサーバーを書くべきか、それとも既存のRed5を使うべきかということです。

編集:私は自分の目標が何であるかを決める必要があると思います:オンラインゲームをセットアップするか、マルチユーザーサーバーを最初から実装する方法を学ぶことです。

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

php - ソケットを介した Php-Flash 通信

親愛なる開発者の皆様!

私はネットワーク プログラミングのプロではありませんが、たまたまフラッシュ マルチプレイヤー ブラウザ ゲーム (ロケーション、チーム バトルなどの標準機能) のために、PHP でソケット サーバーを開発する必要に迫られました (Java を使用する方法はありません)。


主な問題は、TCP がポイントツーポイント プロトコルであり、特定のポートを完全に占有することです。

もちろん、ソケットへの接続を管理するある種のキューを作成することは可能ですが、このソリューションは最適なものではないようです。

1 つのリクエストの実行に時間がかかり、プレイヤーがキューで待機することを快く思わないため、「公平な」ポート間隔 (たとえば 2000 から 2200 まで) を使用する方が適切な解決策であるように私には思えます。

しかし、この「ポート間隔」戦略をどのように実装できますか? 私が見る解決策は次のとおりです。

  • ポートごとに php-script を起動します (200 ものスクリプトが起動されます!)。

  • どういうわけか、最初のプロセスを新しいプロセスにフォークします (200 のプロセスが処理されましたか? あまりにも良くありません)。ポートごとに 1 つです。

  • すべてのポートをリッスンする追加の while ループ (非常に見栄えが悪い)。
  • スレッディングまたはそのようなものを使用します(問題は、私が知る限り、phpがシングルスレッドであることです; pcntl?)。

しかし、どういうわけか、私はそれらのどれも気に入らないか、少なくともそれらを可能な限り最良の方法で実装する方法を知りません.

時間単位ごとに複数のユーザーからの複数のリクエストを遅滞なく処理するための最善の既存の戦略と、この戦略をphpで実装する方法は何ですか? 独自の Debian サーバーがあるため、必要な php 拡張機能を使用することができます。

この種のシステムの開発、計画、および実装に関するアドバイスをいただければ幸いです。

ありがとう!


編集1: ちなみに、いくつかの追加の詳細について言及するのを忘れていました.

たとえば、チャット アプリケーションを開発しようとしている場合、ユーザーごとにある種の固定 (永続的な) 接続が必要です。たとえば、チャットに 80 人のユーザーがいて、そのうちの 1 人がメッセージを投稿すると、そのサーバーが処理を試み、接続されている他のすべてのユーザーに送信し、履歴ファイルなどにエントリを追加します。

この状況では、80 人のユーザーそれぞれから 10 秒ごとに新しいメッセージをサーバーにポーリングするのは狂気の沙汰なので、永続的な接続の必要性は明らかです。しかし、すべてのリクエストが即座に処理されるわけではないことを考えると、このようなものを実装する最良の方法は何なのかわかりません。

0 投票する
15 に答える
7775 参照

chess - オンライン チェス ゲームでチートを防止するには?

多くのオンライン チェス ロビーで、詐欺師がメイン ゲーム ウィンドウと同時にチェス プログラムを開く「エンジン」の例を見てきました。次に、対戦相手の動きがコンピューターに中継されるように設定し、(ほとんどの場合) 勝つまでコンピューターの動きをコピーします。

ゲーム開発者およびモデレーターとして、この状況について何をすべきでしょうか?

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

php - Travian ゲームの 4 つのリソースのようなブラウザ ゲームの属性をライブ更新する方法は?

Travian 風 (または Ikariam 風) の Web ベースのゲームを作りたいと考えています。ゲームは PHP と MySQL ベースになります。ゲーム属性のライブ更新をどのように達成できるのだろうか。

フロントエンドの場合、AJAX 呼び出し (データベースから最新の値をフェッチする) を使用するか、値の偽の更新 (サーバーと通信しない) を使用して達成できます。

バックエンドの場合、これは PHP cron ジョブ (数秒ごとに実行される) によって行われますか? もしそうなら、誰かが私にいくつかのサンプルコードを提供できますか?

ちなみに、IIS+FastCGIを使うと大変なことはわかっています。

=== バージョン情報 ===

PHP: 5.2.3

IIS : FastCGI を使用した 6.0

OS:Windows Server 2003 Standard R2

0 投票する
8 に答える
3655 参照

java - (ほとんど)すべてのオンラインゲームがJavaではなくActionScript(Flash)で書かれているのはなぜですか?

優れたディフェンダーゲーム(Gemcraft、Protector:王位を取り戻すなど)は、知的に非常に挑戦的である可能性があるため、私は絶対に大好きです。チェスをするようなものですが、思考が少し少なくなり、行動が少し増えます。残念ながら、良いものはそれほど多くないので、自分で作って、オンラインで公開して世界中の人と共有したいと思いました。

私はActionScriptを使ったことがありませんが、オンラインゲームに関しては、これが主な選択肢です。私はJavaアプレットの形でまともな2Dゲームを見つけようとしましたが、役に立ちませんでした。なんでそうなの?Delphi for Win32でゲームを最も快適に作成できましたが、実行可能ファイルをダウンロードする必要があります。これにより、何らかの形式でのダウンロードが妨げられ、Windowsでのみ機能します。私はJavaにも精通しており、過去4年ほどJavaを使用してきました。ただし、ゲームプログラミングの経験はあまりありません。

すべてのオンラインゲームがFlashで記述されており、防御側ゲームをJavaアプレットとして作成しているという事実に惑わされないでください。または、ActionScriptとActionScript仮想マシンのゲーム開発(AS3はJavaに非常によくています)の学習を検討する必要があります。 ...しかし、それでも、それは私にとってまったく新しいテクノロジーであり、専門的に使用することは決してないかもしれません。)

タイトルの質問に答えていただけませんか?なぜJavaアプレットではなくFlashなのか?それは「政治」だけですか?

0 投票する
3 に答える
12109 参照

game-engine - オンラインゲームのクライアントは、インターネットを介してどのように高速にデータを交換できますか?

本当にシンプルなゲームを想像してみましょう...私たちは、インターネットを介してリアルタイムで出口を見つけようとしている迷宮と2人のプレーヤーがいます。

すべての移動で、ゲームクライアントはプレーヤーの座標をサーバーに送信し、別のクライアントの現在の座標を受け入れる必要があります。どうすればこの交換をこれほど速くすることができますか(すべての現代のゲームがそうであるように)。

わかりました。memcacheまたは同様のテクノロジーを使用して、サーバー側でのデータマイニング操作を減らすことができます。最速のWebサーバーなども使用できますが、タイミングに問題があります。

だから、質問は...

  1. サーバーと情報を交換するために通常使用しているプロトコルゲームクライアントは何ですか?
  2. この問題を解決するためにどのサーバーテクノロジーが登場しますか?
  3. ゲーム中の遅延などで戦うためにどのアルゴリズムが適用されるか。
0 投票する
6 に答える
10751 参照

c# - Web ブラウザー ベースのマルチプレイヤー ゲームのコーディング方法は?

デスクトップ ベースのゲームをコーディングしたい場合は、XNA コードと UDP ソケットをプルして、適切なマルチプレイヤー ゲームを作成できます。必要なゲームのコーディング方法が非常に明確になります。

しかし、ブラウザベースのオンライン マルチプレイヤー ゲームをコーディングしたい場合、どうすればよいでしょうか? XNA を使用することはできません....いくつかの質問を見てきましたが、代替言語として PHP と ASP.NET と Silverlight と Flash と Java を見ています...どのように機能するのか本当にわかりません. つまり、デスクトップ ベースのゲームの場合、UDP ソケットを開き、クライアントを受け入れてデータを転送し、プレーヤーの状態を更新し、XNA を使用して結果を描画します。しかし、ブラウザでは、どのようにソケットなどを開くのでしょうか? そのコンセプトはどのように機能し、Web ブラウザーを介してリアルタイムで人々と通信しますか。方向性は?私は C# に精通しており、Java にはある程度慣れています。Flash、ASP.NET、または Silverlight を実行したことはありません。

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

asp.net-mvc-3 - .netテクノロジーを使用したオンラインゲーム

私はゲーム開発に不慣れですが、ORMデータマッピング用のエンティティフレームワークとデータデータストレージ用のSQL Server 2008 DBを使用して、asp.netmvc3でオンラインブラウザゲームを作成することを考えています。これについてのあなたの考えを聞きたいです。このアプローチの長所と短所。従来のLAMPを使用するよりも悪いのはなぜですか。

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

java - AdobeFlashプレーヤーをJavaベースのデスクトップアプリケーションに埋め込む

Javaベースのデスクトップアプリケーション内にAdobeFlashPlayerを埋め込むにはどうすればよいですか?オンラインフラッシュゲームをロードして実行することはできますか?

ありがとう。

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

javascript - オンライン ゲームで複数のユーザーのデータをリアルタイムで同期するための設計パターンの提案

私は node.js を学習するプロジェクトに取り組んでおり、リアルタイムでユーザー データの同期を処理する方法についていくつかの提案を探していました。

2D の長方形のマップ (およそ 600x400) があり、多数のプレイヤーがそのマップ上の x、y 位置を占めているとします。各ユーザーは、矢印キーを使用して移動し、基本的な方法で他のユーザーと対話できます。これが HTTP 経由で再生されることを考えると、ユーザー データの処理と同期に関して、最もスムーズで機敏なエクスペリエンスを提供するための最適な設計パターンは何でしょうか?

いくつかのオプションを考えることができますが、さらにいくつかのアイデア/説明をいただければ幸いです。

  1. クライアントは位置データをサーバーに送信し、サーバーはすべての位置をすべてのクライアントに配布し、画面は結果とともにレンダリングされます。繰り返す。欠点は、データの往復にかかる時間によってクライアント側が遅れることですが、利点は、すべてのユーザーと同期されることです。

  2. クライアントは常にあると思う場所をレンダリングし、位置データをサーバーに送信し、サーバーはすべての位置をすべてのクライアントに配布し、クライアント データからの画面レンダリングはサーバー データで修正されます。良い面は反応が速く、悪い面は同期がわずかに失われることです。

  3. 2 つのブレンドですが、(x,y) 座標を使用する代わりに、[前の x/y と時間、現在の x/y と時間、時間間隔での推奨 x/y] のベクトルを使用します。常に変化する発射体の経路を描くために使用されます。これを実装するのは難しいようです。

ポインタはありますか?