SDK для 4A Engine своими руками |
Здравствуйте, гость ( Авторизация | Регистрация )
SDK для 4A Engine своими руками |
01.03.2019, 00:36
Сообщение
#1
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Мне тут предложили создать отдельную тему по поводу редактора уровней который я показывал в теме "Вскрытие ресурсов Метро 2033", так что теперь все новости и прочее будет здесь.
Скачать актуальную версию можно тут: Скачать последнюю тестовую версию можно тут: Чейнджлог Версия от 28 февраля 2019:
Версия от 17 марта 2019:
Версия от 23 марта 2019:
Версия от 30 апреля 2019:
Версия от 18 августа 2019:
Версия от 25 августа 2019:
Версия от 20 января 2020:
Версия от 30 марта 2020:
Версия от 28 июня 2021:
Версия от 20 сентября 2021:
Версия от 4 ноября 2021:
Версия от 18 ноября 2021:
Версия от 6 февраля 2022:
Консольные утилиты Полноценный распаковщик и запаковщик для 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 и некоторые другие) в человеко-читаемый формат и обратно. Именно на её основе строится редактор уровней. Что умеет:
Распаковка 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, конвертер моделей. Умеет следующее:
Краткая справка доступна при запуске без параметров. Эта инструкция будет дописываться. Сторонние утилиты Сообщение отредактировал Modera - 06.02.2022, 08:21 |
 
|
|
|
|
02.03.2019, 00:17
Сообщение
#2
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Чет тут подозрительно тихо. Разбавим тишину.
Автор молодец! Отличная работа. Если из этого вырастет полноценный редактор уровней - будет очень круто. ЗЫ. Я в Паскаль не умею (точнее мне лень с ним разбираться), так что код не смотрел. А вот то что шейдеры `ARBvp/fp` - это сильно удивило. Я лет 15 их уже не видел. Если нужна какая помощь по рендеру (и OpenGL в целом) - обращайся. -------------------- Hello worlds!
|
 
|
|
02.03.2019, 00:52
Сообщение
#3
|
|
Игровой Бог первой степени Репутация: 432 Группа: Участник Сообщений: 8787 Награды: 4 Регистрация: 21.03.2013 |
Не, ну с вами всё ясно. Вы хотите делать столкир на 4a engine что ли? .
Это путь в никуда, дебри кода и багов, колючая проволка и мины. Я ещё могу понять когда 4a запчастями апгрейдят X-ray запчасти....или используют модели геометрии и персонажей. Metro Exodus не похожа на полигон для модинга. Честное слово, накатывайте UE4, поляки как раз Чернобыль отсканили, ун и прискорбную боязень волков на запчасти балгаркой можно порезать. запчасти Сообщение отредактировал Ruw - 02.03.2019, 01:18 -------------------- |
 
|
|
02.03.2019, 01:41
Сообщение
#4
|
|
Игровой Эксперт Репутация: 623 Группа: Участник Сообщений: 2474 Награды: 5 Регистрация: 14.02.2009 |
Лучше покажите как выглядит локация между сезонами игры, когда мы едем в Авроре. А то один придурок на Ютубе сказал, что она закольцована и мы едем по кругу.
Мое мнение, что это просто 1 кусок локации который подставляется раз за разом. -------------------- |
 
|
|
02.03.2019, 01:58
Сообщение
#5
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Группа: Припаркованный аккаунт Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Мое мнение, что это просто 1 кусок локации который подставляется раз за разом. один придурок на Ютубе сказал, что она закольцована Мне видится что две эти фразы равнозначны -------------------- Hello worlds!
|
 
|
|
02.03.2019, 11:57
Сообщение
#6
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
Лучше покажите как выглядит локация между сезонами игры Генерирование? Особенно это заметно на багах с травой в воздухе. Имеется террейн, заготовки строений, флора и потом это всё случайным образом размещается. Возможно, строения уже имеют своё точное местоположение, как и часть флоры; а вот трава, мелкие кусты и какие-то деревья случайно расставляются по мере продвижения. |
 
|
|
02.03.2019, 12:39
Сообщение
#7
|
|
Игровой Эксперт Репутация: 623 Группа: Участник Сообщений: 2474 Награды: 5 Регистрация: 14.02.2009 |
Мое мнение, что это просто 1 кусок локации который подставляется раз за разом. один придурок на Ютубе сказал, что она закольцована Мне видится что две эти фразы равнозначны Ошибаешься ! Закольцовано - это по кругу, окружности. А в нашем случае движение Авроры строго прямо - зациклено. -------------------- |
 
|
|
02.03.2019, 12:49
Сообщение
#8
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
движение Авроры строго прямо - зациклено Все сходится, прямая - это окружность с бесконечным радиусом -------------------- nop
|
 
|
|
02.03.2019, 12:57
Сообщение
#9
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
kiperenok, возможно, уровень "Погоня" из Metro Last Light сможет ответить на твой вопрос. Там же тоже тоннель "бесконечный".
-------------------- |
 
|
|
02.03.2019, 13:01
Сообщение
#10
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Metro Exodus не похожа на полигон для модинга. Ровно как и сталкер до распаковщиков, асдс и горы прочих утилит. Цитата Честное слово, накатывайте UE4, поляки как раз Чернобыль отсканили, ун и прискорбную боязень волков на запчасти балгаркой можно порезать. Зачем? kiperenok, возможно, уровень "Погоня" из Metro Last Light сможет ответить на твой вопрос. Там же тоже тоннель "бесконечный". Зачем такой изврат. Надо просто в ЛЕ от Модеры открыть любой поездной уровень. |
 
|
|
02.03.2019, 13:14
Сообщение
#11
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
autistic, возможно, бредятина, но у меня была ещё теория, что не Аврора движется, а окружение вокруг неё. Т.к. при движении Авроры надо и геометрию, и навигационную карту, и неписей двигать + ещё просчитывать навигацию на этой самой карте.
|
 
|
|
02.03.2019, 13:18
Сообщение
#12
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
Зачем такой изврат. Надо просто в ЛЕ от Модеры открыть любой поездной уровень. А я что написал? -------------------- |
 
|
|
02.03.2019, 14:09
Сообщение
#13
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
у меня была ещё теория, что не Аврора движется, а окружение вокруг неё. Это примерно как дилемма при выборе с какого конца яичную скорлупу чистить А тут проблема выбора между: либо мир движется относительно авроры, либо аврора движется относительно мира. И то и другое справедливо, и на производительность никак не влияет т.к. кол-во DIP'ов одинаковое будет -------------------- nop
|
 
|
|
02.03.2019, 14:50
Сообщение
#14
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Автор молодец! Отличная работа. Если из этого вырастет полноценный редактор уровней - будет очень круто. Спасибо за тёплые слова Если будут вопросы - напишу. Вы хотите делать столкир на 4a engine что ли? Я не ставил себе такой цели. Ресурсы из сталкера использую для тестов просто потому-что мне так удобно, форматы все давно знакомы. Лучше покажите как выглядит локация между сезонами игры, когда мы едем в Авроре. А то один придурок на Ютубе сказал, что она закольцована и мы едем по кругу. Мое мнение, что это просто 1 кусок локации который подставляется раз за разом. Как-то так. Сам поезд статический, поэтому он открывается. Пейзажи не статические, их не видно. То есть уже понятно что поезд никуда не едет, это мир едет вокруг поезда. Модели которые используются для видов за окном можно посмотреть например в content\meshes\static\12_autumn. Вроде рельсы прямые там, хотя есть и стрелки. А я что написал? Открыть уронень из Last Light этим ЛЕ не получится. Только оригинальный 2033 и исход. |
 
|
|
02.03.2019, 14:57
Сообщение
#15
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
Открыть уронень из Last Light этим ЛЕ не получится. Только оригинальный 2033 и исход. Понял. В будущем под redux и LL будешь настраивать? -------------------- |
 
|
|
02.03.2019, 15:10
Сообщение
#16
|
|
. Репутация: 750 Куратор темы Сообщений: 7072 Регистрация: 30.07.2010 |
Cartoteka, в обозримом будущем не собираюсь.
|
 
|
|
02.03.2019, 15:27
Сообщение
#17
|
|
Высший Игровой Бог Репутация: 1747 Группа: Супермодератор Сообщений: 12594 Награды: 15 Регистрация: 05.11.2009 |
kiperenok, не придирайся к словам. Как я понял на ютубе сказали "looped / cycled" что может переводится как "закольцованный / зацикленный". Это просто речевой оборот и он не означает что поезд буквально катается по бесконечной окружности и постоянно поворачивает в одну сторону.
autistic, возможно, бредятина, но у меня была ещё теория, что не Аврора движется, а окружение вокруг неё. И то и другое справедливо, и на производительность никак не влияет т.к. кол-во DIP'ов одинаковое будет На самом деле на этот вопрос нет однозначного ответа. Вполне возможно что двигается мир вокруг, а не поезд из-за ряда возможных багов. Вот смотрите. Отсчет координат начинается с 0,0,0. Если поезд будет двигаться очень долгое время то его координаты станут слишком большие. А перед ним надо еще составную часть локации спавнить (и удалять часть локации сзади, чтобы не было утечек памяти). - Во-первых - есть вероятность переполнения/выхода за пределы значений координат (если это float, то 3.40282347E+38). - Во-вторых - чем дальше от центра, тем ниже точность. При слишком больших значениях координат точность спавна снижается настолько, что объекты могут дергаться/спавнится не там где надо. Это происходит из-за погрешностей чисел с плавающей запятой при большом отдалении от начала координат. Этот баг наиболее заметен в майнкрафте, в Хороший программист должен всегда это предусматривать (конечно никто не будет держать игру открытой месяцами, чтобы произошло переполнение, но надо всегда все делать правильно. Или хотя бы пытаться). Есть два возможных решения: - После отдаления поезда на некоторое расстояние от начала координат респавнить его на начальных координатах 0,0,0 и продолжать движение как и раньше. Проблема в том чтобы сделать респавн/сброс поезда и мира незаметным для игрока (но это реально). - Можно оставить поезд в 0,0,0 и двигать весь мир вокруг него. Если в мире нет никаких сложных вещей которым могут помешать постоянное движение (та же AI сетка и NPC), то проще двигать сам мир. А поезд будет постоянно находится на одном и том же месте и "ездить" неограниченное кол-во времени. Спасибо что прослушали краткий курс по геймдеву на тему "бесконечная генерация уровня" 😋 PS: Это примерно как дилемма при выборе с какого конца яичную скорлупу чистить С тупого. Там есть воздушная прослойка и разбивать скорлупу в этом месте легче. -------------------- |
 
|
|
02.03.2019, 16:42
Сообщение
#18
|
|
Игровой Эксперт Репутация: 623 Группа: Участник Сообщений: 2474 Награды: 5 Регистрация: 14.02.2009 |
kiperenok, не придирайся к словам. Как я понял на ютубе сказали "looped / cycled" что может переводится как "закольцованный / зацикленный". Это просто речевой оборот и он не означает что поезд буквально катается по бесконечной окружности и постоянно поворачивает в одну сторону. Я смотрел русского "блохера" и он сказал "Аврора движется по кругу" -------------------- |
 
|
|
03.03.2019, 23:29
Сообщение
#19
|
|
Почти Игрок Репутация: 3 Группа: Участник Сообщений: 20 Награды: 1 Регистрация: 02.11.2010 |
надо и геометрию, и навигационную карту, и неписей двигать + ещё просчитывать навигацию на этой самой карте Не обязательно. В юнити пользовался следующей техникой для движущегося корабля: navmesh и агенты где-то спрятаны под водой/землей, реальные же модели NPC есть частью иерархии корабля и двигаются с ним. И трюк в том, чтобы скопировать локальные координаты агента в локальные координаты модели. |
 
|
|
04.03.2019, 00:46
Сообщение
#20
|
|
Продвинутый геймер Репутация: 39 Группа: Участник Сообщений: 304 Награды: 3 Регистрация: 03.04.2014 |
Сам поезд статический, поэтому он открывается. Пейзажи не статические, их не видно. То есть уже понятно что поезд никуда не едет, это мир едет вокруг поезда. Причем этот подход стар, как мир. Использовался еще, помнится, в Counter-Strike: Condition Zero в одной из миссий за русский спецназ. В финале миссии мы отстреливаемся от вражеского вертолета, находясь в кузове движущегося грузовика. Технически грузовик неподвижен, а дорога и скалы по бокам состоят из примыкающих друг к другу сегментов, движущихся против условного хода машины. Каждый сегмент, достигая конца пути, телепортируется в начало, и так до бесконечности. Палевная телепортация скрыта туманом. |
 
|
|
Текстовая версия | Сейчас: 16.06.2024, 00:59 |