Game Instance Subsystem Game Instance는 Spawned at game creation, Not destroyed until the game is shut down, Persists between levels과 같은 특징들을 가지고 있다. 서브시스템을 만들 때 필요한 특징들을 가지고 있긴 하나, 서브시스템의 부모 Class로 사용하기엔 포함하는 기능이 너무 많음. 따라서 대신에 Game Instance Subsystem을 부모 Class로 사용한다. https://docs.unrealengine.com/5.0/en-US/programming-subsystems-in-unreal-engine/ Programming Subsystems An overview of programmin..
IP Adress 로컬 네트워크에 없는 플레이어와 연결한다: 대부분의 로컬 네트워크 라우터는 로컬 IP 주소 (내부 IP 주소)를 컴퓨터에 할당한다. (인터넷 케이블, 와이파이로 연결) 외부 IP 주소(공용 IP 주소)는 인터넷 서비스 제공자(ISP)에서 라우터에 할당함. Servers and Services 그러면 친구랑 게임을 할 때는 IP 주소 목록이 있는 서버를 사용하거나 Listen Server를 사용한다. 물론 Listen 서버를 사용하여도 클라이언트가 IP 주소를 알아야 하기 때문에, 중간단계 역할의 서버를 이용하기도 한다. 또 친구 추가 기능, 보안, 플랫폼 대응 등 게임 플레이 프로그래밍 수준을 넘는 기술이 필요하다. 그러면 결국 하나의 코드 베이스를 통해 연결할 수 있는가? -> 언리얼..
Multiplayer Concepts Peer to Peer 간단한 게임의 경우 구현하면 좋음. 하지만 플레이어가 증가하면 전송하는 데이터의 양이 늘어나서 플레이어가 많은 경우 적합하지 않음. 또한 게임의 정식 버전이 없음. 어떤 게임 인스턴스가 올바른 인스턴스인지 보장할 수 없음. Clinet - Server Model 단일 시스템은 서버로 지정되고, 나머지 시스템은 클라이언트로 지정됨. 클라이언트는 서버를 통해서만 대화를 함. 서버의 Authority: 서버에 요청(Request)를 보내고 Replication을 통해 데이터를 복제해 다른 클라이언트에게 정보를 업데이트함. 서버는 항상 게임의 올바른(Correct) 버전임. Listen Server 플레이어의 장치 중 하나가 서버의 역할을 함. 실제로..