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

兵どもの夢の跡

ブログチャンネル
yuki002さん
 
 ブログトップ   マイブログ   ランダムブログ    
ブログ型ブログ型タイトル一覧タイトル一覧
4.ゲームのマップ構造[ソフトウェア考]  
詳細/おすすめ(2450/0) | ソーシャルブックマーク(0)  2009/04/26 23:41

マップ【map】 目新しい単語ではありませんね。

RPGなどではお馴染みのプレイフィールドの事です。

今回は前回の負荷分散を応用したマップについて考察を加えてみたいと思います。

 

マップと負荷分散にはどんな関係があるのでしょう?

それは この先を読んでいけば判ります。

 

前回、負荷分散の方法としてサーバの並列運転を例に上げました。

ユーザー数が増えれば増えるほどゲームが重くなります。

それを防止するためでしたね?

実は その負荷分散自体がマップで使われているのです。

 

ある広さのマップにプレイヤーが20人いたとします。

この人数が倍になったら処理速度が半分になってしまいます。

そして重くてゲームにならなくなるとします。

 

こういう場合に同じマップをもう一つ用意します。

つまり同じマップに対してチャンネルを複数個用意する事になります。

これが Diabl II に代表されるMORPGの解決方法なのです。

もはやマップとは呼ばずワールドという概念で語られますが。

 

1つのサーバにアクセスできる人数を制限して

チャンネル(ワールド)を増やす方法で対処すれば、

たとえ何千という多くのプレイヤーが参加していたとしても、

マップ内で会話可能、共同プレイ可能な人数は決して上限を超えて増えないのです。

 

まったく同じマップであっても複数のチャンネル(ワールド)を用意して

ユーザー増加に備えるシステムでは同じワールドに相手がいない場合は会話さえできません。

(他ワールドであっても会話できるシステムもありますが。)

参加人数が多くても、一度にプレイできる人数の限られたワールドで行われるネットゲームでは、

このようなシステムが多かったようです。

 

 

ではMMORPGでは どのようなマップになっているのでしょう。

 

戦闘は基本的に1対1で行われると仮定します。

すると全部のMOBとプレイヤーが戦闘状態であっても

プレイヤーの最大数はMOB数以下と言えます。

これが大きなヒントです。

 

実は、サーバが並列動作しているとは言っても、マップの領域を分割する形で動作しているのです。

MOBは特定領域に分布していて、その領域から大きく外に移動しませんよね?

つまりMOBの分布領域が特定のサーバが管理するマップという構成なのです。

 

サーバの機能をもう一度思い出してみてください。

マップのグラフィックデータなどはサーバ上にはありません。

みんなクライアント側で表示しているのです。

サーバにとって重要なのは、マップ上のプレイヤー位置(座標値)と管理しているMOBの位置、

そして、戦闘状態であれば、ユーザーからの戦闘コマンドによる戦闘ターンごとのダメージなどの

戦闘結果の処理だけなのです。

 

巨大なマップでシームレスに移動できるカラクリはここに有った訳なのです。

MOBを種類ごとに管理すれば分散処理が可能であるだけでなく、

広大なマップを実現できるメリットも生まれます。

またプレイヤーのいないマップについては上位の管理サーバで別のマップに割り当てる事もできます。

このようにマップの動的管理を行えば、少ないサーバで効率良くプレイヤーのお相手ができる訳です。

 

 

次回は「手抜きと負荷分散」について考えてみたいと思います。

 

この記事のURL /  カテゴリ /  コメント  / おすすめ  / 通報
   5-1.手抜きと負荷分散
   3.負荷分散