SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Unityを触ってみた話
Unityを触ってみた話Unityを触ってみた話
Unityを触ってみた話tomomihirano1
 
無料で始めるVTuber
無料で始めるVTuber無料で始めるVTuber
無料で始めるVTuberKatsuyaENDOH
 
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@コンテナ型仮想化情報交換会LTYoshinari 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.
 
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
 

La actualidad más candente (20)

Unityを触ってみた話
Unityを触ってみた話Unityを触ってみた話
Unityを触ってみた話
 
ゼロからはじめる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の導入からカスタマイズまでの日記
 

Similar a Unitynetwork

Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Boost.勉強会 #13 @仙台 鳥小屋
Boost.勉強会 #13 @仙台 鳥小屋Yuto M
 
ブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探る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:witchEiichiro 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 APIAkira 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 a 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をてなずけよう
 

Más de Shinsuke Sugita

Más de 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
 

Último

20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdfssuser80a51f
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)KayaSuetake1
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipYasuyoshi Minehisa
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ 株式会社
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfmasakisaito12
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチユニパー株式会社
 

Último (6)

20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 

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