UNITY/크레이지아케이드 모작

동기화

2zreal 2024. 7. 28. 04:05

기본 로직 구현을 마친 후, 플레이어에게 최적의 경험을 제공하기 위한 동기화 방안에 대해 고민해보았다.

우선, 물풍선 생성은 생성한 클라이언트에서 직접 수행하도록 설정했다. 초기에는 마스터 클라이언트가 물풍선을 생성하도록 했으나, 생성한 클라이언트에서 물풍선이 늦게 생성되는 문제가 발생했다. 이로 인해 게임의 몰입도가 떨어졌기 때문에, 각 클라이언트가 자신의 측에서 물풍선을 생성하도록 변경했다.

물풍선의 움직임은 생성한 클라이언트가 전적으로 제어하도록 하여, 화면 상의 반응 속도를 개선했다. 초기 설계에서는 마스터 클라이언트가 일반 클라이언트로부터 물풍선의 좌표를 받아 생성하고, 모든 움직임을 관리하도록 했으나, 이는 부드러운 경험을 제공하는 데 한계가 있었다. 일반 클라이언트가 물풍선을 생성하고 이를 제어하는 방식으로 변경함으로써, 더 매끄러운 플레이가 가능해졌다.

물줄기를 생성하고 물풍선을 터뜨리는 로직은 마스터 클라이언트에서 수행하도록 하여, 모든 클라이언트가 동일한 결과를 공유할 수 있도록 했다. 또한, 물풍선에 맞은 클라이언트는 해당 정보를 마스터 클라이언트에 전달하여, 모든 클라이언트에게 일관된 결과가 통보되도록 구현했다.

이러한 방식으로 동기화를 효율적으로 처리함으로써, 각 클라이언트의 사용자 경험을 향상시키고 게임의 전반적인 흐름을 원활하게 유지할 수 있었다.

아이템 생성, 아이템 획득, 아이템 파괴, 블럭 파괴 등은 모두 마스터 클라이언트 차원에서 작업을 하도록 하여 모든 클라이언트에게 일관된 정보를 전달하도록 하였다.

현재 마스터 클라이언트에 부하가 과도하게 걸리는 상황이므로, 부하 분산을 위한 방법을 모색하여 시스템의 효율성을 개선하도록 하겠다.

 

 

'UNITY > 크레이지아케이드 모작' 카테고리의 다른 글

해상도 조절, InputField 포커스  (0) 2024.08.01
유니티 파이어베이스 연동  (2) 2024.07.31
물풍선 로직 수정  (2) 2024.07.25
멀티플레이 구현  (2) 2024.07.23
플레이어 충돌 방지  (0) 2024.07.23