Перейти к контенту

Редактирование движка X-Ray


Рекомендуемые сообщения

  13.02.2021 в 17:12, XinnogeN XinnogeN сказал:

your video card doesn't meet game requirements try to lower game settings.

Классический тролинг от разработчиков. Смотрите файл лога. Там будут шейдры, на которые агрится игра. Думаю следует пахать от них.

  • Полезно 2
  Конфигурация ПК (Показать)

 

Ссылка на комментарий
  13.02.2021 в 17:43, _ХоЗаР_ сказал:

Классический тролинг от разработчиков. Смотрите файл лога. Там будут шейдры, на которые агрится игра. Думаю следует пахать от них.

 

  Лог (Показать)

 

Ссылка на комментарий

Попробуй в r3.cpp и r4.cpp заменить строчки r3\\objects\\ на r3\\new_objects\\

Может быть поможет.

  Конфигурация ПК (Показать)

 

Ссылка на комментарий
  13.02.2021 в 18:12, _ХоЗаР_ сказал:

Попробуй в r3.cpp и r4.cpp заменить строчки r3\\objects\\ на r3\\new_objects\\

Может быть поможет.

Ok! Cейчас сделаю.

  Лог (Показать)

 

Ссылка на комментарий
  13.02.2021 в 17:12, XinnogeN XinnogeN сказал:

У кого была такая проблема? Собрал я движок 1.6.02 (T-6638) в Visual Studio-2019 с DirectX SDK за июнь 2010-го. Но при запуске на DX11 вылетает окошко с надписью:
your video card doesn't meet game requirements try to lower game settings. Но если я подключаю 2 директа за август 2009 и за июнь 2010 то всё нормально запускается и работает. В чём может быть эта проблемма? Подскажите пожалуйста как это исправить, если собирать только на 2010-ом директе. Заранее благодарен!

Выше указанная проблема решена: в xrRenderPC_R4\stdafx.cpp удалить строку:
EXTERN_C const GUID DECLSPEC_SELECTANY IID_ID3D11ShaderReflection = { 0x17f27486, 0xa342, 0x4d10, {0x88, 0x42, 0xab, 0x08, 0x74, 0xe7, 0xf6, 0x70 } };


Коммент от abramcumner: "Нельзя хардкодить GUID`ы DX SDK, они в разных выпусках СДК разные".

 

А, так же, лучше использовать из DXSDK - Июнь 2010 только - d3dx-ы .h и d3dx-ы .lib всё остальное есть в Windows SDK и компилятор сам подхватит то, что ему нужно.

Изменено пользователем XinnogeN XinnogeN
Ссылка на комментарий

Как можно вбить в движок новые функции для скриптов? Например, я хочу изменять параметры артов и вес всех предметов. Но таких функций в ориг движке просто не существует, зато они есть в модифицированных движках. Подскажите, пожалуйста, очень нужно научиться. Даже еслт скажете какие файлы нужно редактировать - уже буду очень благодарен!

Ссылка на комментарий
  15.02.2021 в 14:01, ARTLantist сказал:

Например, я хочу изменять параметры артов и вес всех предметов

Нужно выводить геттеры и сеттеры из движка, просто так это сделать не получится, я пытался делать для артов, на подобии как в ДА, но они что-то глючат, так до сих пор и не доделал.

  • Сомнительно 1
  железо (Показать)
Ссылка на комментарий

@Romann вот я тоже хочу сделать систему, как в DA, надеюсь тут найдутся знатоки, которые помогут. Жаль, что нельзя расковырять движок DA и посмотреть, как сделано у них...

P.S. если когда-то доделаешь, можно попросить кинуть мне? Я погляжу, поучусь, как это делается.

Изменено пользователем ARTLantist
Ссылка на комментарий
  15.02.2021 в 14:10, Romann сказал:

Нужно выводить геттеры и сеттеры из движка, просто так это сделать не получится

Занятно... а на базе OGSR, достаточно легко получается. Открыл какой-нибудь script_game_object_scriptX.cpp, добавил свои функции, собрал - и дело в шляпе.

Вот не знаю. Такая простота - заслуга автора(ов) OGSR? Или кто-то постом выше пытается делать из двиглоправства "некую темную магию". Якобы недоступную для "простых смертных".

Чуть более года назад, я занялся ковырянием движка впервые в жизни. До этого, я никогда не писал ни единой строчки кода на C++. Всё там просто, если захотеть что-то сделать.

  15.02.2021 в 14:01, ARTLantist сказал:

Как можно вбить в движок новые функции для...

Вообще не столь существенно, что вы хотите делать с движком, и для чего.

