지난주까지 RPC 동작을 구현해보았다.

캐릭터 이동에 따른 위치 동기화를 구현해볼 것이다.

필요한 것

GameObject별로 objectId를 두고, Network 통신을 한다면 NetworkObjectId도 한다.

그런데 멀티플레이 게임인데 ObjectId만 있고 NetworkId는 없는 경우가 있는가? 이 두 개가 같은 말인 건 아닌지? 다르게 할 필요는 없는 듯하다. NetworkId도 ObjectId를 쓰면 되는 것 같다. 어쨌든 create를 서버로 통일만 하면 된다. 근데 일단은 그냥 각각 사용해서 둘 다 쓰자!

CRTP (Curious Recurring Template Pattern)

typeid

가상함수 테이블

위와 같이 분석해보니 CRTP는 좀더 성능을 얻기 위한 거대한 흑마법이라는 걸 알았다. 컨테이너에 넣기 위해 요상한 방법을 써야 함. 좋지 않은 것으로 파악!!

있는 걸 재활용하면서 Client → Server 방향으로 Init을 요청하는 게 좋겠다.

Create~ Update~

프로세스 동기를 어떻게 맞추지? Server가 World와 Player를 만들어서 다 전파하고 시작! 한다고 하면 깔끔해보인다. Client는 ProduceWorld 상태인 것으로.

  1. World Setup
  2. Object Setup