레트로의 유니티6 : 네트워크 이론

네트워크 용어 정리
서버 : 서비스를 제공하는 컴퓨터
클라이언트 : 서버에 접속하여 서비스를 제공받는 컴퓨터(단말기), 프로그램 또는 사용자
호스트(클라이언트 호스트) : 서버로서 서비스를 제공하면서 동시에 자신도 클라이언트로서 게임에 참가하는 컴퓨터
로컬 사용자 : 현재 컴퓨터/프로그램과 같은 장소에 있는 사용자
리모트 사용자 : 현재 프로그램을 네트워크를 통해 다른 장소에서 접속한 사용자
로컬 클라이언트 : 실행 중인 프로그램과 같은 위치에 있는 클라이언트
리모트 클라이언트 : 실행 중인 프로그램에 원격으로 접속한 클라이언트
플레이어 오브젝트 : 각 플레이어의 아바타(분신)로서 게임에 존재하는 게임 오브젝트
네트워크 게임 이해하기
4인 멀티플레이어 게임에서 플레이어 캐릭터는 총 16명이다.

여기서 아래 둘은 다른 게임 오브젝트다.
클라이언트 A의 플레이어 캐릭터 a
클라이언트 B의 플레이어 캐릭터 a
클라이언트 A와 클라이언트 B의 캐릭터 a에게 동일한 네트워크 ID를 부여하여 동기화하고, 다른 클라이언트에서도 동일하게 움직일 수 있도록 한다.
로컬과 리모트
로컬 소유 오브젝트 : 소유권이 자신(로컬 클라이언트)에게 있음
리모트 소유 오브젝트 : 소유권이 네트워크 너머의 타인(리모트 클라이언트)에게 있음

동기화

클라이언트 A에서 본인 소유 로컬 캐릭터 a를 움직이면, 다른 클라이언트에 a 캐릭터가 움직였다는 변경사항을 전달한다.
네트워크 권한 분리
중요한 연산은 모두 서버(호스트)에 위임
※ 중요한 연산이란? -> 게임 승패와 직접 관련된 기능
중요한 연산을 서버에 위임하는 이유는 대표적으로 두 가지임.


RPC
호스트에 처리를 위임하고, 호스트가 처리 결과를 클라이언트에 전파하려면 RPC(Remote Procedure Call, 원격 프로시저 호출)를 구현해야함.
RPC는 특별한 처리 없이도 다른 컴퓨터에 있는 함수를 호출할 수 있는 기술임.

댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

게임업계 취업을 준비하다 보면 조금 불편한 현실을 마주하게 됩니다. 게임회사에 들어가고 싶은 사람은 많습니다. 특히 신입 채용은 더 그렇습니다. 공고 하나에 많은 지원자가 몰리고, 회사 입장에서는 비슷한 조건의 지원자 가운데 사람을 선택할 수 있습니다. 그래서 다른 산업에서 흔히 이야기하는 “처음부터 연봉을 낮춰 부르지 마세요.” “적극적으로 협상하세요.”

우리들의 게임 발매 이야기
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.


게임업계 취업을 준비하다 보면 조금 불편한 현실을 마주하게 됩니다. 게임회사에 들어가고 싶은 사람은 많습니다. 특히 신입 채용은 더 그렇습니다. 공고 하나에 많은 지원자가 몰리고, 회사 입장에서는 비슷한 조건의 지원자 가운데 사람을 선택할 수 있습니다. 그래서 다른 산업에서 흔히 이야기하는 “처음부터 연봉을 낮춰 부르지 마세요.” “적극적으로 협상하세요.”
