문제

현재 과제를 위해 온라인 턴 기반 RPG를 코딩하고 있습니다. 게임에서 플레이어는 서로 대화하고 회전을 완료하면 행동을 보낼 수 있습니다. 플레이어 간의 데이터 교환을 처리하는 가장 좋은 방법은 무엇입니까? 소켓 또는 데이터베이스에 모든 정보를 저장하고 프로그램은 정기적으로 업데이트를 확인하도록 요청합니까? 더 나은 접근 방식이 없다면.

이 게임은 광범위한 규모의 의미입니다. 즉, 많은 플레이어가 동시에 많은 게임을 동시에 가지고있을 것이므로 가능한 한 효율적으로 노력해야합니다.

도움이 되었습니까?

해결책

Silverlight에서는 Silverlight 앱을 제공 한 호스트에만 다시 연결하여 클라이언트 클라이언트 소켓을 배제 할 수 있습니다. 게임 (채팅 포함)의 모든 것이 서버를 통해 가야합니다.

WCF (Windows Communication Foundation)는 Silverlight2에서 작업하는 것이 좋습니다. 게임 턴 기반을 사용하면 실시간으로 플레이어간에 동일한 게임 상태를 유지할 필요가 없기 때문에 조금 쉬워집니다 (예 : 최대 100ms 대기 시간을 목표로하지 않음).

다른 팁

가능하면 WCF를 사용하십시오.

두 가지 주요 가능성이 있습니다. 당신은 신청할 수 있습니다 소켓 커뮤니케이션 또는 사용할 수 있습니다 이중 WCF. 트레이드 오프는 다음과 같습니다.

소켓 => 더 작은 생산성보다 더 나은 성능
이중 WCF => 성능은 악화되지만 생산성이 높습니다

두 장면 모두에 대한 그물에는 몇 가지 훌륭한 예가 있지만 WCF 솔루션을 결정하면 여기에 몇 가지 리소스가 있습니다.

아주 좋은 튜토리얼 Peter McG.
정보에 대한 정보 MSDN의 이중 WCF.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top