Slide 1

Slide 1 text

ήʔϜͷαʔόαΠυ ΤϯδχΞΛ ΍͍ٕͬͯ͘ज़ @mackee_w a.k.a macopy ԭೄֶੜ×اۀΤϯδχΞ 7݄େLTେձ!!!

Slide 2

Slide 2 text

ࢲͰ͢ w ໘ന๏ਓΧϠοΫ!ח૔ w ιʔγϟϧήʔϜࣄۀ෦ w ήʔϜٕݚ w αʔόαΠυΤϯδχΞ w 1FSM (P +BWB4DSJQU w ઐ໳ w Ϛελσʔλ w 8FC4PDLFU w ϚΠϒʔϜ͸ΩʔϘʔυ࡞Γ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ిࢠج൘Λշదʹ࡞Δ ͨΊͷΩʔϘʔυͷి ࢠج൘Λ࡞Δٕज़ @mackee_w a.k.a macopy ԭೄֶੜ×اۀΤϯδχΞ 7݄େLTେձ!!!

Slide 5

Slide 5 text

͜ͷ࿩Λ΍Δ Ϟνϕʔγϣϯ ήʔϜͷαʔόαΠυ ΤϯδχΞΛ ΍͍ٕͬͯ͘ज़

Slide 6

Slide 6 text

ήʔϜ࡞Γͱݴ͑͹… • ίϯγϡʔϚػ΍PC, εϚϗͰಈ͘ϓϩάϥϜ Λॻ͘ • ֆΛඳ͘෦෼(3D, 2D…) • UI • ϢʔβΠϯλϥΫγϣϯ

Slide 7

Slide 7 text

ݱ୅ͷ(ൺֱతେن໛ͳ) εϚϗήʔϜͷߏ੒

Slide 8

Slide 8 text

ݱ୅ͷ(ൺֱతେن໛ͳ) εϚϗήʔϜͷߏ੒ ͜͜ͷϓϩάϥϜΛ ॻ͘ਓ΋͍Ε͹

Slide 9

Slide 9 text

ݱ୅ͷ(ൺֱతେن໛ͳ) εϚϗήʔϜͷߏ੒ ͜͜ͷϓϩάϥϜΛ ॻ͘ਓ΋ඞཁ

Slide 10

Slide 10 text

ͳͷ͕ͩ ήʔϜΛ࡞Γ͍ͨਓ͸ αʔόαΠυΛ ͋·Γ΍Βͳ͍

Slide 11

Slide 11 text

αʔόαΠυΛ΍Γ͍ͨਓ͸ ήʔϜʹ αʔόαΠυ͕ ඞཁͳ͜ͱΛ ஌Βͳ͍

Slide 12

Slide 12 text

ࠓ΍͍ͬͯΔ࢓ࣄ΍ ࢖͍ͬͯΔٕज़Λ఻͑ͯ ήʔϜͷαʔόαΠυΛ΍ΔਓΛ ૿΍͍ͨ͠ʂʂʂ

Slide 13

Slide 13 text

࢓ࣄ಺༰ΛҰݴͰઆ໌͢Δͱ ήʔϜͷ ηʔϒσʔλΛ ͏·͘ อଘͨ͠Γ औΓग़ͨ͠Γ͢Δ ࢓ࣄ

Slide 14

Slide 14 text

αʔόʹηʔϒσʔλ͕ͨ͘͞Μ

Slide 15

Slide 15 text

ద੾ʹηʔϒσʔλΛબΜͰ ͢͹΍͘ฦ͢

Slide 16

Slide 16 text

Ұൠతͳηʔϒσʔλͱҧ͏఺ • ηʔϒσʔλ͸ଞਓ΋ݟΕΔ৔߹͕͋Δ • ϥϯΩϯά, σοΩߏ੒ etc… • ݟͤͯ͸͍͚ͳ͍΋ͷ΋΋ͪΖΜ͋Δ • อଘ࣌ʹখ೉͍͠ܭࢉΛ͢Δ͜ͱ͕͋Δ • AIతͳͳʹ͔, ԿΒ͔ͷγϛϡϨʔγϣϯͳͲ…

Slide 17

Slide 17 text

ηʔϒσʔλͷϝλϑΝʔʹ ౰ͯ͸·Βͳ͍࿩ • ରઓ(PvP, GvGͳͲ) • ϦΞϧλΠϜ(WebSocketͱ͔RUDPͱ͔) • Ξηοτ഑৴(ը૾ͱ͔Ի੠ͱ͔ಈըͱ͔3D σʔλͱ͔) • ”ߋ৽”΋͔ͳΓ໽հʂʂ(ͦͯ͠໘ന͍

Slide 18

Slide 18 text

αʔό͕ͳ͍ήʔϜͱ͸ͳʹ͔ • Ұਓ༻ήʔϜͷେ൒ • είΞΛڝ͏ͳΒϥϯΩϯάूܭαʔό͕ Ͳ͔͜ʹ͋Δ • ϚϧνͰ΋P2PͳΒαʔό͸͍ͳ͍͜ͱ΋ • গਓ਺Ͱ΍ΔFPS͸P2PͰߦΘΕ͍ͯΔ܏޲

Slide 19

Slide 19 text

͜Ε͸ੲ࿩Ͱ͕͢ • CGIήʔϜʙΨϥέʔͷιγϟήʔ࣌୅͸WebαʔϏεͱ࡞ Γ͸΄ͱΜͲҰॹͩͬͨ • ΍ͨΒσʔλͷॻ͖ࠐΈ/มߋ͕ଟ͍WebαʔϏε • GET/POSTΛड͚ͯHTMLΛు͘ • εϚϗήʔʹͳͬͯAPIΛఏڙ͢Δଘࡏʹͳͬͨ • SPA࣌୅ʹͳͬͯϞμϯͳWebαʔϏε΋ͦ͏ͳ͍ͬͯΔ

Slide 20

Slide 20 text

WebαʔϏεͱήʔϜͷҧ͍ • ΍ͨΒσʔλॻ͖ࠐΈ/มߋ͕ଟ͍ • ηʔϒσʔλͷมߋ͕ৗʹى͍ͬͯ͜Δ • ଺ࡏ͕࣌ؒ௕͍ • Ӭଓ઀ଓ, ཪͰճΔόονͷଟ͞ • Ϛελσʔλͷଘࡏ • 1req͋ͨΓʹՔ͙͓͕ۚଟ͍ • ࣮૷มߋͰڍಈ͕ίϩίϩมΘΔ

Slide 21

Slide 21 text

σϓϩΠ΢Οϯυ΢ • 1೔4ճৗʹશϢʔβࢀՃͷΠϕϯτతͳ΋ͷ͕ ճΔήʔϜ • σϓϩΠ(࣮૷ͷຊ൪؀ڥ΁ͷ൓ө)͕ߦ͑Δ࣌ ͕ؒͦͷ伱͔ؒ͠ແ͍ -> σϓϩΠ΢Οϯυ΢ • ʮσϓϩΠ΢Οϯυ΢ͳΜͯ΋ͷ͸ଞͷWeb αʔϏεʹ͸ͳ͍ʯ

Slide 22

Slide 22 text

ήʔϜͷαʔόαΠυ͸ ͋ΒΏΔܭࢉػՊֶͷ஌ࣝΛཁٻ͢Δ • ηʔϒσʔλ • σʔλߏ଄, ݕࡧ, ΞϧΰϦζϜ • γϛϡϨʔγϣϯ • εςʔτϚγϯ, ήʔϜAI, VM • Πϯϑϥ • ෼ࢄγεςϜ, ฒߦॲཧ

Slide 23

Slide 23 text

΋ͪΖΜαʔόͰ΋ ήʔϜతͳίʔυ΋ॻ͖·͢ • ͍͍ײ͡ͷରઓϚονϯάͱ͔ • ήʔϜAI(CPU)ॻ͘ͱ͔ • ໺ٿ൫γϛϡϨʔγϣϯΈ͍ͨͳͷॻ͘ͱ͔ • ݕࢉͷͨΊΫϥΠΞϯτͱαʔόͰಉ͡ϩδοΫ Λ࣮૷͢Δ͜ͱ΋ • νʔτݕ஌ͱ͔΋͠·͢

Slide 24

Slide 24 text

Θ͔Γ·͔ͨ͠ʁʁʁʁ

Slide 25

Slide 25 text

͡Ό͓͋લ͸࠷ۙԿ΍ͬͯΔΜͩ • ڊେεϓϨουγʔτΛߦ͝ͱʹόʔδϣϯ ؅ཧͯ͠ɺ͍͍ײ͡ʹߦΛൈ͖ग़ͯ͠CSV΍ JSONʹ͢Δ܅Λ࡞ͬͯ·ͨ͠ •Ϛελσʔλ

Slide 26

Slide 26 text

Ϛελσʔλͱ͸ • ήʔϜͷύϥϝʔλ΍ઃఆ, εςʔδ಺ͷ഑ஔͱ͔ͦ ͏͍͏ͷΛॾʑؚΊͨ෺Λࢦ͢ • ϓϩάϥϜ಺ʹॻ͍ͯΔͱɺϓϩάϥϚҎ֎͕มߋ Ͱ͖ͳ͍ͷͰ֎ʹग़͓ͯ͘͠ • ΧϠοΫͰ͸GoogleεϓϨουγʔτΛ࢖༻ͯ͠ه ड़͠ɺDBʹೖΕͨΓJSONʹͯ͠ຊ൪Ͱར༻͍ͯ͠ Δ 200γʔτҎ্͋ΔϓϩδΣΫτ΋

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

ͦΕαʔόͷ࢓ࣄͳͷʁ

Slide 29

Slide 29 text

Ϛελσʔλͷ൓ө • ि1ͰΠϕϯτͱ͔Ψνϟ΍ͬͯΔͱͦͷස౓ Ͱຊ൪൓ө͕ඞཁ • ͦͷຊ൪൓өͱ͸Ϛελσʔλͷ൓өΛࢦ͠ ·͢ • Ϛελσʔλ͸αʔόαΠυΤϯδχΞ͕ ΍ͬͯ·͢

Slide 30

Slide 30 text

ͱ͍͏Θ͚Ͱ Ϛελσʔλͷੈքฏ࿨΋ αʔόαΠυΤϯδχΞͷ ࢓ࣄͱ͍͏͜ͱʹͳ͍ͬͯΔ

Slide 31

Slide 31 text

σϓϩΠʹࢸΔ·Ͱͷ ϫʔΫϑϩʔ • σϓϩΠ(ຊ൪൓ө)ʹ͸Ϛελσʔλͷଞʹɺιʔ είʔυ΍ΫϥΠΞϯτ͕ಡΉΞηοτ͕ཁΔ • Ϛελσʔλ͸ϨϕϧσβΠφʔ͕࡞Δ͠Ξηο τ͸σβΠφʔ&ΫϥΠΞϯτͷਓ͕࡞Δ͠… • ෼ۀ͍ͯ͠Δ͔Β͍͍ײ͡ʹϫʔΫϑϩʔ࡞Βͳ ͍ͱճΒͳ͍YOʂ

Slide 32

Slide 32 text

ճΒͳ͍݁Ռ σϓϩΠ͢ΔαʔόαΠυͷ ट͕క·ΔͷͰ ࠷ۙ͸ϫʔΫϑϩʔ੔උ΋΍ͬͯ ͍Δ

Slide 33

Slide 33 text

ίʔυͷྗͰϫʔΫϑϩʔΛ εϜʔζʹ͢Δ • Ϛελσʔλͷੜ੒ΛBotʹ΍ΒͤΔ • αʔόΤϯδχΞͷखΛ࢖Θͣʹࣗݾ׬݁Խ • SlackͷBot͕࣍ʹ΍Δ΂͖͜ͱΛݴ͏ • มߋ಺༰ʹԠͨ͡൓өखॱͷࣗಈੜ੒

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

΍͍ͬͯΔ͜ͱͨ͘͞Μ͋Δʂʂ Ͱ͖Δ͜ͱ΋ͨ͘͞Μ͋Δʂʂʂ • ௚ۙͷ࢓ࣄ͸Jenkins͔ΒCircleCIʹςετίʔυͷࣗಈ࣮ ߦ؀ڥΛҠߦ͢Δ͜ͱͩͬͨΓ • ࠷ۙͷτϐοΫ͸ຊ൪؀ڥΛίϯςφʹ͢Δ͜ͱͩͬͨΓ • ϨΨγʔΛϞομϯʹ͢Δ࢓ࣄ͸ৗʹ΍͍ͬͯΔ • ISUCONతͳνϡʔχϯά΋࠷ۙͨ͠ • ෼ࢄτϨʔγϯά(AWS X-Ray)Λ࢖ͬͯ໰୊ಛఆΛͨ͠

Slide 36

Slide 36 text

ࠓΞπ͍ٕज़ ෼ࢄτϨʔγϯά

Slide 37

Slide 37 text

ݱ୅ͷΠϯϑϥߏ੒ SFRʹؔΘΔ ίϯϙʔωϯτ͕ଟ͍ʂʂʂ

Slide 38

Slide 38 text

ίϯϙʔωϯτ͕ଟ͍ͱ…ʁ • ໰୊͕ىͬͨ͜ͱ͖ͷͨΊʹ֤ʑͷίϯϙʔ ωϯτ͕ϩάΛు͍͍ͯΔ • ֤ʑࣗ༝ʹు͍͍ͯΔͷͰɺͲͷϩάు͍ͨ ͋ͱʹͲΕ͕ు͔Ε͔ͨ͜Μ͕Β͕Δ • ࣌ܥྻʹฒ΂ͯ΋ෳ਺୆͍Δ͠ωοτϫʔ Ϋ஗ԆͰॱ൪ೖΕସΘͬͨΓ…

Slide 39

Slide 39 text

AWS X-RayΛ࢖ͬͯϧʔϓΫΤϦ Λݟ͚ͭΔ

Slide 40

Slide 40 text

X-RayೖΕΔ ͖͔͚ͬʹͳͬͨࣄ݅

Slide 41

Slide 41 text

ωοτϫʔΫαν͍ͬͯΔࣄ݅ w 8FC4PDLFUͷ઀ଓΛઐ໳తʹ͞͹͘LVJQFSCFMU ͱ͍͏ϛυϧ΢ΣΞΛ࢖͏ΞϓϦ͕͋ͬͯ w ϦϦʔεલͷෛՙࢼݧͰɺ͋ΔҰఆͷෛՙΛ͔͚Δ ͱҰؾʹΞϓϦશମͷੑೳ͕ѱ͘ͳΔ w "QQ΍%#΍LVJQFSCFMUͷ$16͸٧·͍ͬͯΔ༷ ࢠ͕ͳ͍ɻ͔͠΋Ұؾʹ٧·Δɻͳͥʁ

Slide 42

Slide 42 text

ωοτϫʔΫαν͍ͬͯΔࣄ݅ w ϩάಥͬࠐΈ·ͬͯ͘Ͳ͕͜ϘτϧωοΫ͔Λௐ΂ Δ w ͢ΔͱɺLVJQFSCFMU΁ͷ"1*ΞΫηε͕ඵͱ͔ ඵͱ͔ඵͱ͔͔͔͍ͬͯΔ৔߹͕͋ͬͯɺͦ͜ Ͱ٧·͍ͬͯΔΑ͏ͩͬͨ w LVJQFSCFMU͸$16ͥΜͥΜ࢖ͬͯͳ͍ͷʹʜΤ ϥʔϩά΋ग़ͯͳ͍Α

Slide 43

Slide 43 text

ωοτϫʔΫαν͍ͬͯΔࣄ݅ w ໰୊͸ωοτϫʔΫͷύέοτͷεϧʔϓοτ͕Π ϯελϯεͷݶքΛ௒͍͑ͯͯɺωοτϫʔΫΠϯ λʔϑΣΠεͰυϩοϓ͢Δ͔Β্ͷ5$1ͷϨΠ ϠʔͰ࠶ૹ͕ىͬͯ͜஗Ԇͱ͍͏హ຤ͩͬͨ w ΠϯελϯεαΠζ͸$16΍ϝϞϦͰܾΊ͍ͯͨ ͚ΕͲɺωοτϫʔΫੑೳ΋େࣄʜ

Slide 44

Slide 44 text

࢖͏ଆड͚Δଆʹ͸༨༟͕͋Δ͕ ౔؅͕ഁ྾͢Δྫ

Slide 45

Slide 45 text

ͦΜͳΘ͚Ͱ ήʔϜͷαʔόαΠυ ໘നͦ͏ͱࢥͬͯ͘Ε·͔ͨ͠ʁ

Slide 46

Slide 46 text

Ҏ্ʂ

Slide 47

Slide 47 text

૝ఆFAQ • ։ൃͱӡ༻ ӡ༻ͬͯͭ·Βͳ͘ͳ͍ʁ • νʔϜਓ਺ͲΕҐͳΜͰ͔͢ • ࢖͍ͬͯΔݴޠͱ͔ GitHubͱ͔Slackͱ͔ • αʔόͱΫϥΠΞϯτֻ͚࣋ͪ͢Δਓ͸͍Δʁ • αʔόϨε΍mBaaSͷ࿩ ϩάूܭج൫