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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

OpenGothic - опенсорсная реализация движка Готики2

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
  • Первое сообщение
  • #1
OpenGothic

О пакете Описание Технологии Совместимость Командная строка


  • Ресурсы портала: World of Gothic.ru
    Страна разработчика: Норвегия
    Платформа игры: Кроссплатформенный (Gothic I Classic, Gothic I Sequel, Gothic II Classic, Gothic II NoTR)
    Тип обновления: github-release
    Рабочее название: OpenGothic
    Версия пакета: 1.0.1878
    Язык: Независимо от языка
    Вес: 108 МБ
    Статус: Бета (тестирование)
    Дата релиза: 16.07.2019, 22.01.2023
    Дата обновления: 04.10.2020
    Авторы: Try


    Последний год понемногу после работы пилю свой собственный ремейк оригинальной Готики.
    Пакет работает по принципу замены оригинального *.exe-файла, движок считывает оригинальные текстуры, модели, скрипты из папки игры.




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

    Что уже работает:
    • Квесты
    • Диалоги
    • Ближний бой
    • Лук
    • Интерактивные объекты(наковальня, рунный стол и т.п.)
    • Инвентарь
    • Прокачка(кроме взлома)

    Скриншоты:
    scr0.png
    scr8.png
    scr7.png
    scr1.png


    Еще скриншоты: Try/OpenGothic



  • Используемые технологии:
    Vulkan - графика
    OpenAL(модифицированный) и tsf- звук
    Bullet - физика
    ZenLib - чтение ассетов оригинала



  • Совместимость с пакетами расширений скриптов, движка:
    • Поскольку реализация полностью самостоятельная, совместимости с плагинами, сделанными с использованием SP/Union/AST/Lego/Ikarus/G2EXT - нет и быть не может.
    • Не ожидайте, что мод DirectX11 будет работать, так как технически это не мод. Но графика из коробки уже подтянута до современного уровня.

    Совместимость с модами:
    Изначально планируется полная совместимость с "обычными" модами(скрипты + контент).
    • Модификации поставляемые в виде *.mod-файлов и созданые стандартными средствами ГМДК1 и/или ГМДК2 должны работать без проблем, так как они содержат только игровой контент и скрипты.
    • Модификации созданные с помощью UNION/AST-SDK или любых других скриптовых и движковых расширителей НЕ будут работать, так как оригинальные движки Gothic НЕ совместимы с движком OpenGothic в двоичном формате.

    Список поддерживаемых функций дедала в вики проекта: Try/OpenGothic



  • Аргументы командной строки:
    -g - указать каталог игры Готика
    -nomenu - пропустить главное меню
    -w <worldname.zen> - загрузка мира; newworld.zen по-умолчанию
    -save <q> - запуск с быстрого сохранения
    -window - оконный режим
    -rambo - уменьшает урон игрока до 1hp
    -v -validation - включить режим проверки Vulkan



Ссылки:
Github
: Try/OpenGothic
Ссылка на стабильный бетта-билд: Try/OpenGothic
Ссылка на nightly билд: AppVeyor

Nightly содержит самые актуальные изменения в коде и обновляется почти ежедневно, но не тестируется, перед публикацией.
Betta - протестированные вручную билды, с подробной историей правок между билдами. Обновляется примерно два раза в год.

Запуск:
cmd> Gothic2Notr.exe -g "C:\Program Files (x86)\Path\To\Gothic II"
Для правильной работы на Windows, может, понадобится установить Vulkan-runtime: LunarXchange

Интересно узнать мнение о проекте, работает/не работает; если не работает - просьба прикладывать файл crash.log
 
Последнее редактирование:

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
А планируется поддержка PBR в проекте?
PBR - точно нет. Дело в том, что для PBR шейдинга нужно знать свойства материала. Самый минимум: шероховатость(Roughness), металичность(Metallic), собственный цвет(Albedo).
В файлах Готики ничего из этого нет
 

Cluster

Новичок
Регистрация
16 Апр 2021
Сообщения
166
Благодарности
66
Баллы
65
PBR - точно нет. Дело в том, что для PBR шейдинга нужно знать свойства материала. Самый минимум: шероховатость(Roughness), металичность(Metallic), собственный цвет(Albedo).
В файлах Готики ничего из этого нет
Это я погорячился с PBR, наверное. Вообще PBR понятие растяжимое. Я имел в виду поддержку хотя бы карт нормалей, на манер рендерера G3DX11 :)
 

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
Я имел в виду поддержку хотя бы карт нормалей, на манер рендерера G3DX11 :)
Так тут такая же история: нет карт нормалей в оригинале. Не будет же движок сам их выдумывать на ходу?)

PS
Насколько я знаю авторы DX11 именно выдумывают их, вследствие чего имеем гофрированных npc
 

Cluster