В первую очередь, движок это огромная куча кода на C++. :) Так что если хотите его править - стоит изучить C++, обращаясь к тем ресурсам которые этому посвящены. Это не амк-форум, уж точно.

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

В третьих. Применительно к параметрам артов, и весу предметов. Более существенным препятствием, (для того что вы хотите), является то, что параметры эти в оригинале статичны. Т.е. игровой объект просто читает их из конфига, и... всё. Если вы хотите изменять эти параметры через скрипт, вам придется заморачиваться этим при каждой загрузке игры. Лучше сделать эти параметры сохраняемыми. Как? В движке, опять же, множество уже готовых примеров...

Изменено пользователем Zander_driver
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Так если с двумя сдк работает, то в чем проблема? Кстати, ноут или комп, и конфиг пожалуйста

Изменено пользователем Марка демченков
безграмотный
Ссылка на комментарий
  15.02.2021 в 17:41, Zander_driver сказал:

В движке, опять же, множество уже готовых примеров...

А можно поконкретнее, где именно эти примеры находятся?

Ссылка на комментарий
  15.02.2021 в 18:15, ARTLantist сказал:

где именно эти примеры находятся?

Для клиентских игровых объектов:

xrGame/script_game_object.h

xrGame/script_game_object.cpp

xrGame/script_game_object_script[X].cpp , где вместо [X] - любое разное, всякое, по вкусу (Посмотрите что там есть)

Для OGSR-Engine, это вот эти файлы

y03OD14.png

Все выделенное, так или иначе имеет отношение, к скриптовым геттерам, сеттерам, параметрам, методам, клиентских игровых объектов.

Для серверных конечно файлы другие. Для более других сущностей - тоже другие... но как правило, все связанное со скриптами, имеет в названии слово script :) Так что находить их не сложно. В level_script.cpp, например, хранятся глобальные функции пространства level.

 

ЗЫ. Я, конечно, могу понять, чем это продиктовано. "Вот мы вытащим все и вся, в скрипты, а уж в скриптах... сделаем так, как нам хочется".

Но, господа двиглоправы. Хотелось бы спросить - А зачем вам это?

С++ код работает быстрее, и вообще-то, стабильнее. Чем Lua. Так что обмазывать движок геттерами и сеттерами это не очень здорово на самом деле. Вы просто добавляете в движок места, куда могут быть вставлены костыли. А затем в скриптах эти костыли делаете.

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

Эффективнее и правильнее, на мой взгляд. Если хотите прямо переделать какую-то игровую механику - делать ее в движке. Прямо на C++. И не нужны вам скрипты для этого.

Сложнее? Ну, да, надо программирование понимать. Но чтоб в движок лезть, оно в любом случае надо, так чего полумерами ограничиваться?

Изменено пользователем Zander_driver
  • Нравится 1
  • Не нравится 2
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
  15.02.2021 в 19:19, Zander_driver сказал:

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

Если оглядываться на криворуких кодеров - то лучше вообще ничего не делать. По Вашему получается, что если есть те, кто пьяным салится за руль и совершает всякое непотребство на дорогах - то надо прекратить производство и продажу авто, от греха подальше. Да и дороги то же ликвидировать... Странная идеология, из тех, что "лучше все запретить, как бы чего не вышло".

  • Нравится 1
  • Согласен 1
Ссылка на комментарий
  15.02.2021 в 17:41, Zander_driver сказал:

Открыл какой-нибудь script_game_object_scriptX.cpp, добавил свои функции, собрал - и дело в шляпе.

...

Всё там просто, если захотеть что-то сделать.

Прямо всё так просто и легко, то-то я смотрю тут толпятся проггеры способные объяснить, как это делается.. Для тебя оно может и понятно уже, что к чему, а для человека, который только начал вникать в эту "китайскую азбуку" - всё что ты написал - это просто набор слов. Тем более - а если человека не интересует программирование, может ему нужна лишь одна реализация конкретной механики, и важен сам результат, а не процесс - нужно сначала пойти отучится на программиста, перечитать тонну литературы по С++, и годик поковырять движок? Т.к. негде посмотреть реализацию - сюда люди и заходят, чтоб подсказали. Вот к примеру - в года 4-5 отроду я решил самостоятельно сварить себе пару яиц - но мне в голову не пришло, что в кастрюлю с яйцами нужно ещё и воду налить(это же вроде так просто догадаться) - неужели, чтоб я это смог самостоятельно сделать - мне нужно было в 5 лет сначала отучится на повара!?

https://youtu.be/qzaOGE2d7-U

Не буду тыкать пальцами, но есть пара проггеров, которые любят поумничать, что тут, что на геймру, расписывают и говорят, как всё просто и легко, проггеры то они и с головой и с руками - но вот от них и строчки кода не вытянешь, чтож если оно так легко и просто - почему так жалко поделиться этим простым кодом с подрастающим поколением мододелов...!? Не бери с них пример.

  15.02.2021 в 19:19, Zander_driver сказал:

