Study/TIL(Today I Learned)

24.04.29 나만무

에린_1 2024. 4. 30. 00:37
728x90

나만무

순환참조 문제

InGameServer.js의 broadcast()를 ProtocolHandler.js에서 사용하기 위해 InGameServer를 import했는데, InGameServer에서 이미 ProtocolHandler를 참조(import)하고 있었기에 순환 참조 문제가 발생했다.

broadcast() 함수를 ProtocolHandler로 옮겨서 해결했다.

코드 아키텍쳐 설계의 중요성을 다시 한 번 알게됐다.

변수 수정 문제

유저를 id로 관리할 때, 기존에는 간단하게 구현했었다.

sockets의 size를 id 삼아서 사용했었는데, 이를 id를 랜덤으로 생성하도록 변경한 후, 이 부분을 다시 변경해주지 않아서 문제가 발생했다.

변수를 잘못 사용하던 부분을 수정하여 해결했다.

협업 문제

클라이언트와 소통하는 과정에서 생긴 문제로, pos를 업데이트 하고 있다고 생각했으나 클라이언트가 보내주는 정보는 direction이었다.

  1. PlayerMove → direction을 전송하는 프로토콜로 재정의했다.
  2. SyncPosition → position을 전송해 플레이어의 위치를 업데이트 하는 프로토콜을 생성했다.
  3. PlayerMove가 사용하던 UpdatePlayerPos()를 SyncPosition이 사용하도록 변경하고, UpdatePlayerDirection()을 추가해 PlayerMove가 사용하도록 했다.
  4. UpdatePlayerDirection()은 플레이어가 향하는 방향을 전송해 다른 클라이언트가 플레이어의 위치를 그릴 수 있도록 했다.

 

728x90

'Study > TIL(Today I Learned)' 카테고리의 다른 글

24.05.01 나만무  (0) 2024.05.03
24.04.30 나만무, 멘토 면담  (0) 2024.05.01
24.04.28 나만무  (0) 2024.04.30
24.04.27 나만무  (0) 2024.04.30
24.04.26 나만무, Node.js  (3) 2024.04.26