Today I Learned …

[Game] 네트워크 게임 개발 : 기초 이론 본문

Game/공부

[Game] 네트워크 게임 개발 : 기초 이론

염베리 2022. 1. 11. 04:52

* 개인적인 공부 내용을 기록한 글입니다.

* retr0 「네트워크 게임 개발하기」 https://www.youtube.com/watch?v=z8KLb3lQofg


사담

 

늘 그렇듯 뜬금으로 멀티겜 만들기 도전ㅎ.....


네트워크 게임 개발 : 기초 이론

 

 

4인 멀티 게임에 플레이어는 몇명 존재할까?

답은 16명이다.

모든 플레이어의 게임 세상에 각각 4인의 플레이어가 존재하기 때문이다.

 

로컬 플레이어와 리모트 플레이어

A 입장 : A(로컬), B(리모트), C(리모트), D(리모트)

B 입장 : A(리모트), B(로컬), C(리모트), D(리모트)

C 입장 : A(리모트), B(리모트), C(로컬), D(리모트)

D 입장 : A(리모트), B(리모트), C(리모트), D(로컬)

 

리모트 플레이어는 레플리카다

B, C, D 세상에 존재하는 리모트 A는,

A 세상에 존재하는 진짜 A의 레플리카일 뿐이다.

따라서 진짜 A의 동작에 동기화되어 움직인다.

* 각 세상의 A들은 완전히 다른 오브젝트다. 진짜 A와 연결이 끊기면 서로 다른 동작을 취한다.

 

Server - Client 방식을 게임에 적용하는 방법

[1] Play as Host

[2] Dedicated Server

 

Play as Host (P2P)

서버 부담을 덜기 위해 플레이어 중 한 명을 호스트이자 서버로 지정하여 다른 플레이어들이 참가하도록 한다.

이때, 핵을 방지하기 위해 클라이언트를 신뢰하지 않는 방식으로 개발한다.

예) A가 동작을 원할 시, A가 직접 B, C의 A 레플리카를 동기화시킬 수 없고, 방장인 C에게 A를 대신 움직여달라고 부탁해야한다. 즉, 어떤 처리를 클라이언트는 하려는 척만하고, 실제 물리/충돌 처리 및 동기화는 방장이 맡게 된다.

 

서버에서 일어나지 않은 일은 애초에 없었던 일이 된다.

따라서 패킷 손실로 인해 서버에 전달되지 않은 정보는 그냥 씹힌다고 보면 된다. (씹힐 확률 : 1초 2발 < 1초 10발)

 

모든 정보를 동기화하는 것은 아니다. (애니메이션 등)

 

Dedicated Server

플레이어로 게임에 참가하지 않고 고정된 서버로서 100% 모든 자원을 게임을 돌리는 데 사용한다.

Play as Host 방식에 비해 네트워크 품질이 좋다. (P2P 방식은 방장의 컴퓨터 환경에 의존하기 때문에 매 회 랜덤이다.)

'Game > 공부' 카테고리의 다른 글

[Game] Photon  (1) 2022.01.12
프로필사진
berry
FE Developer, loves React & better DX
Comments