オンライン機能

このページはVersion 2017.30f3 Personalを対象としています。

更新履歴

概要

Unityのネットワークエンジン選定については『Unity Network 完全に理解した - YouTube』が参考になります。

このページでは、 Unityで作成したゲームにオンライン機能を付ける方法で、 私が試したものを3つほどまとめます。 ですが、どの方法も今は古いもので、 新しいプロジェクトでの利用はおすすめできません。

ソケット

1つ目はソケットを使う方法です。 ソケットはTCPやUDPを扱うための通信APIです。 これはUnity固有の機能というわけではありません。 ソースコードの冒頭で「using System.Net.Sockets;」のように記述して使います。

この方法では単純なゲームを作るのにもかなりの労力がかかります。 ネットワークプログラミングの勉強にはなりますが、 Unityの手軽さを活かしているとはいえず、 お勧めできる方法ではありません。

Unityでソケットを使う方法について解説した本に、 河田 匡稔さんの「オンラインゲームのしくみ Unityで覚えるネットワークプログラミング 単行本」があります。 私もこの本とサンプルコードを参考に、単純なチャットプログラム移動プログラムなどを自作してみましたが、 単純な内容の割にかなり大変でした。

旧ネットワーク

2つ目はUnityの旧ネットワークシステムを使う方法です。 旧ネットワークについては公式のドキュメントのページがあります。 旧とあるように、現在はこの方法ではなく、 後述するUNETを使用する方法が推奨されていました。

旧ネットワークを使う方法について解説した本に、 竹内 大五郎、石黒 赳彦、高橋 誠史、香川 寛和、河本 健太郎さんらの 「Unityゲーム開発 オンライン3Dアクションゲームの作り方 Kindle版」があります。 私もこの本を読んで、この本で作り方を解説しているゲーム「UNIDRA」を作ってみました。 ただしUnityのバージョンによって細かな違いがあります。 このページが参考になります。 また、他にもネットワーク対応で「networkView」を「GetComponent<NetworkView>()」と書き換える必要などがあったりします。

UNET

3つ目はUnityのUNETを使う方法です。 UNETについては公式のドキュメントのページがあります。 UNETではUnity MultiplayerというUnityのサービスを利用し、 Unityが提供するサーバーでマッチングなどが行えるようです。 ですが、UNETも近いうちに廃止されるようです。

UNETを使う方法について解説した本に、 西森 丈俊、一條 貴彰、掌田 津耶乃さんらの 「Unityネットワークゲーム開発 実践入門 UNET/ニフティクラウド mobile backend版」があります。 レビューを見る限りあまり評判が良くないので私は読んでないです。

代わりにチュートリアルのページを読んで、 単純なゲームを作ってみました。 チュートリアルの通りに作っていくことで、 特に問題なく完成できました。

戻る

inserted by FC2 system