А зачем вам это?

...

затем в скриптах эти костыли делаете.

...

Эффективнее и правильнее, на мой взгляд. Если хотите прямо переделать какую-то игровую механику - делать ее в движке.  Прямо на C++. 

Ну вот допустим такая задача: есть контейнер для артефактов - нужно чтоб он не просто блокировал все свойства(точнее там реализации разные у контейнеров, спавн и удаление арта и т.п.), блокировал только лишь радиацию, ну или другие отрицательные эффекты, и мог блокировать её частично, к примеру - бюджетный контейнер блокирует совсем немного радиации, а дорогой почти всю - и в этот контейнер можно поместить арт и повесить на пояс, радиация частично снята, а другие свойства артефакта вполне работают с пояса.
Это можно реализовать без скриптов, чисто на С++ в движке? - Покажи...:russian_ru:

  15.02.2021 в 14:31, ARTLantist сказал:

я тоже хочу сделать систему, как в DA, надеюсь тут найдутся знатоки, которые помогут

где именно эти примеры находятся?

@ARTLantist у меня в движке сделано так:

  Показать

Это то что по геттерам, по скриптам и конфигам писать не буду(ибо у меня переделано по другому, не доделано и глючит), можно прям из ДА и взять.

Вот ещё доделывал:

  Показать

А вот попытка, как выше говорил @Zander_driver , перенести некоторую часть из скриптов в движок:

  Показать

Но, тут не доделано, глючит в каком плане: контейнеры как бы работают, и гасят радиацию частично, как и задумано, но это если ты купишь контейнер и будешь его юзать со своими артами - а вот если найти контейнер с артом в тайнике, или снять с трупа - свойства арта уже не предсказуемы, хоть вытаскивай его из контейнера, хоть обратно, радиация вместо 540 может зашкалить в 54000, как кусок руды из 4 энергоблока, а другие свойства могут вовсе пропасть. Всё руки не доходят доделать. Так что пробуй сделать геттеры, а по скриптам тащи из ДА, посмотри ещё в АРЕА, там тоже что-то подобное было.

Изменено пользователем Romann
  • Полезно 2
  • Сомнительно 1
  железо (Показать)
Ссылка на комментарий

ХА. Ну что же, этого следовало ожидать. Отвечу.

  16.02.2021 в 03:38, AndreySol сказал:

По Вашему получается, что если есть те, кто пьяным салится за руль и совершает всякое непотребство на дорогах - то надо прекратить производство и продажу авто

Нет. По моему, получается, что не нужно встраивать в конструкцию авто, возможность отключить тормоза как орган управления.

Таковая возможность "с завода" (т.е. с GSC) и не была предусмотрена. Однако позже умельцы ее прикрутили.

  16.02.2021 в 03:52, Romann сказал:

Прямо всё так просто и легко

Да, просто и легко. Открыл файл, ввел свой код, собрал движок. Всё работает. Что я делаю не так?

Напомню еще раз: Я всего год назад (ноябрь 2019, если быть точным), впервые сел за движок, впервые увидел его код. Я в C++ чайник. Но почему-то геттеры-сеттеры когда стал добавлять, получилось с первого раза. Что я делаю не так?

  16.02.2021 в 03:52, Romann сказал:

Т.к. негде посмотреть реализацию

Алло гараж :) Я показал файл, где ее посмотреть, один из. И ты его процитировал.

И, пусть в таком случае, за меня скажет @ARTLantist - разве я отказал ему в помощи в личке? Разве оставил без ответа хоть один из вопросов?

  16.02.2021 в 03:52, Romann сказал:

есть пара проггеров, которые любят поумничать, ..., расписывают и говорят, как всё просто и легко, ... но вот от них и строчки кода не вытянешь

И еще раз, алло гараж :)

Здесь стол заказов? Или все же, тема взаимо-помощи, где люди друг другу помогают учиться и получать навыки.

Если человеку давать все готовое, и не оставлять перед ним никаких задач, которые ему самому предстоит выполнить. То, откуда у него у самого появятся навыки? Они на практике приобретаются. Потому я и предпочитаю, в ответах, давать наводящие подсказки, но не полный исчерпывающий ответ с готовым кодом. Для вопрошающего так полезнее, полагаю. Он возьмет посмотрит на мои подсказки, наводки. Подумает, как это применить и к чему это ведет. Потренируется на практике. В итоге у него будет и решение его задачи, и приобретенные навыки.

А не просто готовый кусок кода из "стола заказов", который работает, но которого он, вопрошающий, не понимает.

