인프런 커뮤니티 질문&답변

Hwang Jaeyoung님의 프로필 이미지
Hwang Jaeyoung

작성한 질문수

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

현업에서 서버 구축

작성

·

646

0

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

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

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

강의 잘 듣고 있습니다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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


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

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

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

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

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

Hwang Jaeyoung님의 프로필 이미지
Hwang Jaeyoung

작성한 질문수

질문하기