#
    研究目的
- ゲームの通信方式にはクライアントサーバ方式と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の例題を動かした所、ソケット通信がうまくいかなくて失敗