C# で i phone ゲーム開発

Preview:

Citation preview

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 で同じように動い

てくれない・・・

まとめ

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

う)

Recommended