Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
> SDK для 4A Engine своими руками
Modera
сообщение 01.03.2019, 00:36
Сообщение #821


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Мне тут предложили создать отдельную тему по поводу редактора уровней который я показывал в теме "Вскрытие ресурсов Метро 2033", так что теперь все новости и прочее будет здесь.

Скачать актуальную версию можно тут:
Папка на гугл диск. Исходники там же.

Скачать последнюю тестовую версию можно тут:
Тестовая версия.

Репозиторий на Bitbucket

Скриншоты

Уровни из 2033 и Last Light с погодой:




Уровни из арктики:





Уровни из исхода:




Чейнджлог

Версия от 28 февраля 2019:
  • Добавлена возможность открывать уровни арктики.1 и Метро Исход (сохранять их есстественно нельзя)
  • Новый пункт меню Render -> Set texture quality для установки качества текстур. По умолчанию 512.
  • Ускоренное перемещение камеры с зажатым Shift


Версия от 17 марта 2019:
  • Теперь параметры текстур читаются из textures.bin или texture_handle_storage.bin, а не угадываются
  • Добавлена поддержка детальных текстур
  • Добавлена возможность редактировать секцию startup из редактора (В меню Level -> Options)
  • Добавлен список объектов на уровне с возможностью выбора (в меню Level -> Select entity)
  • Улучшен редактор параметров, теперь параметры идут в таком же порядке как в level.bin, учитываются вложенные секции и можно редактировать векторы


Версия от 23 марта 2019:
  • Улучена работа функций перемещения и вращения. Всё ещё не так хорошо работает как хотелось бы, но реагирует на нажатия теперь нормально.
  • В меню пункт Save теперь сохраняет level.bin в ту папку из которой он был открыт. Для сохранения в другое место добавлен пункт Save as.
  • Список объектов теперь сортируется.
  • Во фрейм Entity добавлены кнопки Rename и Delete.
  • Параметры типа entity_link, uobject_link теперь показывают не id, а имя. При нажатии объект выбирается из списка. Надеюсь это удобнее.


Версия от 30 апреля 2019:
  • Экспорт сцены
  • Загрузка уровней последнего света
  • Начальная реализация редактора скриптов
  • Добавлен model_Editor, для более удобного назначения материалов на конвертированных моделях.
  • Добавлено окошко выбора модели с предпросмотром. Открывается даблкликом на параметре visual : ref_model или visual : choose.
  • Так же добавлено более понятное редактирование флагов объектов, открывается даблкликом на oflags : bool8
  • В редакторе параметров теперь показываются значения векторов
  • Улучшена поддержка уровней исхода, но до идеала ещё очень далеко
  • Коллизия моделей теперь загружается из файлов nxcform_pc (или nxcform_xbox для last light) в случае их присутствия, а не генерируется на лету. По идее ускоряет загрузку уровней, но иногда могут быть проблемы с выделением.


Версия от 18 августа 2019:
  • Версия игры при загрузке уровня теперь определяется автоматически
  • Новая система загрузки level.bin от LL/Redux/Arktika.1/Exodus на джаваскрипте
  • Почти полноценная поддержка ластлайта(длц уровни всё ещё полностью не загружаются)
  • Возможность вращать и перемещать несколько объектов сразу
  • Возможность создавать шаблоны(кнопка add) с несколькими объектами, parent_id и прочие ссылки переназначаются автоматически
  • Виртуальные папки в списке объектов, для указания папок использовать обратный слеш в имени при добавлении шаблона
  • Импорт моделей в model_editor
  • Зум колёсиком в редакторе скриптов
  • Копирование и вставка в LE
  • Минимальная поддержка уровней Redux
  • Исправлено отзеркаливание сцены по оси Z (только LE, в следующей версии будет и ME)


Версия от 25 августа 2019:
  • Доделана загрузка DLC уровней от Last Light
  • Кнопка Clear в редакторе скриптов
  • Уровни ласт лайта при сохранении через Save As теперь сохраняются без отладочной информации, как оригинальные. Хотя работало и так.


