Mercurial > hg > Document > Growi
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社は選考待ち 就職はできると思うけど、より良いところに行きたいよね感