Ну и. В крайнем случае, когда я вижу что человек учиться не желает. Можно и готовый код дать, почему нет? Не так давно в соседнем скриптовании, был пример. Это из меня строчки кода не вытянешь? Это так называется?

 

  16.02.2021 в 03:52, Romann сказал:

Это можно реализовать без скриптов, чисто на С++ в движке? - Покажи...

Можно. Я же реализовал? У меня другой вопрос, а в чем вообще проблема это сделать?

Понимаю, сейчас опять начнется сопливый вой "А-а-а-а от него строчки кода не вытянешь". Хотя вообще-то здесь НЕ стол заказов, еще раз напоминаю.

Сделал на базе контейнера из OGSR (alpet), в моей реализации, 2 класса контейнеров - один пропускает половину радиации заключенных в него предметов, и только в негатив. Второй экранирует ее полностью. Расширить на все остальные свойства это так же можно, потребуется только в ApplyArtefactEffects в Actor.cpp учесть эффекты от контейнеров, а не только артов. Мне такое просто не было нужно. Загружать из конфига экранируемый процент? Просто добавь коэффициенты в *.h-файл, и их загрузку из конфига в Load в *.cpp-файл.
 

  А здесь знаешь что? Здесь - КОД. (Показать)

 

  16.02.2021 в 03:52, Romann сказал:

почему так жалко поделиться этим простым кодом с подрастающим поколением мододелов...!? Не бери с них пример.

Потому что с истеричками вообще не очень хочется чем-либо делиться.

А чего бы я НЕ рекомендовал, так это брать пример с прогера, который на тривиальных задачах вроде "добавить геттер / сеттер / параметр читаемый из конфига". Или переделать прохождение свойств артов через контейнер. Встречает некие затруднения.

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

Мне как бы тоже рано по большому счету. Чайник я, говорю сам. Движок ковыряю сравнительно недавно. Но некоторые вещи у меня все же получаются рабочими. И если меня спрашивают за мой рабочий код, я могу ответить - у меня это работает. Если работает как часы, то и код не заржавеет. А сырой код, который глючит, я никому и никогда не дам. Это чтобы другой человек мои ошибки разгребал и на них шишки набивал? Окстись, опомнись. Это НЕ допустимо.

А ты выкладываешь. Код, о котором сам же говоришь - что он глючит. Ты это сказал, не я. Ну и... есть, что сказать?

 

ЗЫ. @ARTLantist все что я в личке говорил, все так же в силе :wink:

 

P.P.S. Вообще занятно получается. Одни люди в эту тему приходят, за получением опыта и навыков, хотят получить подсказки к тому чтобы набираться опыта самостоятельно. И им я всегда старался помогать, чем мог.

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

Господа модераторы и админы. Есть такое предложение: Давайте сделаем отдельно тему "Стол заказов". Вот именно так ее и назвать. И, те кто хочет готового решения "под ключ", на свою задачу, пусть идут туда. А я там не буду появляться чтоб никого не нервировать. А в темах скриптования и движковых правок, буду как и прежде, давать подсказки и наводящую информацию тем, кто именно этого, а не готовых решений, и ищет.

  • Нравится 2
  • Не нравится 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

 

  Показать

 

  железо (Показать)
Ссылка на комментарий
  16.02.2021 в 08:31, Zander_driver сказал:

Если человеку давать все готовое, и не оставлять перед ним никаких задач, которые ему самому предстоит выполнить. То, откуда у него у самого появятся навыки? Они на практике приобретаются. Потому я и предпочитаю, в ответах, давать наводящие подсказки, но не полный исчерпывающий ответ с готовым кодом.

А выглядит это как искусственное завышение порога вхождения и приводит только к одному - на текущий момент желающих перейти на использование исходников всё так же меньше чем тех кто делает на оригинальных движках или движках с врезками. Еще один важный момент - некоторые области движка требуют специфичных знаний, к примеру графический API и экспертов которые хотя бы немного разбираются в этом днём с огнём не сыщешь, а ответа от них и подавно не дождёшься. Совпадение?) Отсюда кстати вытекает проблема - сейчас нет простых и готовых решений для тех кто хочет переехать на исходники и при этом не готов тратить достаточное количество времени на настройку визуалки и прочие радости связанные со сборкой движка.

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

  • Спасибо 1
Ссылка на комментарий

Всем привет! Возникла такая проблема - (ЗП-1.6.02 собранные исходники T-6638 в Visual Studio-2019). Начинаю новую игру хоть на статике хоть на динамике (любой) и всё на экране загрузки останавливается. Приходиться закрывать через диспетчер задач принудительно. Но иногда и пробивает загружается нормально но чаще нет.

  Лог (Показать)

 

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...