Версия от 20 января 2020:
  • альфа блендинг и дисторт
  • допилены манипуляторы, добавлен скейл
  • PhysX2 заменён на PhysX3, теперь объекты с масштабом выбираются корректно
  • Загрузка скелета и работа с прикреплёнными объектами (прикрепить на ctrl+shift)
  • Выбор партиклов/звуков/костей/бон партов/текстур/анимаций света
  • Редактирование Str_array
  • Редактирование матриц
  • работа с шейпами (удалить шейп ctrl+X, прицепить шейп ctrl+Z)
  • Поддержка последней версии Метро 2033 с патчами
  • Сохранение nxcform из model_editor
  • Выбор шейдеров и материалов в model_editor
  • Работа с LODами в model_editor
  • Загрузка и сохранение level.add.bin, в меню Level: Make addon помечает выбранные объекты для сохранения в level.add.bin, Make Global возвращает обратно в основной level.bin


Версия от 30 марта 2020:
  • Z = -Normal
  • Галочка Select для выделения свежедобавленных объектов
  • Возможность скрывать объекты
  • добавлена возможность указывать объект который используется как pivot при создании группы
  • по просьбам людей с поломанной виндой на которую не ставится PhysX библиотека PhysXLoader.dll теперь delayload
  • Исправлена загрузка суперстатики исхода (раньше загружалась не полностью)
  • Отображение декалей и egeoms
  • Отображение softbody моделей
  • Отображение Environment зон (редактирование недопилено)
  • Кое какая оптимизация за счёт сокращения числа переключений вершинных шейдеров, +20 фпс на уровне l24_alley
  • Экспорт моделей из model editor'а (в т.ч. со скелетом)
  • Теперь при импорте моделей AO берётся из цвета вершин (если есть), встроенный рассчёт AO убран
  • Начальная реализация импорта динамических моделей
  • Отображение двусторонних поверхностей на моделях исхода
  • Режим отображения Ambient Occlusion (выпадающий список рядом с Render Mode)
  • Возможность открывать отдельные .mesh файлы в Model Editor, для настройки материалов


Версия от 28 июня 2021:
  • В окно выбора моделей добавлена возможность выбирать пресеты (по даблклику на модельку)
  • Использование лодов редактором уровней
  • Починена поддержка Windows XP (в прошлой версии было сломано)
  • Исправлено выворачивание бинормалей на импортированных моделях
  • Генератор ID теперь не забивает первые 256 объектов, в оригинальной игре так
  • Начальная реализация импорта анимаций, а так же их отображение в обоих редакторах (только 2033)
  • Пофикшена проблема с нормалями MU объектов на картах конвертированных из сталкера
  • Полная поддержка уровней из Redux версии игры
  • Возможность конвертировать карту из сталкера с лайтмапами. Карта может быть как ЧН/ЗП версии (ключ -lmap) так и ТЧ (ключ -lmap_soc)
  • Возможность конветировать карты в формат Last Light и Redux (ключи -ll и -redux соответственно)
  • Добавлены скрипты разбора параметров карты от Last Light и sounds.bin от Last Light и Redux, автор - Arkyt
  • Погода в редакторе уровней, с возможностю выбора во вкладке Weather
  • Добавлено отображение позиции камеры, рядом с количеством выделенных объектов
  • Undo, Redo и File->Reopen
  • Редактирование зон окружения
  • Переделан интерфейс, и теперь используются визуальные стили
  • Дерево вместо списка для блоков в Script Editor
  • Импорт OMF в Model Editor
  • Отображение анимации
  • Перемещание камеры при помощи мышки как в X-Ray SDK (на Alt)
  • Отображение путей
  • Автоматическая связка путей
  • Манипуляторы заменены на libgizmo
  • Настроена сборка x86 версии


Версия от 20 сентября 2021:
  • Исправлена ошибка с мерцающей позицией камеры в Level Editor
  • Улучшен рассчёт хеми на MU моделях на картах конвертированных из сталкера, теперь c_scale и c_bias учитываются
  • Новый редактор textures.bin - Image Library


