SlideShare a Scribd company logo
1 of 31
C# で iPhone ゲーム開発



                  株式会社 Aiming
           リードソフトウェアエンジニア
                     牧野克俊
テーマ



C# で iPhoneゲーム開発
概要



1.開発環境の紹介
2.開発者から出た C# の感想
1.開発環境の紹介
• 基本的にはこのふたつ
–MonoTouch
–Unity 3d
• ほかにも
–DeltaEngine
–ExEn
MonoTouch
• OpenGL 使える
• Xcode の UI と連携可能
 – Interface Builder
• ネイティブコードとバインディング
  可能
 – たとえば Cocos2d とか使う
MonoTouch
• MonoDevelop
 –IDE
 –デバッグ
 –エミュレータ起動
 –実機転送
Unity 3d

• ゲーム開発に必要なものは概ねそ
  ろっている
–3D 描画
–物理エンジン
–etc
Unity 3d
• UnityEditor
  –レベルエディタ
• MonoDevelop for Unity
  –UnityEditor と連携したデバッグ
• UnityEditor でコンパイル
    → Xcode でコンパイル、転送
超適当に内部技術解説
Mono ベースで作られている
• なので、Mono の制約に引っ張られま
  す
 – MonoTouch は C#4.0
 – Unity は C#3.5
 – .NET Framework に完全対応していない
• さらに、iOS 上では JIT 禁止!
 –なので事前コンパイルされる
 –特に Unity はほぼネイティブコード
  にコンパイルされる・・・らしい
• Reflection、Generics
  –制限が有るが使える
  –そして、ときどき裏切られ
   る・・・
しかし iPhone ゲーム開発で最強の
     敵がまだいます!
       (主観です)
• iPhone ビルド、転送に Mac が必要!
 – Apple 先生にはさからえません・・・
まとめ
• ゲーム開発なら Unity おすすめ
• ツール開発なら MonoTouch おすすめ
• Mac を嫌いにならない
Mac を嫌いにならない!
2.開発者から出た C# の感想
• 現在 Aiming では複数の iPhone(Android)
  ゲーム開発をしています
• ほぼすべてのタイトルが Unity + C#
• C# でネットワークゲームのサーバも作っ
  ています
• 多くのプログラマは C++ でゲーム開発経
  験者
• さて、そんな人たちが C# でゲーム開
  発をしていてどう感じているでしょ
  う?
  –Unity への愚痴は抜いてます
• using いいね!
• ラムダ式いいね!!
• LINQ いいね!!!
• JavaScript と比べて型決まってい
  ていいね!
• 型チェックが厳しすぎる
• プリプロセッサマクロ欲し
  い・・・
• typedef したい・・・
• friend 使いたい・・・
• Unity で C# の使える範囲がいまいち
  把握できない
• ツールと連携しやすい
• パフォーマンスは許容範囲
• GC のおかげでメモリ管理が少し楽
• GC が CPU 使う
• IDE 便利
• 非同期処理をもう少し上手く書けな
  いかなー
• DataBinding したい!
• iPhone と Android で同じように動いて
  くれない・・・
まとめ
• 速度はそこまで気にならない
• メモリ管理はやっぱ意識する
• ツールを使いこなす
• 内部動作を理解する(してもら
  う)
C# で i phone ゲーム開発

More Related Content

What's hot

Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方Kouji Hosoda
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化COLOPL, Inc.
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいYutoNishine
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!Unity Technologies Japan K.K.
 
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~Syougo Yoshino
 
エターナらないゲーム開発
エターナらないゲーム開発エターナらないゲーム開発
エターナらないゲーム開発Kohki Miki
 
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
アプリエンジニアがサーバーサイドで最初に勉強するべきことアプリエンジニアがサーバーサイドで最初に勉強するべきこと
アプリエンジニアがサーバーサイドで最初に勉強するべきことYutoNishine
 
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsUnityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsKouji Hosoda
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでMikito Yoshiya
 
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろうUnityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろうyodaka16
 
エンジン戦略におけるブリッジエンジニアの役割
エンジン戦略におけるブリッジエンジニアの役割エンジン戦略におけるブリッジエンジニアの役割
エンジン戦略におけるブリッジエンジニアの役割gree_tech
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話Masayoshi Kamai
 
Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発KLab Inc. / Tech
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用についてKatsutoshi Makino
 
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウGameCreators,CyberAgent
 
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)ミルク株式会社
 
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなしUnity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなしMori Tetsuya
 
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方Unity Technologies Japan K.K.
 
