SlideShare a Scribd company logo
1 of 30
CoronaSDK開発の魅力
本日は25分で、CoronaSDKの紹介と実演を通じて
「Coronaって簡単にゲーム作れそうだなぁ」と思っても
らえれば幸いです



        株式会社ニジボックス
        ソーシャルゲーム事業部
           寺井周平
        trick7   sterai
自己紹介&開発の経緯

• Flashエンジニア、デザイナー
• リクルートMTLから現ニジボックスに出向してソーシャ
 ルゲームの企画開発

• 2010年よりPC用、ガラケー用ソーシャルゲームをリ
 リースし、2011年10月よりスマホアプリ開発

• 現在Corona歴半年、5月からUnity勉強中
• 弊社「ニジボスマホ部」でCorona関連の記事更新中
開発ツールの選択
       1日程度の調査での第一印象

• CoronaSDK:Flasherに親和性高そうだ
• Unity: モデリングに時間がかかりそうだ
• Cocos2DX: C系言語は僕には難しそうだ
• Flash(AIR): アプリサイズが大きくなっちゃうのが
• Phonegap: WebViewメインの開発環境なのかな?
• Titanium: ツール系アプリ向き( 動きの演出は不得手?)
CoronaSDKとは

• Android/iOS用ビルドができる開発環境
• 元AdobeのFlashLiteチームが開発
• ゲーム開発だけなら無料SDKで実機確認までできる
• 両PFでストア公開するならライセンス契約が必要
• Lua言語を使用
• SDKにはAndroid/iOSシミュレーター同梱
• サンプルファイルも付いてて参考になります
ライセンス契約

• 両PFで$349/年
 ※個別ライセンス購入ならAndroid:$199、iOS:$199

• ストア提出が可能になる
• ビルド時間が5倍短縮
• Daily Build版が利用できる(最新機能をいち早く使える)
• 購入ユーザーのみ閲覧できるユーザーフォーラム
• Corona透かしの解除
プレビューとビルド
• luaや画像ファイルを更新すると、横に置いたシミュレー
 ターで即時プレビューできる

• 実機プレビュー/ストア提出用のapk作成はメニュー>ビル
 ドすることで可能になる(AndroidはDebugKeyがあるの
 でより気軽にテストビルドできます)

• 解像度設定、中断時の処理やVer情報といったアプリ設定
 に関わる項目はconfig.luaとbuild.settingに記載する

• ビルドには少し(1分程)時間がかかる→Dropbox共有し
 て隣のマシンでビルドしておくと凄く気持ちいい
おすすめ動画リンク
•   Corona SDK 3min紹介動画
    コード記述量の少なさと物理エンジンを簡単に使える様子が見れる

•   Making a game in 8 minutes
    風船をタッチして割るゲームを作る動画

•   Dr.Hdez氏のチュートリアル動画集
    シリーズ化され、各回ごとにいろんな機能を紹介

•   Angry Birds in 30 minutes (src)
    セミナーでの講演。ものを引っ張って飛ばしてブロックを崩すところまで

•   その他Corona関連ビデオ
僕の作例
作例1: Cat A Lot

• Android/iOS対応の2Dパズル
 ゲーム(apk:13MB)

• CoronaSDKの勉強を並行し、
 ゲーム企画からリリースまで
 4ヶ月

• 1名で全行程を制作
• 「さめがめ」的ゲームロジックは3日ぐらいで完成した
• ステージの実装に5日程度(API調査含め)
• 高解像度端末にも対応
• Openfeint対応は1日作業(別途登録待ち時間がかかる)
• デザインは期間中継続して手入れしていた
• 背景画像はロイヤリティフリー素材を加工
• 鳴き声は自作、BGMはLogicProの付属音源を活用
• Facebook連携は最後の2日で実装
作例2: MoveNIJIBOX
• 弊社移転の案内の賑やかし用に制作
 した無料アプリ

• ダンボールを目的地まで飛ばし、ハ
 イスコアを狙うゲーム

• 企画からデザイン&プログラム、ス
 トア提出まで6日

• AngryBirds的サンプルを改造し、
 コンプ要素を追加
• 標準機能のPhysicsAPIを利用すればAngryBirds的ゲーム
 も簡単に実装可。※Box2Dエンジンが搭載されています

• コンプの記録はFileAPIを使ってテキスト形式で管理
作例3: テンビリオン的ゲーム
• 1日で完成
 →Coronaでのモック開発の速さ!

• 難しすぎ&権利も心配で開発中止
      テンビリオン(wikipedia)

      1980年に任天堂が発売した、     のような
      形状をしたパズルタイプの玩具である。
      発案者は横井軍平。
