Submit Search
Upload
PhotonCloudで一ヶ月ゲーム作った話
•
Download as PPTX, PDF
•
3 likes
•
4,216 views
Hiroto Imoto
Follow
UnityFukuoka06で発表したときのスライドです
Read less
Read more
Technology
Report
Share
Report
Share
1 of 28
Download now
Recommended
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題
AimingStudy
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
ゲームエンジンの中の話
ゲームエンジンの中の話
Masayoshi Kamai
Online MultiPlay Game Design
Online MultiPlay Game Design
エピック・ゲームズ・ジャパン Epic Games Japan
Unityプロファイラについて
Unityプロファイラについて
Mio Ku-tani
Recommended
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
剣と魔法のログレス(PC版)の自慢と課題
剣と魔法のログレス(PC版)の自慢と課題
AimingStudy
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
ゲームエンジンの中の話
ゲームエンジンの中の話
Masayoshi Kamai
Online MultiPlay Game Design
Online MultiPlay Game Design
エピック・ゲームズ・ジャパン Epic Games Japan
Unityプロファイラについて
Unityプロファイラについて
Mio Ku-tani
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
COLOPL, Inc.
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
Keisuke Utsumi
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
Unity Technologies Japan K.K.
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
モノビット エンジン
UE4.25 Update - Unreal Insights -
UE4.25 Update - Unreal Insights -
エピック・ゲームズ・ジャパン Epic Games Japan
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
Kouji Hosoda
ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法
Nohina Hidenari
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
Unityと.NET
Unityと.NET
AimingStudy
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
Katsutoshi Makino
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
Unity Technologies Japan K.K.
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
Satoshi Yamafuji
UE4を使用したゲーム開発の為のネットワーク対応その1
UE4を使用したゲーム開発の為のネットワーク対応その1
fuminyami
Osoljp201204
Osoljp201204
Masataka Tsukamoto
Unity5.3をさわってみた
Unity5.3をさわってみた
Keizo Nagamine
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
GameCreators,CyberAgent
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
Unity Technologies Japan K.K.
More Related Content
What's hot
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
COLOPL, Inc.
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
Keisuke Utsumi
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
Unity Technologies Japan K.K.
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
モノビット エンジン
UE4.25 Update - Unreal Insights -
UE4.25 Update - Unreal Insights -
エピック・ゲームズ・ジャパン Epic Games Japan
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
UnityTechnologiesJapan002
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
Kouji Hosoda
ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法
Nohina Hidenari
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
Unityと.NET
Unityと.NET
AimingStudy
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
Katsutoshi Makino
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
Unity Technologies Japan K.K.
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
Satoshi Yamafuji
UE4を使用したゲーム開発の為のネットワーク対応その1
UE4を使用したゲーム開発の為のネットワーク対応その1
fuminyami
Osoljp201204
Osoljp201204
Masataka Tsukamoto
Unity5.3をさわってみた
Unity5.3をさわってみた
Keizo Nagamine
What's hot
(20)
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
CrystalFantasiaを支えきった技術と技術だけではどうにもならなかった話
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
UE4.25 Update - Unreal Insights -
UE4.25 Update - Unreal Insights -
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
【Unite Tokyo 2019】Unity + PlayFab ではじめる新しいゲーム運用 ~LiveOpsの始め方~
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
ゴルフゲームでUnityの限界を突破する方法
ゴルフゲームでUnityの限界を突破する方法
Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
Unityと.NET
Unityと.NET
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
Aiming 開発ゲームの裏側
Aiming 開発ゲームの裏側
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
UE4を使用したゲーム開発の為のネットワーク対応その1
UE4を使用したゲーム開発の為のネットワーク対応その1
Osoljp201204
Osoljp201204
Unity5.3をさわってみた
Unity5.3をさわってみた
Similar to PhotonCloudで一ヶ月ゲーム作った話
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
GameCreators,CyberAgent
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
Unity Technologies Japan K.K.
過疎地域で頑張るクリエイターの話
過疎地域で頑張るクリエイターの話
Tatsuya Iwama
Beenos creators'night#201308今井
Beenos creators'night#201308今井
Daisuke Imai
UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発
Takashi Yoshinaga
Jenkinsを使おうよ
Jenkinsを使おうよ
Yohei Oda
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみた
Masaya Hayashi
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
codeal
Unity × graphics × effects
Unity × graphics × effects
Hironori Sugino
MonoGame村からこんにちは
MonoGame村からこんにちは
勝成 鈴江
ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門
Takashi Yoshinaga
ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎
schoowebcampus
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
UnityTechnologiesJapan002
Leapmotionとp5.js:DEMOと解説
Leapmotionとp5.js:DEMOと解説
光吉 浜谷
日本一詳しい人が教えるUE4
日本一詳しい人が教えるUE4
エピック・ゲームズ・ジャパン Epic Games Japan
iPadとSwift Playgroundsワークショップ準備会発表資料
iPadとSwift Playgroundsワークショップ準備会発表資料
Masaaki Takahashi
20140214_devsumi_ameba_native
20140214_devsumi_ameba_native
Satoru Fujiwara
Appmethodで何か作ってみる
Appmethodで何か作ってみる
You&I
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
Arata Fujimura
Similar to PhotonCloudで一ヶ月ゲーム作った話
(20)
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
過疎地域で頑張るクリエイターの話
過疎地域で頑張るクリエイターの話
Beenos creators'night#201308今井
Beenos creators'night#201308今井
UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発
Jenkinsを使おうよ
Jenkinsを使おうよ
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみた
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
Unity × graphics × effects
Unity × graphics × effects
MonoGame村からこんにちは
MonoGame村からこんにちは
ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門
ゲーム制作で学ぶUnityの基礎
ゲーム制作で学ぶUnityの基礎
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
Leapmotionとp5.js:DEMOと解説
Leapmotionとp5.js:DEMOと解説
日本一詳しい人が教えるUE4
日本一詳しい人が教えるUE4
iPadとSwift Playgroundsワークショップ準備会発表資料
iPadとSwift Playgroundsワークショップ準備会発表資料
20140214_devsumi_ameba_native
20140214_devsumi_ameba_native
Appmethodで何か作ってみる
Appmethodで何か作ってみる
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
Recently uploaded
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Recently uploaded
(9)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
PhotonCloudで一ヶ月ゲーム作った話
1.
PhotonCloud使ってゲーム作った話
2.
自己紹介 ・井本 大登(いも) ・WEBエンジニア三年目 ・趣味でUnity触ってる
3.
今日話すこと ・自分の作ったゲームの自慢話 ・初めてオンラインゲーム作った話
4.
マスコットアプリ文化祭 http://pronama.github.io/mascot-apps-contest/2014/ ・キャラクターを使ったアプリのコンテスト ・アプリ以外でもOK ・割と素材は用意されてる ・優秀な作品は賞品が ・参加賞もある
5.
作ったもの 「ますこっとばすけっと」 http://mascot-basket.efb.blue/ ・1〜4人アクションゲーム ・開発期間:一ヶ月くらい ・こだわり:わいわい遊べる ネットワーク部分は、PUN(PhotonUnityNetworking)を使用している
6.
PhotonCloud とは ・ネットワークゲームに必要な機能を備えたエンジン ・ロビー・ルーム形式のゲームが作れる ・導入が簡単 ・無料プランもある
7.
わりと簡単にかける // サーバーに接続して・・ PhotonNetwork.ConnectUsingSettings (version); //
部屋を作って・・ PhotonNetwork.CreateRoom (null); // 空いてる部屋に適当に入って・・ PhotonNetwork.JoinRandomRoom ();
8.
わりと簡単にかける // Photon上にキャラクターを作って・・・ PhotonNetwork.Instantiate("Character", Vector3.zero,
Quaternion.identity, 0); // それっぽい同期スクリプトを書く。 void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.isWriting) { stream.SendNext(transform.position); stream.SendNext(transform.rotation); } else { transform.position = (Vector3)stream.ReceiveNext(); transform.rotaton = (Quaternion)stream.ReceiveNext(); } }
9.
プレイヤー1 プレイヤー2 プレイヤー3
プレイヤー4 簡単なしくみ オブジェクト生成! viewID = 1 viewID = 1 viewID = 1 viewID = 1 PhotonCloud 生成しろ! 生成しろ! 生成しろ!
10.
同期はどうやるの? ・OnPhotonSerializeView 定期的に特定のパラメータを送受信しつづける。 送受信の頻度(sendRate)は高くなくデフォルト15FPSくらい。変更はできる。 だいたいどんな型でも渡せる サンプルでは、PositionとRotationだけ送り続けてる。 ・RPC よく使う 他クライアントの指定したメソッドを直接呼ぶ 呼ばれる側に[RPC]属性をつける必要がある 引数はprimitive型のみ
11.
ますこっとばすけっとのはなし
12.
Photon上に作ったもの
13.
Photon上に作ったもの 見えるもの ・プレイヤーが操作するキャラ ・あんず(途中で出てくるお助けキャラ) 見えないもの ・MainGameDicrector(ゲームの進行を管理するスクリプト) ・ItemCreator(定期的にりんごを生成するスクリプト)
14.
Photon上に作ってないもの ・りんご ・ゴール ・足場 ・スコア表示UI 動かない、状態が変わらないものはローカルで十分 (りんごは後述)
15.
プレイヤーキャラ ・OnPhotonSerializeViewで位置情報を同期 ・挙動は全てStateパターンで制御 ・キー入力を元に状態変数をStateMachineに入れる ・↑これをRPCで同期 Inputが同じなら同じ結果になるだろうという前提
16.
りんご(アイテム) ・同期してない ・挙動は全てStateパターンで制御 ・外部オブジェクトからのインプットで状態が変わる (拾われた、投げられたetc...) ・それぞれのローカルに同じ状態で作られている
17.
なんで同期してないの? 「Inputが同じなら同じ結果になるだろうという前提」 キャラクタがまったく同じ挙動をしているなら、 キャラの行動に影響を受けるアイテムも 自然と同じ挙動になるはず!
18.
19.
つまづき1:わりとずれる ・物理演算が入ると、ほんの少し位置がずれたりする ・ゴールや人にぶつかって弾かれるともうやばい ・結果、環境ごとにキャラの状態が変わり始める。 (Player1側の画面だと拾ったがPlayer2側は持ってない) ・平行世界の誕生 でももう大幅修正する時間がない・・・
20.
対応:擬似的にPhoton上で管理 ・オブジェクト名を「Item_{number}」という規則で生成 ・↑これをviewIDの代わりにする ・GameObject.Find(name) で任意のオブジェクトを取れる時 状態にする ・特定のポイントだけRPCでアイテムをまったく同じ状態に する (着地時の位置、拾われた時、投げられた時etc...)
21.
[RPC] void SyncItemPosition(string itemName,
float x, float y, float z) { var item = GameObject.Find (itemName); if (item == null) return; Vector3 pos = new Vector3 (x, y, z); item.GetComponent<Models.BaseItem> ().Sync (pos); }
22.
つまづき2:生成までのラグ? PhotonNetwork.Instantiate ("HogeObject"); photonView.RPC ("HogeCall",
PhotonTargets.All); void HogeCall() { var hoge = FindObjectOfType<Hoge>(); hoge.call(); } => hoge is NULL!
23.
対応2:NULLチェック ・PhotonNetwork.Instantiateした直後だと、他のプレイヤ ー環境にはまだ生成されていない場合がある。 ・なので生成して直後にFindとかするとない場合が多々あ る ・NULLチェックを挟む、もしくはコルーチンでn秒待つな ど挟んで対応。 たぶん、そもそもそういう設計が良くない。
24.
つまづき3:PlayerList ・部屋に入った順でプレイヤー番号をつける 必要があった。 ・PhotonNetwork.playerListで一覧が取れる! ・playerListの配列は、環境で順番が違う。 (0が自分自身) ・順番を揃えたい
25.
対応3:IDでソート ・プレイヤーは接続時にIDが割り当てられる ・playerListをIDの昇順でソートするようにした ・そのままだと、ID若い人が最後に入っても1番になる。 ・ゲームが終わるたびに切断する仕様に変更 ・理論上、後から入った人はIDが一番古くなる
26.
残っている課題 切断対策 ・マスターが切断するとゲームが終わらない ・進行管理スクリプトが消えるため ・スクリプトの処理を新しいマスターに移譲する必要が ある ・エラーハンドリングが足りない ・人数制限などで部屋に入れなかったら死ぬ ・追加していきましょう
27.
Photonでオンゲ作った感想 ・導入と実装は非常に簡単 ・ネットワーク未経験でも割となんとかなる ・普通に使っててラグは感じない ・オフラインとオンラインで処理分けなくていいの最高 ・事前の設計をしっかりしとかないと大変 ・動作確認が割と大変 ・やはり対人戦はテンション上がる
28.
学ぶのに便利そうなの PhotonOfficialBlog http://blog.photoncloud.jp/ 日本語版ドキュメント http://photoncloud.jp/pdf/PhotonNetwork-Documentation_ja.pdf マルコ・ポーロチュートリアル http://doc.exitgames.com/ja/pun/current/tutorials/tutorial-marco-polo
Download now