Loading the catalog…
Loading the catalog…
데디케이티드 서버 , 리슨 서버 , TCP , UDP 를 내가 좋아하는 게임인 파이널판타지14(MMORPG), 발더스게이트3, 스타크래프트2에 빗대어 얘기해보는 글. 데디케이티드 서버 / Dedicated Server 별도의 서버에서 게임 서버를 단독으로 돌리는 방식. 서버에는 그래픽, 사운드, 입력같은 플레이어의 기능은 뺴고 돌아가기 때문에 효율적이며, MMO/슈터처럼 공정성과 보안이 중요한 게임에서 거의 반 필수로 사용되는 서버 방식 FFXIV을 예시로 설명해 보면 게임은 FFXIV의 본사인 Square Enix 회사 내 데이터센터 서버 안에 들어가 있음. 개인 컴퓨터에서는 내가 움직이거나 행동을 취할 때, 서버가 보내준 상태를 내 화면에 다시 그려주는 통로 역할만 함. 스킬 버튼을 누르면 내가 쓴 스킬 ID 와 타켓 등 간단한 정보만 서버로 보내고, 해당 스킬이 피격 되었는지, 데미지 계산식은 서버 내에서 판정하고 결과를 다시 반환한다. 위와 같은 방식때문에 아무리 개인이 데미지 정보를 변경해서 보내도 판정 권환이 Authority 방식이라서 데미지 핵같은게 통하지 않는다. 모든 플레이어가 접속을 끊더라고, 월드 자체는 계속 돌아감. 플레이어와 상관없이 서버가 항상 켜져있음. 장점 : 공정함, 보안, 대규묘 인원 처리에 용이, 24시간 유지 가능 단점 : 서버비용과 운영 인력이 듬. 정보 호출하는 과정에서 시간이 살짝 걸림. 서버와 거리가 먼 곳에 거주할 경우 핑 문제 리슨 서버 / Listen Server 플레이어 한 명이 호스트가 되어, 게임을 하면서 동시에 서버 역할도 하게 만듬. 소규모 협동/대전에는 유리하지만 호스트가 된 플레이어 PC에 부하가 듬 발더스게이트3를 예시로 설명하면. 멀티플레이를 연 사람이 호스타가 됨. 게임 상황이 각자 PC에 저장되는 것이 아닌, 호스트 개인 컴퓨터에만 저장됨. 그래서 호스트가 없으면 다른 플레이어끼리 게임을 시작할 수 없음. 호스트는 개인의 PC가 사실상 서버가 되니 핑 문제로부터 자유롭고 다른 유저들도 가까운 지역에 거주하고 있다면 데디게이티드 서버보다 핑이 나을 수 있음. 장점 : 유지 비용 거의 없음. 소규모 인원 처리 단점 : 보안 취약, 핑 차이(호스트는 거의 핑 0), 호스트의 상태에 따라 유지가 안 될 수도 있음 번외 다른 게임인 스타크래프트의 구조도 확인하면서 차이점을 한 번 더 체크한다. 게임 방식 특징 스타1 P2P 모든 플레이어가 서로 통신하는 P2P(Peer to Peer), 각자 PC에서 똑같은 시뮬레이션을 돌리낟. 유닛 위치 같은걸 직접 계산하지 않고 호출만 주고 받음, 한 명이 렉걸리면 전부 기다려야함 스타2 본사 서버 모든 통신이 본사 서버를 거치는 데디케이티드 방식, 인원이 늘어도 클라이언트 쪽 대역폭은 일정해짐 TCP / UDP 둘 다 인터넷으로 데이터를 보내는 배송 방식 의 차이 TCP 호출을 받는데에 특화, 실패할 경우 다시 요청하고 순서도 항상 지킨다 특징 : 도착과 순서가 보장됨 속도 : 패킷 하나가 유실되면 뒤의 데이터를 받지않아 막혀버림. 적합한 곳 : 로그인, 채팅, 결제, 다운로드 등 UDP 계속 호출하고, 실패할 경우엔 그냥 실패처리 해버리고 재요청 안함 특징 : 호출의 유실가능, 순서 바뀔수 있음 속도 : 기다리지 않아서 엄청 빠름 적합한 곳 : 실시간 위치, 이동, 공격같은 액션 게임 플레이 게임 예시 FFXIV는 게임 포트가 전부 TCP를 사용함. 액션성보다 명령한 게 확실히 전달되는게 더 중요한 MMORPG의 특성이라서 가능한 선택. 스타 2는 둘을 혼용해서 사용. 인증/채팅/맵 다운로드는 TCP를 쓰고 실제 인게임이 시작되면 UDP가 주도해서 게임을 돌림. 언리얼 엔진 은 UDP기반의 서버. 언리얼 넷드라이버 UIpNetDriver 가 UDP 소켓 위에서 돌아가고, 엔진이 그 위에 자체 신뢰성 계층 (ACK/NAK,재전송)을 올려둠. 그래서 개발자는 RPC마다 TCP/UDP 중 선택해서 보낼 수 있음. UFUNCTION(Server, Reliable) // 등기우편 (TCP처럼): 반드시 도착, 유실 시 재전송 void Server_UseItem(int32 ItemID); UFUNCTION(NetMulticast, Unreliable) // 생방송 (UDP처럼): 놓쳐도 그만 void Multicast_PlayHitEffect(FVector Location); Reliable : TCP 방식, 아이템 사용, 퀘스트 완료처럼 빠지면 게임이 망가지는 것에 넣음. Unreliable : UDP 방식, 이펙트, 사운드, 자주 바뀌는 값처럼 하나쯤 빠져도 다음 게 곧 오는 것을 씀. 매 틱 호출하거나 입력마다 호출하는 RPC를 Reliable로 만들면 재전송 큐가 넘쳐서 연결이 끊길 수 있으니. 자주 부르는 건 Unreliable로 둬야함.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
UE5 / 서버 기본 개념 1. 데디케이티드 서버 , 리슨 서버 , TCP , UDP 를 내가 좋아하는 게임인 파이널판타지14(MMORPG), 발더스게이트3, 스타크래프트2에 빗대어 얘기해보는 글. 데디케이티드 서버 / Dedicated Server 별도의 서버에서 게임 서버를 단독으로 돌리는 방식. 서버에는 그래픽, 사운드, 입력같은 플레이어의 기능은 뺴고 돌아가기 때문에 효율적이며, MMO/슈터처럼 공정성과 보안이 중요한 게임에서 거의 반 필수로 사용되는 서버 방식 FFXIV을 예시로 설명해 보면 게임은 FFXIV의 본사인 Square Enix 회사 내 데이터센터 서버 안에 들어가 있음. 개인 컴퓨터에서는 내가 움직이거나 행동을 취할 때, 서버가 보내준 상태를 내 화면에 다시 그려주는 통로 역할만 함.…
Open source