사람들이 다른 게임에 참여할 수있는 로비가있는 멀티 플레이어 게임을 개발 중입니다.Java 서버의 각 게임 룸에 대한 스레드?
각 게임 룸마다 스레드를 시작해야하는지 궁금합니다.
나는 이미 각 플레이어마다 스레드가 있으므로 java.io를 사용하고 있습니다.
각 스레드에 많은 부하가 없어도 많은 스레드가 내 서버를 느리게합니까?
만약 내가 100 명의 플레이어와 30 개의 객실을위한 서버를 호스팅한다면 avarage 가상 서버는 한번에 150 개의 스레드를 처리 할 수 있습니까? 아니면 게임 플레이에 영향을 미칩니 까?
각 위치 업데이트 (UDP)에 대해 인스턴트 메시지 전송이 필요한 실시간 게임입니까?
일반적으로 유용한 것보다 더 많은 스레드를 사용하면 성능이 저하 될 수 있습니다. 그러나이 수치가 작을수록 성능면에서 약간의 차이는 아마도 추가 복잡성의 가치가 없을 것입니다. (성능을 향상 시키려면 스레드를 130 번 정도 전환하지 않고 100 개의 클라이언트와 30 개의 룸 각각에 대해 약간의 작업을 수행 할 수 없으므로보다 효율적인 설계로 이러한 모든 컨텍스트 전환을 피할 수 있습니다.) –
@DavidSchwartz 예, 각 플레이어와 연결에 대해 별도의 객체를 사용하면 훨씬 쉽게 디자인 할 수 있습니다. 조언을 주셔서 감사합니다. 다른 것에 대해 너무 많이 걱정하지 않고 제 디자인에 집중하는 것이 좋습니다. :) –