Новичок
Регистрация
16 Апр 2021
Сообщения
166
Благодарности
66
Баллы
65
Так тут такая же история: нет карт нормалей в оригинале. Не будет же движок сам их выдумывать на ходу?)

PS
Насколько я знаю авторы DX11 именно выдумывают их, вследствие чего имеем гофрированных npc
Не-не, для G3DX11 карты нормалей для текстур создаются отдельно и подкладываются в специальный каталог. Имена файлов карт совпадают с именами оригинальных текстур, просто в имя добавляется префикс _normal. Далее рендерер просто их подгружает и "накладывает" на совпадающую диффузную текстуру, если функция карт нормалей включена. В принципе, так работают все графические движки. Хотя да, есть движки, которые производят генерацию карт нормалей на лету, при загрузке уровня игры. Но это не всегда качественный вариант визуализации бампа.
 

13B

Участник форума
Регистрация
15 Июл 2010
Сообщения
117
Благодарности
82
Баллы
180
Try, v1.0.1891 запустилась без проблем на той же версии Готики с юнионом, что и раньше, спасибо за фикс.
Есть ощущение, что производительность просела по сравнению с v1.0.1705, но надо еще потыкать.

UPD
В v1.0.1891 отсутствует счетчик фпс и производительность очень напоминает дебаг версию выше в этом треде.
Это просто совпадение и в этой версии было добавлено что-то, что сильней нагружает gpu или это действительно все еще дебаг с расширенным логгированием?

На всякий случай еще прикреплю лог.
 

Вложения

  • log.txt
    465 байт · Просмотры: 6
Последнее редактирование:

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
Имена файлов карт совпадают с именами оригинальных текстур, просто в имя добавляется префикс _normal
Если так - то да, все нормально, реализовать можно. Такой вопрос: _normal текстуры они должны дополнительно как-то устанавливаться модом или как?
 

Cluster

Новичок
Регистрация
16 Апр 2021
Сообщения
166
Благодарности
66
Баллы
65
Если так - то да, все нормально, реализовать можно. Такой вопрос: _normal текстуры они должны дополнительно как-то устанавливаться модом или как?
В случае с G3DX11 они просто подкладываются в отдельную папку с которой работает DX11 рендерер. При рендеринге уровня они подтягиваются из этой папки (при этом, функцию карт нормалей можно отключать и включать сразу в игре). Хотя в классическом варианте, все слои (normal, specular и так далее) располагаются в тех же каталогах, где хранятся обычные диффузные текстуры.
 

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
В v1.0.1891 отсутствует счетчик фпс и производительность очень напоминает дебаг версию выше в этом треде.
Это просто совпадение и в этой версии было добавлено что-то, что сильней нагружает gpu или это действительно все еще дебаг с расширенным логгированием?

FPS убран по причине неактуальности. Можно использовать марвин: toggle frame
Со времен билда 1705 прошло почти пол года, поменялась VM для скриптов, и HDR подъехал. Ты точно уверен что это нагрузка на GPU?
 

13B

Участник форума
Регистрация
15 Июл 2010
Сообщения
117
Благодарности
82
Баллы
180
FPS убран по причине неактуальности. Можно использовать марвин: toggle frame
Со времен билда 1705 прошло почти пол года, поменялась VM для скриптов, и HDR подъехал. Ты точно уверен что это нагрузка на GPU?
Загрузка 100%, но, похоже, что я просто слишком много хочу от встройки в 4к :)
Как можно выставить разрешение отличное от разрешения рабочего стола?
 

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
Как можно выставить разрешение отличное от разрешения рабочего стола?
Пока никак - менять разрешение нативно очень неприятно (корявое api) + рендеринг почти в OpenGothic, на большинстве железок, упирается в геометрию.
По идее сейчас можно даже лучше сделать:
до тонемаппинга все рисовать в пользовательском разрешении,
а потом апскелить до нативного разрешения + UI(и текст) рисовать уже нативно
 

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
Привет всем!

Экспериментирую с новым алгоритмом для трассировки тумана. Качество стало лучше, но fps уменьшился примерно на 6.5%
Завел голосовалку здесь: New volumetric fog implementation · Discussion #399 · Try/OpenGothic

1675535552684.png

1675535563153.png
 

13B

