본 캠프 TIL

26.07.28 TIL / UE 멀티플레이어 게임 개발 정리

jh009 2026. 7. 28. 20:31

오늘

내일 CH.4 발제와 개인과제 발제가 있기 때문에 미리 동영상 보며 정리를 시작하였음.  

 

 

Unreal Engine 멀티플레이어 게임 개발 1-1

1-1. 채팅 프로젝트 생성1. 프로젝트 생성 UE5.5.4 기준 프로젝트 세팅 코드 선택 → Ctrl + . 누르기 → Create Declaration / Definition 선택하면 cpp 코드를 자동을 짜줌2. 새 레벨 만들기 Content Browser > Content

jh009.tistory.com

 

 

Unreal Engine 멀티플레이어 게임 개발 1-2

1-2. 서버의 종류와 데디케이티드 서버 P2P Server(Peer to Peer Server) 각각의 컴퓨터가 클라이언트이자 서버인 구조 (예시: 다크소울)Listen Server 클라이언트이자 서버인 방장(Host)이 있고, 나머지 참가자

jh009.tistory.com

 

 

Unreal Engine 멀티플레이어 게임 개발 1-3

1-3. 실습 환경 설정비쥬얼 스튜디오 단축키 Ctrl + T > 코드 서치 실습 환경 설정 설정 후 PIE PIE 후에 플레이 종료하면 뜨는 에러 메세지 기존 로직의 문제점 굳이 내 UI를 다른 사람이 볼 필요는 없

jh009.tistory.com


멀티플레이 관련 용어 정리

 

Client/Server구조

네트워크를 통해 역할을 나누어 서비스를 주고받는 방식.

 

클라이언트 : 서비스를 요청하는 사용자 측 시스템.

서버 : 요청을 받아 처리한 뒤 결과를 응답하는 시스템.

  • 역할 분담으로 유지보수와 데이터 관리가 편함 / 확장성이 좋음.
  • 서버에 문제 발생 시 서비스 중단이 될 수 있음.

Request/Response

클라이언트와 서버가 소통하는 통신 방식.

클라이언트의 요청을 서버가 처리해서 응답함.

 

Request : 클라이언트가 서버에게 먼저 요구.

Response : 서버가 요청을 받아 처리한뒤 클라이언트에게 결과를 돌려줌.


TCP/IP

인터넷에서 컴퓨터들이 서로 통신하기 위해 사용하는 프로토콜.

 

TCP(Transmission Control Protocol) : 데이터를 빠짐없이 순서대로 주고받도록 보장하는 역할.

IP : 데이터를 정확한 주소로 찾아가게 전달하는 역할.

 

클라이언트와 서버가 인터넷에서 정확한 주소로 데이터를 안전하게 주고받기 위해 사용하는 표준 통식 약속.


LAN

가깝거나 제한된 공간에서 컴퓨터와 장비를 서로 연결한 네트워크.

  • 속도 빠름.
  • 데이터 전송 비용이 저렴.
  • 외부 인터넷과 분리된 내부 망 구성 가능.

예시: 공유기(와이파이) - 스마트폰, 노트북 등을 연결해서 사용.


동기화/비동기화

작업을 처리하는 시간적 방식의 차이.

 

동기화 :

  • 요청을 보내고, 결과가 나올 때까지 기다리는 방식. 
  • 작업 진행 순서가 확실함.
  • 기다리는 동안 다른 작업 불가능.

비동기화 :

  • 요청을 보내고, 결과를 기다리지 않고, 결과가 오면 처리하는 방식. 
  • 자원을 효율적으로 사용가능.
  • 처리가 복잡함.

언리얼 리플리케이션

멀티플레이어 게임에서 클라이언트와 서버 간의 게임 데이터를 동기화하는 시스템.

 

서버가 모든 데이터를 가지고 있고, 클라이언트에게 복제와 소통(RPC)하는 멀티플레이어 개발 핵심 시스템

 

  • 서버 권한 : 게임 상태를 가지고 있는 곳은 서버뿐임.
  • 변수 복제 : 서버의 변수 값(체력 증가, 탄창 감소 등) 변화를 클라이언트에게 자동으로 전송하여 동기화
  • RPC(Remote Procedure Call) : 네트워크를 통해 다른 컴퓨터에 있는 함수를 실행하는 기능
    • Server RPC : 클라이언트가 서버에게 실행을 요청하는 함수. (공격, 아이템 줍기)
    • Client RPC : 서버가 특정 클라이언트에게만 명령하는 함수. (특정 플레이어 피격 효과)
    • NetMulticast : 서버가 모든 클라이언트에게 동시에 실행을 지시하는 함수. (사운드 재생, 폭발 효과)

언리얼 오쏘리티

게임 데이터와 상태를 결정할 수 있는 권한을 가진 서버의 상태

 

오쏘리티 권한을 가지게 되면?

  • 서버 : 캐릭터의 체력, 아이템 획득 등 결정은 서버가 내림.
  • 클라이언트 : 서버가 보내주는 결과를 받아 화면에 출력할뿐임, 결과를 확정할 권한X

Autholity

언리얼 엔진 멀티플레이에서 "누가 게임 상태를 결정할 수 있는가?"를 나타내는 핵심 개념.

  • 서버 = Authority (권한 있음) : 게임 데이터를 변경하고 결정할 수 있는 자격을 가짐.
  • 클라이언트 = No Authority (권한 없음) : 서버의 결과를 보여주거나, 서버에게 허락을 구해야 함.

소켓

네트워크를 통해 컴퓨터끼리 데이터를 주고받을 수 있도록 연결해 주는 소프트웨어로 된 단자.

  • 프로그램이 네트워크를 통해 데이터를 보내고 받을 수 있도록 인터페이스 역할을 함.
  • IP 주소와 포트(Port) 번호를 조합하여 네트워크상에서 통신할 상대를 정확히 찾아냄.

네트워크

  • 컴퓨터나 스마트폰 같은 디지털 기기들이 서로 연결되어 데이터와 정보를 주고받을 수 있는 통신망.
  • 기기들이 서로 연결되면서 파일 공유, 메시지 전송, 인터넷 사용 가능하게 해줌.
  • 기기들이 서로 정보를 주고받기 위해 연결된 연결 고리.

회고

내일 CH.4 발제와 개인과제 발제로 미리 예습을 해보았다. 

동영상 강의 정리와 멀티플레이 관련 용어 정리도 하였다.

조금이라도 도움이 되었으면 해서 더 찾아보기도 했다.

 

네트워킹 개요도 읽어보면서 멀티플레이의 방식을 이해하려고 한다.

 

https://dev.epicgames.com/documentation/unreal-engine/networking-overview-for-unreal-engine?lang=ko

 

Networking Overview for Unreal Engine | Unreal Engine 5.8 Documentation | Epic Developer Community

Learn about networking in Unreal Engine including fundamental concepts and the available replication systems.

dev.epicgames.com