2009-08-09 7 views
3

Я делаю простую многопользовательскую экономическую игру в pygame. Он состоит из поворотов определенной длины, в конце которых данные отправляются на центральный сервер. Несколько быстрых вычислений выполняются по данным, и результаты отправляются обратно игрокам. Мой вопрос заключается в том, как я должен реализовать поддержку сети. Я смотрел на Twisted и на Pyro, и любые предложения или советы были бы оценены.Поддержка сети для Pygame

ответ

6

Витая, безусловно, была бы хорошей идеей. Here - пример кода, который объединяет скрученный и pygame.

1

Я ничего не имею против Twisted и PyRo, но простые сообщения, которые вы собираетесь отправлять, не требуют ничего подобного и могут быть чрезмерно сложными, используя какую-то структуру. Травление объекта и отправка его по сокету на самом деле очень простая операция, и стоит попробовать, даже если вы в конечном итоге перейдете с более тяжелой картой. Не бойтесь сети!

+1

Использование рассола для сетевых протоколов является * крайне плохой идеей. Вот два последних примера: http://plone.org/products/plone/security/advisories/cve-2007-5741 http://cve.mitre.org/cgi-bin/cvename.cgi? name = CVE-2009-0668 –

+0

Да, это очень актуальный вопрос о рассоле. Я согласен с тем, что выполнение тривиальной сериализации и управление сетью - это хорошая идея. Предоставляет ли Python стандартную возможность для чистой сериализации данных без потенциальных побочных эффектов? – Kylotan

+0

@ Kylotan: Просто используйте скручен, и все готово. То, что на самом деле «слишком сложно», - это попытаться переписать то, что извращало. Twisted - сложный, хорошо написанный и проверенный фрагмент кода, который пытается воспроизвести его почти целиком, означает, что вы получите полуобработанный, полубеленный некачественный код. Работа с сетью намного больше, чем открытие сырого низкоуровневого сокета и наивное нажатие данных. Не бойтесь рамки! – nosklo

1

Существует множество библиотек plug-and-play, специально предназначенных для работы с PyGame на сайте pygame.org.

Сюда входят PodSixNet, PygLibs.net и мой собственный вдохновитель (который, будучи подвержен риску самовозвеличивания, легкий, простой в использовании и поставляется с простым учебным пособием).