iOS/Androidアプリ「こんな息子に育てた覚えはない」について
iOS/Androidアプリ「こんな息子に育てた覚えはない」についてiOS/Androidアプリ「こんな息子に育てた覚えはない」について
iOS/Androidアプリ「こんな息子に育てた覚えはない」についてミルク株式会社
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?モノビット エンジン
 

What's hot (20)

Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方Unity での asset bundle による追加コンテンツの扱い方
Unity での asset bundle による追加コンテンツの扱い方
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~ゲームデータDLとの戦い ~幻塔戦記グリフォン~
ゲームデータDLとの戦い ~幻塔戦記グリフォン~
 
エターナらないゲーム開発
エターナらないゲーム開発エターナらないゲーム開発
エターナらないゲーム開発
 
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
アプリエンジニアがサーバーサイドで最初に勉強するべきことアプリエンジニアがサーバーサイドで最初に勉強するべきこと
アプリエンジニアがサーバーサイドで最初に勉強するべきこと
 
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsUnityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
 
ゆるロボ製作所ができるまで
ゆるロボ製作所ができるまでゆるロボ製作所ができるまで
ゆるロボ製作所ができるまで
 
Unityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろうUnityでデスクトップマスコットを作ろう
Unityでデスクトップマスコットを作ろう
 
エンジン戦略におけるブリッジエンジニアの役割
エンジン戦略におけるブリッジエンジニアの役割エンジン戦略におけるブリッジエンジニアの役割
エンジン戦略におけるブリッジエンジニアの役割
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発Adobe AIR で作る カジュアルゲーム開発
Adobe AIR で作る カジュアルゲーム開発
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について
 
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
 
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)
「会社で寝よう!」制作レポート(3Dカジュアルゲームの開発手法)
 
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなしUnity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
Unity に於けるモバイルプラットフォーム向けビルド自動化のおはなし
 
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
【Unity道場スペシャル 2017札幌】おっさんでも美少女になれる?!VRアイドルの作り方
 
iOS/Androidアプリ「こんな息子に育てた覚えはない」について
iOS/Androidアプリ「こんな息子に育てた覚えはない」についてiOS/Androidアプリ「こんな息子に育てた覚えはない」について
iOS/Androidアプリ「こんな息子に育てた覚えはない」について
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
 

Similar to C# で i phone ゲーム開発

C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchShin Ise
 
Unity/CSharp 1 - pptx
Unity/CSharp 1 - pptxUnity/CSharp 1 - pptx
Unity/CSharp 1 - pptxtagawakiyoshi
 
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -Kishi Shundo
 
スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19Kenji Daikoku
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたTomohiro Suzuki
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流Rakuten Group, Inc.
 
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発Haco Kohashi
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
unityゲーム開発基礎講座
unityゲーム開発基礎講座unityゲーム開発基礎講座
unityゲーム開発基礎講座Yuki Tada
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!Yutaka Tsumori
 
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識Yugo Yamamoto
 
Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Shin Fujisawa
 
Unityを触ってみた話
Unityを触ってみた話Unityを触ってみた話
Unityを触ってみた話tomomihirano1
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!hmimura_embarcadero
 
Unity2015_No2~Terrain~
Unity2015_No2~Terrain~Unity2015_No2~Terrain~
Unity2015_No2~Terrain~CHY72
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Saiki Iijima
 

Similar to C# で i phone ゲーム開発 (20)

C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 
Unity/CSharp 1 - pptx
Unity/CSharp 1 - pptxUnity/CSharp 1 - pptx
Unity/CSharp 1 - pptx
 
Unity/CSharp 2
Unity/CSharp 2Unity/CSharp 2
Unity/CSharp 2
 
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
 
スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19
 
Unity/CSharp 3
Unity/CSharp 3Unity/CSharp 3
Unity/CSharp 3
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
 
appcode_potatotips
appcode_potatotipsappcode_potatotips
appcode_potatotips
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流
 
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
unityゲーム開発基礎講座
unityゲーム開発基礎講座unityゲーム開発基礎講座
unityゲーム開発基礎講座
 
EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!EclipseもXcodeも窓から投げ捨てろ!
EclipseもXcodeも窓から投げ捨てろ!
 
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識
 
Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?Cocos2d-JSはイケてる? イケてない?
Cocos2d-JSはイケてる? イケてない?
 
Unityを触ってみた話
Unityを触ってみた話Unityを触ってみた話
Unityを触ってみた話
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
 
Unity2015_No2~Terrain~
Unity2015_No2~Terrain~Unity2015_No2~Terrain~
Unity2015_No2~Terrain~
 
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
Androidをやっただけで iOSアプリもできればいいのに 〜MOEという選択〜
 

C# で i phone ゲーム開発