SlideShare a Scribd company logo
Unity 3D for Network game
@shinriyo
Android版もあります
自己紹介
!    杉田臣輔(すぎたしんすけ)
!    株式会社ワンオブゼムで勤務
!    エンジニアとしてUnity使ってます
Ninja Mkdir
https://bitbucket.org/shinriyo/ninja-mkdir/downloads

ZomBeat            つみんビ∼
Unity3Dとは?

!    ゲームエンジン
!    iOSやAndroid用のゲームに使用可能
!    モデリングツールではない
!    3Dのゲームが得意(2Dは苦手だけど出来ないことも
     ない)
!    ゲーム制作の民主化
使用できる言語
 !    C#・・・Javaっぽい言語(文字比較に=使える、親クラスのメソッ
      ドにvirtualを書くのが手間)

 !    Boo・・・Pythonっぽい言語(メソッドにself不要)
 !    UnityScript・・・JavaScriptっぽい言語(JavaScriptの殻を
      かぶったC#、むしろActionScript3.0っぽい)




http://www.amazon.co.jp/gp/product/1849690405?tag=noctushinrsdi-22
ネットワークゲームの種類
!    物理構造
 C/S型・・・サーバーとクライアントにそれぞれ特化
 P2P・・・ネットワーク上で対等な関係にある端末間を相互に直接接続し、デ
ータを送受信する通信方式。

論理的な構造
 MO(Mulltiplay Online)・・・2∼100人程度の同時プレイ
 MMO(Massively Mulltiplay Online)・・・数百、数千以上の同時プレイ
     2x2=4通りあるが、MMOかつP2Pは実際にはない
     ※Massively・・・ 【副詞】 どっしりと; 大規模に
準備
!    特にアセットストアでダウンロードする有料のアセ
     ット(Plug-in)は別途はいりません。
!    C#の基本的な文法
!    ProじゃなくてもOK
!    Unityの基礎知識
!    2.6以前のUnityはダメ
!    ※OnSerializeNetworkViewメソッドにバグがあるため
今回作るのは
!    おしくらまんじゅう式なP2P対戦ゲーム
 ※MMO的なことを期待していた方はすみません
 ※死亡処理などの
  作りこみは割愛します(Bitbacketに載せてます)
□Networking Example(MMO的なサンプル)
 http://unity3d.com/support/resources/example-
projects/networking-example
MonoBehavior


!    基本的にベースとなるクラス
!    継承するだけでUnityの基礎的なメソッドが使える
ネットワーク状態

!    Network.peerTypeで接続状態を判断NetworkPeerType
     の列挙型で比較する。
!    NetworkPeerType
!    Disconnected・・・切断中
!    Connecting・・・接続中(Connectedじゃない)
!    ※Server(サーバとして)、Client(クライアントとして)もある。
サーバの作成

!    サーバ側の処理
!    Network.InitializeServer(接続数, ポート番号);
!    ※引数は両方intです。
!    ※ 127.0.0.1(ループバックアドレス)
サーバへの接続

!    クライアント側の処理
!    Network.Connect(IPアドレス, ポート番号);
!    ※ポート番号の引数はintです。
!    ちなみに切断はNetwork.Disconnect(タイムアウトの
     ミリ秒)
サーバ側

!   OnServerInitialized()メソッド
 ・・・サーバ自体が作成された時に実行される

!   OnPlayerDisconnected()
 ・・・クライアントのプレーヤが切断した時に実行される
クライアント側

!   OnConnectedToServer()
 サーバに接続した時に実行される
!   OnDisconnectedFromServer()
 サーバから切断した時に実行される
プレイヤーの生成

!    Network.Instantiate() ※ staticメソッド
     今回は、Spawn(生成)をするメソッドを作り、そ
     の中に記載します。
     ※C#はUnityScriptのように暗黙のキャストが弱いの
     で注意
RPC(RemoteProcedureCall)



!    リモートのサーバで実行しているプログラムをクラ
     イアント側から呼び出せる。
Network View

!    RPCに必要。
!    transform情報(position, rotation, scale)を観測
     してくれる。
!    Component=>Miscellaneous=>NetworkView でプ
     レーヤにアタッチする
!    isMine変数でオブジェクトによって制御される、
     ネットワークビューかを判断できる

      ※豆知識・・Miscellaneous(mìsəәléɪniəәs)は分類が難しい時によく使われる。
        メソレイニアスのように発音。よく、 misc などと略される。
NetworkViewのメソッド

!   OnSerializeNetworkView()メソッド
 ネットワークビューで監視しているスクリプトの変
数の同期をとるために使用
 第1引数:BitStream・・・isReadingとisWritingが取れ
る。Serializeは参照を引数に取る
 第2引数:NetWorkMessageInfo・・・誰からかとか、
時間などの情報が取れる(今回使わない)
BitStream

•    isWriting・・ステータスの送信
       isWritingでなければ受信している


•    シリアライズはbool、char、short、int、float、
     Quotanion、Vector、NetworkPlayer、NetworkVieID型
     のみサポート。
プレイヤーの処理実装

!    方向キーの垂直、平面の移動
 Input.GetAxis(“Horizontal”)・・並行のキー取得
 Input.GetAxis(”Virtucal“) ・・垂直のキー取得
 Time.deltaTime・・前のフレームが呼び出されたとき
の、経過時間を示す(Readonly)
まとめ

•    アセットを買わずにUnityの基本のメソッドだけで
     P2Pゲームはできる
•    MMO的なものを作成するにはMasterServerを使いま
     す
•    Bitbacketにアップしています
 https://bitbucket.org/shinriyo/p2pnetgame/downloads

More Related Content

What's hot

ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
Masahiro Hidaka
 
無料で始めるVTuber
無料で始めるVTuber無料で始めるVTuber
無料で始めるVTuber
KatsuyaENDOH
 
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよNode.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよ
Yuusuke Takeuchi
 
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
Yoshinari Kadokawa
 
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみたCybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
Yuma Ohgami
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
 
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたHtml5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたYuusuke Takeuchi
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
zgock
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
VirtualTech Japan Inc.
 
Let’s study unity
Let’s study unityLet’s study unity
Let’s study unity
Takuya Arakawa
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方
Masahiro Hidaka
 
Unity2015_No2~Terrain~
Unity2015_No2~Terrain~Unity2015_No2~Terrain~
Unity2015_No2~Terrain~
CHY72
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるYusuke Ando
 
BuddyPressの導入からカスタマイズまでの日記
BuddyPressの導入からカスタマイズまでの日記BuddyPressの導入からカスタマイズまでの日記
BuddyPressの導入からカスタマイズまでの日記
Shoichi Otomo
 
Azure de debian
Azure de debianAzure de debian
Azure de debian
Kazumi Hirose
 

What's hot (20)

ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 
無料で始めるVTuber
無料で始めるVTuber無料で始めるVTuber
無料で始めるVTuber
 
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよNode.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよ
 
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
 
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみたCybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
 
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたHtml5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
Let’s study unity
Let’s study unityLet’s study unity
Let’s study unity
 
関西Unity勉強会
関西Unity勉強会関西Unity勉強会
関西Unity勉強会
 
Enchant.js入門
Enchant.js入門Enchant.js入門
Enchant.js入門
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方
 
20130216
2013021620130216
20130216
 
Unity2015_No2~Terrain~
Unity2015_No2~Terrain~Unity2015_No2~Terrain~
Unity2015_No2~Terrain~
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆ける
 
BuddyPressの導入からカスタマイズまでの日記
BuddyPressの導入からカスタマイズまでの日記BuddyPressの導入からカスタマイズまでの日記
BuddyPressの導入からカスタマイズまでの日記
 
Azure de debian
Azure de debianAzure de debian
Azure de debian
 

Similar to Unitynetwork

Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Yuto M
 
IoT with Unity
IoT with UnityIoT with Unity
IoT with Unity
Saitou Yuta
 
ブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探る
ndruger
 
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
Satoshi Yamafuji
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる
onotchi_
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
法林浩之
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
法林浩之
 
Getting started micro:witch
Getting started micro:witchGetting started micro:witch
Getting started micro:witch
Eiichiro Ito
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣三七男 山本
 
.NET Micro Framework の基礎
.NET Micro Framework の基礎.NET Micro Framework の基礎
.NET Micro Framework の基礎
Yoshitaka Seo
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
Shinra_Technologies
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
モノビット エンジン
 
ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナー
softlayerjp
 
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APILEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
Akira Hatsune
 
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築するCognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
Hiroyoshi Miyazaki
 
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノートIoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
Kazumi IWANAGA
 
クラウド―Arduino接続について
クラウド―Arduino接続についてクラウド―Arduino接続について
クラウド―Arduino接続についてKenichi Yoshida
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
Kouji Matsui
 

Similar to Unitynetwork (20)

Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋
 
IoT with Unity
IoT with UnityIoT with Unity
IoT with Unity
 
ブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探る
 
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる
 
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
Getting started micro:witch
Getting started micro:witchGetting started micro:witch
Getting started micro:witch
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
 
.NET Micro Framework の基礎
.NET Micro Framework の基礎.NET Micro Framework の基礎
.NET Micro Framework の基礎
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
 
ラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナーラズパイ × Bluemix IoTハンズオンセミナー
ラズパイ × Bluemix IoTハンズオンセミナー
 
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APILEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築するCognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
CognitoとSDKでサーバーレスなマルチデバイスアプリを構築する
 
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノートIoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
IoT Edge and Serverless playground with Node.js ~ IoT EdgeとサーバレスをNode.jsで遊ぶ実験ノート
 
クラウド―Arduino接続について
クラウド―Arduino接続についてクラウド―Arduino接続について
クラウド―Arduino接続について
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 

More from Shinsuke Sugita

Anywhere market
Anywhere marketAnywhere market
Anywhere market
Shinsuke Sugita
 
Howisunityscriptsucks
HowisunityscriptsucksHowisunityscriptsucks
Howisunityscriptsucks
Shinsuke Sugita
 
はっぴょう
はっぴょうはっぴょう
はっぴょう
Shinsuke Sugita
 
Sencha study
Sencha studySencha study
Sencha study
Shinsuke Sugita
 
ネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unityネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unity
Shinsuke Sugita
 
Ez GUI
Ez GUIEz GUI
Unity Programing on Boo
Unity Programing on BooUnity Programing on Boo
Unity Programing on Boo
Shinsuke Sugita
 

More from Shinsuke Sugita (8)

Anywhere market
Anywhere marketAnywhere market
Anywhere market
 
Qiita
QiitaQiita
Qiita
 
Howisunityscriptsucks
HowisunityscriptsucksHowisunityscriptsucks
Howisunityscriptsucks
 
はっぴょう
はっぴょうはっぴょう
はっぴょう
 
Sencha study
Sencha studySencha study
Sencha study
 
ネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unityネットゲームつくろうぜ on Unity
ネットゲームつくろうぜ on Unity
 
Ez GUI
Ez GUIEz GUI
Ez GUI
 
Unity Programing on Boo
Unity Programing on BooUnity Programing on Boo
Unity Programing on Boo
 

Recently uploaded

株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
DAISUKE NAKAMURA
 
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DXMMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
sakanotakashi
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
NTTDATA INTRAMART
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
ssuserdc1268
 
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
taisukekuwano4
 
smartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 ddddddsmartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 dddddd
design777859
 
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
chiakiota2
 
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPIKGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
Tsuyoshi Horigome
 
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdfLabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
ssuser8de8212
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
takashihashimoto14
 
20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf
jun_suto
 
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
Members_corp
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
ssuser4eac57
 
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
recruit9
 

Recently uploaded (15)

株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
株式会社ジンザイベース/特定技能外国人紹介に関する提案資料/2024ver///
 
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DXMMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
MMOLHolging株式会社|BtoC、D2C事業グロース支援・インターナルブランディング、採用ブランディング、社員エンゲージメント向上DX
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
 
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
株式会社ROMS採用候補者用説明資料。候補者の方向け事業概要・沿革・カルチャーをご紹介
 
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
CFO組織の働き方を変える 経理業務変革プラットフォーム 「BlackLine」のご紹介
 
smartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 ddddddsmartcamp_RECRUIT_deck 2024060606 dddddd
smartcamp_RECRUIT_deck 2024060606 dddddd
 
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
【slideshare】オンライン二次健診サービス_20240607.pptx.pdf
 
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPIKGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
KGIとKPIについて(営業の目標設定とKPIの商談プロセス) About KGI and KPI
 
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdfLabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
LabBase就職ご紹介資料_240605サービス概要説明資料240605.pdf
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
 
20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf20240606_Service Design Exercise_Visual Report_vol.1.pdf
20240606_Service Design Exercise_Visual Report_vol.1.pdf
 
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
株式会社メンバーズ「脱炭素アクション100」2023年度実施レポート(2024.6.6)
 
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
研究エンパワープラットフォームを提供するLabBaseから理系採用成功に向けたご提案
 
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
【公開用】株式会社VISIONARY JAPAN_エンジニアチーム 採用資料(ver2.1)
 

Unitynetwork

  • 1. Unity 3D for Network game @shinriyo
  • 2. Android版もあります 自己紹介 !  杉田臣輔(すぎたしんすけ) !  株式会社ワンオブゼムで勤務 !  エンジニアとしてUnity使ってます Ninja Mkdir https://bitbucket.org/shinriyo/ninja-mkdir/downloads ZomBeat つみんビ∼
  • 3. Unity3Dとは? !  ゲームエンジン ! iOSやAndroid用のゲームに使用可能 !  モデリングツールではない !  3Dのゲームが得意(2Dは苦手だけど出来ないことも ない) !  ゲーム制作の民主化
  • 4. 使用できる言語 !  C#・・・Javaっぽい言語(文字比較に=使える、親クラスのメソッ ドにvirtualを書くのが手間) !  Boo・・・Pythonっぽい言語(メソッドにself不要) ! UnityScript・・・JavaScriptっぽい言語(JavaScriptの殻を かぶったC#、むしろActionScript3.0っぽい) http://www.amazon.co.jp/gp/product/1849690405?tag=noctushinrsdi-22
  • 5. ネットワークゲームの種類 !  物理構造  C/S型・・・サーバーとクライアントにそれぞれ特化  P2P・・・ネットワーク上で対等な関係にある端末間を相互に直接接続し、デ ータを送受信する通信方式。 論理的な構造  MO(Mulltiplay Online)・・・2∼100人程度の同時プレイ  MMO(Massively Mulltiplay Online)・・・数百、数千以上の同時プレイ 2x2=4通りあるが、MMOかつP2Pは実際にはない ※Massively・・・ 【副詞】 どっしりと; 大規模に
  • 6. 準備 !  特にアセットストアでダウンロードする有料のアセ ット(Plug-in)は別途はいりません。 !  C#の基本的な文法 !  ProじゃなくてもOK !  Unityの基礎知識 !  2.6以前のUnityはダメ !  ※OnSerializeNetworkViewメソッドにバグがあるため
  • 7. 今回作るのは !  おしくらまんじゅう式なP2P対戦ゲーム  ※MMO的なことを期待していた方はすみません  ※死亡処理などの   作りこみは割愛します(Bitbacketに載せてます) □Networking Example(MMO的なサンプル)  http://unity3d.com/support/resources/example- projects/networking-example
  • 8. MonoBehavior !  基本的にベースとなるクラス !  継承するだけでUnityの基礎的なメソッドが使える
  • 9. ネットワーク状態 ! Network.peerTypeで接続状態を判断NetworkPeerType の列挙型で比較する。 ! NetworkPeerType !  Disconnected・・・切断中 !  Connecting・・・接続中(Connectedじゃない) !  ※Server(サーバとして)、Client(クライアントとして)もある。
  • 10. サーバの作成 !  サーバ側の処理 ! Network.InitializeServer(接続数, ポート番号); !  ※引数は両方intです。 !  ※ 127.0.0.1(ループバックアドレス)
  • 11. サーバへの接続 !  クライアント側の処理 ! Network.Connect(IPアドレス, ポート番号); !  ※ポート番号の引数はintです。 !  ちなみに切断はNetwork.Disconnect(タイムアウトの ミリ秒)
  • 12. サーバ側 ! OnServerInitialized()メソッド  ・・・サーバ自体が作成された時に実行される ! OnPlayerDisconnected()  ・・・クライアントのプレーヤが切断した時に実行される
  • 13. クライアント側 ! OnConnectedToServer()  サーバに接続した時に実行される ! OnDisconnectedFromServer()  サーバから切断した時に実行される
  • 14. プレイヤーの生成 !  Network.Instantiate() ※ staticメソッド 今回は、Spawn(生成)をするメソッドを作り、そ の中に記載します。 ※C#はUnityScriptのように暗黙のキャストが弱いの で注意
  • 15. RPC(RemoteProcedureCall) !  リモートのサーバで実行しているプログラムをクラ イアント側から呼び出せる。
  • 16. Network View !  RPCに必要。 !  transform情報(position, rotation, scale)を観測 してくれる。 !  Component=>Miscellaneous=>NetworkView でプ レーヤにアタッチする ! isMine変数でオブジェクトによって制御される、 ネットワークビューかを判断できる ※豆知識・・Miscellaneous(mìsəәléɪniəәs)は分類が難しい時によく使われる。 メソレイニアスのように発音。よく、 misc などと略される。
  • 17. NetworkViewのメソッド ! OnSerializeNetworkView()メソッド  ネットワークビューで監視しているスクリプトの変 数の同期をとるために使用  第1引数:BitStream・・・isReadingとisWritingが取れ る。Serializeは参照を引数に取る  第2引数:NetWorkMessageInfo・・・誰からかとか、 時間などの情報が取れる(今回使わない)
  • 18. BitStream •  isWriting・・ステータスの送信        isWritingでなければ受信している •  シリアライズはbool、char、short、int、float、 Quotanion、Vector、NetworkPlayer、NetworkVieID型 のみサポート。
  • 19. プレイヤーの処理実装 !  方向キーの垂直、平面の移動  Input.GetAxis(“Horizontal”)・・並行のキー取得  Input.GetAxis(”Virtucal“) ・・垂直のキー取得  Time.deltaTime・・前のフレームが呼び出されたとき の、経過時間を示す(Readonly)
  • 20. まとめ •  アセットを買わずにUnityの基本のメソッドだけで P2Pゲームはできる •  MMO的なものを作成するにはMasterServerを使いま す •  Bitbacketにアップしています  https://bitbucket.org/shinriyo/p2pnetgame/downloads