• avatar artist
  • 0
Допустим движок будет. Кто будет писать сам мад?
  • avatar prool
  • 0
Неправильная песня. Вот моя песня:

Пятнадцать человек на сундук мертвеца!
Йохохо, и бутылочка рома!
А, как известно, мы народ горячий,
Ах, и не выносим нежностей телячих,
Но любим мы зато телячьи души
Мы любим бить людей,
Любим бить людей,
Любим бить людей,
И бить баклуши.

Мы раз-бо-бо-бобойники,
Разбойники, разбойники
Пиф-паф, и вы покойники,
Покойники, покойники.
Пиф-паф, и вы покойники,
Покойники, покойники.

А кто увидит нас, тот сразу ахнет.
И для кого-то жареным запахнет.
А кое-что за пазухой мы держим.
К нам не подходи,
К нам не подходи,
К нам не подходи,
А то зарежем.
  • avatar prool
  • 0
Мой мад не закроете
Нужно сделать хороший движок, организовать кампанию типа IronRealms, сделать на этом движке несколько мадов разных тематик. А остальные русскоязычные мады закрыть за нарушение diku-лицензии. Вот такой вот злодейский план. :)
  • avatar artist
  • 0
Вопрос только, кому то это нужно сейчас? Если что то пилить новое, то с прицелом на западные страны.
Спасибо за разъяснения, теперь все стало намного понятнее. Нужен будет прототип хотя бы на уровне простого чата для демонстрации возможностей. Будешь писать свой с нуля или попробуешь сделать на основе существующего движка?
  • avatar artist
  • 1
Не стоит путать уровни протоколов. Телнет — это тупо текст поверх TCPIP. HTTP — это тупо текст в формате html поверх TCPIP. Протокол транспорта один, а возможности совсем разные. Я хочу сделать Lua поверх TCPIP. По сути все тоже самое — текст поверх TCPIP. За доставку данных через инет отвечает TCPIP, а не Lua или Telnet.

Да, я хочу заменить телнет на print с данными комнаты, как ты и написал, если говорить упрощенно, но
1. Формат этих данных и их количество любое, главное по синтаксису луа. Например.
room{ desc=«Описание», name=«Название», mobs = { { name=«mob1», hp = 100,… }, {} }, objects = { } }
Так можно передавать не только данные комнаты, а вообще все, что будет нужно клиенту!
Тогда клиент получит уже распарсенные данные, сможет отформатировать вывод как считает нужным,
например по ширине окна (как ты и хотел), вывести списки мобов в оотдельные окна с их хп и прочее.

2. Начала программы и конца нет… Каждый пакет данных — это новая программа, которые выполняются друг за другом.
Можно сказать по другому — это программа которая поступает в клиент построчно, а не вся сразу.

3. Потери пакетов не будет. Это обеспечивает TCPIP или будет обрыв связи.

Главный плюс такого подхода — готовый парсер протокола, с обработкой ошибок, причем протокол может быть сложным и
независимым для клиента и для сервера. Чтобы адаптировать клиент под новые возможности сервера нужно тупо
дописать обертку на том же Lua, которая будет понимать новые данные сервера, или тупо их игнорировать. Такая обертка
может быть своей для каждого сервера и ее написать ну очень просто. Причем игроки смогут ее дорабатывать под себя.
Lua — это язык программирования, а telnet — протокол связи, способ передачи байтов из пункта А в пункт Б. В этом плане луа не может заменить телнет.

Я так понял, ты хочешь вместо 'описание комнаты' отправлять клиенту printf('описание комнаты'), а клиент их будет обрабатывать? Когда будет начало программы, а когда конец? Начало при открытии соединения, конец при закрытии? Что будет при потере пакетов, инструкции не будут обрабатываться полностью и описание комнаты полностью пропадет?
  • avatar artist
  • 0
У меня еще очень давно был план по развитию мадов. Сначала решил написать клиент, вот написал. Далее по плану было написание мад сервера на новом протоколе, т.к. решение для протокола уже давно на поверхности, готовое и мага-супер-пупер гибкое, которое планировал внедрить в мой клиент. Жизнь внесла коррективы и план не удался в планируемые временные рамки.

