nineマッチングサーバーフレームワークの設計目標

マッチングサーバー・フレームワーク

マッチングサーバーを作るにあたっては、様々な設計上の選択が生じる。


nineマッチングサーバーフレームワークは、一貫したポリシーの元に設計を行っている。 ユーザーは様々な設計上の選択に苦労せずに、見通しの良いマッチングサーバーを開発することができる。

設計目標

nineマッチングサーバーフレームワークは、以下のような目標を掲げた。

ゲームサーバーとマッチングサーバーの分離
マッチングはゲームとは独立した汎用的なサービスと位置づける。マッチングサーバーは、ゲームサーバーに対してマッチングサービスを提供する。
汎用的なマッチングサービス
マッチングはゲーム開始に限ったサービスではない。より本質的な「マッチングサービス」というものを提供する。
様々なマッチングロジックの実装可能性
マッチングロジックは様々なバリエーションが考えられる。フレームワークはなるべく多様なロジックを組み込めるように設計すべきである。
アプリケーションコードの集約
フレームワークを利用するためのコードは断片的になりがちである。これは可読性・保守性を損なう。
nineマッチングサーバーの利用時は、一つの仕事をまとまったコードに集約できるような API を提供する。
自由と制約の現実的なバランス
フレームワーク開発では、自由と制約のバランスが重要である。
多数のシーンで利用できるフレームワークはロジックの大部分をユーザーが書かなければならないものになりがちであるし、コード量の少ないフレームワークは適用できる場面が少なくなる。
nineマッチングサーバーでは、現実的に必要とされる最小限度の自由度を維持しつつ、コード量をできるだけ抑えた制約を追及する。