2009-06-11 4 views
3

저는 실버 라이트를 사용하는 브라우저 기반 게임을 디자인하는 초기 단계에 있습니다. 이 게임은 2-4 명 (아마도 최대 8 명)의 많은 경기를 가지며 턴 기반이 될 것입니다.멀티 플레이어 턴 기반 실버 라이트 게임을위한 서버 쪽

프런트 엔드는 경험이 있기 때문에 Silverlight 3.0입니다. 백 엔드가 무엇인지 알아 내려고 노력 중입니다. 게임은 턴 기반이므로 실시간 게임처럼 서버를 폴링 할 필요가 없습니다. 서버 엔드에는 클라이언트와 백엔드 사이에서 통신하는 중간 계층의 일종이 포함됩니다. 백 엔드는 사용자 작업 (공격, 방어, 이동, 기술, 평준화 등)을 기반으로 유효성 검사 및 계산을 수행하는 C# 기반 Windows 서비스가 될 것입니다.

Silverlight 3.0 클라이언트와 서버의 C# windows 서비스 사이의 중간 통신 계층에 대한 다음과 같은 장점 및 단점은 무엇입니까?

  1. 소켓
  2. WCF/WCF 이중 서비스
  3. 닷넷 RIA 서비스

현재 그러나 나는 내가 과거에 ASP를 만들었습니다, 위의 세 가지 옵션에 대해 아무것도 몰라. 닷넷 웹 서비스와 대학에서 나는 거의 잊어 버린 소켓 프로그래밍을했다.

소켓 : 상승 여력이 정말 잘 수행 할 수 있다는 것입니다

답변

2

여기에 사물의 내 생각이다. 단점은 클라이언트와 서버 모두에서 구현하기에는 다소 허약하고 복잡하다는 것입니다. 다른 방법이 없다면 (예 : 매우 높은 성능이 필요한 경우)이를 피할 수 있습니다.

WCF/WCF 이중화 : WCF는 앞뒤로 보내려는 항목에 대해 생각할 때 10 분이 걸릴 경우 구현하기가 매우 쉽습니다. 성능이 좋고 배포가 쉽습니다. 이것은 온라인 게임을위한 나의 첫번째 선택 일 것입니다.

WCF 이중화는 다소 복잡합니다. 이 작업을 수행하는 방법에 대한 좋은 자습서가 있지만, 노력의 가치가있는 몇 가지 함정이 있음을 발견했습니다. 높은 폴링 간격을 필요로하지 않는다면 나는 정상적인 WCF를 고수 할 것입니다. 내가 아는 한 WCF Duplex는 폴링을 수행하므로 실제로 이중화는 아닙니다.

.NET RIA 서비스 : 나는 이것에 대해 잘 모르지만, 오버 헤드는 많은 양의 트래픽이있을 때 필요한 것이 아니라고 생각합니다. 또한 포럼 질문에서 나는 WCF가 더 융통성이 있지만 사용자 정의하기 쉽지 않다는 것을 알았습니다.

결론 : 어떤 강력한 이유가없는 한 WCF를 계속 사용합니다.

관련 문제