CoronaSDKのよさ

• 好きなテキストエディタで開発できる
• 即プレビュー反映
• デバイスフォント/ダイナミックフォントが使える
• コード記述量が少なくすむ
• 高解像度対応
• 消費メモリ管理が比較的楽ちん
• 機能追加ペースが早い(※DailyBuild版)
ゲームのための機能が豊富
•   画面遷移(例:タイトル→ゲーム→ゲームオーバー→...)

•   ハイスコア保存や達成バッジ機能(File, Openfeint)

•   マスタ等でのDataBase利用(SQLite3)

•   物理エンジン(Box2D)

•   SpriteSheetアニメーション

•   Tween ex: transition.to(obj, {y=40,time=500,delay=100})

•   In App Purchase(現在AndroidはDaily Buildのみ)

•   Facebookウォール投稿(SSO:シングルサインオン)

•   音楽ライブラリを鳴らしたままにしておく(audioSession)
いくつかをピックアップ
画面遷移に役立つ機能
Directorクラス

• 各シーンごとにluaファイルを作成する(scene1.lua,..)
• 遷移時のアニメーション演出が手軽に設定できる
• シーン内で1つ、localGroupというグループを作成し、
 シーン内で使うオブジェクトは全てlocalGroupにinsertす
 る。※グループ化したオブジェクトをinsertすることも可

• director:changeScene()で次画面に遷移するタイミング
 で、シーン上のlocalGroup内包オブジェクトを破棄してく
 れる
menu.lua       game.lua     gameover.lua

    localGroup    localGroup     localGroup



     タイトル            背景
                               リスタートボタン
   スタートボタン          キャラ
                                タイトル画面へ
  ランキングボタン         敵キャラ




   メニュー            ゲーム         ゲームオーバー


• 各シーン(lua)内で都度localGroupをnew Group()する
 ※変数や関数は各lua内でlocal宣言することで管理する
Storyboard

• Ansca社本家が用意したシーン管理機能
• Directorと同様、各シーン毎luaファイル、グルーピングに
 よるオブジェクト管理、遷移時の演出可能

• シーン初期化/開始/退出の各タイミングでの処理を実装で
 きる

• 前のシーンをメモリ上に残す/残さないを細かく指定でき
 る
物理エンジン(Box2D)
     (実演)
Tween(トゥイーン)
    (実演)
ハイスコア保存
  (実演)
開発中に悩んだこと

• タイマーとトゥイーンの消し忘れによるメモリリーク
 (管理用テーブルを用意してまとめて消去する方法があ
 る)

• 縁取り文字や影文字の実装が力技だった
• Androidでダイナミックフォントが表示されなくて困っ
 た(最終的にはできた)

• GooglePlayのapkアップロードエラー(諦めずに何回も
 やるとアップできた)
CoronaSDKの課題点?

• 割とフルスクラッチで作ることになる
 →演出やUI等を自在に作り込みたい開発者向き

• UnityのAssetStore的なサービスがない
 →逆を言えばネット上のリソースは無料公開されている

• ユーザーが少ない
 →とにかく本家リファレンスとフォーラムを見れば良い

 →日本Coronaの会のGoogleGroupもあります
ゲーム企画について

• いろんなゲームをプレイし、面白要素、快感を感じる瞬
 間、夢中になれる仕掛けなどを探る。

• 縦型ゲーム→地下鉄で片手でプレイできる
ちゃんとヒットできたら発表する
• コンボ→気持ち良さ
• ステージ数→お金を払う価値を感じさせる
• 質感高いグラフィック→インストールUUのため
• リスクとリターンを考慮する→ゲーム性
まとめ
• 一人で全部手がけたい個人が、アプリを大量リリースする
 のに凄く向いてる

• 2Dゲームのモック制作にすごく向いている
• 即時プレビューできるので演出のトライ&エラーが存分に
 できる

• ファイル構成は画像データと.luaテキストなのでバージョ
 ン管理しやすい

• カジュアルゲームだけでなく、流行のカードゲームも充分
 作れる
おまけTIPS
             ※時間があれば発表します



• プロジェクトディレクトリに不要な素材を置くと、その分
 アプリサイズも重くなります

• ツールバーから、作業&Sandboxディレクトリの確認がで
 きます

• 消費メモリの確認方法
• @2x指定を使った画像の高解像度画面対応
• デバッグのために、Corona Simulatorではなく、Corona
 Terminalの方を起動しよう