Версия от 4 ноября 2021:
  • Параметры для консольных утилит model.exe и binunp.exe теперь можно задавать в любом порядке, как во всех человеческих программах
  • Исправлен баг с отображением softbody моделей при включенном режиме wireframe
  • Добавлена возможность вырезать выделенные объекты
  • Исправлена ошибка из за которой могли неправильно переназначатся ссылки и parent_id при создании или вставке групп объектов
  • Исправлена ошибка с тем что не сбрасывалось выделение при переоткрытии уровня
  • В виду появления возможности загружать моды из папки content добавлены пункты в меню Level для быстрого сохранения и запуска уровня (Save & Run, Run Options) и кнопка на тулбаре
  • Теперь model.exe конвертирует порталы из сталкеровских уровней в level.portals, если они там есть.


Версия от 18 ноября 2021:
  • Level Editor:
    • Исправлена возможность создавать одинаковые связи между блоками в Script Editor'е
    • Теперь для тестуры шрифта в Script Editor'е создаются мипмапы, текст на блоках при уменьшении мастаба стало легче разобрать
    • Полноценная загрузка уровней от Арктики.1, теперь можно сохранять
    • Галочка Uniform для инструмента Scale теперь снова работает
    • Добавлена возможность изменять размер Undo-буфера (пока только через редактирование файла editor_data\level_Editor.ini, секция history, параметр undo_limit)
  • Model Editor:
    • Добавлена вкладка со списком костей скелета + подсветка выбранной кости
    • Редактировение пресетов, для моделей от ласт лайта или последующих игр
  • Image Library:
    • Исправлено дописывание папки импорта к имени текстуры
    • Исправлен краш при импорте текстур в x86 версии
    • Исправлен сброс пути к папке ресурсов при закрытии окна настроек
    • Добавлена настройка качества сжатия crunch тектсур
  • binunp
    • Для ключей -d, -c, -s имя выходного файла теперь необязательно указывать. Если имя выходнго файла не указано, в случае декомпиляции оно будет равно имени входного файла с дописанным .txt (например из level.bin получится level.bin.txt), в случае компиляции будет убрана часть до последней точки, включая саму точку (например из level.terrain.txt получится level.terrain).


Версия от 6 февраля 2022:
  • Level Editor:
    • Переименован пункт меню Make Addon в Move selection to level.add.bin
    • Переименован пункт меню Make Global в Move selection to level.bin, а так же исправлена его работа (раньше не работало)
    • Добавлен пункт меню Select all entities from level.add.bin для выделения всех объектов которые сохраняются в level.add.bin
    • Ускорено заполнение списка свойств при выделении объектов
    • Добавлен опционально двухколоночный список свойств, включить можно в level_Editor.ini, секция properties, параметр two_column
    • Добавлена опция для скрытия объектов по удалению от камеры согласно параметру cull_distance (в меню Render -> Distance Culling)
    • Исправлена возможность редактировать уровень до того как он полностью загрузится, что приводило к ошибке
    • Переработана система Undo с целью сделать её быстрее, менее требовательной к памяти, и устранения многих странных моментов, например когда бекап делался после изменения а не до, как положено
  • binunp:
    • Добавлен подсчёт времени затраченного на загрузку и сохранение конфигов при декомпиляции и компиляции
  • Исправлена ошибка из за которой не грузился sounds.bin от ласт лайта
  • Исправлен жирный баг с неработающим перемещением в анимациях от оригинального 2033
  • Анимации от Last Light и Redux теперь загружаются
  • Полное чтение и сохранение level.bin'ов от Исхода последней версии (загрузка изменённых файлов игрой не тестировалась)
  • Оптимизирован отжор памяти распакованными конфигами
  • Оптимизирована отрисовка сцены за счёт снижения количества переключения текстур (не очень, можно и лучше)




Консольные утилиты

Полноценный распаковщик и запаковщик для Last Light, readme в архиве

Программы для работы с конфигами и конвертер моделей

Скачать
Исходники можно найти в исходниках level_editor'а.

