1. Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, сыграть в увлекательные ФРПГ, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Внимание!
    — Требуется примерно по 3-5 человек на каждую из версий ОС:: - Windows® XP SP3, Windows® Vista SP2, Windows® 7 SP1, Windows® 8, Windows® 8.1, Windows® 10(build 10 1607) и Windows® 10(build 10 1703). Для стационарных ПК и ноутбуков. Заявку на участие можно оставить здесь...
    Скрыть объявление

Готика 2: НВ AST (Agama Script Tools) 002

Инструментарий для работы с движком(ZenGin) и расширения возможностей его скриптов(Daedalus)

Модераторы: Dimus
  1. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    AST.png

    Актуальная версия v1.003
    Download_min.png


    Что такое AST:
    Как известно, серия Gothic не удостоилась чести заполучить в распоряжение собственный SDK.
    Данный пакет исправляет это недоразумение и предоставляет свои инструменты расширения функционала движка.

    Как используется AST:
    Можно определить две категории использования пакета:
    1. В качестве расширителя скриптов. В этом случае достаточно скопировать библиотеку в папку system, после чего станут доступны уже встроенные в AST внешние функции.
    2. Как дополнение к движку. Тогда необходимо создать проект-плагин для AST. Возможности инструментария ограничиваются исключительно навыками и фантазией пользователя.

    В каких случаях целесообразно использовать AST:
    Нужно понимать, что скрипты созданы только для того, чтобы вынести из движка громоздкую и монотонную рутину. Они не предназначены для фиксов или расширений, а любые сложные операции совершаются через внешние функции. Если вы понимаете, что Вам мало существующих инструментов или ситуация вынуждает выдумывать велосипеды, имеет смысл прибегнуть к помощи AST.

    Почему следует использовать именно AST:
    В первую очередь AST - это каноническая архитектура. Можете быть уверены, что используя наш пакет, вы работаете с движком, а не посредниками.
    Во-вторых, AST модульный. Его структура очень гибкая и способна связывать несколько плагинов в единую цепочку расширений. Помимо всего прочего, каждый плагин также вправе иметь собственный SDK, как и головная библиотека. Таким образом, к вашему личному проекту также можно писать дополнения. *thumbs up*

    Совместимость и дополнительное ПО:
    Пакет полностью самодостаточен и использование стороннего ПО не является обязательным. Однако официально совместимыми считаются только SP и DX11. Ikarus или G2 Ext использовать категорически не рекомендуется и, при обнаружении проблем совместимости, техническая помощь оказываться не будет.


    Полезные ссылки:
    По всем вопросам смотрим этот раздел
    Видео демонстрации можно найти тут


    о сборке v1.003

    Данную сборку отличают от предыдущих, в основном, три вещи:
    1. Обновленный G2API, содержащий более 100 классов движка
    2. Обновленный модуль перехвата и организации методов
    3. Исправления ошибок оригинальной игры

    Основная направленность сборки заключается в создании более тесных связей расширителя и движка, предоставляя удобный и мощный интерфейс перехвата. AST выступает как универсальный инструмент, способный не только изменять структуру игры, но и внедрять в нее собственные решения, в том числе производные классы от игровых.

    Загрузки:
     

    Вложения:

    Последнее редактирование: 29 июн 2017
  2. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.935
    Благодарности:
    639
    Баллы:
    275
    Пол:
    Женский
    Накидали тут вместе с jr13san'ом плагин, позволяющий адекватно сворачивать/разворачивать главное окно готики. При сворачивании окна, игра автоматически ставится на паузу, при разворачивании - пауза снимается, вобщем пользуйтесь на здоровье.

    Так же прилагается исходный код(проект под Visual Studio 2012 ).
     

    Вложения:

    Последнее редактирование: 22 июн 2017
  3. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    [Большое обновление #2]
    Код (Text):

    изменения касаются AST.dll и плагинов:
    - Теперь для хранения плагинов можно использовать папку Plugins
    - Добавлены новые инструменты перехвата:
        CCallBack: добавлен ряд методов
            DetachTree  - удаляет всю ветку хуков по указанному адресу
            Redefine    - замещение перехваченного метода на другой
            Protect     - ставит защиту на важные хуки. далее их нельзя ни удалить, ни изменить, ни подключиться дочерним
            Unprotect   - снимает защиту
            IsProtected - проверяет имеет ли хук защиту
            FindHook    - возвращает информацию о хуке, если он существует
         
        CInvoke: добавлен ряд методов и флаги имеют своства битовых масок
            IVK_PROTECTED   - инвок содержащий этот флаг будет защищена от изменений
            IVK_REDEFINE    - если хук по ардесу уже существует, данный флаг позволит изменить его через CCallBack::Redefine. иначе операция вызовет событие CCallBack::Attach
         
            DetachTree  - удаляет всю ветку хуков по указанному адресу
            Protect     - ставит защиту на важные хуки. далее их нельзя ни удалить, ни изменить, ни подключиться дочерним
            Unprotect   - снимает защиту
         
    - Немного изменена логика циклических таймеров
        если в качестве задержки указать zTOnce, работа таймера будет прервана, но не заморожена.
        небольшие изменения в процедуре отслеживания времени.
    - Пополнен zobject.cpp
    - G2API пополнено новыми классами.

    - Ряд фиксов предыдущей версии.
    Исправления по части компиляции скриптов.
      -Улучшена работа метода zCParser::Error, теперь при возникновении ошибки препятствующей дальнейшей компиляции, в сообщении будет указан тип ошибки, номер строки, имя файла.
     
    Процедура обновления:
    заменить AST.dll в папке system
    Для плагинов заменить AST.lib, zobject.cpp, AST_003.h, ASTAPI, G2API в директории проекта, - Построение/Перестроить решение.

    [​IMG]
     
  4. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    ВАЖНО: О предстоящей сборке v1.004:
    Следующая сборка, скорее всего, будет финальной. По сути, мы уже выжали из расширителя все что можно, а значит пора ставить точку и заняться непосредственно микрорасширениями в общее пользование.

    Мы уже давно добились своей цели - написать расширитель, который не занимался бы микропатчингом, Без имени4.png и изобретением костылевелосипедов (аля G2Ext, который в свое время правильно начал, но неправильно кончил). Осталось только вылизать и довести все что есть до ума. И да, мы по прежнему готовы бескорыстно помочь любым разработчикам разобраться в движке и реализации.

    Собственно в чем суть:
    1. АРХИТЕКТУРА (открыть)

    1. Считаю идею универсальной библиотеки изжитой и не очень оправданной. AST довольно продолжительное время представляло из себя не только набор инструментов движка, но также и сильно модифицировало его внешние функции, внедряла дополнительный функционал в его работу и фиксило логические косяки.
    · Далее весь проект будет разбит по частям, где во главе будет стоять ядро.
    Ядро (открыть)

    Библиотека, представляющая из себя хаб/менеджер внешних библиотек. Никак не влияет на движок, но предоставляет плагинам доступ к модулям перехвата.

    · Для тех, кто желает заниматься только скриптовыми модификациями либо не шарят в C/C++, будет создана собственная библиотека исключительно со внешними функциями. Большая часть будет взята из AST, а поверх будут добавляться новые с постепенными обновлениями библиотеки.
    · Далее все инструменты SDK будут перенесены в 3ю библиотеку, также включающую в себя API движка.
    · Следующая библиотека - фиксы движка. Все косяки, которые сложно или невозможно править через СП, будут храниться в ней.


    2. GOTHIC I и GOTHIC II (открыть)

    Ядро уже работает в режиме полной совместимости. Как известно, мы занимались исключительно второй частью, поскольку было необходимо вручную создавать еще один API для G1 (напомню, что это более 100 классов, или даже 150) что даже банально лень (И нет, лень как была так и осталась, просто мы написали софтину, которая пишет эти самые классы вместо нас ;), а при желании еще и строит виртуальные таблицы). Правильно написанное расширение теперь можно использовать одновременно и на G1 и на G2.


    3. VDFS И МОДУЛЬНОСТЬ (открыть)

    Ядро и плагины можно спокойно упаковать в VDF архив. Так что собрав мод с некоторым количеством плагинов можно будет не волноваться по поводу засраной папки Systems. Если в архивах встречаются одноименные библиотеки, VDFS согласно своему принципу выдаст версию исходя из приоритетов vdf.


    4. SDK И C/C++ (открыть)

    Сейчас нас интересует оптимальная версия редистов между движком и современными стандартами, так что тред об использовании SDK в скором времени может дополниться полезной информацией.


    5. СТАРЫЕ ВЕРСИИ ПЛАГИНОВ (открыть)

    Меняется только архитектура, а не суть. Количество изменений в плагины будут зависеть только от вашего желания, либо подстроиться под новый стандарт, либо оставить все как есть :confused:
     
    Последнее редактирование: 24 авг 2017
  5. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    круглая миникарта. суть даже не в ней, а в новом инструменте до которого раньше руки не доходили. словом это произвольный CViewSample, унаследованный от zCView, он будет доступен в тулзах с релизом 004. ну а следовательно вместо круглой карты можно нарисовать член или кролика, кому что ближе.
     
  6. Lev-Lion

    Lev-Lion
    Модостроитель

    Регистрация:
    25 апр 2006
    Сообщения:
    64
    Благодарности:
    152
    Баллы:
    210
    Пол:
    Мужской
    Здорово придумали с миникартой. :)
    Интересно, если немцы выпустят свой РеГот, будет ли он совместим с АСТом... Мощный рендер + АСТ = современная Готика. Можно это отрицать сколько угодно (в силу настольгии по трехгранным деревьям), но будущее Готики за современной графой (более или менее).
     
  7. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    никогда он не будет совместим ни с одним пакетом на готику. да и в гробу я видал регот этот
     
  8. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    14.896
    Благодарности:
    6.734
    Баллы:
    740
    Пол:
    Мужской
    Некоторые мысли:
    - Когда вращается карта это выглядит дико, особенно когда деревья вверх ногами становятся. В оригинале вроде стрелка положения Гг вращалась, а не карта.
    - Если делать что-то подобное, то вместо юзания карты, было бы правильнее на мой взгляд, рендер определенного куска мира вокруг Гг заюзать и выводить его в этот "кругляшек".
    - Не хватает маркеров сторон света и их шкалы деления.

    Как-то так.. ::)
     
  9. Lev-Lion

    Lev-Lion
    Модостроитель

    Регистрация:
    25 апр 2006
    Сообщения:
    64
    Благодарности:
    152
    Баллы:
    210
    Пол:
    Мужской
    Я не в восторге от того что, аффтар, вместо того, чтобы грамотно запилить ДХ11, принялся за совершенно иную разработку. Эта погоня за двумя зайцами обычно заканчивается... ничем. А жаль. ДХ11 многообещающий проект.
     
  10. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    14.896
    Благодарности:
    6.734
    Баллы:
    740
    Пол:
    Мужской
    Лев, а разве он должен подчищать за другими ?! :)
     
  11. MEG@VOLT

    MEG@VOLT ★★★★★★★★★
    ТехАдмин

    Регистрация:
    24 мар 2006
    Сообщения:
    2.187
    Благодарности:
    1.225
    Баллы:
    510
    был.
    И я с тобой полностью согласен.
    А почему последние 3-4 поста не в той теме? Не порядок)))
     
  12. Lev-Lion

    Lev-Lion
    Модостроитель

    Регистрация:
    25 апр 2006
    Сообщения:
    64
    Благодарности:
    152
    Баллы:
    210
    Пол:
    Мужской
    Не совсем понял кто и за кем должен подчищать. Я и не имел этого в виду. :)
    Просто мне грустно от того что забросили идею перевоплощения Готы в современную графу ДХ11. Это зов времени.

    А вообще мы убрели куда то не по теме. За сим, закачиваю флуд.
     
  13. Saturas

    Saturas
    Модостроитель

    Регистрация:
    11 фев 2009
    Сообщения:
    1.935
    Благодарности:
    639
    Баллы:
    275
    Пол:
    Женский
    Воплощение готы в DX11, да даже 9, без рефакторинга движка, это в разы сложнее чем написать новый двиг.
     
  14. neromont

    neromont
    Модостроитель

    Регистрация:
    12 мар 2011
    Сообщения:
    310
    Благодарности:
    303
    Баллы:
    220
    Пол:
    Мужской
    Очепятка.
     

    Вложения:

    Jr13San поблагодарил.
  15. Fabiosek

    Fabiosek Участник форума

    Регистрация:
    17 июн 2017
    Сообщения:
    11
    Благодарности:
    0
    Баллы:
    30
    Пол:
    Мужской
  16. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    Bad plugin name or problems with your code. Example: if plugin loaded before engine, u cant create global ZenGin objects because engine not initialized. Explore it, comment parts of the code and if the game will be able to run - bug is found in the last comment.
     
  17. Fabiosek

    Fabiosek Участник форума

    Регистрация:
    17 июн 2017
    Сообщения:
    11
    Благодарности:
    0
    Баллы:
    30
    Пол:
    Мужской
    No, the name is correct. The plugin works for another person (author).
    It does not work with me.
     
  18. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    Show me mod ini & plugin location
     
  19. Fabiosek

    Fabiosek Участник форума

    Регистрация:
    17 июн 2017
    Сообщения:
    11
    Благодарности:
    0
    Баллы:
    30
    Пол:
    Мужской
    MOD.ini and AST_Plugin_V1.003.07_Snapshot.dll are there: C:\Program Files\JoWood\Gothic II Złota Edycja\System

    MOD.ini:

    [FILES]
    dll=AST.dll

    [PLUGINS]
    PluginList=AST_Plugin_V1.003.07_Snapshot.dll
     
  20. Gratt

    Gratt
    Модостроитель

    Регистрация:
    14 ноя 2014
    Сообщения:
    1.185
    Благодарности:
    1.302
    Баллы:
    190
    Пол:
    Мужской
    Dont remember, but plugin list cant be last line. Move up and try. And its normal what directory name contains polish symbols? Gothic understands only latin...
     
  21. MaGoth

    MaGoth ★★★★★★★★★★★
    Администратор

    Регистрация:
    7 янв 2005
    Сообщения:
    14.896
    Благодарности:
    6.734
    Баллы:
    740
    Пол:
    Мужской
    Delete/сhange this: Gothic II Złota Edycja → Gothic II Zlota Edycja
    Only English characters are acceptable.
     
Модераторы: Dimus

Поделиться этой страницей