tanaka's Programming Memo

プログラミングについてのメモ。

UNet Unity5.1からの新しいネットワークシステム

公式サイトのマニュアルが和訳されました。docs.unity3d.com





次へ

UNet Unity5.1からの新しいネットワークシステム
Unity5.1のネットワークマニュアル斜め読み(2)
UNet NetworkManagerの利用
Unity5.1 ネットワークシステムのオブジェクト生成
Unity5.1 ネットワークシステムの状態同期
Unity5.1 ネットワークシステムのRemote Actions
Unity5.1 ネットワークシステム PlayerObjects
Unity5.1 ネットワークシステム Object Visibility
Unity5.1 ネットワークシステム Network Messages
Unity5.1 ネットワークシステム Matchmaker
Unity5.1 ネットワークシステム Scene Objects
Unity5.1 ネットワークシステム:シングルプレイヤーゲームを多人数に対応させる
Unity5.1 ネットワークシステム Multiplayer Lobby
Unity5.1 ネットワークシステム Network Clients and Servers
Unity5.1 ネットワークリファレンス概要


以下の公式サイトを斜め読みしたメモです。大雑把に意訳しているので、意味が違うところがあるかもしれません。何かありましたらお知らせ&ご容赦ください。
Unity - マニュアル: マルチプレーヤーとネットワーキング

UNet概要

Unity - マニュアル: ネットワークの概要

Unity5.1の新しいネットワークシステムをよくあるマルチプレイヤーゲームで利用したい場合は、NetworkManagerやハイレベルAPI(the Hight Level API)が向いています。
ネットワークを基礎から構築したり、発展的なマルチプレイヤーゲームを開発する場合は、NetworkTransport APIが向いています。

High level Scripting API

Unity5.1はHLAPIとも呼ぶ上級APIが用意されています。これを利用すると、細かいことは気にせずに以下のようなよくあるマルチプレイヤーの機能を構築できます。

  • "Network Manager"を使って、ゲームのネットワークの状況を制御
  • クライアントとホスト(サーバー)型のゲームの構築。ホストをゲームプレイヤーの一人が担当するようなことも可能
  • 様々な形のデータの送受信が簡単
  • ネットワークメッセージの送受信
  • クライアントからサーバーへの命令をネット上で呼び出せる
  • サーバーからクライアントへのRPC呼び出しが可能
  • サーバーからクライアントへのイベントを発生させる

エンジンとエディタの統合(Engine and Editor integration)

UNetではネットワークの処理システムとエディターが統合されました。これにより、マルチプレイヤーゲームをコンポーネントユーザーインターフェースを通して構築できます。

  • NetworkIdentityコンポーネントを付加すると、ネットワーク上のオブジェクトになる
  • NetworkBehaviourはネット上のスクリプト
  • オブジェクトの位置情報(transform)は、設定の変更が可能で、自動的に同期させる
  • スクリプトの変数を自動同期する
  • Unityのシーン内のネットワークオブジェクトの配置をサポート
  • Network components(??)

インターネットサービス(Internet Services)

開発者がインターネット上でゲームを製品として発表したり配布したりサービスを行うためのサポートがあります。

  • プレイヤーのマッチングサービス
  • 集合場所の作成や、参加者募集の発表
  • 参加者募集リストや、参加処理
  • サーバーへの接続
  • 専用サーバーなしで、インターネットごしに遊べる
  • 参加者へのメッセージ送信

NetworkTransport real-time transport layer

ネットシステムを自分で構築する場合などに利用できるリアルタイムの転送レイヤーがNetworkTransportです。

  • 最適化したUDPベースのプロトコル
  • 通信のボトルネックを避けるようマルチチャンネルで設計されている
  • チャンネルごとに、様々なサービスの質のレベルを設定できる
  • ピア to ピアや、クライアントサーバーなどの様々な形式のネットワークに対応できる

サンプル(Sample Projects)

マルチプレイヤーゲームのサンプルは以下の通り。

  • 2Dの多人数戦車ゲーム:Multiplayer 2D Tanks example game
  • マッチメイキングができる多人数インベーダーゲーム:Multiplayer Invaders game with Matchmaking
  • マッチメイキングができる多人数2D宇宙シューティングゲーム:Multiplayer 2D space shooter with Matchmaking
  • 最小限の多人数ゲームプロジェクト:Minimal Multiplayer project

サンプルのページ:Unity Multiplayer - UNet Sample Projects | Unity Community


次へ