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

Lord of Knights の裏側見せます!PHP+MySQLで作るスマートフォンゲーム開発

Lord of Knights の裏側見せます!PHP+MySQLで作るスマートフォンゲーム開発

2012年4月10日に行われたイベント
エンジニアカフェ×Aiming Lord of Knights の裏側見せます! ~Unity + PHP + MySQL で作るスマートフォンゲーム開発~
で使われた資料です。

Infiniteloop

July 12, 2023
Tweet

More Decks by Infiniteloop

Other Decks in Programming

Transcript

  1. /RUG RI .QLJKWV の裏側⾒せます! ؙ3+3  0\64/द੿ॊ ؙL26  $QGURLG

    ।ش঒৫৅ ઙૄভ঺ॖথইॕॽॵॺঝشউ ؙૈ੩ 健太郎
  2. サーバサイド開発者から⾒た/RUG RI .QLJKWV 3+3উটॢছ঒  L3KRQH॔উজऊैभজॡग़५ॺ॑ਭऐؚ-621॑ନघ$3,  ৊गऎজॡग़५ॺ॑ਭऐ+70/॑ନघ$3,  建築や戦闘などを処理するバッチ処理

    ৌ଀෰ਝੑ঱दਞपऊऐॊधऒौ  ९ش३কঝਏಞऋਘऎঘش२৑दभঢ়ॎॉऋ੗ः ؙڀ ঘش२౐ਜ਼दभ਷਴ীસम୔खः  ডشঝॻद१شং॑ীऐैोॊல஘ ؙڀ サーバ当りの利⽤者数を制限できる
  3. १شংଡਛ  The Internet /% ࣮࣡ࣝࢻ ZZZ ZZZ ZZZ ZZZ

    ZZZ ZZZ ZZZ ZZZ EDWFK EDWFK '% PDVWHU '% PDVWHU '% VODYH '% VODYH '% VODYH '% VODYH ࣮࣡ࣝࢻ EDWFK EDWFK '% PDVWHU '% PDVWHU '% VODYH '% VODYH '% VODYH '% VODYH XSORDG XSORDG *02 *02 *02 *02࢔ࣉࣜࢡࣛ࢘ࢻ ࢔ࣉࣜࢡࣛ࢘ࢻ ࢔ࣉࣜࢡࣛ࢘ࢻ ࢔ࣉࣜࢡࣛ࢘ࢻ æ⌮ ࣀ࣮ࢻ æ⌮ ࣀ࣮ࢻ 0\'16 0DVWHU 0\'16 0DVWHU ᭱Ǻࢳ࢙ࢵࢡ ᭱Ǻࢳ࢙ࢵࢡ *LW ࣏ࣜࢪࢺࣜ *LW ࣏ࣜࢪࢺࣜ ᭱᪂ࢯ࣮ࢫࡢྲྀᚓ ᭱᪂ࢯ࣮ࢫࡢྲྀᚓ ࣭᭱Ǻࢳ࢙ࢵࢡࢧ࣮ࣂ ࣭࢔ࢵࣉ࣮ࣟࢻࢧ࣮ࣂ ࣭ளࡳྎࢧ࣮ࣂ ࣭&DFWL ࣭ෆൺྡ๓æ⌮ ࣭0\'16࣐ࢫࢱ ࣭PHPFDFKHG ࣭FURQ ࢹࣉࣟ࢖ ࢹࣉࣟ࢖ LQIUD LQIUD ࣭ࣟࢢࢧ࣮ࣂ ࣭0\'16ࢫ࣮ࣞࣈ 0\64/ࣞࣉࣜࢣ࣮ࢩࣙࣥ 0\64/ࣞࣉࣜࢣ࣮ࢩࣙࣥ 0\64/ࣞࣉࣜࢣ࣮ࢩࣙࣥ ZZZ ZZZ ZZZ ZZZ ࣭PHPFDFKHG ࣭FURQ
  4. १شংଡਛ  • *02アプリクラウドを利⽤ ڀ ॡছक़ॻऩभद૶ऩ଀෰ृডشঝॻ୯ਸपुৌૢ ڀ /%ृFDFWLम*02アプリクラウド標準のものを利⽤ • ZZZ१شংम$SDFKH3+3௺॑ઞ৷खؚ૚ডشঝॻુ৷

    • '%म0\64/௺भঐ५ॱش؞५ঞॖঈଡਛ • টॢमUV\VORJद१شংपૐ৺ख૰ଳ • デプロイは専⽤⾃作シェルスクリプトで実⾏ ق৔৖৓पमUV\QFك • 0\64/ 0+$を利⽤した⾃動フェイルオーバー • 0\'16॑ઞढञ੡৐ੰৠقઃঌش४दถखऎك
  5. १شংଡਛ  0\'16॑ઞढञ੡৐ੰৠ ڀ એ౵ऩKRVWV管理から解放される ڀ 0\64/で管理が楽 ऒ॒ऩ৷ಥपઞढथःॊ ॹউটॖ੔१شংभৠ৒ ڀ

    ZZZ१شংभ୯ਸऩनपुฑໞपৌૢ '%५ঞॖঈभছक़থॻটঅথ ڀ ॔উজડऋ३থউঝप '%スレイブの参照率調整 ڀ サーバの負荷に応じて参照率を調整できる ڀ '%ংॵॡ॔ॵউৎप૞සऊैਗखथીॎढञैঽ৿दರघ ૞અ 'H1$भযਞ१ॖॺप৾व /$03पेॊ:HE'%३५ॸ঒ଡണઈ৷भாਔ KWWSFRGH]LQHMSDUWLFOHGHWDLO
  6. ५ঐ঍॔উজभ१شং१ॖॻ৫৅भৰ੠(1) ใோ੧੯धभୀः १شং१ॖॻमؚPHP+MySQLदWeb॔উজॣش३ঙথजभुभؚ ঵ਜ௺ऩनभ৽ୡुजभऽऽણऊचॊ ただし設計や共通部などの制作には、知識と経験が必要 HTMLঋش५भঈছक़२।ش঒पૻसॊधؚ APIૢ௦ऋ਌৬भञी৉௡ऩ੿঵ऋ੗ऎऩॊ ିਔघसऌᆽਚ ॡছॖ॔থॺऋँॊऊैधःढथੵਯम੖ैऩः ڀ

    ৹ତभ૑ਏुँॉؚिखौੜइॊൊ਱प ڀ ॿॖॸॕঈৰಎपऒटॎैङؚHTML5 + JSऩनदੵਯ॑చ੖ ॡছॖ॔থॺध१شংपী঵खथ੿঵घॊऒधदؚ क़ज़شॱشইज़شঝऩ৫৅ঔॹঝप੺ऎऩॊ ڀ ॔४কॖঝधमৼਙऋபः৖ীु Appleभଟਪऋপ૗
  7. 3+3ٔ0\64/द९ش३কঝ।ش঒॑੿ॊ੠भএॖথॺ ृढरॉ९ش३কঝ।ش঒৫৅म୔खः ૠெऋপऌऎऩॉऋठ ڀ ॥شॹॕথॢૠ৺ؚઇ୘५य़ش঒ऩनੂ਋भೳੌा੿ॉऋপহ ڀ ইঞش঒ডشॡ॑੿ॉؚੵਯ॑చ੖घॊ ڀ ঽ৿৲दऌॊधऒौमन॒न॒ঽ৿৲ ڀ

    ঀक़ঁक़भુથधؚಢः१ॖॡঝदभ੝ఒ データベースに対する深い理解が必要 ڀ 設計に関する知識 ڀ インデックスなど性能に関する知識 ڀ ロックの挙動に対する知識 ৈ଀෰पິइऩऐोयऩैऩः ڀ ல஘ৢॉपधॉँइङ৿ऎुभमؚસधල౐प੿ोॊ ڀ जोऋઈ৷पິइैोॊऊनअऊऋ୔खः ڀ 事前にそれを保証するのは更に難しい
  8. ଀෰ৌੁपणःथ  జਟभ९ش३কঝ।ش঒धૻຎखञ५ঐشॺইज़থ।ش঒भ્ඉ ੦ম৓पमफ़ছॣش਱ऐऩनेॉमೄऎ੿ोॊ ق3&਱ऐभ)ODVK।ش঒ऩनप੺ः஄ك జਟ ५ঐ঍ 画⾯遷移の度にサーバに ॔ॡ७५ऋ૑ਏ ਏਚਏਚभादेऎؚ

    毎回のサーバアクセスは不要 ঐ५ॱॹشॱऩनम൐৚਄੭ টॢॖথৎपऽधीथ ॡছॖ॔থॺपय़কॵ३গ ુৢঊॵॲ॑൐৚਄੭खथেਛ ુৢঊॵॲम૑ਏऩৎटऐ $3,॑ళ॒दেਛ
  9. ଀෰ৌੁपणःथ  :HE१شংभ଀෰ৌੁ • 3+3の処理を劇的に改善することは難しい • :HE१شংभ଀෰पम઎ਯੜਸदৌૢदऌॊेअप '%१شংभ଀෰ৌੁ • '%५ঞॖঈु઎ਯ॑ੜृघऒधदৌૢ

    • よく⾏われる参照は.96 PHPFDFKHG पऽॎघ ڀ ঐ५ॱథभ૞සम.96ष ڀ जोਰਗभ৖ীमু৑धৼ୥ (更新が多いデータは、クリア忘れのバグに繋がりやすいك • '%ঐ५ॱشमनअखथुॿॵॡपऩॊभदؚ 処理には気を遣う必要が出てくる
  10. ଀෰ৌੁपणःथ  ଀෰૥ୡधਙચ੝ఒपणःथ • नऒऋ೚ःऊ॑खढऊॉཔ඼दऌॊेअपघॊ ڀ ૚$3,毎の速度と利⽤回数を記録できるようにする ڀ ೚ऎथेऎళयोॊق॥५ॺكದऊैॳগشॽথॢखथःऎ •

    ঺৔ॸ५ॺಉदৰ੠भ$3,の利⽤率を調べ試験シナリオを作成 ڀ 試験シナリオ実⾏ツールには-0HWHU॑ઞ৷ ڀ 実際のレコード数をしっかり再現して実⾏すること • ॿॵॡभᆽਚम$3,の利⽤回数⾃体を減らせないか検討 ڀ 速度を೅पखथ$3,利⽤回数を半分にすれば೅भਙચ ڀ ウォーズマン理論を活⽤  • প຅भৃ়मؚॖথॹॵॡ५ध64/ॳগشॽথॢदੰৠ   KWWSGKDWHQDQHMSNH\ZRUGウォーズマン理論  ૞અपऩॊછආ :HEग़থ४ॽ॔भञीभॹشॱঋش५ૼ୒>ৰᄷ@⼊門 技術評論社 松信嘉範⽒著 ਸ਼章でソーシャルゲームにおける実例が書かれている :(%'% 3UHVV 9ROपुऒभછආभ੪धऩॊ੶হँॉ
  11. ऽधी ५ঐ঍९ش३কঝ।ش঒৫৅म੥ଡপ૗ ڀ 規模が⼤きいので⼊念な準備が必要 ڀ Appleभଟਪৌૢपमਔਗपু৑ऋऊऊॊ ڀ ॡছॖ॔থॺधभAPI連携は地味だが労⼒が⼤きい ڀ ి౫ిਚदHTML+JS॑अऽऎઞअऒध

    ृमॉਖ਻धऩॊभम଀෰ৌੁ ڀ ५ॣشঝदऌॊेअपघॊभऋ੦ম ڀ হ৐भ଀෰૥ୡमखढऊॉध ڀ धपऊऎ੦ম॑পহप ऩ॒टऊ॒टद।ش঒৫৅म௫खःदघ ڀ ঽীञठऋ௫खिऒधऋ঳୞পহ
  12. ઔੴ • 3+3カンファレンス北海道を開催します • 年া঩ ଅ ৫ৃ • 北海道産業振興センター セミナールーム$ णःपؚँभ3+3カンファレンスが北海道でも開催されます。

    ੊৔ਗऊै஘رऩૼ୒঻भ্رभ൥౰॑੒৒खथःऽघ؛ ຦஘भ૞ਸ॑उୄठखथउॉऽघآ ਁૄঁॵ३গॱॢ؟ SKSFRQGR پ8VWଦਦु੒৒खथउॉऽघ