ATCP

ATCP (Achaea Telnet Client Protocol) это специальное расширение стандартного телнета для мадов, для передачи такой информации как название комнаты, количество жизни персонажа и т.д. То есть, это аналог протоколов MSDP и GMCP, используемый в мадах компании Iron Realms.


ATCP тесно связан с языком программирование Rapture — проприетарным языком программирования компании Iron Realms, созданным ей для написания своих мадов. ATCP понимает, кроме собственных клиентов для мадов компании Iron Realms, такие клиенты как CMUD (Chiara's MUD Client) и MUSHclient (через специальный плагин). Кстати, CMUD и ZMUD также являются единственными клиентами понимающими другой проприетарный протокол для игры в мады от компании Simutronics — GSL (GemStone Scripting Language), помимо собственных клиентов от Simutronics. Но, по GSL информации крайне мало, поэтому в данной статье будет рассказано лишь о ATCP.

Оригинальную информацию о ATCP можно почитать здесь и здесь. ATCP является расширением telnet и соответствует спецификации RFC 855. Вкратце взаимодействие сервера и клиента для игры заключается в следующем.

Сервер спрашивает клиент, понимает ли он ATCP:
IAC DO ATCP       (255 253 200)
.
Код 200 выбран Iron Realms, так как он не зарегистрирован ни за одной стандартной опцией телнета.

Клиент должен ответить следующей трехбайтовой последовательностью:
IAC WILL ATCP     (255 251 200)
.

Начиная с этого момента становится возможным передача данных по ATCP, сообщения передаются внутри блока, начало и конец которого отмечены специальными маркерами:
*Char Sequence*  *Numeric Version*   *Description*
IAC SB ATCP      255 250 200         Start sequence
IAC SE           255 240             Stop sequence
.

Известны следующие ATCP команды: AUTH, CHAR_NAME, CHAR_VITALS, ROOM_BRIEF (название комнаты), ROOM_EXITS (выходы из комнаты), COMPOSER, PING. Более полный список команд ATCP можно посмотреть в соответствующем плагине для MUSHclient. Также, возможно больше информации по протоколам ATCP и GSL можно извлечь из выложенных на гитхабе клиентов для мадов компаний Iron Realms (например, Frostbite) и Simutronics (например, Outlander).

Есть сообщения о конфликтах между протоколами ATCP и MCCP, поэтому одновременно их лучше не использовать.

6 комментариев

avatar
  • prool
  • 0
MCCP всему мешает. Когда я реализовывал в своем маде протокол MSSP (MUD server side protocol), я просто отключил MCCP, так как не смог сделать так, чтобы они вместе работали. Впрочем, я не слишком то и старался, так как считаю, что при современных скоростях сжатие небольшой текстовой информации не нужно

MSSP — протокол не для клиентов, а для статистических серверов, по запросу специального статистического сервера (например, mudstats.com) он выдает мад-статистику. Ну, или вручную можно сделать такой запрос, например из tintin++

Но принцип протокола тот же, он начинается с IAC DO MSSP и так далее

О, идея! Надо, чтобы авторы Тортиллы его реализовали, будет нелишним
avatar
Сейчас вряд ли кому это надо, но возможно эта информация пригодится в будущем. Сведения о всех этих протоколах и прочих фишках разрозненна и надо перерыть кучу источников, чтобы найти нужное. А тут будет собрано все самое полезное. :)
avatar
  • prool
  • 0
На всякий случай напоминаю, что куча протоколов описана на сайте клиента tintin++ tintin.sourceforge.net

avatar
  • artist
  • 0
Я честно говоря не понимаю как MCCP может мешать. Все протоколы, помимо телнета, сжимаются MCCP. А сжатие важно не клиенту, а серверу. Это к тому чтобы вообще отключить сжатие. Сжатие помогает очень сильно экономить пропускную способность серверного канала. Если сервер работает на недорогом хостинге, то экономия канала может сыграть важную роль в избавлении от лагов.
avatar
  • prool
  • 0
мой опыт провайдера (не абсолютный, конечно) показывает, что чаще узкое место не канал, а ресурс процессора. а сжатие экономит канал за счет процессора и порой лаги будут не из-за того, что канал забит, а из за того, что процессор не успевает. особенно это касается недорогих виртуальных серверов (VDS), а большинство мадов не таковы, что есть лишние деньги на выделенный сервер
avatar
  • artist
  • 0
ATCP дублирует MSDP. Раз в былинах появился второй протокол, то наврядли будут делать первый. А остальные мады на этом фоне скорее всего тоже будут внедрять MSDP.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.