В архиве содержится три программы: split.exe, binunp.exe и model.exe.

Первая split.exe, предназначена для разбития scripts.bin на отдельные файлы и сборки обратно.
Для разбития поместить файл scripts.bin в рабочей папке и запустить без параметров или с одним параметром -d(без разницы).
Код
split.exe

Если всё прошло хорошо должна появится папка scripts с большим количеством .bin файлов в ней.

Для обратной сборки запустить с ключом -c:
Код
split.exe -c

Скрипты при сборке опять таки берутся из папки scripts в рабочей папке.

Вторая binunp.exe, предназначена для конвертирования .bin конфигов(файлы добытые из scripts.bin, level.bin и некоторые другие) в человеко-читаемый формат и обратно. Именно на её основе строится редактор уровней.
Что умеет:
  1. Полная распаковка level.bin от Metro 2033
  2. Полная распаковка level.bin от Metro Last Light 2013 года
  3. Частичная распаковка level.bin от Redux/Arktika.1/Exodus
  4. Автоматическая распковка конфигов с отладочной инфой (ключ -d)
  5. Распаковка некоторых конфигов без отладочной инфы (ключ -s)
  6. Запаковка конфигов (ключ -с)


Распаковка level.bin осуществляется следующим образом:
Код
binunp.exe -l -d level.bin level.txt

Где level.bin - имя файла для распаковки.
Где level.txt - имя распакованного текстового файла.

Запаковка level.bin:
Код
binunp.exe -l [-k N] -c level.txt level.bin

Где level.txt - имя текстового файла для запаковки.
Где level.bin - имя нового двоичного файла.
Параметр -k необязательный, на месте N указывается тип .bin файла, по умолчанию 5. В 2033 используется 5, в last light 4, в следующих играх 36.

Распаковка конфигов с отладочной инфой:
Код
binunp.exe -l -d file.bin file.txt

Где file.bin - имя файла для распаковки.
Где file.txt - имя распакованного текстового файла.

При попытке распаковать таким образом конфиг без отладочной информации будет выведено сообщение об ошибке следующего вида:
Код
Exception: Cannot decompile config with kind=4


Распаковка конфигов без отладочной инфы(при помощи скрипта):
Код
binunp [-v] -s js\script.js file.bin file.txt

Где js\script.js - имя скрипта в папке js используемого для разбора конфига.
Где file.bin - имя файла для распаковки.
Где file.txt - имя распакованного текстового файла.
Параметр -v необязательный, если указать то будет выводиться предупреждение в том случае если данные были прочитаны не до конца.

Есть специальный случай, если имя файла для распаковки textures.bin, то скрипт не используется, вместо него нужно указать пустую строчку.
Код
binunp -s "" textures.bin textures.txt


Запаковка конфигов:
Код
binunp.exe [-k N] -c file.txt file.bin

Где file.txt - имя текстового файла для запаковки.
Где file.bin - имя нового двоичного файла.
Параметр -k необязательный, на месте N указывается тип .bin файла, по умолчанию 5. Желательно указывать такой же какой был показан при распаковке.

Последняя model.exe, конвертер моделей.
Умеет следующее:
  1. Конвертирование из .model в .ogf (для тестирования, ключ -model2ogf)
  2. Конвертирование из .ogf в .model (ключ -ogf2model)
  3. Cоздание nxcform_pc на основе модели (ключ -model2nxcform_pc)
  4. Создание уровня на основе основе модели (ключ -model2level)
  5. Конвертирование уровня из формата сталкера в формат 4A Engine (ключ -level2level)

Краткая справка доступна при запуске без параметров.

Эта инструкция будет дописываться.






Сообщение отредактировал Modera - 06.02.2022, 08:21
Перейти в начало страницы
 
43 страниц V  « < 40 41 42 43 >  
Начать новую тему
Ответов
Berkut107
сообщение 08.11.2021, 17:29
Сообщение #822


Игрок
***

