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

21
の裏側⾒せます! 健太郎

description

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

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

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

!"#$%"&%'()*+,-%の裏側⾒せます!

!"#"$%$&'()*+,-

!./( 0$12345.3$6789:

!"#$%&'()*+,-.

/01 健太郎

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

!"#$%&'

! !"健太郎

! 1977年⽣まれ! #$%&'#$()

! ke-tai.org 管理⼈! *+,-./01+234567

! 89:;/3<=>?@A+BCD

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

!"#$%('

! 89:;/3<=>?@A+B

! 北海道札幌市のソフトウェア開発会社

! EFGHIJKL+.L/MNOPQ

RS,TUVWX(2009)RYZ0[\@(2010) RLord of Knights(2012)R0/+3]S^/M THE CONQUEST (2012)

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

)*+,-.

_`abcdefgN22+\hihj

!"#⼒がぐんぐんと上昇して$"#%&も⻑くなる

'()*+,-./0123!"#45678

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

/012304356789:;,<

! 城主として混沌の⼤地に降り⽴ち、仲間と⼒を合わせて平和

9:;<=>

! ?@,A;4BCD9EF3GHIJKL,MNOPQRS4

城を制圧し、⼤陸制覇を目指そう。

! ⼈気イラストレーターが描いた美麗キャラクターカードが、

毎⽇無料でTUA7VW/>1BCDXYZ[\]>

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

サーバサイド開発者から⾒た/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/��

�� サーバ当りの利⽤者数を制限できる

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

=>?@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

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

=>?@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Ç

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

=>?@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

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

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��

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

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ìí

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

EFGHIJK=>?=LMNOKPQ(2)!"#$%&'()*+*,JSONで⾏われている

-./012#345%&"!&6789

:;<!"#$%&'=>?7@ABC'D9

例: x, y7POSTE9(FGHI(id'name7JKDLMNNO

!"#$%&PQ=>?P'RG5%&"!&7ST

⾜場となるコードを⾃動⽣成し、実装を⾏う

NNO

@UVW7XYKGZ[D\;]^_

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

!"!#$%&'()*+,-./+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

Ë事前にそれを保証するのは更に難しい

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

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ßÿ

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

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}_

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

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処理には気を遣う必要が出てくる

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

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{|}~�

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

[>\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�}ìþ

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

^,_

! k´!�C���çCè"#�$ºê-

�規模が⼤きいので⼊念な準備が必要

� Apple4%&£¤,�'ã,7�Ghh/�i�¸eÜlõ4API連携は地味だが労⼒が⼤きい�()(*VHTML+JS958z­5Óõ

! ¢�;+ìõ3/4� ¡£í

�k*C�VW/,5,t/4G'(

�,Ê4 ¡-.��Èh;õ

�õ,hz'(9ê,,

! 3Ô/hÔ/VçCè"#�û��Vt

�å�Q0Gû�1ÓõG23ê,

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

`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

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

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