view user/riono210/seminar/202104/0413.md @ 54:b6a4c56f19d4

backup 2021-04-14
author autobackup
date Wed, 14 Apr 2021 00:10:04 +0900
parents
children
line wrap: on
line source

## 0413

## 研究目的
* ゲームの通信方式にはクライアントサーバ方式とp2p方式がある
* データの安全性やチート対策などでクライアントサーバ方式が主流
* サーバに接続してマルチプレイなどのデータ同期を実現させているため、低速
* 高速かつ安全に通信を行たい
    * 並列分散フレームワークChristieがある
    * Christieを利用してp2pで通信を行う
* ゲーム開発で主に使用されているUnityに対応するためにChristieをC#へ書き換えを行う

## 今週の進捗
* Christie C#が動いた!
* Unityでも動いた
* Socket通信がまだ動かない
* 就活...

### Christie C#
localDataGearならきちんと動いた
![スクリーンショット 2021-04-13 18.10.14.png](/attachment/6075601d0a7b37004aefc59b)

* 動かなかった原因
PutやTakeコマンドには一切問題がなかった


* InputDataGear
```
public void SetInputValue() {
  foreach (var field in this.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic |
               BindingFlags.DeclaredOnly | BindingFlags.Instance)) {
  if (Attribute.IsDefined(field, typeof(Take)) || Attribute.IsDefined(field, typeof(TakeFrom)) ||
    Attribute.IsDefined(field, typeof(Peek)) || Attribute.IsDefined(field, typeof(PeekFrom))) {
    try {
      field.SetValue(cg, TypeCheck(field.Name));
    } catch {}
  }
}
```
cg.GetType()とするべきところをthis.GetType()にしていた...

### Christie Unity


### Socket通信
![スクリーンショット 2021-04-13 18.15.35.png](/attachment/6075614f0a7b37004aefc59d)

* C#にはThreadを使いやすくしたTaskというものがある
    * Taskを使って別ThreadでSocket通信をしたい
        * Taskを使うとSocketが使えない(エラー文すら返ってこない)
    * 良い感じにTaskかThreadPoolでSocket通信ができないか模索中
        * async/awaitの例文的な物は見つけた


### 就活
早速1社落ちた

もう1社は選考待ち

就職はできると思うけど、より良いところに行きたいよね感