Репутация:   7  
Группа: Участник
Сообщений: 46
Регистрация: 10.10.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Modera, не очень понял зачем добавил "cut", я привык постоянно копипастить через пкм, а там теперь на 1 месте в списке cut какое-то. Тем более вместо cut есть же кнопка delete, или эту функцию как-то еще можно использовать? Она тупо удаляет выделенную область? Я пока не разобрался.


Сообщение отредактировал Berkut107 - 08.11.2021, 17:30


--------------------
Перейти в начало страницы
 
Modera
сообщение 08.11.2021, 17:38
Сообщение #823


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Berkut107, копирует и потом удаляет, так же как во всех других редакторах. По русски это называется "вырезать".
Перейти в начало страницы
 
Berkut107
сообщение 08.11.2021, 18:46
Сообщение #824


Игрок
***

Репутация:   7  
Группа: Участник
Сообщений: 46
Регистрация: 10.10.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 08.11.2021, 17:38) *
Berkut107, копирует и потом удаляет, так же как во всех других редакторах. По русски это называется "вырезать".

Да это я понял, просто очень не удобное расположение честно говоря.


--------------------
Перейти в начало страницы
 
Modera
сообщение 08.11.2021, 19:11
Сообщение #825


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Как везде.
Перейти в начало страницы
 
Nay Gigger
сообщение 09.11.2021, 01:15
Сообщение #826


Ветеран
*****

Репутация:   13  
Группа: Участник
Сообщений: 79
Регистрация: 26.03.2021




Вставить ник Цитировать выделенное в форуму быстрого ответа


Modera, не знаю, может чем-то поможет, но тут в \бин\ лежит вроде бы чуть другая версия 4a script debugger (и утилита для работы со звуком еще со времен HoverAce).
Расковыривать этот архив желания не имею, т.к. не знаю, какие либы, кроме u****.dll нужны.
https://mega.nz/file/P05gQTTI#CJZ9MrSRSFqwA...aVkRX6RQq1cXAKs




Сообщение отредактировал Ubunter - 09.11.2021, 01:16


--------------------
Если я усну и проснусь через сто лет и меня спросят, что сейчас происходит на гомерудотнет, я отвечу:
Цитата
В данный момент обсуждение политических и военных российско-украинских событий запрещено во избежание разжигания межнациональной розни. В тех же целях запрещаются аватары и подписи с государственными символиками.
К пользователям, игнорирующим этот запрет, будут применены санкции.
Перейти в начало страницы
 
Modera
сообщение 09.11.2021, 08:21
Сообщение #827


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Ubunter, врядли пригодится, т.к. в релизе луа скриптов уже не осталось. Но всё ровно спасибо.
Перейти в начало страницы
 
TheStalkerNest
сообщение 10.11.2021, 20:40
Сообщение #828


Опытный Игрок
****

Репутация:   3  
Группа: Участник
Сообщений: 67
Регистрация: 06.02.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Ubunter @ 09.11.2021, 02:15) *
Modera, не знаю, может чем-то поможет, но тут в \бин\ лежит вроде бы чуть другая версия 4a script debugger (и утилита для работы со звуком еще со времен HoverAce).
Расковыривать этот архив желания не имею, т.к. не знаю, какие либы, кроме u****.dll нужны.
https://mega.nz/file/P05gQTTI#CJZ9MrSRSFqwA...aVkRX6RQq1cXAKs



Кому интересно, залил отдельно, чтобы не качать гигабайт.
В архиве так-же есть pdb'шки от uai.dll и uscript.dll.
Странно, что эта версия дебагера, собрана почти на 2 месяца раньше, номер сборки больше на 6 единиц, а функционала больше, чем в версии из слитого билда.

В целом, все эти файлы имеют лишь историческую ценность.

https://drive.google.com/file/d/1ImJbWeotjo...5Aiywu6X_V/view
Перейти в начало страницы
 
