버그 해결을 위한 모든 질문을 던져
+1 vote
905 views
아무리 봐도 FSocketBSD 클래스 에 구현된 기본 버클리 소켓의 send/recv/select 밖에 안보이는데요. 이게 맞는건가요?

변수복제,RPC 에 기반이되는 내부 네트워크가 궁금합니다. 그리고  ue4 + iocp , ue4 + network io model 키워드가 마치 금기어 마냥 구글에 전혀 정보가 없네요.

변수복제,RPC기반에 IOCP기술이 사용되면 성능이 더 좋지 않을까요?
asked (3 point)
수정됨 , 905 views

2 answers

+2 votes
말씀하신것 처럼 select 모델이 맞을 거에요.

언리얼은 기본적으로 FPS엔진이다보니 P2P 모델을 기본으로 하고 Dedicated Server를 지원하지만

많은 유저를 처리하지 않습니다.

많이 붙여봐야 1000명 이하로 일텐데요. 굳이 IOCP를 쓰더라도 성능 향상에 큰 도움이 되지 않는거죠

그 보다 물리 연산등의 처리가 유저가 많아 질수록  부하가 심해질테니요.
answered (24 point)
+1 vote
언리얼은 내부적으로 UNetDriver이라는 추상 네트워크 계층을 사용해서 변수 복제 또는 RPC를 처리합니다. 소켓 통신은 UDP를 사용하고, UNetDriver을 상속받은 UIpNetDriver로 구현되어 있습니다.

위엣분이 말씀하신 것처럼 유저 수가 많지 않기도 하고, UDP 처리 자체도 워낙 빠르기에 굳이 iocp까지는 사용하지 않는 것 같습니다. 실제로 패킷 수신이 메인 스레드(TickDispatch)에서 처리됩니다...
answered (137 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

620 질문
784 answers
748 댓글
118,442 users