Библиотеки сетевого уровня [закрыто]

12

Я ищу любые сетевые уровни, которые можно добавить в мою игру, либо бесплатно, либо по справедливой цене для инди-игр.

Под сетевыми уровнями я подразумеваю некую библиотеку, с которой я могу взаимодействовать, с которой я смогу отправлять сообщения и получать сообщения, и она будет обрабатывать всю информацию низкого уровня сама.

Я особенно ищу:

  • Высококачественные библиотеки, которые понимают и решают сложные проблемы, такие как перегрузка сети.
  • Масштабируемые библиотеки, благодаря которым у меня будет много игроков, играющих вместе.
  • Желательно одноранговое решение, а не серверное.
  • Предпочтительно библиотека, которая имеет привязку для языков высокого уровня (таких как Java или C #).

Примером того, что я ищу, является Grapple , но я знаю, что есть и другие доступные библиотеки.

дуб
источник
Хотя этот вопрос очень полезен, этот вопрос, вероятно, не подходит для формата stackexchange, поскольку он действительно требует сравнения функций различных библиотек и, следовательно, открытого обсуждения.
Кэмерон Фредман

Ответы:

8

Я чувствую необходимость добавить ENet в этот список. Конечно, он не поставляется с привязками к другим языкам, но, учитывая, что он написан на C, создание привязок для него тривиально.

Я нашел ENet надежным, хорошо написанным и масштабируемым, и очень хорошо справляется с одноранговыми играми.

Блэр Холлоуэй
источник
5

Некоторое время мы использовали RakNet и наслаждались им, и получили положительные отзывы от других студий, которые его использовали. http://www.jenkinssoftware.com/

Хорошая вещь о RakNet заключается в том, что он по большей части кроссплатформенный, поэтому если вы хотите войти в пространство консоли, это хорошая возможность.

Джефф
источник
Мне нравится, как это бесплатно для инди-игр
Дуб
Я также использовал RakNet, и это довольно мило. Он не идеален, но примеры хороши, у вас есть полный доступ к источнику, и лицензия Indie очень проста.
Логан Кинкейд
4

Я выбрал Zoidcom (C ++), потому что он хорошо спроектирован и имеет отличную документацию + примеры:

Сетевая библиотека Zoidcom - это высокоуровневая сетевая библиотека на основе UDP, предоставляющая функции для автоматической репликации игровых объектов и синхронизации их состояний по сетевому соединению с высокой пропускной способностью. Это достигается путем мультиплексирования и демультиплексирования информации об объектах из потоков битов и в них, что позволяет легко избежать отправки избыточных данных. Bool занимает только один бит, целые числа и числа с плавающей запятой сокращаются до необходимого количества бит.

Zoidcom выполняет большую часть утомительной работы, возникающей при попытке разработать эффективный сетевой протокол, например, решая, когда отправлять какие данные клиенту, как эффективно и надежно передавать их по линии, что делать при получении данных. потерял и многое другое.

Некоторые игры с открытым исходным кодом, созданные с использованием Zoidcom:

Лицензия:

Zoidcom свободно доступен для некоммерческого использования и останется таковым. Коммерческие и условно-бесплатные лицензии доступны по запросу, официальное объявление о лицензии будет доступно с выпуском 1.0.

оборота Leftium
источник
2

Если C # не проблема, вы можете проверить Lidgren . В настоящее время в третьем поколении, он имеет (среди прочего):

  • Лицензия MIT
  • Peer-to-Peer (NetClient / NetServer основаны на NetPeer)
  • Лаг симуляция
  • Пакетное шифрование
  • Очень эффективно (буферы повторно используются для нулевого мусора)
  • Активный и отзывчивый разработчик!
Джейсон Козак
источник
1

Поскольку вы упомянули Java, я бы посоветовал заглянуть в JGN (http://forum.captiveimagination.com/index.php/board,4.0.html), я никогда не использовал его лично, но я слышал хорошие вещи о это на форуме JME. Документация кажется скудной, хотя.

Raoul
источник