2013-05-13 2 views
1

Хорошо, пожалуйста, не убивайте меня, чтобы спросить об этом. В настоящее время я разрабатываю 2D-многопользовательский многопользовательский шутер. Да, это круто. У меня большая часть игры написана с несколькими ошибками и неоптимизирована, но я застрял, когда дело доходит до сетей. Я использовал PyGame, поэтому я попытался использовать кучу библиотек Python для работы в сети. Вы называете это, я думаю, что я посмотрел на все основные. Вот PyEnet - думал, что он имеет внутренний контроль перегрузки, ugh MasterMind - не асинхронный PodSixNet - это даже UDP? Legume - в настоящее время застрял с сервером, дающим мне исключение, ожидая ответа в списке рассылки. Выглядит совершенно великолепно иначе. Не могу вспомнить все остальные, которые я пробовал. В любом случае, мне нужен UDP (верьте мне, мне нужен UDP) и еще один надежный протокол для чата, masterserver, информации о новом игроке и всех пакетов, которые я не могу себе позволить потерять. Я где-то читал, что TCP и UDP, используемые одновременно, не были хорошей идеей, поэтому я попытался найти надежные реализации UDP в Python, поэтому все мои блуждания по этим неясным библиотекам. По пути я научился самостоятельно обманывать сокеты, поэтому у меня есть два четких пути. 1) Когда люди спрашивали, были ли UDP и TCP вместе плохой идеей, возможно, они имели в виду, что они будут использовать один и тот же порт для обоих протоколов. Насколько это плохо, если я использую два разных порта? Часть TCP будет простаивать большую часть времени, в любом случае, возможно, 0-20 пакетов за 10 секунд для занятого сервера. 2) Напишите свой собственный надежный UDP. Фу, это то, от чего я прятался. Если все не удастся, я думаю, мне нужно это сделать.Python сети с UDP для экшн-игр

+0

Короче говоря, может ли скрипт Python управлять UDP и TCP одновременно через два разных порта без какого-либо отставания? – Ohmnivore

ответ

-1

Короче говоря, да. Я использую Python/Scapy для тестирования сетевого оборудования все время. Я предполагаю, что вы будете использовать Threads для двух отдельных каналов связи. Если ваш процессор может справиться с этим, нет причин, по которым вы не можете этого сделать, и, конечно, количество трафика, генерируемого сетевыми играми, обычно недостаточно для значительного использования современных процессоров.

+0

Насколько я люблю Скапи, я не понимаю, почему вы упоминаете в качестве ответа. Если у вас есть что поделиться, рассмотрите комментарий вместо этого. Это мне совсем не помогает. – dc5553

+0

Я дал отличный ответ на его вопрос. Scapy можно использовать для этой цели. Не всегда приходится гадать с сокетами, когда производительность не является проблемой. Если производительность является проблемой, следует использовать c вместо Python. С другой стороны, вы, сэр, не дали веских оснований, почему вы не верите, что мой ответ недостаточно хорош. Пожалуйста, прекратите бросать вниз голоса без четкого понимания того, что подразумевает ответ. – wookie919

+0

Я понимаю жуткий, и я понимаю, что сокеты видят мои ответы, если вы сомневаетесь во мне. Я не использую downvotes либерально, это просто неправильная библиотека для использования в этом случае. – dc5553

Смежные вопросы