cocos sharpでゲーム開発してみました
TRANSCRIPT
![Page 1: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/1.jpg)
Cocos Sharp でゲーム開発してみました。2015 年 10 月 3 日 JXUGC#6 東京 株式会社フロッグポッド 鈴木友宏
![Page 2: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/2.jpg)
自己紹介
鈴木友宏 (すずき ともひろ)
株式会社フロッグポッドで働いております。
業務アプリの開発者兼 SE です。 PHPer→C#er です。
ゲーム開発は素人です(笑)
鉄道、車とドライブをこよなく愛する逸般人一般人です。
2
![Page 3: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/3.jpg)
アジェンダ
• Cocos Sharp ってどんなもの
• Cocos Sharp でゲームを開発した経緯
• 事例(たんけんからだのなか)の紹介
• 実際開発してみてどうだった?
• Cocos Sharp の使い方
• Cocos Sharp の注意点、 TIPS など
• Cocos Sharp のデモ
3
![Page 4: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/4.jpg)
Cocos Sharp ってどんなもの
.NET 環境向けの 2D ゲーム開発用クロスプラットフォームライブラリです。
Cocos Sharp は Monogame のラッパーであり、 Monogame のエンジンを Cocos2d,3d の API で利用できます。
Portable Class Library(PCL) に対応しています。
Shared Projects にも対応しています。
NuGet で取得できます。C# ユーザーであれば、 Xamarin + Cocos
Sharp で最短でクロスプラットフォームでのゲーム開発が
可能です!!
4
![Page 5: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/5.jpg)
Cocos Sharp でゲームを開発した経緯
2013 年、会社でこんな話がありました
「業務システムの開発だけでは幅が広がらないので自社で何か開発してみようよ!」
「じゃあ、 iOS 向けのアプリはどうかな?」
「いいんじゃないかな!」
とりあえず、 Xcode で開発を開始しました。(普段はほとんど C# での開発です。)
5
![Page 6: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/6.jpg)
Cocos Sharp でゲームを開発した経緯実際に開発を始めてみると…
「 Objective-C がとにかく使いにくい!」
「デバッグがやりにくい!文字列加工ですら大変!」
「 ARC, assign, retain よくわからん!面倒くさい!」
…C#er にはかなりハードルが高く、
2014 年 5 月、何とかゲームを 1 本完成させる
「すごく大変だった。なんかもっといい開発方法ないの?」
この時点では Xamarin の存在は知りませんでした。
6
![Page 7: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/7.jpg)
Cocos Sharp でゲームを開発した経緯
さらに、 2014 年 7 月、会社でこんな話がありました
「今度は、 iOS, Android ハイブリッドの自社アプリを作ってみよう!」
業務システムを開発する会社は、普段非常に地味に仕事をしています。
自社の技術の向上のため、また、子供向けに何かアプリをリリースする事で社会貢献になればという事で、オリジナルのアプリの開発を始めました。
「どうすればできるの?? 」
7
![Page 8: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/8.jpg)
Cocos Sharp でゲームを開発した経緯
「 Xamarin を使えば開発できるみたいだよ!」
「 Xamarin かぁ。使った事ないなあ ~ 」
「何のアプリ作ろうか? ゲーム作ろうよ!」(ゲーム開発はまったくの素人)
「 Xamarin ってゲーム作れるの??」
「 Xamarin だけじゃ無理だけど、追加で Cocos Sharp っていうライブラリを使えばできるみたいだよ!」
「なるほど、よし作ろう!」(詳しい調査一切なし)
… とてつもなく難航する開発…
「ハァ…、ハァ…、何とかできたよ!!」
8
![Page 9: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/9.jpg)
事例(たんけん!からだのなか)の紹介
知育アプリで、口に入った食べ物が体をどう流れていくのか、また、インフルエンザやカンジダなど恐いバイキンについて学べます。
9
開発環境(リリース当時)Visual Studio 2013 Xamarin 3.11Cocos Sharp 1.4.0.0
![Page 10: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/10.jpg)
事例(たんけんからだのなか)の紹介
• 詳しくは下記をご覧ください。
• http://www.frog-pod.com/karadanonaka/
遊び方とってもシンプルで直感的。本体を傾けるだけでその方向にスーパーノヴァ号が進みます。
10
現在 3000 ダウンロード程度です。iOS, Android でプレイできます。
![Page 11: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/11.jpg)
実際開発してみてどうだった?よかった点
PCL 内にゲームロジックを押し込める事ができるので、コード共有率が非常に高い。おおよそ 90% 固有実装部分は、ブラウザ起動、モーションセンサーの値取得のみ
iOS, Android ハイブリッドのアプリを単体アプリの作成工数の 10%増程度で作成できた。
iOS:開発期間 6ヶ月 Android:プラス 2週間理解しやすい API で、素人でもゲーム開発が可能。
サポートフォーラムのレスポンスがよく、質問に丁寧に答えてくれる。
( 64bit での当り判定動作不具合、日本語フォントの隙間が空く問題などフォーラムで解決)
11
![Page 12: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/12.jpg)
実際開発してみてどうだった?イマイチだった点・困った点
情報が少ない、完全人柱状態(笑)
まだ、枯れきっておらず、安定稼動させるには多少コツが必要。(バージョンがあがるごとに改善中)
特にメモリの使いすぎ、また、リークしないように注意が必要
(フレームレートが異常に落ちる。画面遷移、アニメーションが止まってしまう)
日本語フォントへ利用時の不具合がある(画像利用で回避可能、 1.6.1.0 では解消されている)
テスト環境の整備
今回は、実機テストおよび Scirocco Cloud を利用。開発完了後、
Xamarin Test Cloud がリリース。12
![Page 13: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/13.jpg)
Cocos Sharp の使い方
ソリューションの構成
AndroidUI Android 用プロジェクト
アプリケーションの起動、ブラウザの起動
AppCore PCL プロジェクト
ゲームロジック
iOSUI iOS 用プロジェクト
アプリケーションの起動、ブラウザの起動
13
![Page 14: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/14.jpg)
CCScene A(mainWindow)
Cocos Sharp の使い方画面の遷移
ReplaceScene ()CCLayerColor
CCScene B(newScene)
CCLayerColor(gameLayer)
var newScene = new CCScene(this.mainWindow);var gameLayer = new CCLayerColor ();newScene.AddChild(gameLayer);mainWindow.DefaultDirector.ReplaceScene(new CCTransitionFade(1.0f, newScene));
14
![Page 15: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/15.jpg)
Cocos Sharp の使い方キャラを動かす CCLayerColor
Node
var superNova = new CCSprite(ImageFileNames.Default.SuperNova, null);superNova.Position = new CCPoint(1600f, 400f);// 左下からの位置
superNova.Tag = NodeTagType.Player;this.AddChild(superNova);var nodeSuperNova= this. GetChildByTag((int)NodeTagType.Player) as CCNode;nodeSuperNova.X += 10f;
15
![Page 16: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/16.jpg)
注意点、 TIPS など画面回転抑制は
iOS: AppDelegate.GetSupportedInterfaceOrientationsメソッドを定義
Android:回転抑制したい Activity ごとに RequestedOrientation プロパティをオーバーライドする。
モーションセンサー情報は PCL ではなくプラットフォーム依存プロジェクト内で行わないとセンサー情報が遅延する。
画像は 256色に減色しないと重くなる。
背景、メニュー画面などの解像度が大きい画像は 2 分割や 4 分割し、タイリングで表示させないと画像自体が表示されなくなる。
詳しくは下記をご参照ください。
http://xamtips.info/
16
![Page 17: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/17.jpg)
iOS9対応について
Cocos Sharp : iOS9 対応、 1.6.1.0以上( 2015/9/18 リリース)
※CCTextField が動作しない不具合あり。
現在、「たんけん!からだのなか」の iOS9 対応バージョンは審査中です。
申し訳ございませんが、 iOS9 にバージョンアップ済みの方は、
新規ダウンロードしてもプレイできない状況です。
リリースまでもう少々お待ちください。
17
![Page 18: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/18.jpg)
Cocos Sharp のデモ
多少デモを行います。
社内で Xamarin を導入するためのコツ
18
![Page 19: Cocos sharpでゲーム開発してみました](https://reader036.vdocuments.site/reader036/viewer/2022062223/58f2a8941a28ab75748b456f/html5/thumbnails/19.jpg)
ご清聴ありがとうございました。