サーバの負荷の考慮
サーバに負荷がかかると、全てのプレイヤーのゲームが重くなるだけでなく、データが壊れてしまうトラブルなども発生します。
例えばサーバに情報を送信するケースでは、以下のような例が挙げられます。
キーボードやマウスによるメニュー選択の場合
- 負荷のかかる仕組み
- メニューが選択されるたびに、選択されたメニューの情報をサーバに送信するような仕組みにしてしまうと、メニューが選択されまくったときに、かなりの頻度でサーバは処理することになってしまいます。
- 例えば選択ミスし、改めて選択し直しても情報が2回送信されてしまうため、サーバは無駄な処理まで行ってしまいます。
- 対処方法
- メニューが選択されてから一定時間(1〜3秒)再選択がなければ、選択情報をサーバに送信するようにします。
- このようにすれば、プレイヤーが迷いながら何回メニューを選択しようと、本当に確定した最終的な選択情報がサーバに送信されることになります。
キーボードによるコマンド入力の場合
- 負荷のかかる仕組み
- キーを押すたびに、押されたキーの情報をサーバに送信するような仕組みにしてしまうと、かなりの頻度でサーバは処理することになってしまいます。
- キーを10回押されたらサーバが10回も処理しないといけない、という処理はかなり厳しいです。
- 対処方法
- キーが押されたときは、キーが押されてから一定時間(1〜3秒)おいてから、押されたキーの情報をサーバに送信するようにします。
- 送信までの一定時間に押されたキーの情報も記録しておき、どのようなキーが連続で押されたのかをサーバに送信することができます。
- このようにすれば、何回キーを押されようと、一定秒数に最低1度しかサーバに情報を送信しなくて済みます。
また、サーバから受け取った情報を表示するケースでは、以下のような例が挙げられます。
画像を表示する場合
- 負荷のかかる仕組み
- マップや背景イメージの表示などの頻繁に表示される画像が、頻繁にサーバから受信することになると負荷がかかってしまいます。
- 対処方法
- あらかじめ頻繁に表示される画像は最初に読み込んでおき、サーバからはどの画像を表示するのかという情報だけを受信するようにします。