lord of knights の裏側見せます!php+mysqlで作るスマートフォンゲーム開発
DESCRIPTION
2012年4月10日に行われたイベント エンジニアカフェ×Aiming Lord of Knights の裏側見せます! ~Unity + PHP + MySQL で作るスマートフォンゲーム開発~ で使われた資料です。TRANSCRIPT
!"#$%"&%'()*+,-%の裏側⾒せます!
!"#"$%$&'()*+,-
!./( 0$12345.3$6789:
!"#$%&'()*+,-.
/01 健太郎
!"#$%&'
! !"健太郎
! 1977年⽣まれ! #$%&'#$()
! ke-tai.org 管理⼈! *+,-./01+234567
! 89:;/3<=>?@A+BCD
!"#$%('
! 89:;/3<=>?@A+B
! 北海道札幌市のソフトウェア開発会社
! EFGHIJKL+.L/MNOPQ
RS,TUVWX(2009)RYZ0[\@(2010) RLord of Knights(2012)R0/+3]S^/M THE CONQUEST (2012)
)*+,-.
_`abcdefgN22+\hihj
!"#⼒がぐんぐんと上昇して$"#%&も⻑くなる
'()*+,-./0123!"#45678
/012304356789:;,<
! 城主として混沌の⼤地に降り⽴ち、仲間と⼒を合わせて平和
9:;<=>
! ?@,A;4BCD9EF3GHIJKL,MNOPQRS4
城を制圧し、⼤陸制覇を目指そう。
! ⼈気イラストレーターが描いた美麗キャラクターカードが、
毎⽇無料でTUA7VW/>1BCDXYZ[\]>
サーバサイド開発者から⾒た/012304356789:;
! klkBm4,n
^_`a"b(cd)efghH4gijkl9mnIopqr9stubv
^w`axyzgijkl9mn{|}~9stubv
^T`a建築や戦闘などを処理するバッチ処理
! opqrstuvKwxy-z{
^_`a�C�����G�z�C��V4�.;G��
�� �C���V4��������
^w`a�C�DV�C�9�nHP/��
�� サーバ当りの利⽤者数を制限できる
=>?@A%&'
The Internet
!"#
$%&'(
)))))) !!!!!! !!!!!! ))))))
"#$%&"#$%&
'()*#+$,-'()*#+$,- '()+.#/,'()+.#/, '()+.#/,'()+.#/,$%&'*
"#$%&"#$%&
'()*#+$,-'()*#+$,- '()+.#/,'()+.#/, '()+.#/,'()+.#/,
01.2#301.2#3
!"#!"#!"#!"#$%&'()*$%&'()*$%&'()*$%&'()*
4567845678
9:';<9#+$,-9:';<9#+$,-
!"#$%&!"#$%&
=>$?@AB?=>$?@AB?!"#$%&'(!"#$%&'(
CDEFGHIJ7KCLHMN78J7KCOPQJ7KCR#%$>
CSTUV45C9:';<WXY
C*,*%#%&,3C%-2Z
'()*'()*
>Z[-#>Z[-#CN\J7KC9:';<X]7^9:<_`]M?a7bcd
9:<_`]M?a7bcd 9:<_`]M?a7bcd
)))))) ))))))
C*,*%#%&,3C%-2Z
=>?@A%('
• �}qアプリクラウドを利⽤� i��D34V�3 ¡¢�C�D[\,X£¤
� ~¥¢&¦&§"��}qアプリクラウド標準のものを利⽤
• ¨¨¨�C��u+¦&()©b{bª«T¬9®�I¯�C�D°®• ±¥�}²p³~ª«ª¬4´kµC¶k·¸¹º»• ¼½�%¾²¾*c¿V_�C�,ÀÁ�ÂÕ デプロイは専⽤⾃作シェルスクリプトで実⾏ÄÅÆ2,�%¾²d&Ç
• }²p³~ }{uを利⽤した⾃動フェイルオーバー• }²±rp9ÈQÉÊËÌÄÍÎCÏVÐ�zÇ
=>?@A%B'
}²±rp9ÈQÉÊËÌ
� ÑÒ3(c¾§¾管理から解放される
� }²p³~で管理が楽
ÓÔ3®Õ,ÈF�/
! Öf¼¸×�C�4ÌØ
� ¨¨¨�C�4[\3Ù,XÚÛ,£¤
! ±¥k·¸¹4��ÜD¼ÝÜ
� efgÞG�Üf�,
! ±¥スレイブの参照率調整
� サーバの負荷に応じて参照率を調整できる
� ±¥�ßießfà,áâhHã�Fä.ÈQHåæV<t
!"# $%&'()*+,-./0 1'23.456%78$9:;<=>?@AB(CD
EFFG#@@HIJ%KLM%NOG@PQFLHR%@J%FPLR@STUT
CD
!"
! #$%&'()*+,-./0!"
! 1#2+,-.!"3$4567'89:;7<=>
! 1#2$4!"
?@
! ABCDEFGHIJ)-KLM.N)O5PQR
! STUVWXYZ[\]^_K`aab_cdefghij
! klIm1n)*opqgrsKtuvwxyZz{ZxX|}~`_K
p����[vwxVWX1n)*ghij
! a�_K���X����<��<56�n��.��?@mK��
9�!"�)�&g���)*�)��I��
EFGHIJK=>?=LMNOKPQ(1)� ¡¢£.¤c
! �)¥�5¦mKPHP+MySQLXWeb1#2N)§¨6©.ª.K�«¬<=.®ª©.bb0¯°±
! ただし設計や共通部などの制作には、知識と経験が必要
! HTML,)&.²n³´µ)¶I·¸±£KAPI@¹Cº».a¼½¾<¿�CÀR<±
ÁÂj¸ÃÄÅ
! Æn516*CD±¯i£cÇÈÉ7mÊi<c
ËÌÍ.ÎϪD}K�_ÐÑÒ±ÓÔI
ËÕ5ÖײØÙIÚ�ÛiÜKHTML5 + JS<=XÉ7gÝÊ! Æn516*£�)¥I~�_È¿�j±Ú£XK
³Þ)O)�Þ)-<ßàáâ-IãR<±
Ë1äå5-£mæçCècé~ª
! Apple.êëCìí
EFGHIJK=>?=LMNOKPQ(2)!"#$%&'()*+*,JSONで⾏われている
-./012#345%&"!&6789
:;<!"#$%&'=>?7@ABC'D9
例: x, y7POSTE9(FGHI(id'name7JKDLMNNO
!"#$%&PQ=>?P'RG5%&"!&7ST
⾜場となるコードを⾃動⽣成し、実装を⾏う
NNO
@UVW7XYKGZ[D\;]^_
!"!#$%&'()*+,-./+0123456789
'Çî}ï)§å-µ)¶ßàmð_c
! ñòCìÃR<}Có
Ëô)â×64ñõKö÷&ø)¶<=ùú.ûüý¿}Cìþ
Ë�+)¶ÿ)Æg¿}KÉ7gÝÊj±
Ë!�"Xñ£ÚÐm=#=#!�"
Ë$³%³.&'£K(c�5Æ-X.)*
! データベースに対する深い理解が必要
Ë設計に関する知識
Ëインデックスなど性能に関する知識
Ëロックの挙動に対する知識
! +,-I.Ò<`EF<i<c
Ë/01}I£}DÒÜ�Rª.mK2£3�I¿E±
Ë©EC4oI.ÒiE±¯=�¯Cð_c
Ë事前にそれを保証するのは更に難しい
RSTUVWXY%&'
�C���çCèéê4ëìG ¡£í
! gijklîG�zISQLX�zFïð! ランキング⼊りなど急激な利⽤者増がある
¡,£�FÚÛ,£¤VW/ñò9
! 負荷試験は⾏うが、完全に負荷を読むことは難しい
! �C�4óî9ô¢tÓõV ¡9ö÷VW/øù,
çCè4��úIûVW/Æ�X
! �C�DV�hP/µ¸f4çCè4QüI
利⽤上限を設定できる
! k´ClýþÜ34Vi�¸eÜlÞGgßÿ
RSTUVWXY%('
!"4�C���çCèõ#$�Qk´ClýþÜçCè4%&
'(2,�)�*C+n3Ù,;�-z.P/
Äb/+n40*¦¾(çCè3Ù,1�2Ç
!" #$%
画⾯遷移の度にサーバに
$!`a<bc
cdcd(eFfgG
毎回のサーバアクセスは不要
haij>iDk,lm+n op#%qT-'rs
!"#$%&Ttuvwx
yz{v|7lm+nKs}_ yz{v|,bcDq~\
���7��F}_
RSTUVWXY%B'
3)4�C�4 ¡£í
• b{bの処理を劇的に改善することは難しい• 3)4�C�4 ¡,�óîô\V£¤VW/,5,
±¥�C�4 ¡£í
• ±¥k·¸¹Xóî9ô¢tÓõV£¤• よく⾏われる参照は6!p^#)#&¦&()7`,8.t� ´kµ94áâ�6!p:
� ;P<ã4Æ��7�õ=>
(更新が多いデータは、クリア忘れのバグに繋がりやすいÇ
• ±¥´kµC�Ù5�FX?ßi,3/4VI処理には気を遣う必要が出てくる
RSTUVWXY%Z'
!"#$%&'()*+,-
• ./01,234526789:;<=*>;? @ABC毎の速度と利⽤回数を記録できるようにする
? 1D-<DEFG;HIJKLM2NOPQRST4-,D
• UVWJKX9YZ[ABCの利⽤率を調べ試験シナリオを作成? 試験シナリオ実⾏ツールには\]^_^`3ab
? 実際のレコード数をしっかり再現して実⾏すること
• cde[fghABCの利⽤回数⾃体を減らせないか検討? 速度をij*4-ABC利⽤回数を半分にすればkj[&'
? ウォーズマン理論を活⽤ lm
• no[pqhrsStdeJ%uvwOPQRST9xy li
VS EFFG#@@JNEPF%MPNM%NOG@W%XYIQJ@ウォーズマン理論
VZ !".[5\]
6%7^_`ab(cd(efghf;ijklmn⼊門 技術評論社 松信嘉範⽒著
oSZ章でソーシャルゲームにおける実例が書かれている
p6q9r$9s3Q%ttsuIRNvT.wx(\](yz[5{|}~�
[>\C]VWXY
! 9úIª�±C45¯i&O)*_È6785Ric.»8! 2)9)g:;I�n<*<=)¶>?
!PHP#$4n"#2)9)!$!15PHP#$4n"!!!!!!$!35DB%6ä&1&データ管理!$!15Ö&*'4o!!!!!!!$!15⾒習いプログラマ!!!!!$!1539úCR±£()>
56�n%6ä&1!!!!$!153*#$ä+Æ*£#,>
! 仕事の進⾏は、ほぼSkype=å<*X! -../0
! 1I�2.=)¶l)*0334}¯Ò}>
! 1I�2.Æn516*=)¶£.�â503
! 6_#X/þgj±Ú£C7�}ìþ
^,_
! k´!�C���çCè"#�$ºê-
�規模が⼤きいので⼊念な準備が必要
� Apple4%&£¤,�'ã,7�Ghh/�i�¸eÜlõ4API連携は地味だが労⼒が⼤きい�()(*VHTML+JS958z5Óõ
! ¢�;+ìõ3/4� ¡£í
�k*C�VW/,5,t/4G'(
�,Ê4 ¡-.��Èh;õ
�õ,hz'(9ê,,
! 3Ô/hÔ/VçCè"#�û��Vt
�å�Q0Gû�1ÓõG23ê,
`a
• klkカンファレンス北海道を開催します• |}~|年��|~`����~}�}}E�• 北海道産業振興センター セミナールーム�
S�,I44b{bカンファレンスが北海道でも開催されます。
5ÅãhH�Z367849Z4:;9<Ø�F�8t=
>�4á\9??0�F?;8t>
@ABß�Cµ½DE+(+&cd7c
FG¾§NHX<Ø�F?;8t
bcde
IAJK¸ÜýLMßl�CfV�jÜÏMe9NÀ�F�8t
! 社⻑も含めほぼ全てがプログラマで技術者に優しい環境
! OPQ'北海道札幌市
! ?���RST�ÈU�IåV�ÈU�IWXY3�IZ��
! 短い通勤時間、⾃転⾞で通勤_[�õhX��
! GµCÜIvµCÜê\]
! b{b"#jÜÏMe
! k´!"#jÜÏMe
! }²p³~jÜÏMe
! ¸Üý�jÜÏMe