C# Игровая Сетевая Библиотека

Я разрабатываю онлайн-стратегию игры с использованием .Net v2. Хотя игра в основном стратегическая, она имеет некоторые тактические элементы, которые требуют разумной производительности сети. Я планирую использовать TCP-пакеты для стратегических данных и UDP-пакеты для тактических данных.

{EDIT} я забыл упомянуть, что я отклоняюсь от WCF и .NET 3+ по нескольким причинам. Во-первых, потому что я хочу сохранить свою загрузку маленькой, и большинство моих клиентов уже имеют .NET 2.0. Во-вторых, потому что я хотел бы иметь возможность переноса на Mac и Linux и не уверен в доступности WCF в Mono. {/EDIT}

Я ищу рекомендации сетевой библиотеки. Я нашел несколько вариантов, таких как Torque Network Library (C++) GarageGames, RakNet (C++) и lidgren network library (C#):

http://www.opentnl.org/ http://www.jenkinssoftware.com/ http://code.google.com/p/lidgren-network/

тут у кого-нибудь есть реальный опыт работы с теми или иными библиотеками?


Я просто наткнулся на RakNetDotNet:

http://code.google.com/p/raknetdotnet/

этой может быть тем, что я ищу...

8 ответов


зачем ограничивать себя .NET 2.0. .NET 3.0 (или 3.5) содержит WCF и является прочной, работоспособной подсистемой связи с хорошей безопасностью. .NET 3.0 - это просто .NET 2.0 с дополнительными библиотеками (WCF, WF, WPF).


собственный .NET на основе Microsoft XNA позволяет создавать сетевые игры на Windows и XBox 360.


http://code.google.com/p/lidgren-network-gen3/

Линдгрен.Сеть-это сетевая библиотека для .net framework, которая использует один сокет udp для доставки простого API для подключения клиента к сервер, считывающий и отправляющий сообщения.


Я также хотел бы отметить, что "игры для Windows", которые XNA использует на windows с его Live! сетевые API теперь бесплатны ... это означает, что если вы пишете игру XNA, которая использует сетевые функции, ваши пользователи не должны иметь золотое членство :-)

http://www.engadget.com/2008/07/22/games-for-windows-live-now-free/


хотя этот вопрос довольно старый, несколько более высокий уровень системы, разработанной специально для игр является APlay - среди поддерживаемых платформ также есть C#. Есть оценочные версии, и это бесплатно для личного использования.

вы определяете свои игровые объекты так же, как UML, и онлайн-генератор кода создает сборки, содержащие ваши игровые объекты. Отправка обновлений состояния тогда так же просто, как вызов методов setter.

Не правильно, если вы хотите справиться с розетками самостоятельно. Также обратите внимание, что я разработчик APlay, поэтому это предвзятый ответ.


Если вы новичок в разработке игр, я бы рекомендовал XNA-это легко программировать. Преимущество Torque, однако, имеет инструменты создания активов, которые также могут быть неоценимы. Для более высокого конца игры или FPS, исходный движок велик.


вы можете взглянуть на Entanglar (http://entanglar.dunnchurchill.com ) Если вы ищете что-то более высокого уровня. Entanglar обеспечивает полный жизненный цикл и синхронизацию сущностей.


древний вопрос, но я поставлю это там для всех, кто наткнется на это. Мы используем OpenTNL для нашей игры, Bitfighter, и я постоянно удивляюсь, насколько хорошо он работает. И это бесплатно, если вы можете жить с GPL.