• Для того, чтобы добавить "ресурс" на форум, требуется перейти по ссылке и создать ресурс в нужной категории форума.
Authum — загрузчик модулей для Metamod-P (HLDS)

Authum — загрузчик модулей для Metamod-P (HLDS) 2.0.1

darwin128K

Участник
Сообщения
35
Реакции
14
darwin128K добавил(а) новый ресурс:

Authum — загрузчик модулей для Metamod-P (HLDS) - Metamod-плагин: грузит child-модули из modules.list / modules/, команда authum, ABI для qproto и др.

Authum — Metamod-P плагин-хост для classic HLDS (32-bit).

Грузит child-модули (qproto, gatekeeper, …) из modules.list или папки modules/.
Модули — отдельные .so, не плагины Metamod.

• команда authum (list / load / unload / reload / help / version)
• ABI для модулей: события, команды, sandbox, cfg, sql, json, logger
• один лог хоста: authum.log

Установка:
1) addons/authum/authum_mm.so + modules.list
2) plugins.ini → linux addons/authum/authum_mm.so
3) модули →...

Узнать больше об этом ресурсе...
 
darwin128K обновил(а) ресурс Authum — загрузчик модулей для Metamod-P (HLDS) новой записью:

Authum 2.0.0 — команды, выгрузка модулей на лету, события, SQL и песочница памяти

Что нового в 2.0.0 по сравнению с 1.0.0

В 1.0.0 Authum умел одно: загрузить модули из modules.list и показать их список. В 2.0.0 он стал полноценной платформой для модулей: модули общаются между собой, получают события игроков, регистрируют свои команды, работают с базой данных и выгружаются без перезапуска сервера.

Для администраторов серверов
  • Управление модулями без рестарта — как в Metamod:
    authum...

Узнать больше об этом обновлении...
 
darwin128K обновил(а) ресурс Authum — загрузчик модулей для Metamod-P (HLDS) новой записью:

Authum 2.0.1 — новые события (команды игроков, карта, кадр), хуки движка, исправления MySQL и JSON

Что нового в 2.0.1 по сравнению с 2.0.0

Обновление совместимое: ABI модулей не изменился (0.3.0), модули, собранные под 2.0.0, работают без пересборки. Достаточно заменить authum_mm.so.

Для администраторов серверов
  • MySQL стал надёжнее — знак ? внутри кавычек, имён в обратных кавычках и комментариев больше не подменяется параметром. Сняты ограничения в 255 байт на текст и 2048 байт на запрос. Ошибки...

Узнать больше об этом обновлении...
 
Обратите внимание, что если вы хотите заключить сделку с этим пользователем, он заблокирован.
Интересно, а можно написать модуль Refsapi который будет загрузчиком модулей для Authum, загрузчика модулей для Metamod? С вложенностью конфигурационного файла modules.cfg + 1. А уже внутри него реализовать загрузчик модулей для Refsapi c вложенностью modules.json -> реализовав тем самым полный набор загрузчиков на все случаи жизни, скрепить их все одним API и запретить им общаться между собой, собрав попутно все грабли и косяки, которые присутствуют во всех других аналогичных решениях -> включая однопоточность.

Ну серьезно.. AMXX пилят уже лет 20, но ошибок там еще вагон и маленькая тележка. Работа ваша безусловно большая, и много чего проделано, но те люди, которые смогут что-то писать под Authum, легко смогут писать и под Metamod-R, которому прокладки вроде Autum не нужны. Смысл реанимировать мертвый проект ради создания мертвого загрузчика, мне не совсем ясен.
 
Последнее редактирование:
Интересно, а можно написать модуль Refsapi который будет загрузчиком модулей для Authum, загрузчика модулей для Metamod? С вложенностью конфигурационного файла modules.cfg + 1. А уже внутри него реализовать загрузчик модулей для Refsapi c вложенностью modules.json -> реализовав тем самым полный набор загрузчиков на все случаи жизни, скрепить их все одним API и запретить им общаться между собой, собрав попутно все грабли и косяки, которые присутствуют во всех других аналогичных решениях -> включая однопоточность.

