31
C# で iPhone ででででで でででで Aiming でででででででででででででで でででで

C# で i phone ゲーム開発

Embed Size (px)

Citation preview

Page 1: C# で i phone ゲーム開発

C# で iPhone ゲーム開発

株式会社 Aimingリードソフトウェアエンジニア

牧野克俊

Page 2: C# で i phone ゲーム開発

テーマ

C# で iPhone ゲーム開発

Page 3: C# で i phone ゲーム開発

概要

1.開発環境の紹介2.開発者から出た C# の感想

Page 4: C# で i phone ゲーム開発

1.開発環境の紹介

Page 5: C# で i phone ゲーム開発

•基本的にはこのふたつ–MonoTouch–Unity 3d

Page 6: C# で i phone ゲーム開発

•ほかにも–DeltaEngine–ExEn

Page 7: C# で i phone ゲーム開発

MonoTouch

• OpenGL 使える• Xcode の UI と連携可能– Interface Builder

• ネイティブコードとバインディング可能–たとえば Cocos2d とか使う

Page 8: C# で i phone ゲーム開発

MonoTouch

• MonoDevelop–IDE–デバッグ–エミュレータ起動–実機転送

Page 9: C# で i phone ゲーム開発

Unity 3d

• ゲーム開発に必要なものは概ねそろっている–3D 描画–物理エンジン–etc

Page 10: C# で i phone ゲーム開発

Unity 3d

• UnityEditor–レベルエディタ

• MonoDevelop for Unity–UnityEditor と連携したデバッグ

Page 11: C# で i phone ゲーム開発

• UnityEditor でコンパイル→   Xcode でコンパイル、転

Page 12: C# で i phone ゲーム開発

超適当に内部技術解説

Page 13: C# で i phone ゲーム開発

Mono ベースで作られている

Page 14: C# で i phone ゲーム開発

• なので、 Mono の制約に引っ張られます–MonoTouch は C#4.0–Unity は C#3.5– .NET Framework に完全対応していない

Page 15: C# で i phone ゲーム開発

• さらに、 iOS 上では JIT 禁止!–なので事前コンパイルされる–特に Unity はほぼネイティブコー

ドにコンパイルされる・・・らしい

Page 16: C# で i phone ゲーム開発

• Reflection 、 Generics–制限が有るが使える–そして、ときどき裏切られる・・・

Page 17: C# で i phone ゲーム開発

しかし iPhone ゲーム開発で最強の敵がまだいます!

(主観です)

Page 18: C# で i phone ゲーム開発

• iPhone ビルド、転送に Mac が必要!–Apple 先生にはさからえません・・・

Page 19: C# で i phone ゲーム開発

まとめ• ゲーム開発なら Unity おすすめ• ツール開発なら MonoTouch おすすめ• Mac を嫌いにならない

Page 20: C# で i phone ゲーム開発

Mac を嫌いにならない!

Page 21: C# で i phone ゲーム開発

2.開発者から出た C# の感想

Page 22: C# で i phone ゲーム開発

• 現在 Aiming では複数の iPhone ( Android )ゲーム開発をしています

• ほぼすべてのタイトルが Unity + C#• C# でネットワークゲームのサーバも作っ

ています• 多くのプログラマは C++ でゲーム開発経

験者

Page 23: C# で i phone ゲーム開発

• さて、そんな人たちが C# でゲーム開発をしていてどう感じているでしょう?–Unity への愚痴は抜いてます

Page 24: C# で i phone ゲーム開発

• using いいね!• ラムダ式いいね!!• LINQ いいね!!!

Page 25: C# で i phone ゲーム開発

• JavaScript と比べて型決まっていていいね!• 型チェックが厳しすぎる

Page 26: C# で i phone ゲーム開発

• プリプロセッサマクロ欲しい・・・• typedef したい・・・• friend 使いたい・・・

Page 27: C# で i phone ゲーム開発

• Unity で C# の使える範囲がいまいち把握できない

• ツールと連携しやすい

Page 28: C# で i phone ゲーム開発

• パフォーマンスは許容範囲• GC のおかげでメモリ管理が少し楽• GC が CPU 使う

Page 29: C# で i phone ゲーム開発

• IDE 便利• 非同期処理をもう少し上手く書けな

いかなー• DataBinding したい!• iPhone と Android で同じように動い

てくれない・・・

Page 30: C# で i phone ゲーム開発

まとめ

• 速度はそこまで気にならない• メモリ管理はやっぱ意識する• ツールを使いこなす• 内部動作を理解する(してもら

う)

Page 31: C# で i phone ゲーム開発