IOゲームを作る時に考えたゲームデザインの話 / Game design for IO game

3009eedce0d0f7ae45987a7bd8f57b85?s=47 Nakaji Kohki
November 20, 2019

IOゲームを作る時に考えたゲームデザインの話 / Game design for IO game

2019.11.20に行われたGotanda.unity #14 での発表資料です。

Gotanda.unity #14 - Unity Meetup
https://meetup.unity3d.jp/jp/events/1174

Twitter: https://twitter.com/nkjzm

3009eedce0d0f7ae45987a7bd8f57b85?s=128

Nakaji Kohki

November 20, 2019
Tweet

Transcript

  1. 1 IOήʔϜΛ࡞Δ࣌ʹߟ͑ͨ ήʔϜσβΠϯͷ࿩

  2. 2 • ࡞ͬͨήʔϜͷ঺հ • IOήʔϜΛ࡞ͬͯಘͨ஌ݟ • NPC͔Β։ൃͨ͠ํ͕ྑ͍2ͭͷཧ༝ • ௒Ի೾ͷήʔϜσβΠϯ •

    ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ • ్தࢀՃ͕Ͱ͖Δ࢓૊Έ • ML Agentsͷ঺հ IOήʔϜΛ࡞Δ࣌ʹߟ͑ͨήʔϜσβΠϯͷ࿩
  3. 3 “IOήʔϜ” ͬͯ஌ͬͯ·͔͢ʁ

  4. 4 • ϒϥ΢βൃ঵ͷΦϯϥΠϯήʔϜͷδϟϯϧ • େਓ਺ͷϢʔβʔ͕ڝ͍߹͏ήʔϜ • εςʔλε͕ຖճϦηοτ͞ΕΔΧδϡΞϧ͞ IOήʔϜ ͱ͸

  5. 5 Nakaji Kohki / ϦϦΧͪΌΜ ೔ຊόʔνϟϧϦΞϦςΟֶձೝఆ VRٕज़ऀ ΞϛϡʔζϝϯτϝσΟΞ૯߹ֶӃ ήʔϜϓϩάϥϚʔֶՊ VRઐ߈

    ߨࢣ Twitter: @nkjzm ஶॻ: ٕज़ධ࿦ࣾʰVRΤϯδχΞཆ੒ಡຊʱڞஶ ࡞඼: ʰCrevasseʱʰࢸۙڑ཭ΨʔϧVRʱ #roppongiunity #VRMษڧձ 5 NullReferenceException: Object reference not set to an instance object at JobMgr.Update () [0x00 in /Projects/Life/JobMgr.cs:334
  6. 6 • UnityΛ࢖ͬͯ1िؒͰ ήʔϜΛ࡞ΔΠϕϯτ • ࠷ۙ͸300࡞඼લޙ͕లࣔ • ࠓճͷςʔϚ͸ʮ͕͢͞ʯ ͖͔͚ͬ

  7. 7 • ʰ௒Ի೾ʱΛ࢖ͬͯ • ਐΉಓΛʮ୳͢ʯ • ఢΛʮ୳͢ʯ • જΉΞΫγϣϯ •

    ߈ܸલͷνϟʔδத͸ ௒Ի೾͕Ͱͳ͘ͳΔ • νϟʔδ͠ऴΘΔͱ ৔ॴ͕όϨΔ ࡞ͬͨήʔϜʰBat.ioʱ
  8. 8 • ʮ୳͢ʯʮӅΕΔʯͷ໘ന͞ • ৺ཧઓɾಡΈ߹͍ • ର౳ͳཱ৔ͰউͯΔͱؾ͍͍࣋ͪ • VirtualͳΦϯϥΠϯήʔϜମݧ •

    ຊਓ͕ͦ͏ࢥ͑ͨΒͦΕͰ͍͍ • ࢥ͍ࠐΜͰ͘Εͨਓͷը૾ΛషΔ IOήʔϜʹͨ͠ཧ༝
  9. 9 • ࡞ͬͨήʔϜͷ঺հ • IOήʔϜΛ࡞ͬͯಘͨ஌ݟ • NPC͔Β։ൃͨ͠ํ͕ྑ͍2ͭͷཧ༝ • ௒Ի೾ͷήʔϜσβΠϯ •

    ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ • ్தࢀՃ͕Ͱ͖Δ࢓૊Έ • ML Agentsͷ঺հ IOήʔϜΛ࡞Δ࣌ʹߟ͑ͨήʔϜσβΠϯͷ࿩
  10. 10 • ΦϯϥΠϯήʔ͸ৗʹਓ͕͍Δ͜ͱ͕େ੾ • ಉ࣌ʹ10ਓલޙ͕ৗʹ͍Δঢ়ଶ͸೉͍͠ • ໘ന͞ͷຊ࣭͸ʮରઓ͍ͯ͠Δײʯ • ೖྗपΓͷΠϯλʔϑΣʔε៉ྷʹͳΔ •

    ΩϟϥΫλʔΫϥε͕ʮਓؒʯͱʮNPCʯ͔ΒೖྗΛड͚औΔ • → ґଘͨ͠࡞ΓʹͳΓͮΒ͍ • → ޙͷΦϯϥΠϯରԠʹ΋ NPC͔Β։ൃͨ͠ํ͕ྑ͍2ͭͷཧ༝
  11. 11 • CPU͕ର౳Ͱެฏͳཱ৔ • ϓϥΠϠʔͱಉ͡৘ใΛݩʹߦಈ • ਐΊͦ͏ͳํʹʮਐΉʯ • ۙ͘Ͱ௒Ի೾ΛݟͨΒʮ߈ܸͯ͠ΈΔʯ →

    γϯϓϧͳೖྗͱ૬·ͬͯਓؒͱ۠ผ͕͔ͭͳ͍ • ϥΠϯΩϯάͰ੝Γ্͛ԋग़ ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ
  12. 12 • ϥΠϯΩϯάͰ੝Γ্͛ԋग़ • ϝΠϯը໘͕஍ຯͳ໰୊΋গ͠վળ ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ ←ίϨ

  13. 13 • ۙ͘ʹ͍Δָ͕͍࣌͠ͷͰɺ ૣ͖͍ۙͮͨ͘ • ֎ଆʹ͍͘ͱݮਰ͍ͯ͘͠ੑ࣭ • ԕ͔͘Βͩͱ… େମͷํ޲͚ͩΘ͔Δ •

    ۙͮ͘ͱ… ਖ਼֬ͳҐஔ͕Θ͔Δ • NPC͸ϓϥΠϠʔҐஔΛ஌͍ͬͯΔ ௒Ի೾ͷήʔϜσβΠϯ
  14. 14 • ֎ଆʹ͍͘ͱݮਰ͍ͯ͘͠ੑ࣭ • ԕ͔͘Βͩͱ… େମͷํ޲͚ͩΘ͔Δ • ۙͮ͘ͱ… ਖ਼֬ͳҐஔ͕Θ͔Δ •

    NPC͸ϓϥΠϠʔҐஔΛ஌͍ͬͯΔ • ԕ͘ͷ࣌: ͖ۙͮ΍͍͢ • ۙ͘ͷ࣌: ߈ܸʹ੾Γସ͑ → ެฏ͞ΛࣦΘͣϓϨΠମݧ͕޲্ ௒Ի೾ͷήʔϜσβΠϯ
  15. 15 • IOήʔϜ͸్தࢀՃ͕Ͱ͖ΔήʔϜγεςϜ͕ଟ͍ • ͦΕΛ౗ͤΔՄೳੑ͕͋ΔԼࠀ্ײ • Bat.ioೖࣨ࣌ʹҰఆ਺ʹͳΔΑ͏ʹCPUΛ௥Ճ͍ͯ͠Δ • Photon͸࡞ͬͨਓ͕OwnershipΛ͍࣋ͬͯΔ •

    →ͦͷਓ͕ࢮ͵ͱNPC΋શ෦ফ͑Δ • photonView.RequestOwnership() • ͏·͘Ͱ͖ͯͳ͍ͷͰڭ͑ͯཉ͍͠() ్தࢀՃ͕Ͱ͖Δ࢓૊Έ
  16. 16 ຊདྷ΍Ζ͏ͱ͍ͯͨ͜͠ͱ • NPCΛAIʹग़དྷͨΒ೤͍ʂ • ֶशͷͤ͞ํͰ৭ʑͳੑ֨Λ࣋ͨͤΒΕΔ͸ͣʂʂ ͔͜͜Β͸ໝ૝ͷ࿩

  17. 17 • ࡞ͬͨήʔϜͷ঺հ • IOήʔϜΛ࡞ͬͯಘͨ஌ݟ • NPC͔Β։ൃͨ͠ํ͕ྑ͍2ͭͷཧ༝ • ௒Ի೾ͷήʔϜσβΠϯ •

    ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ • ్தࢀՃ͕Ͱ͖Δ࢓૊Έ • ML Agentsͷ঺հ IOήʔϜΛ࡞Δ࣌ʹߟ͑ͨήʔϜσβΠϯͷ࿩
  18. 18 • Unity͕ఏڙ͢ΔڧԽֶश༻ͷϥΠϒϥϦ • Tensor Flowϕʔε • ML-Agents Beta 0.11.0

    (2019/11/20࣌఺) • ΊͪΌΊͪΌ؆୯ʹͳ͍ͬͯͯ͢͝ • ΫϥεϓϥοτϑΥʔϜରԠ(Β͍͠) ML Agentsͷ঺հ
  19. 19 • ΫϥεϓϥοτϑΥʔϜରԠ(Β͍͠) ML Agentsͷ঺հ

  20. 20 • Academy • શମͷ؅ཧ • ڞ༗ύϥϝʔλ΋࣋ͭ΋ͷ • Agent •

    ݸʑͷΤʔδΣϯτͷinput΍ϥΠϑαΠΫϧঢ়ଶ؅ཧΛѻ͏ • ใु΍േΛઃఆ ࡞੒͢ΔScript͸2͚ͭͩ
  21. 21 • ग़ྗ (ֶशͷख͕͔Γ) • ஋ܕΛద౰ʹ౤͛Ε͹OK • Vector3΋౤͛ΒΕΔ • ೖྗ

    (AIͷߦಈ) • float഑ྻ • [-1, 1]Ͱ ਖ਼نԽ͞Εͨ஋͕ड͚औΕΔ • Heuristic() Ͳ͏΍ֶͬͯश͢Δ͔
  22. 22 • ࡞ͬͨήʔϜͷ঺հ • IOήʔϜΛ࡞ͬͯಘͨ஌ݟ • NPC͔Β։ൃͨ͠ํ͕ྑ͍2ͭͷཧ༝ • ௒Ի೾ͷήʔϜσβΠϯ •

    ٙࣅΦϯϥΠϯήʔϜͷσβΠϯ • ్தࢀՃ͕Ͱ͖Δ࢓૊Έ • ML Agentsͷ঺հ IOήʔϜΛ࡞Δ࣌ʹߟ͑ͨήʔϜσβΠϯͷ࿩
  23. 23 • ೔࣌: 12/19(໦) 19:30~ • ৔ॴɿ Daiwaौ୩εΫΤΞ • ಺༰:

    LT x8࿮ + ࠙਌ձ & లࣔ ਃ͠ࠐΈ։࢝: ໌೔(11/21) 12:00 ʲએ఻ʳRoppongi.unity #6Λ։࠵͠·͢!
  24. 24 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

  25. 25

  26. 26