Ну серьезно.. AMXX пилят уже лет 20, но ошибок там еще вагон и маленькая тележка. Работа ваша безусловно большая, и много чего проделано, но те люди, которые смогут что-то писать под Authum, легко смогут писать и под Metamod-R, которому прокладки вроде Autum не нужны. Смысл реанимировать мертвый проект ради создания мертвого загрузчика, мне не совсем ясен.
Спасибо за развёрнутый комментарий, отвечу по пунктам.

Про матрёшку загрузчиков. Модуль Authum по умолчанию ничего не загружает, он лист. Право грузить другие модули выдаётся явно, и в обычной установке им никто не пользуется. Так что «modules.cfg + 1» — это не задумка, а гипотетическая возможность механизма.

Про «запретить общаться». Общаться модулям не запрещено, запрещено лезть друг в друга напрямую: никаких dlsym в соседний .so и указателей на чужие функции. Обмен идёт через шину событий хоста: forward («это случилось») и query («кто знает ответ»). Модуль выгрузили — он просто перестал отвечать, у соседей ничего не падает.

Зачем, если есть Metamod-R. Metamod-R загружает плагины, но ничего не даёт им после загрузки. Каждый плагин сам тащит HLSDK, сам парсит конфиги, сам пишет логи, сам следит, чтобы при выгрузке не утекла память, и сам придумывает, как общаться с другими плагинами. Authum забирает это на себя:
  • вся память модуля освобождается хостом после stop, даже если модуль забыл;
  • у модуля своя папка: конфиги, данные, логи, переводы; обновление не трогает настройки админа;
  • команды в своём пространстве имён, общий лог, версионированный ABI;
  • для типовых задач (печать, кик, cvar, JSON, SQL, крипто) HLSDK модулю не нужен.
В итоге в модуле остаётся только его логика.
Пример — qproto.

Про однопоточность. Это свойство движка HLDS, а не загрузчика: колбэки движка выполняются в главном потоке, и ни Metamod-R, ни AMXX это не меняют. Свои потоки модуль заводить может, но к движку возвращается через главный.

Про «мёртвый проект». Authum сделан под оригинальный 32-битный HLDS с Metamod-P и не пытается заменить ReHLDS/Metamod-R. Если вы на ReHLDS и всё устраивает, Authum, скорее всего вам, не нужен, и это нормально.
 
Последнее редактирование:
Обратите внимание, что если вы хотите заключить сделку с этим пользователем, он заблокирован.
Спасибо. По прежнему ничего не понятно.

Особенно про Metamod-P, который умер 12 лет назад и никем не поддерживается. Т.е. вы придумали новую "фичу", в виде золотого яйца, внутри которого труп и хотите предложить к этому свое видение того, как должны работать все модули разработчиков, которые умеют писать на С.

Вы же понимаете, что:
  1. Кол-во задач требующих обработки внутри кадра быстрее 0,5 мс можно пересчитать по пальцам одной руки (применительно к древнему игровому серверу). Для всего остального есть pawn + amxx, интеллектуальный порог вхождения которых значительно ниже С/С++.

    Я просто не представляю, что вы там могли за пару недель такого намутить (стек архитектурных решений), что может подвинуть существующие "на рынке" решения.

  2. Кол-во специалистов, так скажем, способных это использовать и понимающих архитектуру работы движка hlds/rehlds, также не велико... И они в состоянии "взять" любые нужные им данные.
PS: Может быть стоит попробовать потратить токены на, так скажем, "первичную" точку инициализации и придумать свой Darwin-Mod? Или все-таки пойти по пути прогресса со всеми и потратить их (токены + вашу энергию + время) на что-то более современное и качественное...
 
Спасибо. По прежнему ничего не понятно.

Особенно про Metamod-P, который умер 12 лет назад и никем не поддерживается. Т.е. вы придумали новую "фичу", в виде золотого яйца, внутри которого труп и хотите предложить к этому свое видение того, как должны работать все модули разработчиков, которые умеют писать на С.