Участник форума
Регистрация
15 Июл 2010
Сообщения
117
Благодарности
82
Баллы
180
Try, крэш на билде по ссылке
Код:
---crashlog(std::terminate)---
GPU: ?
0x00007ff67cfcff06: dbg::call_stack<64u>::collect(unsigned int) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67ce4fddc: CrashLog::dumpStack(char const*) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67ce50338: terminateHandler() in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ffbe26163f6: ZN10__cxxabiv111__terminateEPFvvE in C:\Users\mrsta\Downloads\opengothic_win1\libstdc++-6.dll
0x00007ffbe2712d43: ZSt9terminatev in C:\Users\mrsta\Downloads\opengothic_win1\libstdc++-6.dll
0x00007ffbe271bf56: _cxa_throw in C:\Users\mrsta\Downloads\opengothic_win1\libstdc++-6.dll
0x00007ff67ceb1599: phoenix::buffer::slice(unsigned long long, unsigned long long) const in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cefaf3e: phoenix::vdf_entry::read(phoenix::buffer&, unsigned int) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cefb056: phoenix::vdf_entry::read(phoenix::buffer&, unsigned int) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cefc287: phoenix::vdf_file::open(phoenix::buffer&) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cefc4c7: phoenix::vdf_file::open(std::filesystem::__cxx11::path const&) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67ce37ed9: Resources::loadVdfs(std::vector<std::__cxx11::basic_string<char16_t, std::char_traits<char16_t>, std::allocator<char16_t> >, std::allocator<std::__cxx11::basic_string<char16_t, std::char_traits<char16_t>, std::allocator<char16_t> > > > const&, bool) in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cdbde59: Gothic::Gothic() in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67d0a1ce3: main in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cd513ae: __tmainCRTStartup in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ff67cd514c6: WinMainCRTStartup in C:\Users\mrsta\Downloads\opengothic_win1\Gothic2Notr.exe
0x00007ffc21f326bd: BaseThreadInitThunk in C:\Windows\System32\KERNEL32.DLL
0x00007ffc2352dfb8: RtlUserThreadStart in C:\Windows\SYSTEM32\ntdll.dll
 

Вложения

  • log.txt
    181 байт · Просмотры: 6

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
13B pзапустил пересборку. Минут через 20 билд с исправлением появится тут AppVeyor

Можешь пока скинуть свой Union.vdf? Проблема в том что у него сигнатура как у настоящего vdf, но разумеется он не загружается.
 

13B

Участник форума
Регистрация
15 Июл 2010
Сообщения
117
Благодарности
82
Баллы
180
13B pзапустил пересборку. Минут через 20 билд с исправлением появится тут AppVeyor

Можешь пока скинуть свой Union.vdf? Проблема в том что у него сигнатура как у настоящего vdf, но разумеется он не загружается.
VDF прикрепил, билд опробую и отпишу, спасибо.

UPD Билд с фиксом запустился, на всякий случай прикрепил еще лог.
 

Вложения

  • Union.vdf
    1,9 MB · Просмотры: 4
  • log.txt
    1,7 KB · Просмотры: 4
Последнее редактирование:

IdeaGen

Участник форума
Регистрация
28 Апр 2017
Сообщения
2.206
Благодарности
580
Баллы
295
Так тут такая же история: нет карт нормалей в оригинале. Не будет же движок сам их выдумывать на ходу?)
думаю товарищ имеет ввиду следующее, к чему и я присоединюсь: не планируется в опенготик внедрить механизм (описанный в документации), который бы подтягивал дополнительные текстуры, если такие имеются и размещены по определенным правилам. Например имеется папка "textures.VDF", совпадающая с названием файла текстур, а в ней подкаталоги: "Albedo" "Roughness" "Metallic" и др. по необходимости, а уже в каждой из них по одноименной текстуре, как в textures.VDF, например, STATUS_BACK1.tga. И двиг опенготик бы уже применял их поверх оригинальных текстур/матов, возможно, даже с приоритетом над оригинальной текстурой, если такая имеется в соответствующей для этого папке.

От себя - все ещё жду возможность запуска на г1. как появится - свистни )
 

R4SH

Участник форума
Регистрация
22 Ноя 2007
Сообщения
42
Благодарности
4
Баллы
150
13B pзапустил пересборку. Минут через 20 билд с исправлением появится тут AppVeyor

Можешь пока скинуть свой Union.vdf? Проблема в том что у него сигнатура как у настоящего vdf, но разумеется он не загружается.
Приветствую камрады,

при компиляции с AppVeyor,

git fetch -q origin +refs/pull/423/merge:

git checkout -qf FETCH_HEAD

Добавляет к стабильному билду только последний коммит ? или все предыдущие тоже (e.g. 422, 421 etc) тоже подтягиваются? если же нет, как можно добавить все коммиты к последнему релизному билду ? (fetch --all + pull --all? )

спасибо

PS. разобрался
 
Последнее редактирование:

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
1687892954282.png


1687893270515.png
1687893342207.png
1687893568051.png
1687894028417.png
1687894185163.png
1687894204914.png

