저는 현재 하향식 실시간 좀비 슈팅 게임을 개발 중입니다. JBox2D를 물리 엔진으로 사용하여 Java로 이것을 코딩하고 있습니다. 나는 이번 주에 네트워킹을 코딩했으며 이제 물리 동기화에 달려 있습니다.
서버가 나중에 승인하는 한 클라이언트가 자유롭게 이동할 수있는 예측 클라이언트 / 권한있는 서버 모델을 사용할 계획입니다. 여기에는 클라이언트가 이동 데이터가 포함 된 패킷을 서버로 보내고 서버가 대기 시간을 계산하고 이전 상태에서 세계를 다시 시뮬레이션하는 과정이 포함됩니다.
내 문제는 현재 물리 엔진 인 JBox2D (기본적으로 Box2D 포트)가 월드 롤백을 지원하지 않으며 월드 데이터를 직렬화하는 것이 쉽지 않다는 것입니다. 나는 2 가지 해결책을 가지고 있습니다. 현재 물리 엔진을 수정 / 확장하거나 직접 작성할 수 있습니다.
내 자신의 물리 엔진을 작성하는 이유-
- 불필요한 기능을 제거 할 수 있습니다. 하향식 게임에서는 충돌 메커니즘과 처리 력 만 있으면됩니다. 중력이 없습니다.
- 코드를 더 잘 이해할 수 있으며 롤백 함수를 구현하는 것이 더 쉬울 것입니다.
JBox2D 확장 / 수정 이유
- 내 자신의 물리 엔진을 작성하면 상당한 양의 작업이 필요할 수 있습니다.
- JBox2D는 광범위하게 지원하는 커뮤니티를 보유하고있어 개발자와 함께 할 수 있습니다.
- JBox2D는 충돌 감지와 같은 특정 최적화 기능을 갖추고있어 유용합니다.
- 이미이 작업을 수행했지만 약간의 코드가 공유되었습니다.
그래서 당신의 의견은 무엇입니까? 이것은 내 첫 게임이며, 전문 게임 개발자는 아닙니다. 누구든지 해당 영역에서 이미 수행 할 수있는 링크를 제공 할 수 있다면 (바람직하게 JBox2D / Box2D / Java 사용).
strictfp
어디에서나 사용해야하므로 성능에 심각한 영향을 미칩니다. 그렇지 않으면 서버와 클라이언트가 정확히 동일한 결과를 얻지 못할 수 있습니다. 대신 고정 소수점을 사용하는 것이 좋습니다.