hIDDEN bLOG » 2011 » 12月

2011/12/26 月曜日

iPhone・iPadアプリ大賞2011行ってきた!

このエントリをはてなブックマークに追加
Filed under: iPadアプリ — @ 0:24:52

iPhone・iPadアプリ大賞2011に、ウチのiPadアプリ「むげんメモ」を引っさげてプレゼン行ってきたのでレポートするよ!

むげんメモ


むげんメモのプレゼンはなんとイチバン最初。
その方があとのプレゼンをしっかり聞けるってことで、むしろ望むところといったところなんすけどね。

そんなわけで心構えをする暇すら与えられず、早速ボクの番がまわってきたわけだ。
プレゼンの様子はustreamの録画がある模様なのでそちらをご覧いただければ….><

でもって反省、、、
どうもボクってば、マイクを持って話すと息を吸うのを忘れるヘキがあるらしく、この日も例に漏れずだんだん呼吸が苦しくなっていった次第。おかげで最後の方、うまく言い回しとかが出てこなくて、トークがいまいちキレなかった。
ぎゃふん!

デモ主体のプレゼンというのは、もうなんかボクの定番スタイルとして定着しつつあるのかね。今回もその文法をしっかり踏襲して、それなりに会場の反応もあったように思える。

結果、AppBank賞と林信行賞をいただくことができた!

グランプリは残念ながら逃してしまったが、そちらはHiroshima ARchiveを擁する渡邉先生が獲得。MA7で最後まで競った相手であり、くやしいが心から祝福もうしあげます!!

さて、そんでもって大賞ノミネートの中で特に気になった作品を、いくつかピックアップ….

サンタ狩り


聖なる夜が性なる夜になる20xx年のこの日本、我々に不幸を運ぶサンタどもを一掃すべくiPhoneをタッチしまくるシンプルゲーム。
コンボを重ねるとスコアが伸びる仕様で、ハイスコアを追求するのがまた楽しい。しかも憎むべきサンタどもをはじきとばすエフェクトも気持ちいいときた。
早速AppBankでも紹介されていたうらやましいアプリだ。

miil


食べ物写真のライフログアプリ。
なんせデザインのクオリティが高い。エフェクトなども含めて、邪魔にならないレベルで作り込まれていて好感度がスゲく高かった。
それに加えて、Twitter連動しての友達機能や近傍検索など、機能の充実度も非常に高い。
常用アプリになりそう。。。

まとめると

iOSアプリの世界がまだまだ熱いことを再確認できたイベントだった!
1年ちょっとぶりに再会できたするぷたんや、MA7でお会いしていた渡邉先生雑魚雑魚のおふたり、AppBankのみなさんと、久々にお話できたのも超テンション上がった!!
来年もいいモノ作って参加したいなーと、心から思ってトーキョーを後にしたのであった!!!

2011/12/15 木曜日

C#とCocos2Dでウハウハゲーム開発

このエントリをはてなブックマークに追加
Filed under: iPhoneアプリ,MonoTouch — @ 2:15:03

はじめに

この記事はiOS Advent Calendarの12月15日ぶんとして書いてますよっと。

iOSでC#

iOS開発者の諸兄にはもうご存知のかたも多いと思うが、去年はいろいろ紆余曲折があったわけで、いまiOS用のネイティブアプリは、Objective-C以外でもいろいろな言語で開発することができる。
C#でiOSアプリを開発するには、最近だとUnityが熱いが、よりネイティブに近い環境としてはMonoTouchというものが販売されている。
MonoTouchはiOS SDKの各APIをごく薄くラップしたライブラリを持っており、そのぶんOSアップデートへの対応が早いなどの利点がある。

iOSでC#でゲーム

ここで取り上げるのが、2Dゲーム向けフレームワークとして定評のあるCocos2Dである。
何パターンかのMonoTouch向けCocon2Dライブラリが公開されているが、今回注目するのはCocosNetというライブラリ。
ネイティブなCocos2Dをラップするのではなく、完全にC#のソースコードに移植しているのがこれである。おかげで移植カバー率はそれほど高くないという欠点はあるものの、後述するおおきな利点が期待できる。

iOSでC#でゲームつくってみる

CocosNetを使ったコーディングの例を、少しだけサンプルとともに追ってみる。

まずは初期化。
Application開始直前にでも、OpenGL ES1用のグラフィックコンテキストを生成しておく。

static void Main( string[] args )
{
    var c = Utilities.CreateGraphicsContext( EAGLRenderingAPI.OpenGLES1 );
    UIApplication.Main( args );
}

次いではDirectorの初期化だ。
とりあえずはAppDelegate.FinishedLaunching()あたりで実行するのが手軽だろうか。。。
パラメータを順次設定して、最後にUIWindowにアタッチしている。

var d = Director.Instance;
d.DeviceOrientation = DeviceOrientation.Portrait;
d.AnimationInterval = 1.0 / 60.0;
d.IsDisplayFPS = true;
 
d.AttachInView( window );

そしてシーンとスプライトの初期化。
これで画面に何かが表示できるはずだ。

var scene = new Scene();
var s = new Sprite( "splite.png" );
s.SetPosition( d.WinSize.Width / 2, d.WinSize.Height / 2 );
scene.AddChild( s, 0 );
d.RunScene( scene );

もういっこおまけに、アニメーションも。

MoveTo move = new MoveTo( 1.0f, new PointF( 0, 0 ) );
s.RunAction( move );

Cocos2Dを触ったことがある人なら、これでだいたいの移植具合が分かってもらえるのではないかと思う。
その他パーティクル・パララックスノード・タイルマップなど、有用そうなクラス群はひととおり移植されている。
一点、アニメーションのイージングが移植されていないのが残念だが、これは追加コードを少し書いてやるだけですぐ移植できた。
このように、ゲームをシンプルに作り始める素地は、すでにしっかりと整備されている印象だ。

iOSでC#でゲームつくったけど他のスマホでも

さて、いろいろプランを練り上げてゲームの完成をみる頃には、ロジックの分離やシーケンスの整理が行き届いたエクセレントなソースコードが手元にできあがっているはずだ。
そうすると、せっかくだから別のプラットフォームにむけても、このジーニアスなゲームをプレイしてもらいたいという欲求がわき上がってこないだろうか。

ここで、Mono for Androidの存在を思い出してほしい。

Mono for AndroidはMonoTouch同様、C#でAndroid向けのアプリが開発できるキットである。
そしてMonoTouchと同じOpenTKを使ってOpenGLをラップしているので、CocosNet実装もほとんどそのまま流用できるはずだ!
つまりはビューへのバインド部分だけそれぞれのプラットフォーム向けに書いてやれば、Cocos2Dの機能がiOS/Android双方で同じように使えるようになるはずなのだ!!
※ただし未検証でありライセンスにも注意する必要がある。

と、ちょっと投げっぱなしスープレックスな結びになってしまいつつあるが、C#で書けることによる開発効率の飛躍的なアップに加え、マルチプラットフォーム展開が容易になるというメリットがお分かりいただけたのではないかと。

Objective-Cは言語的にノイズが多すぎてどうも…. という諸氏にも強くお勧めできる、C#によるスマホアプリ開発。スマートなアプリをスピード開発してみてはいかが!?

さいごに

明日は@M_Sakodaさんです。
よろしくですー。

HTML convert time: 0.824 sec. Powered by WordPress