Серверная сторона для многопользовательской пошаговой игры Silverlight - PullRequest
3 голосов
/ 11 июня 2009

В настоящее время я нахожусь на ранней стадии разработки браузерной игры с использованием silverlight. В игре будет много матчей по 2-4 игрока (возможно, даже до 8), и они будут пошаговыми.

Внешний интерфейс Silverlight 3.0, так как у меня есть некоторый опыт там. Я пытаюсь понять, каким должен быть сервер. Так как игра пошаговая, ей не нужно будет опрашивать сервер так часто, как игра в реальном времени. Серверная часть будет иметь своего рода промежуточный уровень, который обменивается данными между клиентом и серверной частью. Серверной частью будет служба Windows на основе c #, которая выполняет проверку и вычисления на основе действий пользователя (атака, защита, перемещение, навыки, прокачка и т. Д. И т. Д.).

Каковы плюсы и минусы следующего для среднего уровня связи между клиентом Silverlight 3.0 и службой windows c на сервере.

  1. Головки
  2. Дуплексный сервис WCF / WCF
  3. .Net RIA Services

В настоящее время я ничего не знаю о трех вышеупомянутых вариантах, однако в прошлом я создавал веб-службы ASP.Net, а в университете я занимался программированием сокетов, о которых я почти забыл.

1 Ответ

2 голосов
/ 22 сентября 2009

Вот мой взгляд на вещи:

Разъемы: Плюсом является то, что это может работать действительно хорошо. Недостатком является то, что его несколько хрупко и сложно реализовать как на клиенте, так и на сервере. Я бы избегал этого, если нет другого пути (например, вам нужна очень высокая производительность).

Дуплекс WCF / WCF: WCF очень легко внедрить, если вы потратите десять минут на то, чтобы подумать, что вы хотите отправить туда-сюда. Производительность хорошая, а развертывание легко. Это будет мой первый выбор для онлайн-игры.

Дуплекс WCF несколько сложнее. Есть несколько хороших учебных пособий о том, как заставить это работать, но я нахожу, что есть некоторые подводные камни, которые могут не стоить этого усилия. Если вам не нужны высокие интервалы опроса, я бы придерживался нормального WCF. Насколько я знаю, WCF Duplex также выполняет опрос, так что на самом деле это не дуплекс.

.NET RIA Сервис: Я не уверен в этом, но я полагаю, что при больших объемах трафика вам не нужны служебные данные. Также из вопросов форума я узнаю, что этот не так легко настроить, тогда как WCF более гибок.

Вывод: Если нет веских причин не делать этого, я бы придерживался WCF.

...