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

リアルタイムゲームサーバー開発技術スタックまとめ

5ca2de489ef7bf99757945f728ef26b0?s=47 pobo380
January 28, 2020

 リアルタイムゲームサーバー開発技術スタックまとめ

5ca2de489ef7bf99757945f728ef26b0?s=128

pobo380

January 28, 2020
Tweet

Transcript

  1. ϦΞϧλΠϜήʔϜαʔόʔ։ൃ ٕज़ελοΫ·ͱΊ DELT#8
 PRESENTER : NODA KOHEI

  2. ͸͡Ίʹ ఆٛ ▸ ϦΞϧλΠϜήʔϜαʔόʔͱ͸ ▸ ⭕ Latency͕ϓϨΠϠʔମݧʹେ͖ؔ͘ΘΔήʔϜ ▸ FPS, TPS

    (Call of Duty, Fortnite) ▸ MOBA (League of Legends, Ԧऀӫ༾) ▸ ❌ Hearthstone, Shadowverse ͷΑ͏ͳίϚϯυܕͷήʔϜ
  3. ͸͡Ίʹ എܠ ▸ ϦΞϧλΠϜήʔϜαʔόʔ։ൃͷͨΊͷαʔϏεɺOSSɺϥ Πηϯειϑτ΢ΣΞ͕ॆ࣮͖ͯͨ͠ ▸ Photon Engine, Monobit Engine

    (MRS, MUN) ▸ AWS GameLift ▸ Agones, Open Match ▸ Etc
  4. None
  5. Կ͕ҧ͏ͷʁ ͲΕΛ࢖͑͹͍͍ʁ

  6. ͸͡Ίʹ ൃදͷ໨త ▸ ͜ΕΒͷιϑτ΢ΣΞɾαʔϏε͸ͦΕͧΕʹΧόʔ͢Δൣғ ͕ҟͳΔɻ ▸ ϦΞϧλΠϜήʔϜαʔόʔ։ൃʹඞཁͳٕज़ελοΫΛఆٛ ͯ͠ɺιϑτ΢ΣΞɾαʔϏε͕Χόʔ͢ΔൣғΛࣔ͢ɻ ▸ ૊Έ߹Θͤ΋঺հɻ

  7. ϦΞϧλΠϜήʔϜαʔόʔ։ൃ ٕज़ελοΫ

  8. Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 GAME LOGIC NETWORKING

    MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT MATCHMAKING DEDICATED GAME SERVER
 (DGS) DGS MANAGEMENT TECHNOLOGY STACKS
  9. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  10. GAME LOGIC PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND Dedicated

    Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS NETWORKING SCHEDULER SERIALIZATION MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  11. DEDICATED GAME SERVER DEDICATED GAME SERVER ▸ ήʔϜλΠτϧ͝ͱʹݻ༗ͷϩδοΫΛ࣋ͭαʔόʔΞϓϦέʔ γϣϯ ▸

    ήʔϜΫϥΠΞϯτͱωοτϫʔΫܦ༝Ͱ௨৴ ▸ 4ͭͷίϯϙʔωϯτ GAME LOGIC NETWORKING SCHEDULER SERIALIZATION
  12. DEDICATED GAME SERVER NETWORKING ▸ ήʔϜΫϥΠΞϯτͱ௨৴͢ΔͨΊͷϓϩτίϧͱͦͷ࣮૷ ▸ ࠶ૹ੍ޚɺϑϩʔ੍ޚɺίωΫγϣϯ؅ཧ ▸ ύέοτͷ෼ׂɺ݁߹

    ▸ ҉߸Խɺॺ໊ GAME LOGIC NETWORKING SCHEDULER SERIALIZATION
  13. DEDICATED GAME SERVER SERIALIZATION / DESERIALIZATION ▸ ΦϒδΣΫτ ⁶ όΠτྻͷ૬ޓม׵Λߦ͏

    ▸ ωοτϫʔΫܦ༝Ͱૹ৴Մೳʹ͢Δ GAME LOGIC NETWORKING SCHEDULER SERIALIZATION
  14. DEDICATED GAME SERVER SCHEDULER ▸ ఆظతʹήʔϜϩδοΫΛݺͼग़͢ॲཧ ▸ ήʔϜΫϥΠΞϯτͰ͍͏ʮήʔϜϧʔϓʯ ▸ 1ϓϩηεͰෳ਺ͷήʔϜΛϗετ͢Δ৔߹ʹಛʹॏཁ

    GAME LOGIC NETWORKING SCHEDULER SERIALIZATION
  15. DEDICATED GAME SERVER GAME LOGIC ▸ λΠτϧݻ༗ͷήʔϜγϛϡϨʔγϣϯ ▸ ෺ཧɺAIɺNavMeshɺͳͲΛؚΉ ▸

    ωοτϫʔΫܦ༝ͰήʔϜΫϥΠΞϯτͱঢ়ଶͷಉظΛߦ͏ GAME LOGIC NETWORKING SCHEDULER SERIALIZATION
  16. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  17. GAME LOGIC PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND Dedicated

    Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS NETWORKING SCHEDULER SERIALIZATION MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  18. MATCHMAKING MATCHMAKING ▸ ϧʔϧʹج͍ͮͯϓϨΠϠʔΛूΊɺϚονΛ࡞੒͢Δ ▸ ϓϨΠϠʔͷ͞·͟·ͳଐੑΛར༻͢Δ ▸ ϨʔςΟϯά ▸ ϩʔϧ

    ▸ ࡞੒ͨ͠ϚονΛ DGS ʹׂΓ౰ͯΔ ▸ 4ͭͷίϯϙʔωϯτ MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  19. MATCHMAKING MATCHMAKING CORE ▸ ϚονϝΠΩϯάͷϦΫΤετΛϓʔϦϯά ▸ ఆظతʹϚονϝΠΩϯάϩδοΫΛݺͼग़͢ MATCHMAKING LOGIC SERVICE

    FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  20. MATCHMAKING MATCHMAKING LOGIC ▸ ϓʔϧ͞ΕͨϚονϝΠΩϯάͷϦΫΤετΛධՁ ▸ ෳ਺ͷϓϨΠϠʔΛҰͭʹ·ͱΊͯϚονΛ࡞੒͢Δ ▸ ྫ) Ϩʔτ͕͍ۙϓϨΠϠʔΛϚονͤ͞Δ

    MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  21. MATCHMAKING DGS ASSIGNMENT ▸ ࡞੒͞ΕͨϚονʹରͯ͠ DGS ΛΞαΠϯ͢Δ ▸ ϓϨΠϠʔͷϨΠςϯγʔ෼෍ͷ࠷దԽ MATCHMAKING

    LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  22. MATCHMAKING SERVICE FRONTEND ▸ MatchmakingΛAPIͱͯ͠ఏڙ͢Δ ▸ APIྫ ▸ ϚονϝΠΩϯάͷϦΫΤετ ▸

    Ϛον࡞੒ΛήʔϜΫϥΠΞϯτʹ௨஌ MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  23. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  24. GAME LOGIC PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND Dedicated

    Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING TECHNOLOGY STACKS NETWORKING SCHEDULER SERIALIZATION MATCHMAKING LOGIC SERVICE FRONTEND MATCHMAKING
 CORE DGS
 ASSIGNMENT
  25. DGS MANAGEMENT DGS MANAGEMENT ▸ DGSͷαʔόʔ܈Λ؅ཧ͢Δ໾ׂ ▸ 6ͭͷίϯϙʔωϯτ PROVISIONING DEPLOYMENT

    AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  26. DGS MANAGEMENT PROVISIONING ▸ ϚγϯϦιʔεΛௐୡ͢Δ ▸ VM ▸ Container ▸

    Bare-metal PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  27. DGS MANAGEMENT DEPLOYMENT ▸ ϚγϯϦιʔεʹରͯ͠DGS ͷ࣮ߦϑΝΠϧ܈Λ഑ஔ͢Δ ▸ όʔδϣϯΞοϓ ▸ ෳ਺όʔδϣϯͷಉ࣌Քಇͷαϙʔτ

    PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  28. DGS MANAGEMENT MONITORING ▸ DGSͷεςʔτΛ؂ࢹ͢Δ ▸ ϔϧενΣοΫ ▸ ϥΠϑαΠΫϧ؅ཧ ▸

    Auto ScalingɺLoad BalancingͷͨΊʹඞཁ PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  29. DGS MANAGEMENT ALLOCATION ▸ ෳ਺ͷ DGS ͔ΒϚονΛ࣮ߦ͢Δ DGS Λܾఆ͢Δ ▸

    ཁ͸ۭ͍ͯΔ DGS Λ୳ͯ͘͠Δ΍ͭ PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  30. DGS MANAGEMENT AUTO SCALING ▸ ઀ଓ਺΍ෛՙঢ়گͳͲʹԠͯ͡ϚγϯϦιʔεΛ૿ݮ͢Δ PROVISIONING DEPLOYMENT AUTO SCALING

    ALLOCATION SERVICE FRONTEND MONITORING
  31. DGS MANAGEMENT SERVICE FRONTEND ▸ DGS Ϋϥελ΁ͷૢ࡞ΛAPIͱͯ͠ఏڙ͢Δ ▸ APIྫ ▸

    ৽͍͠ϚονͷΞϩέʔγϣϯ ▸ ৽͍͠όʔδϣϯͷσϓϩΠ PROVISIONING DEPLOYMENT AUTO SCALING ALLOCATION SERVICE FRONTEND MONITORING
  32. طଘͷιϑτ΢ΣΞɾαʔϏε͕ Χόʔ͢Δٕज़ελοΫ

  33. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING PHOTON ENGINE SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  34. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING MONOBIT ENGINE SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  35. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING AWS GAMELIFT SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  36. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING AGONES SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  37. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING OPENMATCH SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  38. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING UNITY SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  39. GAME LOGIC NETWORKING MATCHMAKING LOGIC SERVICE FRONTEND PROVISIONING DEPLOYMENT AUTO

    SCALING ALLOCATION SERVICE FRONTEND Dedicated Game Server
 (DGS) Matchmaking
 DGS Management
 MONITORING UNITY-DOTS SCHEDULER SERIALIZATION MATCHMAKING
 CORE DGS
 ASSIGNMENT
  40. αϯϓϧΞʔΩςΫνϟ

  41. ORIGINAL (GAME LOGIC) PHOTON (NETWORKING) OPENMATCH Dedicated Game Server
 (DGS)

    Matchmaking
 DGS Management
 PHOTON + OPENMATCH PHOTON (SCHEDULER) PHOTON (SERIALIZATION) PROVISIONING PHOTON
 (DEPLOYMENT) AUTO SCALING PHOTON
 (ALLOCATION) PHOTON
 (SERVICE FRONTEND) PHOTON
 (MONITORING)
  42. ORIGINAL (GAME LOGIC) MUN (NETWORKING) OPENMATCH Dedicated Game Server
 (DGS)

    Matchmaking
 DGS Management
 MONOBIT + OPENMATCH MUN (SCHEDULER) MUN (SERIALIZATION) PROVISIONING MUN
 (DEPLOYMENT) AUTO SCALING MUN
 (ALLOCATION) MUN
 (SERVICE FRONTEND) MUN
 (MONITORING)
  43. UNITY (GAME LOGIC) LITENETLIB (NETWORKING) OPENMATCH Dedicated Game Server
 (DGS)

    Matchmaking
 DGS Management
 UNITY + LITENETLIB + MESSAGEPACK + OPENMATCH + AGONES UNITY (SCHEDULER) AGONES MESSAGEPACK (SERIALIZATION)
  44. ORIGINAL (GAME LOGIC) LITENETLIB (NETWORKING) GAMELIFT Dedicated Game Server
 (DGS)

    Matchmaking
 DGS Management
 LITENETLIB + MESSAGEPACK + GAMELIFT ORIGINAL (SCHEDULER) MESSAGEPACK (SERIALIZATION)
  45. END

  46. APPENDIX

  47. APPENDIX ࢀߟࢿྉ ▸ Proposal: RefCount allocation to host many room

    in same pod ▸ https://github.com/googleforgames/agones/issues/1197 ▸ Amazon GameLift Developer Guide ▸ https://docs.aws.amazon.com/ja_jp/gamelift/latest/developerguide/gamelift- intro.html ▸ Photon : LoadBalancing Application ▸ https://doc.photonengine.com/ja-jp/server/current/applications/loadbalancing/ application ▸ Monobit Engine : MUN 2.0 ͷγεςϜߏ੒ʹ͍ͭͯ ▸ http://www.monobitengine.com/doc/mun/contents/Server/Construction.htm
  48. APPENDIX ࢀߟࢿྉ ▸ Open Match ௒ೖ໳ ▸ https://medium.com/google-cloud-jp/open-match-super101-aaf3e54bd4e7 ▸ Open

    Match Deep Dive ▸ https://www.slideshare.net/HammoudiSamir/open-match-deep-dive ▸ Photon Server Deep Dive ▸ https://www.slideshare.net/neuecc/photon-server-deep-dive- photonwirephotonserver ▸ Unity Real-Time Multiplayer repository ▸ https://github.com/Unity-Technologies/multiplayer