inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

็ตถๅฏพ่ฌ›ๅบง๏ผUnity6 - ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ฒใƒผใƒ ้–‹็™บใƒžใ‚นใ‚ฟใƒผใ‚ฏใƒฉใ‚น (Part3) : Netcodeใง้–‹็™บใ™ใ‚‹2D RPG

ใƒŸใƒ‹RPG 2Dใ‚ฒใƒผใƒ ใ‚’ๅˆถไฝœใ—ใชใŒใ‚‰2D้–‹็™บๆŠ€ๆณ•ใ‚’่บซใซใคใ‘ใ€ๅฎŒๆˆใ—ใŸใ‚ฒใƒผใƒ ใ‚’Netcode for GameObjectใงๅค‰ๆ›ใ—ใฆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ฒใƒผใƒ ใซๆ‹กๅผตใ™ใ‚‹้Ž็จ‹ใ‚’ๅญฆใถ่ฌ›ๅบงใงใ™ใ€‚2Dใ‚ฒใƒผใƒ ใซๅฟ…้ ˆใฎใ‚ฟใ‚คใƒซใƒžใƒƒใƒ—ใฎๆง˜ใ€…ใชๆฉŸ่ƒฝใ‚’ๆ‰ฑใฃใฆใŠใ‚Šใ€่‡ช็„ถใซSOLIDๅŽŸๅ‰‡ใ‚’้ตๅฎˆใ—ใŸใ‚ฏใƒชใƒผใƒณใ‚ณใƒผใƒ‰ไฝœๆˆๆŠ€ๆณ•ใ‚’ๅญฆ็ฟ’ใงใใ‚‹ใ‚ˆใ†ๆบ–ๅ‚™ใ—ใพใ—ใŸใ€‚ใพใŸใ€ๆœ€ๆ–ฐใฎUnity 6ใƒใƒผใ‚ธใƒงใƒณใงๅค‰ๆ›ดใ•ใ‚ŒใŸNetcode APIใ‚’ๆดป็”จใ—ใŸใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ฒใƒผใƒ ใฎๅŸบ็คŽใ‚’ๅ›บใ‚ใ‚‹่ฌ›็พฉใงใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

Unity
Unity
Network
Network
unity2d
unity2d
Unity6
Unity6
Unity
Unity
Network
Network
unity2d
unity2d
Unity6
Unity6

ใŠ็Ÿฅใ‚‰ใ›