Мады ограничены в первую очередь своим протколом, все эти MSDP, MCCP и прочая история в этом направлении тянет мады вниз и не дает развиваться ни клиентам, ни самим серверам. Новый протокол позволит развязать клиента от сервера. Т.е. сервер может внедрять новые фишки, не оглядывась на клиенты. А клиенты смогут внедрять себе эти нововведения сервера по мере возможности. Т.е. клиент, благодаря протоколу, легко игнорирует те фишки, которые он не поддерживает.

Я планировал на базе своей черепахи сделать новый клиент на новом протоколе. А других клиентов посадить на прокси, который бы транслировал новый протокол в старый телнет, как временное решение.

Я бы сейчас смотрел в эту сторону — внедрение нового протокола в старые мады, новые движки и вообще бы подумал об обсуждении этого с западными странами.

Если кратко, то:
В качестве протокола предлагается всем известныи — Lua.
Т.е. игровые данные идут в клиент в формате программы на Lua. А точнее в виде вызовов функций Lua с параметрами.
Т.к. Lua позволяет сделать песочницу, то можно знащитить клиент от неверных данных, ошибок в протоколе и
не поддерживаемых функций.
Lua — это готовый парсер команд, со сложной структурой параметров, уже с обработкой ошибок, с защищенным окружением,
позволяющий легко написать всю обвязку в клиенте как вздумается и под конкретный мад на самом Lua, ультрапростом языке.
Интерпретатор Lua весит копейки, работает очень быстро.
Экран клиента нужно рассматривать как canvas и нужен язык разметки для него типа css. Текст нужно размещать по центру. Небольшое исследование (например, эта статья) показывает, что оптимальная для легкого чтения ширина текста должна быть 10 — 15 см. В этой ширине должно содержаться 55 — 60 символов или 8 — 11 слов. Это данные для английского языка, для других может отличаться.
  • avatar prool
  • 0
отправил
Вот так примерно выглядит игра в мад на широкоформатном мониторе:
Можете передать вам в дискорд следующую идею. Схема:
Традиционный клиент служит для связи одного игрока в мире игры с другими игроками. В нижней части рисунка схема работы социального клиента для игры. В клиенте создается группа игроков, которые видят свой статус онлайн/оффлайн и могут отправлять сообщения непосредственно через клиент, не заходя в игру. Также можно для этой группы создавать специальные макросы, которые работают для всех игроков в группе сразу. Например, можно создать макрос который сообщаеет, что тот-то вступил в бой с тем-то или начал выполнять квест такой-то. Также было бы неплохо серьезно переработать интерфейс, почему все копируют одно и тоже с 90х. Сейчас в моде широкоформатные мониторы, это сильно изменило подходы к его созданию.
  • avatar prool
  • 0
Учитывая, что человек из команды Мадлета у нас в дискорд чате, мы можем сформулировать ему свои пожелания. Пойдет ли команда Мадлета на это — вопрос отдельный — но сформулировать мы можем
Понапихали в него много чего, но ничего революционного в нем нет.
  • avatar prool
  • 0
Ну тогда смотри в сторону клиента Mudlet, там много всего наворочено
Тут, конечно, интересный вопрос, почему обычный мад-клиент со списком игр не устраивает современных игроков. Мне кажется, что тут дело в социальных функциях. Мад-клиент используется только для игры, больше он ни для чего не нужен. Тогда как какой-нибудь Steam выполняет функции и вне игры, в нем есть список друзей, через который с ними можно быстро связаться. Этот список отслеживает их действия, показывая, что тот-то играет в такую-то игру, логирует их действия, формирую ленту новостей, что тот-то провел вчера 10 часов в такой-то игре, получил достижение за сбор 5000 цветочков. Ну и игроков отпугивает дизайн 90х у мад-клиентов, им надо чтобы все было также как в стиме или хроме, вот тогда мад-клиент не будет выглядеть устаревшим.
  • avatar prool
  • 0
Самый минимализм, это список мадов в моем любимом мад-клиенте. И всё :)

(у каждого свой любимый мад-клиент)
  • avatar tangar
  • 0
это более удачный подход. но все равно, через веб лучше — доступнее для большего кол-ва людей. я стим вообще терпеть не могу, как и другой «лишний» софт на компе; думаю, я не одинок, учитывая, что среди МАДеров много минималистов