オンラインゲームの設計
オンラインゲームを設計する上では、単一アプリケーションに完結したオフラインゲームでは起こらない様々な状況に対処する必要があります。 例えば以下のようなものが挙げられます。
- 障害対策
- ネットワーク通信は必ずしも成功するわけではなく、遅延や切断が生じた場合にゲーム側でどのように対処するかを考える必要があります。
- 負荷対策
- ゲームの種類によっては、多数のユーザーが同時にサーバーにアクセスし、サーバーの処理能力がキャパシティを超える場合があります。そのような状況を避けるような冗長化の設計や、高速化のテクニックが必要になる場合があります。
- 不正対策
- オンラインゲームでは、時にはユーザーによる不正が行われる場合があります。そのような不正を未然に防ぐ設計や、万が一起きた場合に対処できるような仕組みが必要になります。
そのような様々な条件に対処するために、オンラインゲームを実現するネットワークの構成やシステムのアーキテクチャも色々と考えられてきました。 ネットワーク構成の代表的な例としては クライアントサーバー型 と P2P型 が挙げられます。 クライアントサーバー型は、ゲームの状態などをサーバーで集中的に管理します。 P2P型では、プレイヤー間がサーバーを介さずに直接つながりあってゲームを進行します。 その場合も、一人のプレイヤーが代表としてホストの役割を果たす場合もあれば、個々のプレイヤーが完全に同じ立場で処理をする場合もあります。 これらは、通信量や信頼性などの様々なトレードオフが存在し、場合によってはハイブリッドの構成が取られます。
オンラインゲームの設計はゲームの内容にも依存します。 オンラインゲームはよく、数十人規模のプレイヤーが1ゲームに参加する MO (Multiplayer Online)型と、より大多数のプレイヤーが同時に参加する MMO (Massively Multiplayer Online)型の2種類に分類されます。 MO型はFPS(First Person Shooter)・TPS(Third Person Shooter)やRTS(Real Time Starategy)ゲームのような、少人数が参加する短いゲームを繰り返してプレイするような形式が該当します。 MMOはMMO RPG(Role Playing Game)などが有名で、数百から数千以上の規模のユーザーが同じワールドを共有してゲームに参加します。
どのようなゲームを実現したいかに応じて、適切にアプリケーションの設計を行う必要があります。