오 스레드를 사용하는 다른 방법이 떠올랐다. frame을 업데이트하는 stepPhysics() 동작 전부를 스레드로 만들었는데, 주기를 체크하는 동작만 모아두고 주기가 되면 1프레임 업데이트를 수행하는 스레드를 실행하는 것이다. → 유저의 접속이 많아지면 스레드 수가 가변하면 더 유리할 것 같다. 그런 의미의 조치!

갑자기 랜덤을 공부하고 싶어서 아래 기록을 남겼다.

완벽(해보이는) 랜덤 정렬 만들기

기존에 직접 만들었던 Vector2 클래스를 PxVec2 클래스가 상위호환으로 완전히 대체 가능할 것 같아서 Vector2 클래스는 제거하고 PxVec2로 모두 변경했다.

Server에서 InitLevel()을 수행하며 생성되는 모든 Object를 Client로 내려줘야 한다.

셔틀콕의 cock 부분을 만들었다. Z축 회전만 허용하도록 X, Y축 은 잠갔다.

그런데 이 골프공 같은 셔틀콕을 만들고나니, 서버에서 gameobject는 자신의 rigidDynamic, static 등 정보를 갖고 있어야 할 것 같다. 설계를 잠시 고민해보자.

빨간 것은 네트요, 노란 것은 셔틀콕 cock이다(골프공이 아니다).

빨간 것은 네트요, 노란 것은 셔틀콕 cock이다(골프공이 아니다).

TODO

  1. 디버깅을 위해 서버에서 level을 reset해서 client에도 동기화 되도록 보이게 하는 기능이 필요할 것 같다.
  2. 서버에서 만든 bottom과 Net을 Client에 연동 필요하다.
  3. 그동안 클라이언트에 구현했던 물리 동작은 다 서버로 옮긴다.

shuttlecock에게 위치와 velocity를 동기화 해주었다. 왼쪽은 shuttlecock의 cock 위치이고 오른쪽은 client에서 렌더링된 shuttlecock의 위치이다.

image.png