inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

현업에서 서버 구축

824

Hwang Jaeyoung

작성한 질문수 2

0

안녕하세요. 두 가지 질문이 있습니다.

현업에서 서버 구축할 때 게임 만들 때 마다 매번 socket 기반작업과 관련된 구현(iocp 로 socket session manager, serializer 등등) 을 하나요? 웹서버 프레임워크처럼 게임서버 프레임워크같은건 사용 안하나요? 게임마다 조금씩은 다르겠지만 공통적으로 구현해야 하는 부분이 많을 것 같아서요. 만약 사용한다면 어떤 프레임워크를 자주 사용하나요?

또 다른 질문이 있는데요. object 간의 collison 같은 건 서버에서 확인하나요? 예를 들어 철권같은 게임에서 player 1 이 player2 를 때렸다면, 맞았다는 판단은 서버에서 내린 후 player1 과 player2 에게 전달되나요? 만약 그렇다면(서버에서 collison을 확인한다면) 서버에 물리엔진? 같은게 구현되어 있어야 할 것 같은데 그러면 좀 이상한 것 같고 그렇지 않다면(서버에서 collison을 확인하지 않는다면) 유저가 colision 을 판단해야 하는데 시간 차이때문에 서로 다른 판단이 일어날 수도 있고 packet 을 조작해서 맞았다고 하기도 쉬울 것 같아서요. 철권같이 판단에 아주 민감한 게임을 만들려고 하는데, 어떻게 하는게 좋을까요? 이미 알려진 아키텍쳐같은게 있다면 키워드로만 알려주시면 제가 찾아보겠습니다.

강의 잘 듣고 있습니다.

MMORPG windows-server network

답변 1

1

Rookiss

현업에서 서버 구축할 때 게임 만들 때 마다 매번 socket 기반작업과 관련된 구현(iocp 로 socket session manager, serializer 등등) 을 하나요?
-> 그건 아니고 회사마다 레거시 코드가 있습니다.
리니지 계열, 블소 계열 이런 식으로 서버가 있고 돌려 쓰는거죠.
처음부터 작업할 수 있는 프로그래머가 많진 않습니다.


 웹서버 프레임워크처럼 게임서버 프레임워크같은건 사용 안하나요? 게임마다 조금씩은 다르겠지만 공통적으로 구현해야 하는 부분이 많을 것 같아서요. 만약 사용한다면 어떤 프레임워크를 자주 사용하나요?
-> 대부분 자체 제작으로 합니다.

또 다른 질문이 있는데요. object 간의 collison 같은 건 서버에서 확인하나요?
-> 당연히 수학적 연산을 서버에서 시뮬레이션 합니다.

예를 들어 철권같은 게임에서 player 1 이 player2 를 때렸다면, 맞았다는 판단은 서버에서 내린 후 player1 과 player2 에게 전달되나요?
-> 물론 그래야 합니다.

철권같이 판단에 아주 민감한 게임을 만들려고 하는데, 어떻게 하는게 좋을까요?
-> 철권이나 롤, FPS 같이 프레임에 민감한 게임은
클라가 서로 상황을 다르게 오인하면 곤란하기 때문에
고정 프레임 (ex. 30프레임)으로 잡고

서버 또한 고정 프레임으로 돌면서 연산을 해야 합니다.

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

65

2

Memory Pool에서 오버플로우 질문입니다.

0

94

2

포토폴리오 및 진로 관련하여 고민입니다.

0

174

1

포토폴리오 관련 고민입니다.

0

91

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

108

2

성능 테스트 결과

0

117

2

게임 서버 Stateful, Stateless 진로 고민

0

147

1

WaitOnAddress와 Sleep의 차이 질문

0

100

1

궁금한거 있습니다.

0

92

2

JobTimer 구동 스레드

0

116

2

TryPop() 동작 관련 질문

0

87

1

로드맵 C#서버 C++서버 방향성 질문

0

162

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

81

1

생명주기를 위한 의도적 복사

0

95

2

락프리의 실무에서 사용 질문

0

154

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

110

2

mutex와 sleep 차이점

0

133

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

167

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

102

1

공부법 관련해서

0

190

2

MakeShared 함수 관련

0

119

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

152

2

운영체제관련 질문입니다

0

145

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

125

2