#
研究目的
- ゲームの通信方式にはクライアントサーバ方式とp2p方式がある
- データの安全性やチート対策などでクライアントサーバ方式が主流
- サーバに接続してマルチプレイなどのデータ同期を実現させているため、低速
- 高速かつ安全に通信を行たい
- 並列分散フレームワークChristieがある
- Christieを利用してp2pで通信を行う
- ゲーム開発で主に使用されているUnityに対応するためにChristieをC#へ書き換えを行う
#
今週の進捗
- RemoteTakeを動かすサンプルが動きました!
- MessagePackDataGearに変換コードを仕込むことで修正
- 原因はデシリアライズする時にobjectでデシリアライズしていたため
dictionaryで受け取ったフィールド変数のデータを基に、インスタンス生成する
1
2
3
4
5
6
7
8
9
10
11
|
public T MessagePackDataFormed(dynamic deserializedData) {
Dictionary<dynamic,dynamic> dataDictionary = (Dictionary<dynamic, dynamic>) deserializedData;
List<object> valueArray = new List<object>();
foreach (var VARIABLE in dataDictionary) {
valueArray.Add(VARIABLE.Value);
}
object[] convertArray = valueArray.ToArray();
T instance = (T) Activator.CreateInstance(clazz, convertArray);
return instance;
}
|
#
今後の問題点
- FizzBuzzの例題を動かした所、ソケット通信がうまくいかなくて失敗