3 ไปถ

  • indiegamemaker๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ecs_title2.png.webp

    ็”ณใ—่จณใ”ใ–ใ„ใพใ›ใ‚“ใ€‚ใƒชใƒณใ‚ฏใซใ‚จใƒฉใƒผใŒใ‚ใฃใŸใŸใ‚ใ€ๅ†้€ไฟกใ„ใŸใ—ใพใ™ใ€‚๐Ÿ˜ญ๐Ÿ˜ญ

    ใ“ใ‚“ใซใกใฏใ€‚ใ‚คใƒปใ‚ธใ‚งใƒ’ใƒงใƒณใงใ™ใ€‚

    ็ตถๅฏพ่ฌ›ๅบง Unity - ECS/DOTS ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ ใƒžใ‚นใ‚ฟใƒผใ‚ฏใƒฉใ‚น่ฌ›ๅบงใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใพใ—ใŸใ€‚

    ใƒžใƒซใƒใ‚นใƒฌใƒƒใƒ‰ใจใƒกใƒขใƒชๆœ€้ฉๅŒ–ใ‚’ๅŸบ็›คใจใ™ใ‚‹Unityใฎๆฌกไธ–ไปฃ้–‹็™บๆ–นๅผใงใ‚ใ‚‹ECSใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใซ้–ขใ™ใ‚‹ๅŸบ็คŽ่ฌ›ๅบงใ‚’ๆบ–ๅ‚™ใ„ใŸใ—ใพใ—ใŸใ€‚ๆ—ขๅญ˜ใฎUnity้–‹็™บๆ–นๅผใจใฏๅ…จใ็•ฐใชใ‚‹ๆฆ‚ๅฟตใงใ‚ใ‚‹ใŸใ‚ใ€ๅˆใ‚ใฆๅญฆ็ฟ’ใ•ใ‚Œใ‚‹ๆ–นใซใฏๅ‚ๅ…ฅ้šœๅฃใŒ้ซ˜ใ„ๅˆ†้‡Žใงใ—ใŸใ€‚

    3.gif

    ๅญฆ็ฟ’้›ฃๆ˜“ๅบฆใ‚’ๅพใ€…ใซไธŠใ’ใ‚‹ใ“ใจใŒใงใใ‚‹ๆœ€้ฉใชใ‚ซใƒชใ‚ญใƒฅใƒฉใƒ ใ‚’้–‹็™บใ™ใ‚‹ใŸใ‚ใ€็ด„30ใฎใ‚ตใƒณใƒ—ใƒซใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’็ตŒใฆๆบ–ๅ‚™ใ—ใพใ—ใŸใฎใงใ€ECS้–‹็™บ็’ฐๅขƒใ‚’ๅญฆ็ฟ’ใ•ใ‚Œใ‚‹้š›ใซๅ›ฐ้›ฃใฏใชใ„ใ‚‚ใฎใจๆ€ใ„ใพใ™ใ€‚

    ๆ ธๅฟƒๅญฆ็ฟ’ๅ†…ๅฎน๏ผš

    • IComponentDataใ€ISystemใ€Authoringใƒ‘ใ‚ฟใƒผใƒณ

    • Burstใ‚ณใƒณใƒ‘ใ‚คใƒซใจIJobEntityใ‚’ๆดป็”จใ—ใŸไธฆๅˆ—ๅ‡ฆ็†

    • SRP Batcherใฎ่จญๅฎšใŠใ‚ˆใณGPU Instanceใฎๆดป็”จ

    • Unity PhysicsใจITriggerEventsJobใ‚’ๆดป็”จใ—ใŸ่ก็ชๅ‡ฆ็†

    • MonoBehaviourใจECSใ‚’ไธ€็ท’ใซไฝฟใ†Hybridใƒ‘ใ‚ฟใƒผใƒณ

    • EntityCommandBufferใ‚’ๆดป็”จใ—ใŸๅ‹•็š„ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃ็ฎก็†ๆŠ€ๆณ•

    ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ๆฌกใฎ่ฌ›ๅบง็ดนไป‹ใƒšใƒผใ‚ธใงใ”็ขบ่ชใ„ใŸใ ใ‘ใพใ™ใ€‚

    https://inf.run/352Jh

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • indiegamemaker๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ๏ฝฅ

    ไฟฎๆญฃๆธˆใฟ

    ECS/DOTS ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ ใƒžใ‚นใ‚ฟใƒผใ‚ฏใƒฉใ‚น ใ‚ชใƒผใƒ—ใƒณใฎใŠ็Ÿฅใ‚‰ใ›ใ‚’ใŠไผใˆใ—ใพใ™ใ€‚

    ecs_title2.png.webp

    ใ“ใ‚“ใซใกใฏใ€‚ใ‚คใƒปใ‚ธใ‚งใƒ’ใƒงใƒณใงใ™ใ€‚

    ็ตถๅฏพ่ฌ›ๅบง Unity - ECS/DOTS ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ ใƒžใ‚นใ‚ฟใƒผใ‚ฏใƒฉใ‚น่ฌ›ๅบงใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใพใ—ใŸใ€‚

    ใƒžใƒซใƒใ‚นใƒฌใƒƒใƒ‰ใจใƒกใƒขใƒชๆœ€้ฉๅŒ–ใ‚’ๅŸบ็›คใจใ™ใ‚‹Unityใฎๆฌกไธ–ไปฃ้–‹็™บๆ‰‹ๆณ•ใงใ‚ใ‚‹ECSใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใฎๅŸบ็คŽ่ฌ›ๅบงใ‚’ใ”็”จๆ„ใ„ใŸใ—ใพใ—ใŸใ€‚ๆ—ขๅญ˜ใฎUnity้–‹็™บๆ‰‹ๆณ•ใจใฏๅ…จใ็•ฐใชใ‚‹ๆฆ‚ๅฟตใงใ‚ใ‚‹ใŸใ‚ใ€ๅˆใ‚ใฆๅญฆ็ฟ’ใ•ใ‚Œใ‚‹ๆ–นใซใฏๅ‚ๅ…ฅ้šœๅฃใŒ้ซ˜ใ„ๅˆ†้‡Žใงใ—ใŸใ€‚

    3.gif

    ๅญฆ็ฟ’้›ฃๆ˜“ๅบฆใ‚’ๅพใ€…ใซไธŠใ’ใ‚‹ใ“ใจใŒใงใใ‚‹ๆœ€้ฉใชใ‚ซใƒชใ‚ญใƒฅใƒฉใƒ ใ‚’้–‹็™บใ™ใ‚‹ใŸใ‚ใ€็ด„30ใฎใ‚ตใƒณใƒ—ใƒซใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’็ตŒใฆๆบ–ๅ‚™ใ—ใพใ—ใŸใฎใงใ€ECS้–‹็™บ็’ฐๅขƒใ‚’ๅญฆ็ฟ’ใ•ใ‚Œใ‚‹้š›ใซๅ›ฐ้›ฃใฏใชใ„ใ‚‚ใฎใจๆ€ใ„ใพใ™ใ€‚

    ๆ ธๅฟƒๅญฆ็ฟ’ๅ†…ๅฎน๏ผš

    • IComponentDataใ€ISystemใ€Authoringใƒ‘ใ‚ฟใƒผใƒณ

    • Burstใ‚ณใƒณใƒ‘ใ‚คใƒซใจIJobEntityใ‚’ๆดป็”จใ—ใŸไธฆๅˆ—ๅ‡ฆ็†

    • SRP Batcherใฎ่จญๅฎšใจGPU Instanceใฎๆดป็”จ

    • Unity PhysicsใจITriggerEventsJobใ‚’ๆดป็”จใ—ใŸ่ก็ชๅ‡ฆ็†

    • MonoBehaviourใจECSใ‚’ไธ€็ท’ใซไฝฟใ†Hybridใƒ‘ใ‚ฟใƒผใƒณ

    • EntityCommandBufferใ‚’ๆดป็”จใ—ใŸๅ‹•็š„ใ‚จใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃ็ฎก็†ๆŠ€ๆณ•

    ่ฉณ็ดฐใซใคใ„ใฆใฏใ€ๆฌกใฎ่ฌ›ๅบง็ดนไป‹ใƒšใƒผใ‚ธใงใ”็ขบ่ชใ„ใŸใ ใ‘ใพใ™ใ€‚

    https://inf.run/352Jh

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • indiegamemaker๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€‚็š†ใ•ใ‚“ใ€ใ‚คใƒปใ‚ธใ‚งใƒ’ใƒงใƒณใงใ™ใ€‚

    Netcode for GameObjectใ‚’ๆดป็”จใ—ใŸ2D RPG่ฌ›ๅบงใ‚’ใ‚ชใƒผใƒ—ใƒณใ—ใพใ—ใŸใ€‚

    https://inf.run/iEGYz

    Battlefield.gif

    ๆœฌ่ฌ›็พฉใฏNetcode for GameObjects(NGO)ใฎๅŸบ็คŽใ‹ใ‚‰ใƒญใƒ“ใƒผใ€ใƒชใƒฌใƒผใ€ใƒžใƒƒใƒใƒกใ‚คใ‚ญใƒณใ‚ฐใพใงๆฎต้šŽ็š„ใซๅญฆ็ฟ’ใ™ใ‚‹้Ž็จ‹ใ‚’ๆ‰ฑใ„ใพใ™ใ€‚่ฌ›็พฉใงใฏใ‚ฟใ‚คใƒซใƒžใƒƒใƒ—ใƒ™ใƒผใ‚นใฎ2D RPGใ‚ฒใƒผใƒ ้–‹็™บใ‚’ๅฎŸ็ฟ’ใ—ใ€NetcodeๆฉŸ่ƒฝใ‚’้ฉ็”จใ—ใฆใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ฒใƒผใƒ ๅˆถไฝœๆŠ€ๆณ•ใ‚’่บซใซใคใ‘ใพใ™ใ€‚

    09_lobby.gif

    ็‰นใซใ€Unity 6ใ‹ใ‚‰ๆ–ฐใ—ใๆไพ›ใ•ใ‚Œใ‚‹Multiplayer Serviceใ‚’้€šใ˜ใฆใ€ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใ‚ฒใƒผใƒ ้–‹็™บใ‚’ใ‚ˆใ‚Šไพฟๅˆฉใซใ‚ตใƒใƒผใƒˆใ™ใ‚‹APIใ‚’ๆดป็”จใ—ใพใ™ใ€‚ใ“ใ‚Œใซไผดใ„ใ€ๆ—ขๅญ˜ใฎLobbyใ€RelayๆฉŸ่ƒฝใ‚’ๅ…ˆใซๅญฆ็ฟ’ใ—ใŸๅพŒใ€Multiplayer Serviceใ‚’ๅˆฉ็”จใ—ใŸใƒฉใƒณใƒ€ใƒ ใƒžใƒƒใƒใƒกใ‚คใ‚ญใƒณใ‚ฐๆฉŸ่ƒฝใพใงๅฎŸ่ฃ…ใงใใ‚‹ใ‚ˆใ†ใซๆง‹ๆˆใ—ใพใ—ใŸใ€‚

    0

๏ฟฅ15,367