Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)

「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2)

Cocos2d-x Talks #2(2015/3/15)発表資料

「釣り★スタ」でのCocos2d-JSを使っての アプリアップデート事例

発表者
グリー株式会社 Wright Flyer Studios部 中 貴弘
グリー株式会社 Web Game Studio部 / 釣りスタグループ 和田孝尚

概要
日本最初のモバイルソーシャルゲームである「釣り★スタ」
フィーチャーフォンの時代から存在するゲームをCocos2d-JSを使ってのアプリ作成。
既に稼働中のサービスに対して行うアプリアップデート、その中で一番重視したことは実現できたのか。実際にプレイしたユーザからの反応等も交えて開発の事例を紹介できればと思います。

gree_tech

May 12, 2015
Tweet

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ w தɹو߂ w άϦʔೖࣾ w ʙओʹ(3&&ϓϥοτϗʔϜ޲͚4%,΍ϛυ ϧ΢ΣΞ։ൃʢ6OJUZ DPDPTEYKT ʹैࣄ

    w ݱࡏ͸83*()5'-:&3456%*04ʹॴଐ w άϦʔೖࣾҎલ͸ΞʔέʔυήʔϜ΍ίϯγϡʔϚʔήʔ ϜɺJ04ΞϓϦͳͲΛ։ൃ 
  2. w J04"OESPJEͰಈ࡞͢Δ
 $  HDD  w ͜Ε·ͰͷΨϫΞϓϦͱ૬ޓӡ༻Մೳ
 4%,ʹ͸ͳΔ΂͘खΛೖΕͣϥούʔΛ࡞Δ w

    KTͰ࣮૷͍ͨ͠
 ܥͰͷDPDPTEKT͸࣌ظঘૣ
  λʔήοτϓϥοτϑΥʔϜʹΑΔ ։ൃ؀ڥͷ੍໿
  3. w J04"OESPJEͰಈ࡞͢Δ
 $  HDD  w ͜Ε·ͰͷΨϫΞϓϦͱ૬ޓӡ༻Մೳ
 4%,ʹ͸ͳΔ΂͘खΛೖΕͣϥούʔΛ࡞Δ w

    KTͰ࣮૷͍ͨ͠
 ܥͰͷDPDPTEKT͸࣌ظঘૣ
 DPDPTEKTYͰ։ൃΛߦ͏  λʔήοτϓϥοτϑΥʔϜʹΑΔ ։ൃ؀ڥͷ੍໿
  4. ઃܭίϯηϓτ w 0CKFDUJWF$ͱ+/*ͷࠩҟ͸$ ϨΠϠʔͰٵऩ w QJNQMΠσΟΦϜͰ࣮૷ͱΠϯλʔϑΣʔεΛ෼཭ w Ͱ͖Δ͚ͩϞμϯͳ$ Ͱهड़ w

    +BWB4DSJQUͱ$ ͷΫϥε͸ରͰඥͮ͘ w DPDPTͱ8FCΛผʑͷ7JFX$POUSPMMFSɺ"DUJWJUZʹ͢Δ w FUDʜ 
  5. ઃܭίϯηϓτ w 0CKFDUJWF$ͱ+/*ͷࠩҟ͸$ ϨΠϠʔͰٵऩ w QJNQMΠσΟΦϜͰ࣮૷ͱΠϯλʔϑΣʔεΛ෼཭ w Ͱ͖Δ͚ͩϞμϯͳ$ Ͱهड़ w

    +BWB4DSJQUͱ$ ͷΫϥε͸ରͰඥͮ͘ w DPDPTͱ8FCΛผʑͷ7JFX$POUSPMMFSɺ"DUJWJUZʹ͢Δ w FUDʜ 
  6. +4#͕ඞཁ w +4# DPDPTEKBWBTDSJQUCJOEJOHT ͱ͸ʁ
 $PDPTEKT؀ڥ 4QJEFS.POLFZ Ͱ$PDPTEY"1*ίʔυΛίʔ ϧ͢ΔͨΊͷάϧʔίʔυɻ w

    άϧʔίʔυΛ࣮૷͢Δ͜ͱͰࣗલͷ$ ίʔυ΋+BWB4DSJQU ͔ΒݺͿ͜ͱ͕ՄೳʹͳΔ w ࣗಈతʹάϧʔίʔυΛੜ੒͢Δπʔϧ΋͋Δʢ̏ܥʣ
 IUUQTHJUIVCDPNDPDPTECJOEJOHTHFOFSBUPS w ࠓճ͸9.-)UUQ3FRVFTUDQQIΛࢀߟʹάϧʔίʔυΛ࣮૷͠ ͨɻ 
  7. +4#Ͱ࣮ݱग़དྷͨ͜ͱ w +BWB4DSJQUͷΫϥεϑΟʔϧυ ͱ͍͏͔࿈૝഑ྻʣΛ$ ͷ NBQίϯςφʹม׵ w $ ͷNBQΛ+BWB4DSJQUʹɾɾɾͭ·Γ૬ޓม׵Մೳ w

    ඇಉظॲཧͷ݁ՌΛΠϕϯτϦεφʔͰݺͼग़͢ w ϥϜμࣜ෩ίʔϧόοΫॲཧ w ͜Ε͙Β͍͕Ͱ͖Δͱେ఍ͷ͜ͱ͸Ͱ͖ͦ͏ͳؾ͕͢Δ 
  8. +4#ͷཁ఺  
 d9.-)UUQ3FRVFTUΑΓd ϔομʔ ιʔε ػೳ JS_BINDED_CLASS_GLUE JS_BINDED_CLASS_GLUE_IM PL

    άϧʔίʔυఆٛ JS_BINDED_CONSTRUCTOR JS_BINDED_CONSTRUCTOR _IMPL KTίϯετϥΫλΛఆٛ JS_BINDED_PROP_ACCESSO R HFUUFSTFUUFSΛ࣋ͭϓϩύςΟ ఆٛ JS_BINDED_PROP_GET JS_BINDED_PROP_GET_IMPL HFUUFSͷΈΛ࣋ͭϓϩύςΟ JS_BINDED_FUNC JS_BINDED_FUNC_IMPL ϝϯόؔ਺Λఆٛ 
  9. +4#ͷཁ఺  
 d9.-)UUQ3FRVFTUΑΓd JS_BINDED_CONSTRUCTOR_IMPL(MinXmlHttpRequest) { MinXmlHttpRequest* req = new

    MinXmlHttpRequest(); req->autorelease(); js_proxy_t *p; jsval out; JSObject *obj = JS_NewObject(cx, &MinXmlHttpRequest::js_class, MinXmlHttpRequest::js_proto, MinXmlHttpRequest::js_parent); if (obj) { JS_SetPrivate(obj, req); out = OBJECT_TO_JSVAL(obj); } JS_SET_RVAL(cx, vp, out); p =jsb_new_proxy(req, obj); JS_AddNamedObjectRoot(cx, &p->obj, "XMLHttpRequest"); return JS_TRUE; } 
  10. //via jni Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable(){ public

    void run(){ //call Android UI API // } }); Cocos2dxActivity.getContext().runOnGLThread(new Runnable(){ public void run(){ //call cocos2d-x API // } }); DPDPTEY"OESPJE6*"1* "OESPJE.BJO5ISFBEDPDPTEY"1*