Modera
сообщение 18.11.2021, 18:32
Сообщение #829


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Выпустил новую версию. Самое большое отличие от предыдущей это полная загрузка уровней от арктики.1, впрочем я на 95% уверен что никто арктику моддить не будет и это новшество никакой пользы не принесёт. Зато теперь точно известно что следующей будет поддержка исхода, т.к. больше ничего не осталось.
Только примитивная система undo которая делает полный бекап сцены при каждом изменении себя не очень хорошо показала с уровнями арктики. Срабатывает довольно медленно (до 0,2 секунды задержка) и память жрёт как не в себя.
В общем, для таких тяжёлых уровней надо это улучшать и сохранять только изменения. Но это довольно сложно, поэтому я пока сделал просто возможность отключать undo напрочь.

Полный список изменений:
  • Level Editor:
    • Исправлена возможность создавать одинаковые связи между блоками в Script Editor'е
    • Теперь для тестуры шрифта в Script Editor'е создаются мипмапы, текст на блоках при уменьшении мастаба стало легче разобрать
    • Полноценная загрузка уровней от Арктики.1, теперь можно сохранять
    • Галочка Uniform для инструмента Scale теперь снова работает
    • Добавлена возможность изменять размер Undo-буфера (пока только через редактирование файла editor_data\level_Editor.ini, секция history, параметр undo_limit)
  • Model Editor:
    • Добавлена вкладка со списком костей скелета + подсветка выбранной кости
    • Редактировение пресетов, для моделей от ласт лайта или последующих игр
  • Image Library:
    • Исправлено дописывание папки импорта к имени текстуры
    • Исправлен краш при импорте текстур в x86 версии
    • Исправлен сброс пути к папке ресурсов при закрытии окна настроек
    • Добавлена настройка качества сжатия crunch тектсур
  • binunp
    • Для ключей -d, -c, -s имя выходного файла теперь необязательно указывать. Если имя выходнго файла не указано, в случае декомпиляции оно будет равно имени входного файла с дописанным .txt (например из level.bin получится level.bin.txt), в случае компиляции будет убрана часть до последней точки, включая саму точку (например из level.terrain.txt получится level.terrain).
Перейти в начало страницы
 
Rolan96
сообщение 30.11.2021, 01:07
Сообщение #830


Продвинутый геймер
********

Репутация:   48  
Группа: Участник
Сообщений: 275
Награды: 3
Регистрация: 30.11.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 18.11.2021, 18:32) *
Только примитивная система undo которая делает полный бекап сцены при каждом изменении себя не очень хорошо показала с уровнями арктики. Срабатывает довольно медленно (до 0,2 секунды задержка) и память жрёт как не в себя.
В общем, для таких тяжёлых уровней надо это улучшать и сохранять только изменения. Но это довольно сложно, поэтому я пока сделал просто возможность отключать undo напрочь.


может в таком случае интегрировать git?
Перейти в начало страницы
 
Modera
сообщение 30.11.2021, 01:14
Сообщение #831


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Rolan96 @ 30.11.2021, 01:07) *
может в таком случае интегрировать git?

А как это должно работать?
Перейти в начало страницы
 
Rolan96
сообщение 30.11.2021, 09:32
Сообщение #832


Продвинутый геймер
********

Репутация:   48  
Группа: Участник
Сообщений: 275
Награды: 3
Регистрация: 30.11.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 30.11.2021, 01:14) *
Цитата(Rolan96 @ 30.11.2021, 01:07) *
может в таком случае интегрировать git?

А как это должно работать?

На открытый файл локации создавать локальный репозиторий, коммитить каждое изменение файла локации. В коммент к коммиту добавлять название действия.
Перейти в начало страницы
 
Modera
сообщение 30.11.2021, 16:42
Сообщение #833


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Rolan96 @ 30.11.2021, 09:32) *
На открытый файл локации создавать локальный репозиторий, коммитить каждое изменение файла локации. В коммент к коммиту добавлять название действия.

Так это ведь придётся сохранять файл на диск целиком, что даст ещё большие задержки. Или есть возможность обойтись без этого?
Перейти в начало страницы
 
Rolan96
сообщение 30.11.2021, 16:59
Сообщение #834


Продвинутый геймер
********

