Недавно я создал короткое и простое многопользовательское подземелье. То, что я сделал, — это движок игры и сам MUD, поэтому, когда я нажимаю на файл, вы можете играть в MUD. У меня проблема в том, что я не знаю, как его подключить, чтобы могли играть более одного игрока. Вы подключаете его к серверу или как? Я не знаю, что делать, так как я новичок в Python и MUD. Может ли кто-нибудь помочь мне, приведя несколько примеров, чтобы помочь мне с кодом и как подключиться и запустить эту игру?
Как предоставить возможность нескольким игрокам подключаться к моему MUD?
Ответы (2)
Ваш MUD должен быть сервером.
Во-первых, вы хотите убедиться, что ваш движок может обрабатывать несколько человек, изменяющих состояние подземелья одновременно.
Далее рассмотрим, как создать сервер. Вы, вероятно, захотите взглянуть на класс SocketServer, для MUD вам, вероятно, понадобится один из Подклассы TCP.
Каждый пользователь будет открывать соединение с вашим сервером. Обычно каждое соединение обрабатывается либо процессом, либо потоком (см. ThreadingMixin
). Внутри этого потока будет код пользовательского интерфейса для соединения (прочитайте строку от пользователя, передайте ее в движок, распечатайте результаты пользователю).
Ваш движок, вероятно, будет работать в отдельном потоке/процессе и поддерживать состояние подземелья (список комнат, пользователей, предметов).
Удачи!
select
является хорошей альтернативой многопоточности: docs.python.org/library/select .html#select.select
- person Pedro Matiello; 04.02.2011
Обычно код вашего сервера MUD обрабатывает соединения сокетов и соединяет их с внутренними объектами игрока через анализатор команд. Вы можете посмотреть на SocketMUD; это простая архитектура обработки сокетов, предназначенная для использования в MUD, и может быть именно тем, что вам нужно.