view Paper/chapter/0-introduction.tex @ 53:7142a147b9ab

fix
author riono <e165729@ie.u-ryukyu.ac.jp>
date Sat, 12 Feb 2022 19:20:12 +0900
parents 4a1a9a0fe1ce
children
line wrap: on
line source

\chapter{オンラインゲームにおけるデータ通信}
オンラインゲームは様々な回線を通じて複数のプレイヤーが関与する分散プログラムである。
多くの場合通信形態はCloud上のServerを中心としたクライアントサーバ方式である。
分散プログラムを正しく書くことは、Debugなどを含め難しい。
また、スマートフォンやタブレット端末の普及によりインターネット上で提供されているサービスやゲームに参加するユーザ数は増加傾向にある。
増加するユーザに対応しつつ、正しく分散プログラムを書くことが求められている。

プログラマが1から分散プログラムを書くことは珍しくなっており、ほとんどの場合既存のフレームワークを利用して、分散システムの構築を行う。
ゲーム開発においても、UnityやUE4などで使用できるさまざまな通信ライブラリが存在している。
これらの通信ライブラリはゲームエンジン向けに実装されているが、煩雑な記述方法やDebugの行いにくさがある。


当研究室では、初代PlayStation向けに作成したFederated Lindaを拡張して、CodeGear/ DataGearを用いた分散フレームワークChristieを開発中である。
ChristieはJavaで記述されているため、既存のゲームエンジン上で直接動かすことはできない。

Christieは従来の通信ライブラリとは異なり、型のあるDataGearをタプル空間DataGearManager(以下DGM)にKeyをもつストリームとして格納する方式を取っている。
DGMはnode内部にlocalなDGMが用意されており、自身のnodeのThread間での通信に用いられている。
他のnodeのDGMとしてproxyを持っており、対応したproxyにデータを書き込むことでnode間の通信を行っている。

DGMはTopology Managerにより自動的に構成される。
nodeは初めにTopology Managerが動作しているhostと通信し、自分が接続すべきnodeが知らされる。
nodeは指示されたnodeに接続を行い、通信が行われる。

本研究ではChristieをC\#で再実装することによりUnityの通信ライブラリとして使用できるようにする。
また、既存の通信ライブラリとの比較を行い、Christieのオンラインゲーム向けの通信ライブラリとしての考察を行う。