Репутация:   48  
Группа: Участник
Сообщений: 275
Награды: 3
Регистрация: 30.11.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 30.11.2021, 16:42) *
Цитата(Rolan96 @ 30.11.2021, 09:32) *
На открытый файл локации создавать локальный репозиторий, коммитить каждое изменение файла локации. В коммент к коммиту добавлять название действия.

Так это ведь придётся сохранять файл на диск целиком, что даст ещё большие задержки. Или есть возможность обойтись без этого?

я могу ошибаться, но в коммите не весь файл вроде, а только часть, которая изменилась.
Перейти в начало страницы
 
Modera
сообщение 30.11.2021, 17:23
Сообщение #835


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Rolan96, я тоже сильно не вникал как работает гит, просто если для того чтобы закоммитить файл нужно его полностью сохранять, то для ускорения это точно нецелесообразно.
Если можно коммитить только изменения то может что-то и можно сделать. Но так я уже не уверен что будет проще чем сохранять изменения вручную. laugh.gif
Перейти в начало страницы
 
Modera
сообщение 03.12.2021, 22:06
Сообщение #836


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Всё-таки занялся поддержкой уровней исхода. Места не хватает, для того чтобы скачать исход пришлось удалить распак арктики.1 и war thunder
Но наверно надо всё-таки доделать то что я начинал ещё в 2019-м.
В этот раз решил начать не с самого лёгкого уровня как обычно, а с самого тяжёлого, и вчера доделал распаковку level.bin от DLC Владивостока. Немного цифр:
На уровне содержится 62144 объектов, 2942 инлайновых скриптов, 250477 скриптовых блоков и 546392 связей между блоками.
Для сравнения на самом большом уровне из оригинального 2033 было всего 6682 объекта, 208 скриптов с 6148 блоками и 10357 связями.
Распакованный level.bin в текстовом формате весит 211 мегабайт и содержит 6903451 строку. Декомпиляция этого дела вместе с сохранением занимает что-то около минуты (10 секунд непосредственно декомпиляция + 40 секунд запись в текстовый файл). Компиляция изначально была около 5 минут, но я уже оптимизировал до 30 секунд, т.к. львиную долю времени отнимало составление словаря.
Скрипт для декомпиляции скриптов получился самый жирный - аж 71 килобайт. Загружает что-то около 400 классов блоков, которые встречаются на уровне владивостока. И это ещё не всё, наверняка на других уровнях есть и другие классы блоков.

Все эти 400+ классов нужно отловить и исследовать в дебагере. Время утраченное на отладку увеличивается и увеличивается, сука.


Перейти в начало страницы
 
Modera
сообщение 05.12.2021, 19:30
Сообщение #837


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Сегодня раздолбал ещё один уровень, на этот раз пустыню. Объектов там чуть меньше, 61408 штук, а вот скриптов аж 4150, с 371955 блоками и 826631 связями, из за чего уровень получается даже более тяжёлым чем владивосток, в распакованном виде файл весит 259 мегабайт и содержит 8531653 строчки.
Чёто я всё больше и больше сомневаюсь что редактор справится с такими уровнями z_6.gif

Вообще интересно что думают о таком количестве скриптов пользователи unreal engine которые утверждают что блюпринты медленные, надо всё делать на с++ и всё такое.
Перейти в начало страницы
 
TheStalkerNest
сообщение 05.12.2021, 22:06
Сообщение #838


Опытный Игрок
****

Репутация:   3  
Группа: Участник
Сообщений: 67
Регистрация: 06.02.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 05.12.2021, 20:30) *
Сегодня раздолбал ещё один уровень, на этот раз пустыню. Объектов там чуть меньше, 61408 штук, а вот скриптов аж 4150, с 371955 блоками и 826631 связями, из за чего уровень получается даже более тяжёлым чем владивосток, в распакованном виде файл весит 259 мегабайт и содержит 8531653 строчки.
Чёто я всё больше и больше сомневаюсь что редактор справится с такими уровнями z_6.gif

Вообще интересно что думают о таком количестве скриптов пользователи unreal engine которые утверждают что блюпринты медленные, надо всё делать на с++ и всё такое.


