728x90
나만무
순환참조 문제
InGameServer.js의 broadcast()를 ProtocolHandler.js에서 사용하기 위해 InGameServer를 import했는데, InGameServer에서 이미 ProtocolHandler를 참조(import)하고 있었기에 순환 참조 문제가 발생했다.
broadcast() 함수를 ProtocolHandler로 옮겨서 해결했다.
코드 아키텍쳐 설계의 중요성을 다시 한 번 알게됐다.
변수 수정 문제
유저를 id로 관리할 때, 기존에는 간단하게 구현했었다.
sockets의 size를 id 삼아서 사용했었는데, 이를 id를 랜덤으로 생성하도록 변경한 후, 이 부분을 다시 변경해주지 않아서 문제가 발생했다.
변수를 잘못 사용하던 부분을 수정하여 해결했다.
협업 문제
클라이언트와 소통하는 과정에서 생긴 문제로, pos를 업데이트 하고 있다고 생각했으나 클라이언트가 보내주는 정보는 direction이었다.
- PlayerMove → direction을 전송하는 프로토콜로 재정의했다.
- SyncPosition → position을 전송해 플레이어의 위치를 업데이트 하는 프로토콜을 생성했다.
- PlayerMove가 사용하던 UpdatePlayerPos()를 SyncPosition이 사용하도록 변경하고, UpdatePlayerDirection()을 추가해 PlayerMove가 사용하도록 했다.
- UpdatePlayerDirection()은 플레이어가 향하는 방향을 전송해 다른 클라이언트가 플레이어의 위치를 그릴 수 있도록 했다.
728x90
'Study > Project' 카테고리의 다른 글
나만무 슬레이어즈6 (0) | 2024.05.03 |
---|---|
나만무 슬레이어즈5 (0) | 2024.05.01 |
나만무 슬레이어즈 3 (0) | 2024.04.30 |
나만무 슬레이어즈 2 (0) | 2024.04.30 |
나만무 슬레이어즈 1 (1) | 2024.04.26 |