inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

c# 서버에 관해서

279

rush

작성한 질문수 6

0

안녕하세요. 강의도 질문 답변도 너무 도움이 많이 되고 있음에 감사드립니다.

mmorpg에선 gc등의 이유로 c++이 많이 쓰인다고 하셨는데 결국은 c#으로 넘어가지 않을까 싶기도 하고 

지금도 c#으로 만드는 서버가 꽤 있는지 궁금합니다. 그리고 gc등의 버벅임이 어느정도의 체감적인 시간과 

빈도수일지 감이 안잡히는데 실무진들의 대략적인 조언을 듣고 싶습니다. 그리고 그거에 대한 모니터링을 할수 

있는 방법이 있을련지요..

network unity C#

답변 2

1

Rookiss

GC가 메모리 정리하는 시점은 딱히 예상하고 정해진 부분이 아니기 때문에
정확히 '어느 정도'라고 얘기하긴 힘듭니다.
다만 전투가 빈번한 게임이라면 중요할 때 예상치 못하게 사소하게 튀는 것도 문제가 될 수 있겠죠.

그리고 애시당초 C++과 C#을 비교하면
아무리 C#이 좋아졌다 하더라도 통계적으로 약 25%의 속도 차이가 있습니다.
MMO와 같이 퍼포먼스가 매우 중요한 장르라면 굳이? C#을 선택해야 하는지는 의문이 들겠죠.
어차피 C++도 스마트 포인터 등을 도입하면
메모리 관리 등을 C#처럼 부담없이 할 수 있고
심지어 GC를 사용하지 않도 메모리를 재사용하는 등
최적화 여지는 더 많습니다.

물론 유니티도 C#인데 왜 서버는 안 될까 싶지도 하지만
유니티도 핵심 코어는 당연히 C++로 만들었습니다.
마찬가지로 실제 C# 서버로 진행하는 MMO 프로젝트도 더러 있지만
핵심 코어는 C++로 만들고, 윗 부분만 C#으로 만들어서 섞는 경우가 더 많습니다.

다만 이런 이유는 동접 부담이 심한 MMO에나 해당하는거고,
MMO가 아닌 장르라고 친다면 개발 속도도 빠르고 안정성도 더 뛰어난 C#도 훌륭한 선택이 될 수 있겠죠. (특히 모바일이라면)

0

rush

답변 감사드립니다!

TLS 질문드립니다.

0

43

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

46

2

Unity Span

0

76

2

XML, Dll 차이점

0

105

2

Session 질문입니다

0

79

1

Write Read 커서 키워드

0

76

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

70

2

네트워크 Send 전담 스레드 배치

0

98

2

UnhandledException 으로 서버 터지는 경우

0

85

2

컨텐츠 단, 엔진 단

0

104

1

질문 있습니다

0

77

2

C# 게임서버 3D MMORPG

0

145

2

유니티6 버전

0

97

2

receive하는 부분과 send하는 부분의 차이

0

134

2

커서의 위치의 중요성

0

103

2

C++ 전혀 모르는데 C# 서버

0

169

2

강의에 질문이 있습니다

0

86

2

멀티스레드 이해도 질문

0

95

1

500 vs 500

0

130

3

OnAcceptHandler 액션 함수

0

61

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

190

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

82

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

106

1

스핀락 질문.

0

110

2