indiegamemaker
@indiegamemaker
Students
463
Reviews
31
Course Rating
4.9
์๋ ํ์ธ์, ์ด์ฌํ์ ๋๋ค.
1์ธ ๊ฒ์ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ฉฐ ์ ๋ํฐ๋ฅผ ๋ ํ์ผ๋ก ์์ํ๊ณ , 2009๋ ๋ถํฐ 2012๋ ๊น์ง 1์ธ ๊ฐ๋ฐ๋ก ๋ชจ๋ฐ์ผ ๊ฒ์ 10์ฌ์ข ์ ์ถ์ํ์ต๋๋ค. ์ ๋๊ฐ์ข! ์ ๋ํฐ ์ถ๊ฐ ๋ฐ ์คํ๋ผ์ธ ๊ฐ์๋ฅผ ์งํํ์ต๋๋ค. ๊ฐ์๋ฅผ ์งํํ๋ฉด์, ์ ์๋ ๊ฒ๊ณผ ์ ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋ค๋ฅด๋ค๋ ์ฌ์ค์ ๋งค๋ฒ ๊นจ๋ซ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, ์ ๊ฐ ๊ฐ์ง ์ง์์ ์ฌ๋ฌ๋ถ๋ค๊ป ๋ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฌํ๊ธฐ ์ํด ๋ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ด๋ฒ ๊ฐ์๊ฐ ์ฌ๋ฌ๋ถ๊ป ์ข์ ์ถ๋ฐ์ ์ด ๋์ด, ์ฆ๊ฑฐ์ด ๊ฒ์ ๊ฐ๋ฐ์์ ์ธ๊ณ๋ก ๋์๊ฐ๋ ๋ฐ ์์ ๋ณดํฌ์ด ๋๊ธฐ๋ฅผ ๊ธฐ์ํฉ๋๋ค. ~
์ฃผ์ ๊ฐ์ ์ด๋ ฅ
ํจ์คํธ์บ ํผ์ค - ์ ๋ํฐ ์บ ํ 1๊ธฐ ~ 8๊ธฐ
ํ ์คํ๋ฅดํ ์จ๋ผ์ธ ํํฐ
T์์นด๋ฐ๋ฏธ
NHN ์ํฐํ ์ธ๋จผํธ
๋ท๋ง๋ธ ๊ฒ์์์นด๋ฐ๋ฏธ
ETRI (ํ๊ตญ์ ์ํต์ ์ฐ๊ตฌ์)
ํ์ฝ์ง, ๊ฒฝ์ฝ์ง, ์ฑ๋จ์ฐ์ ์งํฅ์
KAIST, ์๊ฐ๋, ์ค์๋, ํ์ฑ๋, ๋จ๊ตญ๋ ํน๊ฐ
์ฃผ์ ํ๋
์ ๋๊ฐ์ข! ์ ๋ํฐ ์งํ (์ผ๋ณธ, ์ค๊ตญ ์ถํ)
์ ๋ํฐ UNITE 2014 ์ธ์ ํน๊ฐ
์ ๋ํฐ UNITE 2018 ํธ๋์จ ์ธ์ ํน๊ฐ
์ ๋ํฐ ์ธ๋์คํธ๋ฆฌ 2022 ํธ๋์จ ์ธ์ ํน๊ฐ
์ ๋ํฐ ์ฝ๋ฆฌ์ ๊ณต์ธ ๋ง์คํฐ์ค 2๊ธฐ๋ถํฐ 5๊ธฐ๊น์ง ํ๋
Courses
Reviews
djsskach613705
ยท
Absolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with NetcodeAbsolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with Netcode- Absolute Course! Unity 6 - ECS/DOTS Programming Masterclass
- Absolute Course! Unity 6 - Building Backend Systems with UGS
123123123123123
ยท
Absolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with NetcodeAbsolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with Netcodemuttul589114
ยท
Absolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with NetcodeAbsolute Course! Unity 6 - Network Game Development Masterclass (Part3): 2D RPG Development with Netcode
Posts
Q&A
์บ๋ฆญํฐ ์ค๋ณต ์์ฑ ๋ฌธ์
์๋ ํ์ธ์. ์ฝ๋๋ฅผ ํ์ธํด์ ๋์ผ ์ฆ์์ด ์๋์ง ํ์ธ ํ ๋ค์ ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค.
- 0
- 1
- 14
Q&A
์๊ฐ ํ ๊ถ๊ธํ ๊ฒ
์๋ ํ์ธ์. ์์น๊ทผ๋, ์๊ฐ ์ถํ๋๋ฆฝ๋๋ค. ๊ฐ๋ฅ์ ํ์ง๋ง Host / Server ๋ชจ๋ ์ผ๋๋ ํธ์คํธ ํ๋์ ๋ชจ๋ ์ฐ์ฐ๊ณผ ๋คํธ์ํฌ ์ฒ๋ฆฌ๊ฐ ๋ชฐ๋ฆฝ๋๋ค. ํ๋์๋๋๊ณผ ๋์ด ๊ฑธ๋ฆด๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๋ฐ๋ผ์ Dedicated Server ๊ฐ ํ์ํ๋ฉฐ ์ญ์ ์๋ฒ ํ๋ ๋ณด๋ค๋ ๋ถ์ฐ์ ๋ต์ ์ธ์์ผ ํฉ๋๋ค. 4๋ช ์ ๋ ์ ์ํด์ ํ๋ ์ฝ์ต ์์ค์ ์ค๊ณ์ 100์ธ ์ ์ ๋ฐฐํ๋ก์๊ธ์ ์ฒ์ ์ค๊ณ๋ถํฐ ๊ณ ๋ฏผ์ ๋ง์ด ํด์ผ ํฉ๋๋ค. ํน์ ์ง์ ์ ์ ์ ๊ฐ ๋ชฐ๋ฆด๊ฒฝ์ฐ ๋ชจ๋ ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ํ์์ด ๋ฐ์ํ๊ฒ ์ฃ . ๋ก๋น์ ๋ฆด๋ ์ด๋ฅผ ์ฌ์ฉํ์ ์ผ ํฉ๋๋ค. ํธ์คํธ๋ฐฉ์์ผ๋ก๋ 100 ๋์ ์ ๊ตฌํํ ์๋ ์์ต๋๋ค. ๋ก๋น,๋ฆด๋ ์ด, ๋ฐ๋ ์๋ฒ(Unity HostServer) ๋ฐฉ์์ผ๋ก ์ฐ์ ์ ์ค๊ณ๋ฅผ ์ก์ผ์๊ณ , ์ฒ์์๋ 16๋ช -> 32๋ช -> 50๋ช ์ด๋ฐ์์ผ๋ก ๋๋ฆฌ๋ฉด์ ๋ถํํ ์คํธ๋ฅผ ํ์๊ธธ ๊ถํด๋๋ฆฝ๋๋ค.
- 0
- 1
- 31
Q&A
39๊ฐ ์ง๋ฌธ
์๋ ํ์ธ์. ์์น๊ทผ๋,์ง๋ฌธ์ฃผ์ ๋ด์ฉ ๋ ๊ฐ์ง ๋ค ์ ํํ ์ดํดํ๊ณ ๊ณ์ญ๋๋ค. ์ ๊ฐ ์ค๋ช ์ด ์กฐ๊ธ ๋ถ์กฑํ๋๋ด ๋๋ค.
- 0
- 1
- 23
Q&A
๊ธฐ์ด์ ์ธ ์ง๋ฌธ
์๋ ํ์ธ์. ์์น๊ทผ๋,์ฐ์ ์ง๋ฌธ์ ์ ๋๋ก ์ดํดํ๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ํ๋จธ์ ๊ตฌํํ ๋๋ ๋ค๋ฅธ ์ฝ๋ ์์ฑํ ๋ ๊ธฐ๋ณธ Monobehavior์ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์์ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ๋ํ ์ง๋ฌธ์ด์ ๊ฒ์ผ๋ก ์ดํดํ์ต๋๋ค.์ฐ์ C#์ ๋ค์ค ์์์ ์ง์ํ์ง ์์ง๋ง Interface๋ฅผ ํตํด ๊ตฌํํ ์๊ฐ ์์ต๋๋ค.public class Enemy : MonoBehaviour, IDamageable, IInteractable { ... }๊ทธ๋ฆฌ๊ณ ํน์ ํด๋์ค์ ๋์จํ ๊ฒฐํฉ(๋์ปคํ๋ง) ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. SOLID ์์น์ค ์ธํฐํ์ด์ค ๋ถ๋ฆฌ์์น๊ณผ๋ ๋ถํฉํ๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋์๊ตฌ์. ์ถํ ์ฝ๋์ ํ์ฅ ๋ฐ ์์ ์๋ ์ฉ์ดํ ์ฅ์ ๋ ์์ต๋๋ค.์ด๋ค ๋ถ๋ถ์ ์ฝ๋์์ ์๊ตฌ์ฌ์ด ๋์ จ๋์ง๋ฅผ ๋ชฐ๋ผ์ ์๋ก ์ ์ธ ๋ง์๋ง ๋๋ ธ์ต๋๋ค.
- 0
- 2
- 34
Q&A
ecs๊ด์ฌ์ด ์์๋๋ฐ ๊ฐ์ ์ ๋ณด์์ต๋๋ค.
์๋ ํ์ธ์. Sura J ๋,์ข์ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค. 1๋ฒ์งธ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค.Unity ECS๋ ์ปดํ์ผ ํ์์ ๋ฐ์ดํฐ ๋ ์ด์ค์ปจ๋์ ์ ๊ฐ์งํฉ๋๋ค. ์ฆ, Burst ์ปดํ์ผ๋ฌ์ ํจ๊ป ์ฌ์ฉ๋ ๋, Unity ECS๋ ์์คํ ์ด ์ ๊ทผํ๋ ๋ฐ์ดํฐ์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ๋ ์ด์ค๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ITriggerEventsJob ์ ๊ฐ ์ถฉ๋ ์ด๋ฒคํธ๋ง๋ค Execute ๋ฉ์๋๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํธ์ถ๋ฉ๋๋ค. ์ฆ, ๊ฐ ์ถฉ๋ ์ด๋ฒคํธ๋ ๋ณ๋์ ์์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ, ์ด๋ก ์ธํด ๋ ์ด์ค๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค.์ถฉ๋์ฒ๋ฆฌ๊ฐ ๋ฏธ์คํ๋ Enemy๊ฐ ๋ณด์ธ๋ค๊ณ ํ์ จ๋๋ฐ, ์๋ง๋ ๋์ผํ ์ํฐํฐ์ ๋ํด ์ฌ๋ฌ ์ถฉ๋ ์ด๋ฒคํธ๊ฐ ๋์์ ๋ฐ์ํ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์ถ์ธก๋ฉ๋๋ค.(์ ํํ์ง๋ ์์ง๋ง) ๋ฐ๋ผ์ ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋๋ฐ์ EntityCommandBuffer ์ฌ์ฉํ๊ฑฐ๋ NaviveQueue๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.์ด ๋ถ๋ถ์ ์ ๋ ํ ์คํธ๋ฅผ ํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.[ReadOnly] ์์ฑ๊ณผ Job Dependency๋ก ๊ธฐ๋ณธ์ ์ผ๋ก thread-safeํ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ์ง๋ง, ํน์ ์ํฉ์์๋ ์ถ๊ฐ์ ์ธ ๋๊ธฐํ ๊ณผ์ ์ด ํ์ํ ์ ์์๊ฒ ๊ฐ์ต๋๋ค. 2๋ฒ์งธ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค.์ฐ์ ๋ง๋ง๋ฆฌ ์ด์์ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ํ์ ๋ํ ์ฐ๋ ค์ ๋ํด ์ง๋ฌธํ์ จ๋๋ฐ์.์ฒซ๋ฒ์ฌ๋ ์ํฐํฐ ์๊ฐ ๋ง์์๋ก Job ์๋ฃ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง์ ์๊ณ , ๋๋ฒ์งธ๋ ComponentLookup์ ์บ์ ๋ฏธ์ค๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ์ฝ๋๋ฅผ ๊ฒํ ํด๋ณด๊ณ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ์ด ์๋์ง ํ์ธํด ๋ณด์์ต๋๋ค. ์ฐ์ EnemyMovementSystem, EnemyHpBarSystem์ ๊ฒฝ์ฐ ์์คํ ์ ์คํ ์์๋ฅผ ๋ช ํํ ๋ช ์ํ๋ ๊ฒ์ด ์ข์๊ฒ ๊ฐ์ต๋๋ค. // EnemyMovementSystem [UpdateInGroup(typeof(SimulationSystemGroup))] [UpdateAfter(typeof(FixedStepSimulationSystemGroup))] // ์ถฉ๋ ์ฒ๋ฆฌ ํ ์คํ partial struct EnemyMovementSystem : ISystem { ... } // EnemyMovementSystem [UpdateInGroup(typeof(SimulationSystemGroup))] [UpdateAfter(typeof(FixedStepSimulationSystemGroup))] // ์ถฉ๋ ์ฒ๋ฆฌ ํ ์คํ partial struct EnemyMovementSystem : ISystem { ... }๊ฐ์์์๋ ์ ์บ๋ฆญํฐ๋ฅผ ๋ฆฌ์คํฐํ์ง ์์์ง๋ง ๋ง์ฝ ๋ฆฌ์คํฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋ฉด ํ๋ง ๊ธฐ๋ฒ์ ์ฌ์ฉํด Enemy๊ฐ ์ฃฝ์์ ๋ Entity๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.๋ฏธ์ณ ์๊ฐํ์ง ๋ชปํ๋ ๋ถ๋ถ์ ๋ํด ์ข์ ์ง๋ฌธ์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ข ํฉ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ค์ ํ๋ฒ ๊ฒํ ํด๋ณด๊ณ ์ต์ ํํ ์ ์๋ ๋ถ๋ถ์ด ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 60
Q&A
Default Player Prefab ํ๊ดด์ ์ฌ์์ฑ
๋ค, ๊ฐ๋ฅํฉ๋๋ค. ~๋ค์๊ณผ ๊ฐ์ด ์ปค์คํ ์คํฐ ๋ก์ง์ ๊ตฌํํ์ค ์ ์์ต๋๋ค. ํ์ง๋ง ๋ณดํต ๋คํธ์ํฌ ๊ฒ์์์ ์ฃผ์ธ๊ณต ์บ๋ฆญํฐ๋ฅผ ์ญ์ ํ์ง๋ ์์ต๋๋ค. (๋คํธ์ํฌ ์ธ์ ์ด ์ข ๋ฃ๋ฉ๋๋ค.) ๋ฐ๋ผ์, ๋ฆฌ์คํฐ ์๊ฐ๋์ ์บ๋ฆญํฐ๋ฅผ ๋นํ์ฑํํ๋ค๊ฐ ๋ค์ ํ์ฑํ์ํค๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. var player = Instantiate(playerPrefab, spawnPos, Quaternion.identity); player.GetComponent().SpawnAsPlayerObject(clientId, true);
- 0
- 2
- 33
Q&A
์บ๋ฆญํฐ ๋คํธ์ํฌ ์ ๋๋ฉ์ด์ ์ง๋ฌธ (29๊ฐ์)
์๋ ํ์ธ์. ๋ค, Server Authority ์ ๋ํด ์ ํํ ์ดํดํ์ จ์ต๋๋ค. ๋ํ, ์๋ฒ์์ ๋ณ๋ค๋ฅผ ์ฝ๋๊ฐ ์์ด๋ ์คํ ๊ถํ์ Server๋ก ์คํํ์ ๋ ์ ๋๋ฉ์ด์ ์ ์คํํ๋ฉด ๋ค๋ฅธ ํด๋ผ์ด์ธํธ์๊ฒ๋ NetworkAnimator์ ์ํด ์๋์ผ๋ก ์ ์ก์ด ๋ฉ๋๋ค. ์ง๋ฌธ ์ญ์ ์ ํํ ์ดํดํ๊ณ ๊ณ์ญ๋๋ค. Transform ์ ๊ฒฝ์ฐ ์๋ฒ ๊ถํ์ผ ๊ฒฝ์ฐ ํด๋ผ -> ์๋ฒ -> ํด๋ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ๋ ์ดํด์๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ณ๋๋ก ํด๋ผ์์ ๋คํธ์ํฌ ๋ ์ดํด์๋ฅผ ๊ณ ๋ คํด ์์น ๋ณด์ ์์ ์ ํด์ฃผ์ด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.ํด๋ผ์ด์ธํธ ์คํ์ ํด๋ผ์์ ์ง์ ์คํ(์์น, ์ ๋๋ฉ์ด์ ๋ฑ)ํ๋ ๊ฒ์ ์๋ฏธํ๊ณ , ์คํ ์์ฒญ์ด๋ ์๋ฏธ๋ ์๋ฒ์ธก์ ์์ฒญ์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.์๊ฐํ์๋ค๊ฐ ๋ ๊ถ๊ธํ์ ์ ์ด ์์ผ์๋ฉด ํธํ๊ฒ ์ง๋ฌธํด์ฃผ์ธ์.๊ผญ ์๊ฐํ์๊ธธ ์์ํฉ๋๋ค.
- 0
- 1
- 32
Q&A
Warrior๊ฐ Gobin์๊ฒ ๋ฌ๋ ค๊ฐ ์ถฉ๋ํ๋ฉด Gobin์ด ๋ค๋ก ํ๊ฒจ๋๊ฐ๋ ํ์??
์๋ ํ์ธ์.๋ฌผ๋ฆฌ ์ถฉ๋์ด ๋ฐ์ํ๋ Collision ์์๋ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ์ mass์ drag ๊ฐ์ ์๊ฐ์ (์ถฉ๋ ์๊ฐ)์ ์ถฉ๋ ๋นํ๋ ์ชฝ์ ํฌ๊ฒ(Infinity) ์ค์ ํด์ ๋ฐ๋ฆฌ์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด ๋ฐฉ๋ฒ๋ ์์ ํ ํด๊ฒฐ์ฑ ์ ์๋๊ตฌ์. linarVeclocity ์ญ์ 0์ผ๋ก ์ฒ๋ฆฌํ์ ์ผ ํ๋ฉด ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์๋ ์ฝ๋๋ ํ ์คํธํ ์ฝ๋๋ ์๋๋๋ค๋ง, ์ด๋ฐ์์ผ๋ก ์ฒ๋ฆฌํ์๋ฉด ๋ฐ๋ฆฌ๋ ํ์์ ํ์ ํ ์ค์ผ์ ์์ผ์ค ๊ฒ๋๋ค.private void OnCollisionEnter2D(Collision2D other) { if (other.collider.CompareTag("Player")) { this.gameObject.GetComponent().mass = float.MaxValue; this.gameObject.GetComponent().linearVelocity = Vector2.zero; } } private void OnCollisionExit2D(Collision2D other) { if (other.collider.CompareTag("Player")) { this.gameObject.GetComponent().mass = 1f; // ์๋ ์ง๋์ผ๋ก ๋ณต์ this.gameObject.GetComponent().linearVelocity = Vector2.zero; } }
- 0
- 2
- 43
Q&A
Warrior์ InputHandler.cs ์ OnEnable(), OnDisable() ๋ฉ์๋ ๋ถ๋ถ์์ ๊ณต๊ฒฉ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์์.
๊น๋ง๋๋, ์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฐ ๋์น ๋ถ๋ถ ์ ๋ง์ํด์ฃผ์ จ์ต๋๋ค. ์ค์๋ฅผ ํ๋ค์ใ ใ ๋ค์ํ๋ฒ ๊ฐ์ฌ๋๋ ค์~
- 1
- 2
- 40
Q&A
Netcode ์ฌ์ฉ์ ์ด์๊ด์ ์ง๋ฌธ
์๋ ํ์ธ์. DongJu Yoo๋,์๊ฐํ 2ํ์ฐจ ์ค์ต๊น์ง ... ๊ฐ์ฌํฉ๋๋ค.~์ถ๊ฐ์ ์ผ๋ก ์ค๋ฌด์์ ์์ ๋์๋ฉด ๋์์ด ๋ ๋งํ๊ฒ ์ค์์ ์ด์ ๊ด์ ์์ ๋ช๊ฐ์ง ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.๋ฐฐํฌ ์๋ํ(CI/CD)์ค์๊ฐ ๋ฉํฐํ๋ ์ด ๊ฒ์์ ๊ทธ ํน์ฑ์ ํจ์น ์ฃผ๊ธฐ๊ฐ ์งง์ต๋๋ค. ๋ฐ๋ผ์ CI/CD ๊ตฌ์ถํด ์๋ ๋น๋ ๋ฐ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ฐ์ถ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธฐ์กด์ Github Actions, ์ ํจ์ค ๊ฐ์ ๊ฒฝ์ฐ ์ ๋ํฐ์ ํน์ฑ๊ณผ๋ ๋ค์ ๊ฑฐ๋ฆฌ๊ฐ ์๊ธฐ์ ์ ๋ํฐ์ ํนํ๋ Cloud Build๊ธฐ๋ฅ์ ํ์ตํ์๋ ๊ฒ๋ ์ข์ต๋๋ค.๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น Netcode ์์ฒด๋ง์ผ๋ก๋ ์ธ์ ์ํ๋ ๋คํธ์ํฌ ํ์ง์ ์ถ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค.ํจํท ์์ค, ์ง์ฐ(RTT), ์๋ฒ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๊ฒํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. UGS์ Analytis(๋๋ AWS CloudWatch)์ ํ์ฉ๋ฒ์ ๋ฐฐ์ฐ์๋ฉด ์ข๊ฒ ์ต๋๋ค.ํ์ฅ์ฑ์๋ ์ค๊ณ vs ํ๊ณ ํ ์ค๊ณ์ด๊ธฐ์ ๋ฃธ ๊ธฐ๋ฐ ๊ตฌ์กฐ(Relay)๋ก ์์ํ๊ณ , ์ ์ ์๊ฐ ๋์ด๋๋ฉด ์ ์ฉ ์๋ฒ(Dedicated Server) ๊ตฌ์กฐ๋ก ์ ํํ๋ค๋ ์ ๋ต์ ์ธ์ธ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ฝ์ง ์์ต๋๋ค. ๋๊ตฐ๋ค๋ ๋ผ์ด๋ธ ์ํ์์๋์. ์ ๊ฐ์ธ์ ์ผ๋ก๋ ์ฒ์๋ถํฐ Relay๋ฐฉ์์ผ๋ก ๊ฐ์ง ์๋๋ฉด ๋ฐ๋ ๋ฐฉ์์ผ๋ก ํ ์ง๋ฅผ ์ฒ์ ๋ถํฐ ํ์คํ๊ฒ ๊ฒฐ์ ํ๊ณ ์ค๊ณ ๋ฐ ๊ตฌํํ์๊ธธ ๊ถํด๋๋ฆฝ๋๋ค.๊ฐ๋ฐํ๊ฒฝ ๋ถ๋ฆฌ๋ฌผ๋ก ๊น์ผ๋ก ์ฝ๋๋ฅผ ๊ด๋ฆฌํ์๊ฒ ์ง๋ง ์ด์ ์ ์ ๋ฐ๋์ ๊ฐ๋ฐ ์ฝ๋๋ฅผ ๊ฐ๋ฐโ๋ฆด๋ฆฌ์ฆ(์คํ ์ง)โ๋ผ์ด๋ธ ํ๊ฒฝ์ ์ฒ ์ ํ๊ฒ ๋ถ๋ฆฌํ์๊ณ , ํธ๋ํฝ ํ ์คํธ๋ฅผ ๊ฑฐ์น๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.๊ทธ๋ฆฌ๊ณ Unity 6 ์ดํ์๋ UGS์ NGO์ ํตํฉ์ฑ์ด ์ข ๋ ๊ฐํ๋์ด ์ด์ ํ๊ฒฝ ์ค์ ์ด ํจ์ฌ ๊ฐํธํ๊ณ (?) ๋จ์ํด์ก์ต๋๋ค. ํนํ ๋์๋ณด๋์์ ๋ค์ํ ๋ชจ๋ํฐ๋ง๊ณผ ๊ธฐ๋ฅ์ด ๊ณ์ ๊ฐํ๋๊ณ ์๊ธฐ์ ์์ ๋ณด๋ค ํธ๋ฆฌํด์ก์ต๋๋ค. ์ค์ต ์ ์งํํ์๊ณ ์ข์ ์ฑ๊ณผ ์์ผ์๊ธธ ๊ธฐ์ํฉ๋๋ค.
- 0
- 1
- 46