Вы же понимаете, что:
  1. Кол-во задач требующих обработки внутри кадра быстрее 0,5 мс можно пересчитать по пальцам одной руки (применительно к древнему игровому серверу). Для всего остального есть pawn + amxx, интеллектуальный порог вхождения которых значительно ниже С/С++.

    Я просто не представляю, что вы там могли за пару недель такого намутить (стек архитектурных решений), что может подвинуть существующие "на рынке" решения.

  2. Кол-во специалистов, так скажем, способных это использовать и понимающих архитектуру работы движка hlds/rehlds, также не велико... И они в состоянии "взять" любые нужные им данные.
PS: Может быть стоит попробовать потратить токены на, так скажем, "первичную" точку инициализации и придумать свой Darwin-Mod? Или все-таки пойти по пути прогресса со всеми и потратить их (токены + вашу энергию + время) на что-то более современное и качественное...
Справедливо, объясню проще.

Authum — не замена AMXX и не попытка научить всех писать на C.
Для 99% задач Pawn + AMXX правильный выбор, тут спорить не о чем.

Он появился под одну конкретную задачу: qproto, приём non-Steam клиентов на оригинальном HLDS, включая сборки после обновления к 25-летию. Это перехват внутренней функции движка, на Pawn такое не делается, а существующие решения либо под новые сборки не развиваются (dproto), либо требуют ReHLDS (Reunion). Authum — то, на чём qproto работает: загрузка/выгрузка без перезапуска, своя папка с конфигами и логами, общие куски вроде крипто и логов. Выложен он отдельно, потому что может пригодиться и для других модулей такого же рода, не больше.

Про Metamod-P:
Authum — обычный Metamod-плагин, [и под Metamod-R он тоже работает].
Привязки к мёртвому проекту нет.

По поводу токенов не очень понял, к чему это?
Сообщение автоматически объединено:

Спасибо. По прежнему ничего не понятно.

Особенно про Metamod-P, который умер 12 лет назад и никем не поддерживается. Т.е. вы придумали новую "фичу", в виде золотого яйца, внутри которого труп и хотите предложить к этому свое видение того, как должны работать все модули разработчиков, которые умеют писать на С.

Вы же понимаете, что:
  1. Кол-во задач требующих обработки внутри кадра быстрее 0,5 мс можно пересчитать по пальцам одной руки (применительно к древнему игровому серверу). Для всего остального есть pawn + amxx, интеллектуальный порог вхождения которых значительно ниже С/С++.

    Я просто не представляю, что вы там могли за пару недель такого намутить (стек архитектурных решений), что может подвинуть существующие "на рынке" решения.

  2. Кол-во специалистов, так скажем, способных это использовать и понимающих архитектуру работы движка hlds/rehlds, также не велико... И они в состоянии "взять" любые нужные им данные.
PS: Может быть стоит попробовать потратить токены на, так скажем, "первичную" точку инициализации и придумать свой Darwin-Mod? Или все-таки пойти по пути прогресса со всеми и потратить их (токены + вашу энергию + время) на что-то более современное и качественное...
Давайте проще — покажу на деле. Предлагаю пари: одна и та же задача, вы пишете Metamod-плагин (R или P, как удобнее), я — модуль Authum. Оба исходника выкладываем в открытый репозиторий, сравниваем объём кода, сколько ушло времени и как ведёт себя при выгрузке/перезапуске карты. Задачу можете выбрать вы, например: dproto или gatekeeper.

К сожалению другие варианты предложить не могу, проект еще только только расширяется...
Если ваш вариант окажется короче и проще — признаю публично, что Authum не нужен.
 
Последнее редактирование:
⚠ Внимание!
Тема очищена. Сообщения, содержащие флуд, провокации и холивар, перенесены во флудилку.
  • @Refresh - оформлены штрафные баллы за нарушение правил форума ("Провокация пользователей", "Неаргументированная критика", "Флейм").
  • @darwin128K - выносится устное предупреждение за переход на личности в ответ на провокации.
Напоминаю: раздел ресурсов предназначен для предметного обсуждения. Если у вас нет компетенции или вы не запускали проект - не нужно устраивать демагогию и прикреплять галлюцинации нейросетей.

Дальнейшее обсуждение - строго по функционалу и архитектуре Authum. Оффтоп будет наказываться.


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

Кто просматривает тему

  • Назад
    Верх