267

267

# 研究目的

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

# 今週の進捗

  • Christie C#が動いた!
  • Unityでも動いた
  • Socket通信がまだ動かない
  • 就活…

# Christie C#

localDataGearならきちんと動いた スクリーンショット 2021-04-13 18.10.14.png

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

  • InputDataGear

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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

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

# 就活

早速1社落ちた

もう1社は選考待ち

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

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy