Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
Fizzed
Цитата(SkyLoader @ 22.09.2017, 19:37) *
Fizzed, you can try to set hud position and hud direction to 0,0,0 and check it again. Many huds from LA have 'zero' position.



Thank you. It's works)
MiXxXeR
Всем доброго времени!
В общем, задался целью собрать движок из оригинальных исходников (согласно статье "Сборка движка X-Ray", что под спойлером), вроде всё сделал правильно, по статье. Но при сборке получил множество разных ошибок, которые в теме никак не описаны.

Беда в том, что опыта в сборке больши проектов практически нет, а знания с++ - весьма поверхностные. По-сути, цели последующего редактирования движка нет, нужно просто кое-что подправить и собрать biggrin.gif

Так вот, теперь к сути вопроса: реально ли вообще собрать двиг на VS2015, без реверсивно повторяющихся танцов с бубнами? Качать другую студию возможности нет... Посидеть-покропеть пару часиков над настройкой я конечно смогу, но если там весь проект надо будет перелопачивать, то как-то не очень хочется)

В общем, возможно вопрос глупый, но буду очень благодарен, если кто-то опишет процесс сборки на 15-й студии. Ну или напишет, почему всё же лучше собрать на той же 10-й biggrin.gif

Всем заранее спасибо, всем бобра! :3
ForserX
Цитата(MiXxXeR @ 23.09.2017, 21:52) *
Ну или напишет, почему всё же лучше собрать на той же 10-й

Кто тебе это сказал? Мы вообще на последней версии работаем.
Цитата(MiXxXeR @ 23.09.2017, 21:52) *
реально ли вообще собрать двиг на VS2015, без реверсивно повторяющихся танцов с бубнами

Нет. 14 стандарт сильно изменился. Придётся помучаться.

Кидай ошибки, а там подскажем.
Zagolski
У меня при переходе с 2013 на 2015 одна ошибка неисправленная осталась, что-то не разберусь как поправить. Пока закомментил, временно.
aka_sektor
Существуют вообще готовые debug-версии движов ТЧ, ЧН, ЗП? Чтобы например, логику отслеживать.
ForserX
Цитата(aka_sektor @ 24.09.2017, 21:10) *
ТЧ, ЧН, ЗП?

Есть, но у тебя нервов не хватит с ними работать. Они очееень медленные.
aka_sektor
Цитата(Forser @ 24.09.2017, 21:33) *
Они очееень медленные

Т.е.? blink.gif
Xottab_DUTY
aka_sektor, у меня на Скадовске 3 fps с debug сборкой.. ТРИ КАДРА В СЕКУНДУ, КАРЛ! ohmy.gif
ForserX
Цитата(Xottab_DUTY @ 24.09.2017, 21:58) *
aka_sektor, у меня на Скадовске 3 fps с debug сборкой.. ТРИ КАДРА В СЕКУНДУ, КАРЛ!

fxr на новом миксе (Фулл релиз, кроме xrGame(полный дебаг)) скорость выросла с 1 FPS до ~30.
aka_sektor
Forser, где скачать? И эт для чего? ЗП?
ForserX
aka_sektor, наш микс или дебаг оригинала?
aka_sektor
Forser, естественно тот что:
Цитата(Forser @ 24.09.2017, 22:01) *
с 1 FPS до ~30.

ForserX
aka_sektor, билдить надо...
NanoBot-AMK
Не когда не понимал смысл отладки всего и сразу, лучше всего, отлаживать что нибудь по отдельности. Соответственно выводить только то, что отлаживаешь, просто убираешь дефайн debug там где надо и отлаживаешь, я ещё через конфиг делал возможность отладки, так можно включать только один конкретный объект, например какую данный НПС играет анимацию, ах да, я же специальные скриптовые методы делал, так ещё лучше, отлаживаешь с помощью скрипта, и выводить конкретную информацию прямо на экран, по верх конкретного объекта, например имя схемы и так далее.
Winsor
ТЧ 1.0007
Уважаемые знающие, есть два вопроса:
1) каким образом узнать для level его максимальный level_vertex - только из СДК?
2) рестрикторы... в движке есть CSpaceRestrictionComposition.m_restrictions. В определенный момент времени с этой структурой что-то происходит и в ней начинают появляться невалидные CBaseRestrictionPtr (вернее, на первый взгляд он валидный, т.е. !=nullptr, но вот содержимое этого указателя, например m_spheres, может быть абсолютно фонарным, размер там в несколько миллионов, координаты запредельные) и при проверках на подобие CSpaceRestrictor::inside движок обваливается, виснут биндеры ботов и так далее. Никто не сталкивался с таким? Кто именно может "портить" указателе в векторе m_restrictions? в движке alpet-а я видел упоминание о подобном баге (он пишет о CSpaceRestrictionComposition::merge), но применив его решение у себя - баг этот я убрать не смог. Каким образом можно проверить такие указатели на валидность?
AndreySol
Цитата(Winsor @ 29.09.2017, 16:28) *
Каким образом можно проверить такие указатели на валидность?

Может пройтись по коду, и посмотреть, где и как происходит заполнение этих указателей ?
ForserX
Цитата(RayTwitty @ 22.01.2016, 17:18) *
() mrmnwar

Переходит в архивный.
v2v3v4
Может знает кто что-нибудь о мультиплеерных режимах TDZ и DZ, и что за файл валяется в папке mp под названием: "laststanding_game.ltx" с годов 2005х
serg101188
Кто знает где пишутся классы худ моделей.
Проста перекидываю дэтекторы из зп в тч
Xottab_DUTY
v2v3v4, как будто бы какой-то Team Day-Z и Day-Z.. А ещё Last Standing... Ну точно на зомбей похоже..
Тогда, конечно, мода/игры DayZ не было.. Но всё-таки..
macron
Цитата(v2v3v4 @ 30.09.2017, 05:43) *
что за файл валяется в папке mp под названием: "laststanding_game.ltx" с годов 2005х

Мультиплеерные скриптовые режимы. Вроде были разработаны еще до появления движкового выделенного сервера, ибо работают через скрипты. Соответственно, на выделенных серверах на финалке всё равно не заработали бы. По этим и/или другим причинам до релиза не дожили, как и автомобили в mp. Конкретно "last standing" представляет deathmatch на выбивание игроков без респавна, чтобы остался только один. Тов. Призрак давно что-то ковырял в этих направлениях, потом забил.
RedMagic
Цитата(v2v3v4 @ 30.09.2017, 05:43) *
"laststanding_game.ltx" с годов 2005х

Судя по названию - ранняя версия популярного ныне режима "Battle Royale" laugh.gif
Fizzed
Hello. How i can do full port of CoP weather system into ShoC engine?

Здравствуйте. Как я могу получить полный порт метеорологической системы CoP в двигатель ShoC?



Zagolski
Fizzed
Только сделать самому, полагаю. В гуляющих по сети исходниках я нигде не видел, чтоб это было реализовано. Сделать можно, но посидеть придется. На первый взгляд может показаться, что там все просто, но на деле это не так.
aka_sektor
Интересно тут Никита Буянов рассказывает: https://youtu.be/5vYC7U8xvsQ?t=618

У них на Unity тоже проблемы с прицелами. Ха! А на старом X-Ray как-то добились же...
Zagolski
Кстати, насчет погоды ЗП портированной в ТЧ, раз уж всплыла тема. Из-за чего может происходить нечто такое невероятное, когда погода сменяется резко в .00 часов, т.е. с солнечной в мгновенье ока может смениться на пасмурную, может кто подскажет? Что-то со временем какой-то косяк, как я думаю...

aka_sektor, судя по видео, этот Никита Буянов весьма недалекий человек. То ли он говорит то, что не понимает, то ли не понимает, что говорит... Оказывается у него два мира друг на друга накладываются. Таким людям на самом деле не место в геймдизайне, тем более в роли директора. Не хочу никого обидеть, это лишь мое мнение.
Вообще 3д прицелы существуют буквально в паре игр во всем мире, но так или иначе это суперская вещь. Надо отдать должное Sin!, который это реализовал в Сталкере изначально (еще в далеком том году) и Shoker, который перенес это в исходники.
v2v3v4
На мой взгляд самый крутейший вариант реализации оптики в игре Cryostasis которую выпустили в далёком 2008 году.
https://youtu.be/XaWkasmAxrc?t=249
Winsor
Цитата(AndreySol @ 29.09.2017, 16:59) *
Цитата(Winsor @ 29.09.2017, 16:28) *
Каким образом можно проверить такие указатели на валидность?

Может пройтись по коду, и посмотреть, где и как происходит заполнение этих указателей ?

Заполняются они нормально, а вот по ходу игры - уже бьется память в этой структуре. О_О
ForserX
Winsor, а ты под дебаггером посмотри.
abramcumner
Цитата(Zagolski @ 02.10.2017, 10:29) *
Кстати, насчет погоды ЗП портированной в ТЧ, раз уж всплыла тема. Из-за чего может происходить нечто такое невероятное, когда погода сменяется резко в .00 часов, т.е. с солнечной в мгновенье ока может смениться на пасмурную, может кто подскажет? Что-то со временем какой-то косяк, как я думаю...

Может просто из скриптов set_weather(..., true) вызывается? Залогируй CEnvironment::SetWeather, что в нее передается?
SkyLoader
Цитата(Zagolski @ 02.10.2017, 10:29) *
судя по видео, этот Никита Буянов весьма недалекий человек. То ли он говорит то, что не понимает, то ли не понимает, что говорит... Оказывается у него два мира друг на друга накладываются. Таким людям на самом деле не место в геймдизайне, тем более в роли директора. Не хочу никого обидеть, это лишь мое мнение.

Он сказал, что две камеры рисуют мир. Что не так? Действительно двойная нагрузка, так как сцена рендерится два раза: один рендер сцены в прицеле, другой вне прицела.

Цитата(v2v3v4 @ 02.10.2017, 14:15) *
На мой взгляд самый крутейший вариант реализации оптики в игре Cryostasis которую выпустили в далёком 2008 году.

Чем крут этот вариант? Вижу только, что рендер мира в прицел происходит вне зависимости от прицеливания. Это обязательно скажется на производительности, если реализовано в более менее современных играх.
RedMagic
Цитата(aka_sektor @ 02.10.2017, 09:45) *
Интересно тут Никита Буянов рассказывает: https://youtu.be/5vYC7U8xvsQ?t=618

У них на Unity тоже проблемы с прицелами. Ха! А на старом X-Ray как-то добились же...

Я не знаком с пайплайном рендера юнити, но экономнее просто обработать уже отрендеренный кадр сцены. Не?

Рендер второй камерой - это быстрое (пару кликов в редакторе) и правильное (с точки зрения количества света и изображения в окуляре, особенно при большом увеличении прицела), но затратное решение. Но и его можно оптимизировать - рендерить изображение в меньшем разрешении (все равно потом накладываются размытие, грязь, блеск и т.д.), с меньшим радиусом (отсечь все лишнее) и тому подобное.

По поводу лага, ну так можно выяснить из-за чего конкретно он возникает. При инициализации второй камеры? Значит её нужно запустить в самом начале, пусть рендерит 1x1 пиксель, а потом плавно переводить рендер в нормальное русло при запросе.

Хотя, конечно, именно из-за таких вещей все крупные компании и пишут свои движки на плюсах под конкретную задачу и платформу (используя нативные api), а не используют Unity.

---

Сейчас, возможно я скажу глупую вещь которую уже тысячу раз обсуждали, но почему бы просто не наложить на линзу подходящий для линзы шейдер искривления (по типу шейдера воды)? Внешний мир будет реалистично отражаться и преломляться, внутренний мир (внутри окуляра) тоже будет реалистично искажаться, и во время прицеливания никаких дополнительных действий делать не придется (просто проигрываем анимацию приближения прицела к камере и уменьшаем fov), ведь линза сама исказит картинку с камеры.
Я вижу один недостаток в таком методе - при большом увеличении прицела действительно может потребоваться вторая камера (чтобы сохранить четкость изображения). Либо придется просто увеличивать fov основной камеры, скрыв его увеличение полноэкранным прицелом который скроет весь вид мира с основной камеры.
RayTwitty
Цитата(STALKER2011x @ 02.10.2017, 18:09) *
но экономнее просто обработать уже отрендеренный кадр сцены. Не?

Нет, потому что итоговый кадр будет включать в себя худ и постпроцессы.
Winsor
Уважаемые знающие, пытаюсь добавить в первый рендер шейдер lightplanes. То что получается - в скриншотах, это кто виноват? А именно - выдвинутая вперед текстура, и почему то не круглая а многоугольная. Такой же шейдер на втором рендере и круглая текстура, и на своем месте находиться.
ТЧ 1.0007
Шейдер
текст
Код
function normal        (shader, t_base, t_second, t_detail)
  shader:begin      ("model_def_lplanes","base_lplanes")
      : fog            (false)
      : zb            (true,false)
      : blend       (true,blend.srcalpha,blend.one)
      : aref        (true,0)
      : sorting     (2, true)
  shader:sampler      ("s_base")      :texture  (t_base)
end


Спасибо!
Zagolski
Цитата(abramcumner @ 02.10.2017, 15:36) *
Может просто из скриптов set_weather(..., true) вызывается? Залогируй CEnvironment::SetWeather, что в нее передается?

Копался, копался, но проблему так и не решил. Нет, из скриптов все корректно передается, вызовы идут только из level_weather.script и в нужное время. Например, если начинать НИ в 12.50, то получим два вызова при старте и начале НИ:
Starting Cycle: [default] [deferred]
Starting Cycle: default_clear [forced]
а также один вызов в 13.00:
Starting Cycle: default_thunder [deferred]
В оригинале в 13.00 погода на грозовую не сменяется, по идее она должна будет плавно это сделать к 14.00. А у меня как раз резко в 13.00 сменяется с солнечной на грозу.

Обнаружил, что косяк происходит в функции void CEnvironment::SelectEnvs(float gt). На оригинале она вызывается один раз в 13.00 (т.е. только при первом .00) с таким логом:
Weather: 'default_clear' Desc: '14:00:00' Time: 50400.00/47451.85

У меня же она вызывается еще при начале НИ вот с таким:
Weather: 'default_clear' Desc: '13:00:00' Time: 46800.00/46264.78

Вообще эта ф-ция всегда крутится, точнее сказать, что bSelect становится true вызывая при этом SelectEnv(CurrentWeather,Current[1],gt); Какой-то косяк со временем Current[0]->exec_time, Current[1]->exec_time и gt (fGameTime)...
Там получается, что как бы на час раньше устанавливается смена погоды для какого-то времени, а поскольку это время уже наступило, то и сменяется мгновенно.
Diesel
Zagolski, такая беда с резкой сменой может быть из-за чего угодно ( скриптовые баги) - я думаю где то апдейт крякнул.
TIGER_VLAD
Цитата(Zagolski @ 02.10.2017, 10:29) *
Из-за чего может происходить нечто такое невероятное, когда погода сменяется резко в .00 часов, т.е. с солнечной в мгновенье ока может смениться на пасмурную, может кто подскажет? Что-то со временем какой-то косяк, как я думаю...

Такая же проблема была в Lost Alpha DC, в следующих патчах вроде бы как исправили. Напиши tatarinrafa, он должен быть в курсе дела.
Zagolski
Напишу в личку, спасибо.

Вынес все погоду в абстрактные классы (dxEnvironmentRender), т.е. погодный код в движке сейчас стал полностью соответствовать коду ЗП, как в ехе, так и в xrGame.dll (GamePersistent). В т.ч. используется скрипт level_weathers.script из ЗП и все погода из ЗП как есть. Все равно косяк с мгновенной сменой остался... Прямо какая-то фантастика.

Правда, еще заметил, что на оригинале ф-ция SelectEnvs в движке вызывается много раз, при начале НИ около 500 раз до момента появления ГГ на экране. У меня же только 5 раз. Возможно, какой-то косяк в device и во фреймах, буду там копать. У меня же там всякие альпетовские эко-рендеры пркручены и подобное.

Хотя у меня есть другая версия движка с этой же скриптовой базой, где я все классы в абстрактные вынес. И там этого косяка с резкой сменой погоды нет. Так что скрипты тут вряд ли причем. Да и висит она в скриптах на биндере да и только, там стандартный абдейт происходит.
aka_sektor
Может кто пояснить за теги в исходниках:
Код
#ifndef MASTER_GOLD
...
#endif

#ifndef DEBUG_MEMORY_MANAGER
...
#endif

#ifndef BATTLEYE
...
#endif

?
v2v3v4
Цитата(aka_sektor @ 07.10.2017, 16:44) *
Может кто пояснить за теги в исходниках:
Код
#ifndef MASTER_GOLD
...
#endif

#ifndef DEBUG_MEMORY_MANAGER
...
#endif

#ifndef BATTLEYE
...
#endif

1 - тег который скрывает различные консольные команды, вывод информации о игровых событиях в консоль, он используется в debug и mixed конфигурациях.
2 - тег для debug конфигурации движка
3 - тег который используют библиотеки BEClient.dll и BEServer.dll, простыми словами связь x-ray Engine с забугорными античит приблудами. это есть в чн движке.
v2v3v4
Товарищи, нужна помощь, не могу найти условие рендера модели оружия для 3д модели актёра по типу: //если актер в режиме HUD то саму модель оружия для вида от 3го лица рисовать не надо.
Cam_1:

Cam_2, Cam_3:

Diesel
v2v3v4, даже если ты найдёшь условие, то играть с тормознутым оружием не камельфо. Ствол отстаёт от анимации еще как.

TIGER_VLAD
Раз уже о камере заговорили, интересует для чего оставили cam_4 ? Я так понимаю это был свободный полет?
Diesel
v2v3v4, https://yadi.sk/d/4qlyzXe83NZ9ah супер мод ЗП на скорую руку.
TIGER_VLAD, камеры всего две однако у ГГ. Остальное разновидности. Хотя я мало что еще понял в них. Понял одно, что кроме 1го вида остальное нифига толком не работает. Свободный полёт это уже не камера ГГ.
ForserX
FXR переехал: https://github.com/ForserX/xray-oxygen
v2v3v4
Цитата(TIGER_VLAD @ 07.10.2017, 23:34) *
Раз уже о камере заговорили, интересует для чего оставили cam_4 ? Я так понимаю это был свободный полет?

Камера переключения на следующее существо на карте, некое вселение в другое тело. Работает в Debug\Mixed конфигурациях.

Цитата(andreyholkin @ 07.10.2017, 23:54) *
v2v3v4, https://yadi.sk/d/4qlyzXe83NZ9ah супер мод ЗП на скорую руку.
TIGER_VLAD, камеры всего две однако у ГГ. Остальное разновидности. Хотя я мало что еще понял в них. Понял одно, что кроме 1го вида остальное нифига толком не работает. Свободный полёт это уже не камера ГГ.

Что-то твоя сборка ели ели запускается... Ни зум ни прицелы не работают
Я делал такую камеру, и зум работал, и коллизия у камеры была это не типичный "-psp" в общем был, но одна проблема для такой камеры я не нашел условие входа в оптический прицел.
v2v3v4
Цитата(andreyholkin @ 07.10.2017, 23:23) *
v2v3v4, даже если ты найдёшь условие, то играть с тормознутым оружием не камельфо. Ствол отстаёт от анимации еще как.

Да не очень уж и отстает, тут больше проблема с фонариком, когда костюм переоденешь, он перестает инверсную кинематику слушать, и тупо висит в воздухе...
Пример:
macron
Цитата(nflaming @ 07.10.2017, 22:48) *

На ap тему открыли, x64-движок для ЗП скачать можно.
ForserX
macron, я и открыл. smile.gif
Lego
Цитата(virus_ua @ 04.09.2017, 06:05) *
Xottab_DUTY, та мне кажется перебор такое сувать в х-рей laugh.gif , хотя в процессе googling наткнулся еще на это с "онлайн ГУИ" но оно не бесплатное .
на @mail слать логи о вылетах в 2к17 это перебор. в Баг трепе есть под веб скрипт, но это кошмар.



Вообще в багтреп release 3 папки под Server (что предоставляет автор) - BugTrapServer[exe], BugTrapWebServer( ^), JBugTrapServer (?).
exe na серваке не запустишь, а винду как server юзать не практично, меня вполне устраивает деф формат пакованого лога [save + dump + log]. Крч, буду чето думать. А выкинуть - всегда проще простого.

Forser, не защищаю багтреп но воспроизводить каждый раз баг или вылет это юзелес.


Я писал минимальный сервер bugtrap на PHP, использую в своем проекте - вполне себе удобно.
Насколько помню, там просто POST-запрос нужно обработать да и всё - от клиента приходит один цельный ZIP-файл.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.