問題タブ [matchmaking]
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.
c# - Unity3d サービスによる専用サーバーとオンライン マッチメイキング。出来ますか?
ディスガイアやファイアーエムブレムのような PC 用のタクティカル RPG を開発していますが、オンライン/2 人 PvP であるため、チートを避けるために専用サーバーが必要です。
私がやろうとしていることのステップ:
1) プレイヤーがマップ エディターでマップを作成する
2) プレーヤーはマップを Unity 専用サーバーにアップロードします。安くて便利だと思います。
3) プレイヤーのマップは、誰でも参加してプレイを開始できるルームとして MATCHMAKING リストに表示されます。
私はいくつかの調査を行い、Unet 専用サーバーはオンライン マッチメイキングをサポートしていないことを突き止めました。それともそうですか?私は少し混乱しています。
いくつか説明が必要です:
A) 上記のプランは可能ですか?
B) ストアで専用サーバーのマッチメイキングを検索したところ、「マスター サーバー キット」アセットにたどり着きました。これで解決できますか?
C) Unity 開発者 (上記の計画が不可能な場合) は、何らかの形で将来のリリースに向けてその方向に取り組んでいますか?
D) Unity 専用のサーバー サービスの帯域幅を借りる場合 (ターン制ゲームの場合は非常に安いため、これが実現することを本当に望んでいます)、公開オプションは何ですか? STEAMで配布できますか?
peer2peer (2 人のプレイヤーのうちの 1 人によるサーバー ホストとクライアント) はダメです!
algorithm - 何百万人ものプレイヤーのプレイヤー プール内での 5v5s に最適なマッチメイキング アルゴリズム
ゲーム用にある種のマッチメイキングアルゴリズムを作成しようとしているとします。このゲームはリーグや DOTA に似ており、5 人のプレイヤーが 5 人のプレイヤーと対戦します。さらに、プレイヤー プールが巨大 (一度に数百万人のプレイヤーがゲームを検索) であり、マッチ メーカーの仕事は、5 対 5 ゲームの多くのインスタンスにできるだけ多くのプレイヤーを配置することであるとします。現時点では、MMR、ELO、またはプレイヤー/パーティーの評価が影響することについてはまったく心配していません。プレイヤーを 5v5s に配置したいだけです。
私の現在のブルート フォース アルゴリズムは、スケーリングにおいてまったくひどいものです。最初に、数百万人のプレーヤーの中から 5 人のプレーヤー パーティーのすべての可能な組み合わせを見つけようとします。次に、パーティーのペアを見つけようとしますが、プレーヤーが既に使用されている場合は、可能なパーティー マッチからプレーヤーを削除します。
10 人のプレイヤーがいて、可能なすべての 5v5 を見つけたいとします。まずそれらをビットに変換し、ビット シフトを行ってすべての可能な組み合わせを見つけます。
等々...
次に、考えられるすべてのパーティーから、2 つの for ループを使用して、パーティーのペアを見つけようとします。
等々...
このアルゴリズムの実行時間は O((nCr)^2) です。考えられるすべてのパーティーの組み合わせを見つけようとするため、50 人のプレイヤーをマッチメイキングするだけでも 4.4891439e+12 の操作が必要になり、非常識です。
考えられるすべての関係者を通過せず、この問題を力ずくで処理する、より優れたアルゴリズムは何ですか?