■ 참고
https://www.youtube.com/watch?v=Bz24Jp30nkM
■ Netcode For Entities란?
· Multiplayer networking compatible with ECS
· 특히 경쟁 게임에서 사용하길 유니티에서 권장 및 강조함
· Network Speed & Accurancy를 보장하기 때문
[Server Authoritative]
1. 서버 중심 제어
· 모든 중요한 게임 이벤트는 서버에서 검증되고 처리됨
2. 클라의 역할
· 주로 입력 값 (Input Data)를 서버에 전달하고 서버에서 수신한 결과를 화면에 표시하는 것
[이점]
1. 보안 강화
· 클라가 게임 상태를 직접 제어하지 않음
2. 동기화 안정성
· 서버의 권위 상태를 따르기 때문에 Desync 발생 확률이 대폭 줄어듬
· 서버 권위적 구조에서 [클라 <-> 서버 송수신 시간으로 인한 지연을 극복]하기 위한 시스템 마련됨
· Client Prediction: 클라에서 먼저 예측하여 렌더링 및 기능 동작을함
· Simulated rollback: 그 이후 서버에서 송신을 받았을 때 불일치하다면 롤백 및 조정함.
3. 확장성
· 서버가 중앙 제어점이기 때문에 대규모 멀티플레이어 게임에 적합
· Megacity Multiplayer 샘플 프로젝트를 보면 64명 이상의 플레이어가 참여할 수 있음. 이와 같이 대규모 멀티플레이어가 가능하도록 해줌
[예시]
· 플레이어가 클라이언트에서 키보드를 눌러 캐릭터 이동 요청을 보냄
· 서버가 해당 요청을 검증하고 게임 상태를 업데이트 후 모든 클라이언트에 동기화를 해줌
· 클라이언트들은 서버에서 받은 최종 위치 정보를 기반으로 캐릭터를 그린다.
■ Physics

[DOTS Physics]
1. 모든 유니티 개발자 사용 가능
2. Stateless Physics System
· 모든 개체의 물리 상태를 추적하지 않음.
· 예로 onCollisionEnter, onCollisionExit 같은 것을 제공하지 않음.
· 우리가 받는 것은 단순히 collision event 하나임. 충돌이 시작 되었는지 혹은 끝났는지 등은 알 수 없음
[이점]
1. 매우 높은 수준의 최적화
2. Simulated Rollback이 가능하도록 해줌.
· 기존 Stateful Physics에서는 충돌 시점 모든 개체들의, 여러 프레임의, 충돌 상태를 계속 추적해줘야 하기 때문에 매우매우매우 어려움
· 반면에, Stateless Physics에서는 충돌 시점 당시 Collision Event와 각 개체의 데이터만 체크해준 뒤 resimulate 해주면 되므로 매우 간단함.
3. Built-in Spatial Querying
· 특정 Entity 주변의 다른 Entity 개체들을 찾기 쉬움
[Havok Physics]
1. Unity Pro or Enterprise만 사용 가능
2. Industry Standard Physics Engine
· 여러 유명 게임에서 사용되고 있는 상용 물리 엔진임. (Half-life, Portal, Uncharted, Halo, Call of Duty, Destiny 등등)
3. Built off DOTS Physics
· DOTS Physics 기반으로 만들어진 확장된 엔진이라서 Unity DOTS Physics와도 호환이 가능함
· 더 정교하고 복잡한 물리 시뮬레이션 제공
4. Stateful Physics System
· 서버에서 추적할 데이터가 많아지므로 멀티플레이에서는 사용하지 않도록 권장하지 않음
5. Highly accurate simulations
* 런타임에서 DOTS Physics랑 스위칭 가능하다고 함
'개발 (Game) > Unity (DOTS)' 카테고리의 다른 글
[DOTS] ECS & C# Job System & Burst Compile 기초 실습 (1) | 2025.03.01 |
---|---|
[DOTS] C# Job System & Burst Compile 이론 (0) | 2025.03.01 |
[DOTS] 기본 이론 및 ECS 내용 정리 (0) | 2025.03.01 |