Игра
  • Фокус действия теперь автоматически отключается если персонаж без сознания или мертв
  • Улучшена инерция камеры
  • AI теперь умеет использовать лестницы
  • Ледяная глыба: теперь меню инвентаря автоматически закрывается, если герой заморожен
  • Исправлена продолжительность стана, для заклинивания ледяная глыба
  • Исправлена цена продажи для стека предметов (#429)
  • Более нельзя повернуть персонажа, при зажатой кнопке "действие" (#400)
  • AI_Flee больше не использует way-point'ы которые находятся под водой
  • Добавлены реакции на подкладывание игрока
  • Переработан расчет урона (#434)
  • Переработано восприятие SENSE_HEAR
  • Улучшено управление заклинаниями, для большего сходства с оригиналом
Основное
  • Оптимизирована скорость сохранения игры
  • Добавлены заклинания в несколькими уровнями урона
  • Исправлен рендеринг шапки Грега
  • Диалог с Биффом: у апи-команды aiStopProcessInfo теперь есть orderId's
  • Добавлен фолбэк на случай если скрипт использует несуществующую start_point (#443)
  • Fix input problem when releasing one of two mapped keys (#441)
  • GothicStarter: добавлен ключ командной строки -devmode
  • Добавлена поддержка zCVobStair
  • Добавлено gothic1 skill values (#423)
  • Добавлены новые marvin команды (#398, #404, #471)
  • Изменен алгоритм индексирования waypoint'ов, для совместимости с Gothic1
Графика
  • Добавлено физически корректное освещение
  • Добавлена поддержка irradiance-карты для неба
  • RayTracing: теперь используется флаг gl_RayFlagsCullNoOpaqueEXT, для платформ без поддержки bindless
  • RayTracing: TLAS теперь корректно использует opaque флаги
  • RayTracing: добавлена реализация bindless для DX12
  • RayTracing: улучшена реализация bindless для Vulkan
  • Добавлена новая реализация стохастического тумана
  • Оптимизирован туман на низких настройках графики
  • Добавлена нормализация alpha-каналя, после alpha-теста
  • Добавлена поддержка blendOut для анимаций
  • Улучшена поддержка "больших координат"(large-world-coordinates)
  • Добавлены волны на воде
  • Теперь можно включать и выключать отражения на воде
  • Добавлены настройки Brightness/Contrast/Gamma
  • Оптимизирован туман
  • Оптимизирована упаковка мешлетов
MacOS
  • Добавлено автоматическое распознавание папки с игрой
  • Исправлен ввод текста в главном меню
  • Движок теперь учитывает максимальный размер текстур для Metal
  • Приведена в порядок работа в оконными координатами и мышкой
  • Исправлено выравнивание для буферов в Metal
  • Теперь можно использовать кнопку command на Mac (#402)
Script-api
  • Улучшен PERC_ASSESSPLAYER
  • Добавлена поддержка DAM_CRITICAL_MULTIPLIER, для Gothic 1
  • Добавлен AI_LOOKAT (#397)
  • wld_insertnpc: allow empty waty-point names
Баги:
  • Исправлено востановление состояние героя при отмене заклинания превращения
  • Исправлен PfxController в oldworld.zen
  • Исправлена ари функция AI_UseItem
  • Исправлено проблема с заклинанием превращения, в ситуации когда оно последнее в инвентаре
  • Исправлены сундуки в Gothic1 (#422)
  • Исправлено определение npc в вызове wld_playeffect
  • Исправлена проблема с получением двойного урона от лука/арбалета (#424)
  • Исправлена проблема с Npc_ExchangeRoutine в квесте с Silvio
  • Исправлен креш при запуске с Union.vdf
  • Исправлен soft-lock в вызове B_AssessQuietSound
  • npc_isdead : return false if npc is null (#457)
  • Исправлен вывод типа камеры для G1 (#437)
  • mdl_applyoverlaymdstimed: вызов игнорируется, если анимации не несовместимы

Скачивание на github: Release opengothic-v1.0.2207 · Try/OpenGothic
 

Вложения

  • 1687893530521.png
    1687893530521.png
    822,2 KB · Просмотры: 155

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.953
Благодарности
1.487
Баллы
465
Последний скриншот (во вложении) прям на рабочий стол просится *ok!*
 

13B

Участник форума
Регистрация
15 Июл 2010
Сообщения
117
Благодарности
82
Баллы
180
Try, глядя на историю коммитов - видно, что работа ведется практически без остановки.
Но интервал между двумя последними релизами - практически полгода (что не удивительно, глядя на объем изменений).
Возможно, имеет смысл делать сборку где-то раз в месяц, чтобы граждане не забывали о таком чудесном проекте и не думали, что капец и забросили?

И второй момент: многим работа с консолью для запуска проекта - это сложно и непонятно, проще не пытаться.
Возможно ли имплементировать некое UI решение для указания пути к игре?
Думаю, что эта вещь добавит 100 очков к юзабилити:)
 

Try

Участник форума
Регистрация
27 Дек 2019
Сообщения
108
Благодарности
422
Баллы
145
Сверху Снизу