マルチプレイヤーゲームを作成するときに(クライアント側の)JavaScriptを使用することの欠点は何ですか?
【内容紹介】それはMMORPG / RTSです。つまり、プレーヤーは世界の構造物に積極的に貢献し、コンテンツの多くを自分で作成します。
マルチプレイヤーゲームを作成するときに(クライアント側の)JavaScriptを使用することの欠点は何ですか?
【内容紹介】それはMMORPG / RTSです。つまり、プレーヤーは世界の構造物に積極的に貢献し、コンテンツの多くを自分で作成します。
回答:
次の場合は問題ありません。
ゲームがJavaScript開発に適しているかどうかは、ゲームによって異なります。あなたはあなたのゲームについて説明しなかったので、タイトルの質問に答える方法はありません。
しかし、私はすることができ、あなたのハッキングの懸念はここでの問題はないと言います。JavaScriptをハッキングすることはできませんが(それが可能であり、簡単に)、他のすべてのクライアント側テクノロジーをハッキングできるためです。マルチプレイヤーゲーム開発の基本的な原則の1つは、「クライアントを信頼しない」です。クライアントがハッキングされるため、ハッキングから保護する必要のあるものがサーバー上で実行されるようにゲームを設計します。これは、クライアントからのUIコマンド(「プレーヤーが爆弾ボタンをクリックした」など)のみを送信し、サーバーでのプレーヤーアクションの結果を計算することを意味します。次に、サーバーはそれらのアクションの結果をクライアントに送り返します。
どのテクノロジーに依存していても、クライアント側コンポーネントがハッキングされることを想定してゲームを設計する必要があるため、JavaScriptのハック可能性は、JavaScriptを使用するかどうかを決定する際の考慮事項ではありません。
チートするためにクライアントコードを変更することができますが、これはマルチプレイヤーゲームの問題です。数学のタスクの反応速度または迅速な解決がゲームの一部である場合、不正行為を完全に防ぐことはできません。
その他のゲーム要素については、クライアントがプレーヤーに隠されているはずの情報を取得できないこと、および取得できないことを確認する必要があります。そしてもちろん、サーバーはプレイヤーが行ったすべてのアクションが合法であることを検証する必要があります。
私がJavaScriptゲームで目にする最大の問題は、多くのブラウザーが途切れがちになる傾向があることです。特に、前回チェックしたとき、Firefoxはかなり悪かったです。このため、JavaScriptはタイミングに敏感なゲームプレイには適していません。ただし、ターンベースのゲームまたは少なくともペースの遅いゲームでは、JavaScriptが非常にうまく機能します。