Unityがアツいよね
• 2Dと3D、どっちのゲームを遊ぶことが多い?
• 3軸あるからオブジェクトを回転させるにも苦労するよ
• フォント周りが大変だよ
• Coronaならゲーム以外のツールアプリも作れるよ
• 結局C#を書くことになるかもね
• 作り込んでいくと結局WYSIWYGじゃなくなっていく
• 一人でやろうとするとそれなりに時間かかりそうだー
     ※そりゃCoronaとUnity両方できるのが一番いいけど
ありがとうございました

  株式会社ニジボックス
  ソーシャルゲーム事業部
     寺井周平
   trick7   sterai

More Related Content

Viewers also liked

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたtoshi_pp
 
cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用Tomoaki Shimizu
 
Cryptanalysis of the seal encryption algorithm
Cryptanalysis of the seal encryption algorithmCryptanalysis of the seal encryption algorithm
Cryptanalysis of the seal encryption algorithmdegarden
 
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowy
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowyUkład chłodzenia i smarowania oraz układ dolotowy i wylotowy
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowySzymon Konkol - Publikacje Cyfrowe
 
Braas katalog 2012
Braas katalog 2012Braas katalog 2012
Braas katalog 2012wampirek80
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...Web Technology Corp.
 
Cc dx lib72-p
Cc dx lib72-pCc dx lib72-p
Cc dx lib72-pCHY72
 
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたCocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたYasuhiro Matsuda
 
すまべん関西 JAG神戸支部共催和歌山合宿発表資料
すまべん関西 JAG神戸支部共催和歌山合宿発表資料すまべん関西 JAG神戸支部共催和歌山合宿発表資料
すまべん関西 JAG神戸支部共催和歌山合宿発表資料三七男 山本
 
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.Wielka Orkiestra Świątecznej Pomocy
 
NGUIとUnity2Dをつかってみた
NGUIとUnity2DをつかってみたNGUIとUnity2Dをつかってみた
NGUIとUnity2Dをつかってみた優之 田中
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築Kei Nakazawa
 
Excel. Analiza danych biznesowych
Excel. Analiza danych biznesowychExcel. Analiza danych biznesowych
Excel. Analiza danych biznesowychWydawnictwo Helion
 
VOXCHRONICLE企画草案
VOXCHRONICLE企画草案VOXCHRONICLE企画草案
VOXCHRONICLE企画草案Kohki Miki
 
TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)Sho Iwamoto
 

Viewers also liked (19)

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 
ライセンスの話
ライセンスの話ライセンスの話
ライセンスの話
 
cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用cocos2d-xにおけるマップエディタの利用
cocos2d-xにおけるマップエディタの利用
 
Cryptanalysis of the seal encryption algorithm
Cryptanalysis of the seal encryption algorithmCryptanalysis of the seal encryption algorithm
Cryptanalysis of the seal encryption algorithm
 
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowy
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowyUkład chłodzenia i smarowania oraz układ dolotowy i wylotowy
Układ chłodzenia i smarowania oraz układ dolotowy i wylotowy
 
Braas katalog 2012
Braas katalog 2012Braas katalog 2012
Braas katalog 2012
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
 
Cc dx lib72-p
Cc dx lib72-pCc dx lib72-p
Cc dx lib72-p
 
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めましたCocos2d-x&CocosCodeIDE&Luaで個人開発始めました
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
 
すまべん関西 JAG神戸支部共催和歌山合宿発表資料
すまべん関西 JAG神戸支部共催和歌山合宿発表資料すまべん関西 JAG神戸支部共催和歌山合宿発表資料
すまべん関西 JAG神戸支部共催和歌山合宿発表資料
 
Androidの開発概要
Androidの開発概要Androidの開発概要
Androidの開発概要
 
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.
Za co muszę zapłacić? Czyli dodatkowe koszty związane z istnieniem w Internecie.
 
NGUIとUnity2Dをつかってみた
NGUIとUnity2DをつかってみたNGUIとUnity2Dをつかってみた
NGUIとUnity2Dをつかってみた
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築
 
コルーチンの使い方
コルーチンの使い方コルーチンの使い方
コルーチンの使い方
 
Excel. Analiza danych biznesowych
Excel. Analiza danych biznesowychExcel. Analiza danych biznesowych
Excel. Analiza danych biznesowych
 
Vul ana
Vul anaVul ana
Vul ana
 
VOXCHRONICLE企画草案
VOXCHRONICLE企画草案VOXCHRONICLE企画草案
VOXCHRONICLE企画草案
 
TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)TeamVOXについて(BitSummit2014用メディアキット)
TeamVOXについて(BitSummit2014用メディアキット)
 

CoronaSDK開発の魅力

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n