Unity

【Unityボードゲーム開発】オンライン対戦できるターン制ゲームの作り方【マッチングに必要なロビーシステムも】

本記事内には、アフィリエイトリンクを含む場合があります

私はゲーム開発の中でも、
オンライン対応にこだわってゲームを開発してきました。

代表作の"Our Casual Battlefield"というアクションゲームでは
物体に力を加え、物理演算で動く様子を同期するために、とても勉強しました^^;

また、本サイトでは、
オンライン対戦できるFPS(一人称シューティング)ゲームの作り方を公開していて、
結構需要がある気がしてます!

FPSのようなアクションゲームのオンライン実装は、
送受信する情報量が多かったりしますが、
ボードゲームのような、
ターンが回って進行するゲーム(以降、ターン性ゲーム)は、
比較的情報の通信量は少ないです。

オンライン対応させる場合、
Photonというツール(同時接続20名プランは無料)を私は使いますが、
Photonには、ターン性ゲーム向けに"Pun Turn Manager"という機能(クラス)が用意されています。
これによって、よりシンプルにオンライン実装できるようになっています。
(アクションゲームのように常に相手の動きを同期せずに、オンライン対戦できる仕組み)

 

そこで、本記事では、このPunTurnManagerを使った
オンライン対戦可能なターン性ゲームの作り方を解説していきます!

さらに、
サーバーログイン・ルームリストを一望できるロビー画面・ルーム作成
といった他のゲームのマッチングシステム構築に使えるノウハウも含みます!

1. 開発の準備

今回はシンプルな2Dボードゲームを例に開発していくので、
Unityのプロジェクトは、「2D」を選択して、立ち上げます。

(筆者は、Unity 2021.3.8f1で進めます)

開発に必要なアセットは、無料の「PUN 2 FREE」*のみ!
Asset Storeからダウンロードしましょう。

*同時接続人数を20以上にしたい場合、有料プランを選ぶ


また、Photonアカウントを持ってない人は作成、ログインして、
これから開発するゲーム専用に、AppIDを取得しましょう。

アカウントにログインしたら、
ダッシュボードから「新しくアプリを作成する」をクリック。

<必須項目>
種別をPUN
アプリケーション名を自由に入力して
「作成する」をクリック。

作成されたアプリのところの「アプリケーションID」から、AppIDをコピーしとく。

AppIDは生成できたので、
Unity Editorでの作業に移りましょう。

WindowタブからPackage Managerをクリック

Asset Storeで入手したので、
Registry: My Assetの中に「PUN 2 - FREE」があります(なければ検索)。

「PUN 2 - FREE」をインポート。

AppIDの入力を求められるので、取得したAppIDを張り付けて
「Setup Project」および「Close」で閉じます。

インポートするとAssetsフォルダ内にPhotonフォルダが追加されます。

AppIDを再設定する場合は、
Photon_PhotonUnityNetworking_Resources_PhotonServerSettingsにて、
AppIDPunで、入力し直します。

2. マッチングシステム(ログイン・ロビー)の作成

それでは、シーンを作っていきます。
デフォルトのシーンは、"SampleScene"という名前なので、
右クリックして「Save As ...」から"TitleScene"に変更しましょう。

このTitleSceneでは、
サーバーにログイン、ロビーからルーム入室するための
オブジェクトを作成していきます。


小難しいコードやオブジェクトの作り方も、一目でわかる図を多数用いて解説しているので、せひご
購読ください^^

ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA