Закрома Родины |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Закрома Родины |
17.09.2014, 16:27
Сообщение
#1381
|
|
И никаких няш-мяш! Репутация: 5029 Группа: Участник Сообщений: 28157 Регистрация: 04.02.2003 |
Сборка движка X-Ray 1.0007 RC1 Сборка движка ЗП от Shoker 0) Устанавливаем Visual Studio 2008 SP1 (Proffesional или Team, я собирал в первой), сервис пак из архива engine.vc2008.fixed.rar подходит только к английской версии студии, для русской нужно будет скачать отдельно. ______________________________________________ 1) Создаём на диске папку, в ней ещё одну папку. 2) В эту папку помещаем только папку engine.vc2008 из архива "engine.vc2008.fixed - фикшенный мною проект vs2008", папку SDK от туда не трогаем. 3) Папку SDK берём из архива "stasvn\sources\engine.vc2005-2008(~1.6.02 бенчмарк) - март 2010", из под-папки sources. Помещаем её в одну папку к engine.vc2008 4) Вот теперь поверх неё докладываем папку SDK из архива engine.vc2008.fixed.rar, соглашаемся на замену всех файлов 5) Качаем с сайта майкрософт два DirectX SDK - 2009 March и 2010 June. (Вес каждой около 500 мб), можно использовать только версию 2009, но тогда не сможете собрать xrRender_R4. (LINK : fatal error LNK1181: cannot open input file 'd3d11.lib'), а если будете использовать только 2010 - игра с R4 не запустится. После установки двух DX SDK убедитесь что они прописали свои пути в студию, файлы 2010-го СДК должны быть после 2009-го, как показано на рисунке: Аналогично для разделов Executable files и Include files. Если возникнут вопросы, ищите информацию в гугле по словам "подключение directx sdk visual studio 2008" При неправильных версиях СДК (или его не-подключении) в логе будет ругань на отсутствие файлов типа d3dXX.lib\.h) Перемещать папки из уже установленного DirectX SDK никуда не нужно. Достаточно прописать к ним пути глобально для студии (или для каждого проекта вручную) Комментарий от loxotron: достаточно скопировать и переименовать d3d11_beta.lib в d3d11.lib в папке с директовским сдк, а еще лучше скачать и поставить DX SDK August 2009 и не париться с неподходящими версиями. 6) На всякий случаи можно установить ещё SDK\OpenALwEAX.exe, но не уверен что он критически необходим. 7) Запускаем проект через ..\CoP\Project\engine.vc2008\engine.sln. Когда он загрузится, вверху студии режим сборки с Debug_Dedicated (или любой другой) меняем на Release. Далее слева\справа будет список папок с файлами движка, нам нужна, в первую очередь, папка 3rd_party - жмём на неё правой кнопкой мыши и выбираем Build\Построить. Если всё будет правильно, то в конце лог внизу напишет об 11 успешных проектах (или число будет меньше, если некоторые проекты уже были собраны до этого, лог об этом тоже сообщит "пропущены\up to date") Главное чтобы Ошибок\Fatal везде было 0 У меня собрались полностью все проекты без ошибок. (warning за полноценные ошибки не считаются) 8) По аналогии, сверху вниз, можно собрать другие Dll-ки, папки editor\dedicated\utils\plugins собирать не обязательно - к движку они не относятся. Дольше всего будет собираться xrGame.dll. Остальные достаточно быстро. Собирать все Dll-ки к слову не обязательно. Можно лишь нужные. Когда они будут готовы - создать чистую папку bin в папке с игрой. Закинуть туда все созданные dll файлы (можно вместе с .pdb). При необходимости, можно докинуть отсутствующие файлы из оригинальной bin ЗП (2-ой патч), если игра будет их требовать. (Навроде wrap_oal.dll) Игру я запускал с оригинального Stalker-COP.exe Если всё верно, то в логе\консоли игры в первых строчках будет указан билд игры и дата построения. Сообщение отредактировал RayTwitty - 22.01.2016, 17:03 |
 
|
|
|
|
09.07.2014, 22:20
Сообщение
#1382
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Дабы не было срачей по поводу путей в проекте разрабы хрея давным давно использовали моунт папки и всем было хорошо и у всех она была под буквой Х и все пути(кроме директх) у всех одинаковые были и не было ни с чем проблем. Не проще ли было вкинуть директх в проект и в корне сделать батничек на моунт папки?
|
 
|
|
09.07.2014, 22:39
Сообщение
#1383
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Так уже...
Собственно вот правки которые я отправлял в основную ветку фиксы,которые уже были сделаны +Там еще человек(судя по аватарке,с нашего форума) фиксил(в том числе и мои ляпы) Собственно это и даст возможность собирать под новыми студями,с новым DXSDK Посему,я повторюсь,уже давно все сделано(адаптация под новые студии). Цитата ... обычный холивар на предмет SVN vs Git vs Merurial, все понятно Честно говоря,предпочитаю первые 2 системы. Но тут речь идет просто о многочисленном дублировании одного и того же кода. upd:Посмотрел репо: Оказывается nick9 вернул обратно диск Х Сообщение отредактировал Tron - 09.07.2014, 22:40 |
 
|
|
09.07.2014, 22:48
Сообщение
#1384
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
"многочисленное дублирование одного и того же кода" изначально было в самих исходниках, я уже плакался по этому поводу. убил пару дней, нашел все дубли, переписал все ссылки на них, проект здорово похудел, а самое главное — далее не пришлось вносить
но никто более этим дублированием не озаботился, что уж говорить про "дублирование репозиториев", которое в случае распределенных CVS совершенно нормальное явление. |
 
|
|
09.07.2014, 22:57
Сообщение
#1385
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Цитата распределенных CVS совершенно нормальное явление. Именно поэтому я предлагаю децентрализованный bitbucket репо |
 
|
|
09.07.2014, 23:22
Сообщение
#1386
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
эмм... под "распределенными" я и имел в виду "децентрализованные", то есть отличные от SVN.
потом, при текущих методах работы в обоих указанных репозиториях для них прекрасно подошел бы и древний CVS. для "все в кучу" выбор системы не принципиален, разве что только учитывать ситуацию "недовольные разрабы прикроют репо". |
 
|
|
09.07.2014, 23:32
Сообщение
#1387
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
и кроме этого плюсов более не обнаруживается. по сути, на первоначальный вопрос (как за 20 секунд для всех проектов в VS2012 можно заменить все пути к инклудам и либам?) можно было ответить одной строчкой: Не буду спорить, это тоже решение. Но мне чаще всего не хочется трогать файлы проектов. Например, вывод бинарок у меня происходит не в x:\binaries, а в одну из папок с копией игры - сравнительно чистой версии или с установленным модом. Менять время от времени переменную окружения XrayOutput, мне все-таки кажется изящнее подход |
 
|
|
10.07.2014, 00:40
Сообщение
#1388
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
Менять время от времени переменную окружения XrayOutput для этого вам пришлось перелопатить все файлы проектов, которые "не хочется трогать". чтоб совсем не трогать вариантов масса: - запустить батник, копирующий полученные файлы в нужное место - X:/binaries сделать симлинком на нужный каталог и не трогать окружение - так как игре совершенно пофиг где она лежит, достаточно изменить путь к $app_data_root$ в fsgame.ltx, чтобы указать каталог хоть с чистой версией, хоть с испорченной модами p.s. вот последнее по какой-то неведомой причине было неизвестно разработчикам Lost Alpha, которые впулили требование админских привилегий для запуска (!!!) игры. |
 
|
|
10.07.2014, 01:19
Сообщение
#1389
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
чтоб совсем не трогать вариантов масса: Не работают они в моем случае, или потребуют лишние секунды времени. Т.к. в разных папках bin находятся разные файлы конфигурации и сборки проекта Lua-перехватчика. А мне очень нравиться, что нажал в VS кнопочку "Start debugging", и все поехало без всяких копирований. Так или иначе с выставлением переменной окружения телодвижений получается пока минимум. С админскими правами сурово, может они драйвер какой запускают или диск читают напрямую? ) |
 
|
|
10.07.2014, 02:34
Сообщение
#1390
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
о каких секундах идет речь, если пересборка проекта после "выставления переменной окружения" (изменение выходного каталога) занимает десятки минут?
админские права нужны чтобы писать в Program Files, ну никак мод не будет без этого работать. это вместо использования %LOCALAPPDATA% в конфиге. |
 
|
|
10.07.2014, 14:55
Сообщение
#1391
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
1. о каких секундах идет речь, если пересборка проекта после "выставления переменной окружения" (изменение выходного каталога) занимает десятки минут? админские права нужны чтобы писать в Program Files, ну никак мод не будет без этого работать. это вместо использования %LOCALAPPDATA% в конфиге. 1. Так переменную я выставлю один раз в неделю допустим. А потом неполных пересборок будет десятки и сотни, часть из которых на моей системе довольно быстро завершаются. Зачем после этого ещё и копировать каждый раз файлы? Студия знает что надо по команде "Start Debugging" запускать цель xr_3da.exe из папки $XrayOutput, равно как и то - куда эту цель компилировать. Мне ничего другого на момент реализации просто и в голову не пришло Был вариант с переименованием папки с игрой, но я обеспокоился что так запутаюсь попросту. 2. Такие вещи реализуются инсталлятором проще - например Inno Setup может выставить разрешения для папки нужные, чтобы любой в неё мог писать. Хотя в NLC6 вродь как предлагается по умолчанию ставить в C:\Games\ или подобный каталог, давно уже инсталлер не запускал. |
 
|
|
10.07.2014, 15:11
Сообщение
#1392
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
1) "надо, так надо, хочешь убить — значит есть за что" (С)
2) такие вещи реализуются путем штатного использования пользовательских каталогов, априори доступных для записи, а не запуском от админа. это клиенту Steam-а простительно в случае установки в Program Files писать туда вообще все. и то только потому, что он не меняет никакие дефолтные права, а держит запущенным мелкий сервис с повышенными привилегиями, он то и выполняет все файловые операции. |
 
|
|
10.07.2014, 17:19
Сообщение
#1393
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
Так уже... Собственно вот правки которые я отправлял в основную ветку фиксы,которые уже были сделаны ... Никак не пойму зачем папка depr нужна? При сборке в логе выводилось что не может найти некоторые файлы из папки depr, но если посмотреть на имя файла то один в один что лежат в папке includes. Или я что-то упустил и не прав? Сообщение отредактировал X_Starter_X - 10.07.2014, 17:19 -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 17:38
Сообщение
#1394
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
У сорцов зависимость-directPlay
Он начиная с 2008 года не входит в поставку DXSDK |
 
|
|
10.07.2014, 17:46
Сообщение
#1395
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
Tron, файлы в includes и в depr разные?
-------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 18:47
Сообщение
#1396
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
Тем временем уже 81 ревизия. Добавил управление текстурами в Lua, как это возможно с участием моего перехватчика для 1.0006.
Кто-то помнится мечтал делать асфальт более темным, если дождик идет, так теперь это просто: Код local tex = texture_find("detail\\detail_grnd_asphalt") if tex then texture_unload(tex) texture_set_name(tex, "detail\\detail_grnd_asphalt_dark") texture_load(tex) end Единственное, такие глобальные текстуры надо возвращать в адекватное состояние при загрузке сейва. На тот случай если движок не догадается сам выгрузить между перезагрузкой уровня. Исходники очень многое открывают в плане таких мелких хаков: надеюсь скоро можно будет рисовать на текстурах и смешивать их, а так-же передавать параметры настроек в шейдеры. |
 
|
|
10.07.2014, 19:03
Сообщение
#1397
|
|
Почти Игроман Репутация: 127 Группа: Участник Сообщений: 643 Награды: 3 Регистрация: 29.09.2012 |
alpet, можешь сделать команду для перезагрузки текстур прямо в игре?
|
 
|
|
10.07.2014, 19:05
Сообщение
#1398
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
alpet, можешь сделать команду для перезагрузки текстур прямо в игре? А что я до этого сделал? Этому трюку уж Сообщение отредактировал alpet - 10.07.2014, 19:06 |
 
|
|
10.07.2014, 19:07
Сообщение
#1399
|
|
Почти Игроман Репутация: 127 Группа: Участник Сообщений: 643 Награды: 3 Регистрация: 29.09.2012 |
alpet, более темный асфальт?
Я не совсем понял, как именно можно управлять ими. Подскажи, если не трудно P.S: Я про перезагрузку всех текстур, как в сдк Сообщение отредактировал krovosnork - 10.07.2014, 19:09 |
 
|
|
10.07.2014, 19:11
Сообщение
#1400
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
|
 
|
|
10.07.2014, 19:15
Сообщение
#1401
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
alpet, более темный асфальт? Я не совсем понял, как именно можно управлять ими. Подскажи, если не трудно Ну да, я помню что кто-то этого хотел из модмейкеров. Это ведь пример. В нынешнем NLC6 текстуры активно подменяются для динамических масок (худа), и изменения инвентаря, что более жизненно. В сущности управление текстурами пока сводится лишь к подмене данных в объекте CTexture, т.е. перезагрузке из другого файла. Для этого требуется сначала найти объект текстуры в списке уже созданных (он живет в CResourceManager), выгрузить её старые данные, изменить имя файла и загрузить новые данные. Для понятной экономии памяти каждый объект текстуры может использоваться кучей визуалов или чего либо ещё. Пока я не нашел прямого пути, как отдельному визуалу можно сменить объект текстуры, поэтому получается менять текстуры для всех визуалов разом. Так ведь резко будет меняться - смысла нет. Это уже забота текстурщиков, наделать десяток градаций яркости асфальта По крайней мере пока не получиться напрямую surface редактировать, затемняя или смешивая с какой-либо маской. Сообщение отредактировал alpet - 10.07.2014, 19:17 |
 
|
|
Текстовая версия | Сейчас: 02.05.2024, 00:06 |