エムゲーム・ジャパン ゲーム ミィア ブログ サークル マイエム Login

兵どもの夢の跡

ブログチャンネル
yuki002さん
 
 ブログトップ   マイブログ   ランダムブログ    
ブログ型ブログ型タイトル一覧タイトル一覧
3.負荷分散[ソフトウェア考]  
詳細/おすすめ(2465/0) | ソーシャルブックマーク(0)  2009/04/23 15:13

何やら難しい単語が出てきました。

ですが内容は簡単な事です。

 

まずオフゲから…。

古いPCの場合、CPUは名実ともに1個です。

すべてが同じCPUで処理されるため、CPUにかかる負荷は分散しようがありません。

 

強いて言えばグラフィイクカードが負荷分散と言えるかもしれません。

画面表示機能に特化したカードを追加する事によって、

今までCPUで行ってきた描画処理をGPUが処理するようになります。

CPUは描画処理から開放されますから、その分他の処理にパワーを回せ動作が軽くなります。

グラフィックのキレイなゲームがグラフィックカード必須なのは、このような理由からです。

 

最近のCPUの場合、1個であってもコアが複数組み込まれています。

4コアのCPUでは、最低限同時に4つのプログラムを実行できますから、

並列処理が可能であればCPU負荷は分散されます。

ただ注意しなければならないのは、ゲームなどアプリがスレッド処理などの

マルチCPU対応でない場合には負荷分散としての意味を持ちません。

なぜならCPUが扱えるのは1度に1タスクだからです。

たとえ1つのゲームであっても内部的に複数のタスク(この場合はスレッドと呼びます)があれば

他のCPUで処理させることで負荷分散が可能になるからです。

アプリがマルチCPUに対応していない場合は、複数のCPUがあっても使われるのは

その中の1個にすぎません。 これでは負荷分散の意味はないわけです。

 

 

次にネトゲの場合を考えてみます。

ネトゲはサーバとクライアントで構成され、クライアント側につきましてはオフゲと同じ扱いなのです。

サーバ側の仕事は、入力に対してその入力を加工して返す事なのです。

 

このサーバを1個のCPUで動作する構造として単純化すると、

処理する件数が増えると処理時間も増えるのです。

処理件数が2件 ⇒ 処理時間が2倍

処理件数が3件 ⇒ 処理時間が3倍

処理件数が4件 ⇒ 処理時間が4倍

   …………

処理件数がn件 ⇒ 処理時間がn倍

こんな感じですね。

 

ネトゲにはタイムラグは付き物です。 そしてラグの許容範囲というものがあります。

処理時間が増えるという事はラグが大きくなる事を意味します。

許容範囲を超えてしまうとゲームにならない という意味なのです。

 

こういう事態を緩和するために並列処理を行います。

具体的に言うと、複数のサーバを用意して、それぞれ同じコードを実行します。

こうする事によって負荷分散が実現されています。

こうして負荷分散しているから、多くのユーザーを扱う事ができるのです。

 

ゲームプレイヤーの皆様は サーバというものを単体として1台のイメージで見ることが多いです。

ですが、ユーザー数の規模で必要なサーバ台数は変化します。

決して1台ではありません。

複数台で負荷分散しているからこそ、多くのユーザーがネットゲームが楽しめるという訳です。

 

 

次回は負荷分散から発展して「ゲームのマップ構成」について考えてみたいと思います。

 

この記事のURL /  カテゴリ /  コメント  / おすすめ  / 通報
   4.ゲームのマップ構造
   2.ネトゲとオフゲ