Почему-бы не редактировать .bin файлы напрямую, без декомпиляции в текстовый формат?
Перейти в начало страницы
 
Modera
сообщение 05.12.2021, 22:28
Сообщение #839


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(TheStalkerNest @ 05.12.2021, 22:06) *
Почему-бы не редактировать .bin файлы напрямую, без декомпиляции в текстовый формат?

Потому что это сложно, без преобразования в таблицу пришлось бы создать большую такую кучу структур копирующих объекты 4A Engine с сохранением наследования, плюс потом пришлось бы писать не только код загрузки, но ещё и код сохранения, и ещё составление списка свойств, и это для всех пяти игр. Я за такую работу бы точно не взялся.
Но памяти бы жрало меньше намного, это да.
Перейти в начало страницы
 
Modera
сообщение 07.12.2021, 13:15
Сообщение #840


.
**********************

Репутация:   750  
Куратор темы
Сообщений: 7072
Регистрация: 30.07.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Доделал поддержку всех уровней еходуса сегодня, вот билд binunp с ней (+сорцы): https://drive.google.com/drive/folders/1Hsa...r5D?usp=sharing
Редактор как-нить попозже, там ещё надо доделывать улучшение undo, и анимация 2033 в LE поломалась из за сортировки, и вообще надо проверить хотябы открывает он уровни исхода или нет. Я пока только сами левел.бин'ы распаковывал, к редактору при разборе даже не прикасался.

Делал разбор я на основе обычного еходуса с длц, не знаю подойдёт ли к enchaned edition.
К старой версии без длц не подойдёт точно, т.к. там другая версия спауна. Но это врядли кого-то сильно волнует, так что как-нибудь потом.

Кстати отжор памяти распакованными конфигами получилось оптимизировать больше чем в два раза ! Примерно по тому же методу как работает str_shared в движке. То есть вместо того чтобы на каждый параметр хранить копии строк названия и типа(они очень часто повторяются) я завёл список и ссылаюсь всегда на него. Так при загрузке левелбина от длц два полковника стало жрать вместо 1234 мегабайт всего 702. Но это не предел.
Так как теперь есть список строк хранить два тяжеленных 64-битных указателя стало не обязательно, можно хранить индексы меньшего размера. Я запихнул индексы имени и типа в один Longint (8 бит для типа, 24 бит для имени) и потребление памяти упало ещё больше, до 558 мегабайт. Всё-ровно много конечно, но всё же.
Правда скорость загрузки конфигов упала в два раза (с 10 до 20 секунд например) из за того что теперь при добавлении каждого параметра ищутся строки в списке, но это попробовать оптимизировать если искать по CRC вместо полноценного сравнивания строк (кстати в выложенном билде именно так и сделано), но я не уверен не случится ли где коллизии. Надо нормальную хеш-таблицу сделать.
Зато скорость создания копии конфига выросла из за того что копируется индекс а не две строки, не сильно правда, где-то на четверть.

Сообщение отредактировал Modera - 07.12.2021, 13:28
Перейти в начало страницы
 
JackieR
сообщение 09.12.2021, 21:54
Сообщение #841


Ветеран
*****

Репутация:   10  
Группа: Участник
Сообщений: 99
Регистрация: 28.11.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Modera @ 07.12.2021, 13:15) *
Доделал поддержку всех уровней еходуса сегодня, вот билд binunp с ней (+сорцы): https://drive.google.com/drive/folders/1Hsa...r5D?usp=sharing


При декомпиляции 06_bridge или 06_spring:

Код
D:\Binunps\binunp_exodus>binunp -l -d level.bin level.txt
16
[JS] Error: size-pos < count
Loaded 'level.bin' in 1.0193401000s
Saving to level.txt
Saving time: 0.8104687000s

D:\Binunps\binunp_exodus>pause
Для продолжения нажмите любую клавишу . . .


При декомпиляции же dlc_2_vladivostok никаких ошибок нет.


--------------------
Перейти в начало страницы
 

43 страниц V  « < 40 41 42 43 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.03.2024, 11:47