VRUnity×VR(16)2020年11月9日スポンサーリンク//tips//オフラインとオンラインは別物と考える今までオフラインの技術を中心に取り扱ってきたがマルチプレイヤーの仕組みを取り入れる際にはどうしてもオンライン特有の通信技術が必要になる。マルチプレイゲームで全員のキー入力の通信が完了するまで、キャラクターを操作することができないため画面がかくつくという現象が発生する。それは各通信端末の処理スピードの差であり、一般的に多様なデバイスが使われている現在では避けられない問題となっている。データを送信する際には、受け取るまでの遅延時間が発生し、0.001秒から0.1秒程度かかる。ゲームでの動作は60FPS(1秒間に60フレーム描画される)が基準で、そう考えると1フレームに対し、0.016秒程度の処理時間がかけられる。0.1秒の通信遅延が発生していた場合、7フレーム前の画面を相手が見て操作することになる。データの流れを考える際には、常に時間も考慮し、各端末での送受信の時間のズレやデータの反映タイミングをデータの流れと時間の経過で見て検討する必要がある。通信のエラーも当然起こり得るのでそちらへの対応も事前に仕様に組み込む。//通信の仕組み2台の端末で通信を行う時データがどのように届くかを確認する。PCなどの端末内のデータは、パケットと呼ばれる入れ物に入れられて通信相手に送られる。パケットは接続されているケーブルやルータを通して、バケツリレーのように送信データがなくなるまで一定量ずつ延々と運ばれる。バケツリレーを行う際に分岐がある場合は、最初の段階で届け先の指示がされており、これがパケットに入れられる配達住所IPアドレスの役目となる。細かく、端末のどのアプリケーション向けに情報が送られるのかを判断するために、パケットにIPアドレスだけでなく、ポート番号も記載して送る。バケツリレー形式のため、途中でデータがこぼれて破損することもあり、その場合の対処がどうなされているかも知っておく必要がある。データ送受信プロトコルがデータを安全の届ける役割をになっており、代表的なプロトコルTCPとUDPについて見ていく。TCP(TCP/IP)の場合は、配達先の確認(どの端末のどのアプリケーションか)、受領証の取得、データロストの場合の再配達を行うが、その分利用コストも高くなる。+データ→データ到着+確認応答→送信元の確認応答受信となる。最初の接続処理の応答の中に送信先の受信バッファサイズが入っており、データがそのバッファサイズより小さければ、送信を行える。送信中にデータを消失してしまうと、送信端末に一定時間確認応答が届かなくなるため、再度同じデータを送信することになる。Protocol)で用いられているプロトコルである。【入門】FTPとは?通信・ソフトについて分かりやすく解説します【初心者向け】FTPとは?仕組みから利用方法まで解説!送信するデータが大きい場合、TCPは送信データを分割し、通信で扱えるサイズにする。受け取り先で分割データをバッファに格納・結合し、宛先のアプリケーションに配達する。UDPは応答確認を省き、データの配達のみを行う。そのため送信先のバッファサイズの情報がなくてもデータを送信することになる。オンラインの場合は、UDPを使われることが多く、これはTCPの再送信などの便利機能が逆に時間のロスにつながってくるからである。通信量についても別途考える必要がある。リアルタイムで通信相手に即座に情報を反映させるためには高頻度でデータを送受信しなければならない。大量のデータを高頻度で送ると、通信帯域(回線の太さ)を圧迫し、遅延が大きくなったり、パケットロストが発生して再送信しなければならなくなる。通信帯域を圧迫するとルーターなどのバッファにパケットが溜まり、送信の順番待ちが発生することになる。送信するデータは相手に届くまでにいくつかのルータやハブを通過する。データの通信はできるだけ、少ない回数で、少量のデータで行うようにパフォーマンスと相談しながら工夫する必要がある。通信するデータの仕様が決まったら、必要な通信量を計算して、どれくらいの帯域まで処理が快適に行われるかを確認し、通信帯域の値を超える場合は、見直しを行う必要がある。//ソケットプログラミングTCPやUDPを簡単に扱うための通信APIソケットを使用する。これは、IPアドレスとポート番号を1組にし、通信相手を指定して通信を行う。ソケットを使用するためにはソケット生成、使用ポートの割当、接続待ち受け開始の順に準備を整えていくことになる。ソケットで通信を始めるためにはソケットを操作するSocketクラスを利用してプログラミングを行う。State.AcceptClient;}https://docs.microsoft.com/ja-jp/dotnet/api/system.net.sockets.socket?view=netcore-3.1などのようにプログラミングで処理を設定することができる。//マルチプレイヤーゲーム作成補足Unityから最新のマルチプレイ情報が出ていたので下記に記載する。...2右肩上がりに成長するBASEのビジネスモデルを考える無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。【FLYMEe/フライミー】を皆さんご存じでしょうか。...4月間利用者4400万人を誇る「note」のビジネスモデルついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。...5ボードゲームカフェのビジネスモデルについてボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。需要がどれくらいあるのか、市場のようすからみていきましょう。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Oracleの流れの確認。先ではoracleのアドレスを変数化して関数にていつでも設定し直すことができるようにした。metamask連携してdeploy.jsが起動できないか分かった。