Открытый проект, направленный на улучшение движка под капотом, исправление оригинальных багов, улучшении производительности и качества кода.
Мы открыты для любых других изменений, будь то геймплейные изменения или графические. Просто перед любым серьёзным изменением нужно обсудить все за и против.
Основные преимущества и не только:
Шесть полностью рабочих конфигураций (Debug, Mixed, Release / x86-x64)
Полностью настроенная единая система сборки. Всё находится в одном решении и собирается по нажатию на кнопку "Собрать решение"
Сборка всех шести конфигураций через AppVeyor, что позволяет примерно замерять время сборки и удобно выпускать релизы
Многочисленные исправления и улучшения кода (Исправление багов, оптимизация, рефакторинг)
Рабочий BugTrap x64 отправляющий отчёты на почту OpenXRay (если у вас установлен почтовый клиент)
Рабочие компиляторы: xrAI, xrLC, xrDO_Light
Последние версии LuaJIT и Luabind, доработанные для работы с движком.
Приглашаем всех сталкеров для участия в разработке: как в улучшении самого проекта, так и использовании его в качестве базы для своих модов. Крайне благодарны за отзывы и сообщения и любых проблемах случившихся у вас.
Инструкция по установке и ссылки на скачивание находятся здесь.
Благодарим
Call of Chernobyl Lost Alpha X-Ray Oxygen Shoker Gunslinger mod avoitishin Morrey Abramcumner KRodinn Swartz27 avbaula electrobas94 jazzvaz SkyLoader А также всех остальных, кто не упомянут здесь. Если использованы ваши наработки, но вас здесь нет, напишите – добавим =)
mortan
11.03.2018, 22:24
Воу, отличная новость! Больше года уже пилю мод на основе open xray, очень хорошая стабильность в целом, только вот в качестве основы брал старую master ветку под 2013 студию, ибо последние коммиты под новую студию либо не собирались либо были не доделаны( Правильно ли я понимаю что вы добавили ещё x64 версию? Насколько она рабочая? У меня нет серьёзных технических знаний но некоторые интересные вещи всё же иногда удаётся написать)
Xottab_DUTY
11.03.2018, 22:41
Цитата(mortan @ 12.03.2018, 00:24)
только вот в качестве основы брал старую master ветку под 2013 студию, ибо последние коммиты под новую студию либо не собирались либо были не доделаны(
Да, действительно, на текущий момент ветка master устарела, но, всё-таки, стабильнее веток dev и xd_dev.
Цитата(mortan @ 12.03.2018, 00:24)
Правильно ли я понимаю что вы добавили ещё x64 версию? Насколько она рабочая?
Так и есть. За это спасибо проекту X-Ray Oxygen. Работает достаточно стабильно, хотя некоторые частицы (партиклы) имеют слишком быструю анимацию. Находимся в поиске остальных багов =)
Возможный баг и его решение
Пришёл я как-то за ПДА Шутника к Соснодубу... Смотрю, а он под землю провалился.. Потом ушёл на Янов, опять на Затон, прихожу к Соснодубу, а там ПДА, вдруг, лежит где нужно, а я уж думал с концами он под локацию провалился..
Вместо послесловия: Если играть на оригинальной ЗП, то движок стабилен, но при использовании модов возможны проблемы. Они могут быть как из-за движковых изменений, так и из-за обновлённых LuaJIT и luabind. Если у вас возникнут какие-то проблемы, пишите, обязательно пишите, нам нужна информация о стабильности движка именно при работе с модами.
NanoBot-AMK
11.03.2018, 22:56
А где можно почитать подробные изменения движка на русском, есть мысль присоединится к проекту. Править буду в основном то, что достаточно хорошо понимаю, т.е. оружейку, в оригинале(ПЫСы) этим занимался какой-то баклан. А какая студия потребуется? У меня только 2010.
Xottab_DUTY
11.03.2018, 23:19
NanoBot-AMK, на данным момент описания на русском нет, но в скором времени займусь описанием правок. Студия нужна 2017.
Цитата(NanoBot-AMK @ 12.03.2018, 00:56)
есть мысль присоединится к проекту
Очень хорошая мысль
Цитата(NanoBot-AMK @ 12.03.2018, 00:56)
Править буду в основном то, что достаточно хорошо понимаю, т.е. оружейку
Единственное, чего нужно будет придерживаться – это сохранить совместимость с ЗП и сделать так, чтобы если человек накатил движок на оригинальную ЗП, то чтобы у него геймплей не поменялся, но чтобы он смог изменить его в настройках.
Пример
Есть опция подсветки активных предметов в инвентаре (например, подсветка гранаты, находящейся в слоте гранаты). Эта штука была взята из Call of Chernobyl, но там она была включена всегда*, здесь же её можно включить/выключить через консоль командой g_inv_highlight_equipped
* – по крайней мере, в том коммите, который я импортировал, она была включена всегда... Я не все коммиты затянул..
NanoBot-AMK
11.03.2018, 23:34
Цитата(Xottab_DUTY @ 11.03.2018, 23:19)
это сохранить совместимость с ЗП
Ну это само собой, правленый движок обязан работать на оригинальном сталкере без проблем. Я да же для включения колбеков использую булевы, если не используются, то и не работают, это что бы меньше ресурсов потребляло. Все фичи по возможности включаться через конфиг, например, гранаты и патроны с пояса и так далее. Само собой надо хорошо документировать, что разработчик смог быстро во всём разобраться. ЗЫ Кстати, где лучше VS2017 скачать, что бы сразу заработала? И как именно версия сойдёт, что бы весила по меньше.
Modera
11.03.2018, 23:57
Цитата(NanoBot-AMK @ 11.03.2018, 23:34)
Кстати, где лучше VS2017 скачать, что бы сразу заработала? И как именно версия сойдёт, что бы весила по меньше.
С официального сайта качай. Работает она весьма печально, как и все остальные версии студии.
Кто-нибудь пробовал переносить X-Ray на GCC?
RayTwitty
12.03.2018, 00:21
Цитата(NanoBot-AMK @ 11.03.2018, 23:34)
Я да же для включения колбеков использую булевы, если не используются, то и не работают, это что бы меньше ресурсов потребляло
Обратная совместимость это всегда хорошо, но не до такой степени)) Как правило, расширение скриптового API не требует каких-то отдельных настроек конфигурации.
NanoBot-AMK
12.03.2018, 00:24
А какую версию лучше? Там же целых три: Community, Professional, Enterprise.
Modera
12.03.2018, 00:29
Комьюнити, она бесплатная, только учётную запись надо будет зарегать.
NanoBot-AMK
12.03.2018, 00:46
Ещё важно, установится ли VS2017 на ХР, семёрка не работает, так и не починил. ЗЫ Скачал установщик с оф. сайта, тот не запустился, требует фреймворк 4.6. ЗЫЫ В общем, не получится, 2017 не поддерживает ХР, а семёрка не работает, хрен её знает как починить. ЗЫЫЫ Во обще мир софта и его разработки катится куда то в ни куда, мечтаю о С-- но что бы с поддержкой классов, т.е. ООП. Долбать 35 ГБ. Не знаю, наверно придётся по прежнему ковырять XRayExtensions, может реально проект на С-- переделать, надо только утилиту доработать, сейчас она умеет адреса релокаций переделывать, надо что бы вторую секцию данных добавляла в целевой файл.
mortan
12.03.2018, 01:02
Цитата(Xottab_DUTY @ 11.03.2018, 22:41)
Вместо послесловия: Если играть на оригинальной ЗП, то движок стабилен, но при использовании модов возможны проблемы. Они могут быть как из-за движковых изменений, так и из-за обновлённых LuaJIT и luabind. Если у вас возникнут какие-то проблемы, пишите, обязательно пишите, нам нужна информация о стабильности движка именно при работе с модами.
да, были кое-какие проблемы связанные с работой движка но сейчас точно вспомнить не могу в чем были траблы.
ForserX
12.03.2018, 08:32
Цитата(Xottab_DUTY @ 11.03.2018, 19:56)
Рабочие компиляторы: xrAI, xrLC, xrDO_Light
Не ври.
Xottab_DUTY
12.03.2018, 11:58
Цитата(NanoBot-AMK @ 12.03.2018, 02:46)
В общем, не получится, 2017 не поддерживает ХР
Ну вот, был человек, и нет человека А что с семёркой?
Modera, про GCC: велись работы над портированием OpenXRay на Linux, работали Kaffeine и Vincent-t. Работы не закончены.
mortan, ну, если вспомнишь или найдёшь какие-то проблемы – пиши.
ForserX, если ты про ветку dev, то я её не подразумевал. В ветке xd_dev они рабочие, я же не просто так сказал переключиться именно на эту ветку. (в мастере тоже должны быть рабочими. Хотя, если я неправ и в мастере они поломаны – исправьте меня)
NanoBot-AMK
12.03.2018, 13:47
Цитата(Xottab_DUTY @ 12.03.2018, 11:58)
А что с семёркой?
Неудачное обновление, скорей всего не хватила памяти при установке, в результате ряд важных файлов были не установлены/активированы, короче не грузится. Я в общем то решил потихоньку, переходить на 7-ку. Взяли бы и сразу предупредили, сколько надо свободного места на ЖД для установки этого обновления.
Молния в вакууме
12.03.2018, 14:06
Цитата(NanoBot-AMK @ 12.03.2018, 13:47)
Цитата(Xottab_DUTY @ 12.03.2018, 11:58)
А что с семёркой?
Неудачное обновление, скорей всего не хватила памяти при установке, в результате ряд важных файлов были не установлены/активированы, короче не грузится. Я в общем то решил потихоньку, переходить на 7-ку. Взяли бы и сразу предупредили, сколько надо свободного места на ЖД для установки этого обновления.
Для семёрки это нормальная ситуация. А ещё бывает так что после обновления перестаёт запускаться вообще всё. Короче это говно лучше не использовать. Переходи сразу на 10 или сиди дальше на XP, альтернативы НЕТ.
chriotmao
12.03.2018, 15:40
А что с текстом на x64? Не пропадает?
Xottab_DUTY
12.03.2018, 15:44
chriotmao, пропадает. Это общий баг х64 движков, не видел, чтобы кто-то исправил его..
ForserX
12.03.2018, 15:45
Цитата(Xottab_DUTY @ 12.03.2018, 11:58)
В ветке xd_dev они рабочие, я же не просто так сказал переключиться именно на эту ветку.
Каналы исправил?
Xottab_DUTY
12.03.2018, 15:48
ForserX, да, компиляторы были починены, исправлены и протестированы Intorr'ом.
Tron
12.03.2018, 16:22
Цитата(Xottab_DUTY @ 12.03.2018, 15:44)
chriotmao, пропадает. Это общий баг х64 движков, не видел, чтобы кто-то исправил его..
хм, ну ка по подробнее, не замечал такого
ForserX
12.03.2018, 16:27
Цитата(Tron @ 12.03.2018, 16:22)
хм, ну ка по подробнее, не замечал такого
Раз через раз пропадает часть текста.
Xottab_DUTY
12.03.2018, 16:29
Tron, тот факт, что в движке от Im-Dex, Oxygen и здесь в OpenXRay пропадает текст дал мне основания полагать, что это общий баг. Хотя, честно говоря, кроме этих трёх движков я другие не тестил.. Может это и не совсем общий баг Подробнее здесь.
Trollz0r
12.03.2018, 16:29
Посоны, а что в этом проекте сделано действительно полезного и нужного при создании больших модов? По пунктам, пожалуйста.
Xottab_DUTY
12.03.2018, 16:32
Shadovs, начал здесь работу над новым СДК. Он ещё не сделан и находится в начальной стадии, но работа уже начата. Помимо этого, если на OpenXRay будут основываться движковые моды, то здесь будет в помощь настроенная система сборки. (это первые два пункта основных преимуществ, которые я указал) Остальные правки задокументирую несколько позже.
Tron
12.03.2018, 17:07
Цитата(Xottab_DUTY @ 12.03.2018, 16:29)
Tron, тот факт, что в движке от Im-Dex, Oxygen и здесь в OpenXRay пропадает текст дал мне основания полагать, что это общий баг. Хотя, честно говоря, кроме этих трёх движков я другие не тестил.. Может это и не совсем общий баг Подробнее здесь.
у меня такого замечено не было(мной) Но у меня ванильный движок, там только менеджер памяти поправлен и некорректный sizeof. Да местами типы поменяны(лишнее)
Абсолютно случайный вылет, за ~1000 запусков игры ловил всего три раза.
Молния в вакууме
12.03.2018, 17:16
Shadovs, это надо переписывать функцию для подсчёта используемой памяти и проверки кучи, она сама косячная.
Xottab_DUTY
12.03.2018, 17:19
saas, помимо косячности функции, это действительно может быть повреждением памяти..
Trollz0r
12.03.2018, 17:20
Цитата(Xottab_DUTY @ 12.03.2018, 15:19)
это действительно может быть повреждением памяти
В смысле программная ошибка или пролёт горячей частицы сквозь мой комп?
Xottab_DUTY
12.03.2018, 17:24
Shadovs, я думаю, программная ошибка ввиду пролёта горячей частицы сквозь твой комп Серьёзные повреждения памяти, приводящие к вылету, происходят редко, их редко "везёт" словить. А мелких достаточно много, они к вылету не приводят... Но приводят к непонятно чему..
Цитата(Tron @ 12.03.2018, 19:07)
Но у меня ванильный движок, там только менеджер памяти поправлен и некорректный sizeof. Да местами типы поменяны(лишнее)
Надо будет посмотреть у тебя
Молния в вакууме
12.03.2018, 17:31
Цитата(Xottab_DUTY @ 12.03.2018, 17:19)
saas, помимо косячности функции, это действительно может быть повреждением памяти..
Переписывать всё-ровно надо, в документации ясно сказано, PROCESS_HEAP_ENTRY при работе с HeapWalk трогать нельзя. А потом уже пробовать ловить эту ошибку.
Neo][
12.03.2018, 20:33
Цитата(Xottab_DUTY @ 12.03.2018, 19:24)
Серьёзные повреждения памяти, приводящие к вылету, происходят редко, их редко "везёт" словить. А мелких достаточно много, они к вылету не приводят... Но приводят к непонятно чему..
Xottab_DUTY, всё зависит от настроек проекта или сборки винды, т.е. юзаешь дебажную кучу или нет. Если проверки выключены, то перепахать память без падения можно вдоль и поперёк )
Что касается ошибки, то соглашусь с saas
Цитата(saas @ 12.03.2018, 19:31)
Переписывать всё-ровно надо, в документации ясно сказано, PROCESS_HEAP_ENTRY при работе с HeapWalk трогать нельзя. А потом уже пробовать ловить эту ошибку.
Можно взять код из ЗП, но я бы добавил ещё блокировку кучи.
Xottab_DUTY
12.03.2018, 20:36
Цитата(Neo][ @ 12.03.2018, 22:33)
Если проверки выключены, то перепахать память без падения можно вдоль и поперёк )
О как! Буду знать.
Цитата(Neo][ @ 12.03.2018, 22:33)
Можно взять код из ЗП
Так ведь это же итак ЗП.
Neo][
12.03.2018, 20:51
Цитата(Xottab_DUTY @ 12.03.2018, 22:36)
Так ведь это же итак ЗП.
Shadovs, изначально спрашивал про CS, там кривоватая реализация.
Абсолютно случайный вылет, за ~1000 запусков игры ловил всего три раза.
Нет, не ловил.
Antnigm
15.03.2018, 22:29
Возможно задам наиглупейший вопрос. Но как запустить x64 сброку? Скачал для пробы R версию. Переименовал bins в bin. Запускаю с экзешника в корневике игры - стабильный вылет с руганью "OpenAL: Can't create sound device". х86 запускается нормально.
Xottab_DUTY
16.03.2018, 07:18
Antnigm, нисколько не глупый вопрос. Нужно 64-битные бинарники для OpenAL, которые не включены в поставку. Домой приду - скину файлики.. Несколько позже сделаю новый релиз с исправлением этой недоработки.
А попробуй удалить файлы wrap_oal и eax.dll, возможно, поможет и без скидывания файлов. И OpenAL попробуй установить.
Post Scriptum
Вообще, папка bins была для этого и создана, чтобы содержимое оригинальной bin не трогали. Но это вполне можно делать. Учитывая, что не совсем доработан удобный запуск.
Antnigm
16.03.2018, 11:03
Принял. Так же вылетает последняя M х86 сборка когда меняешь настройки графики.
Xottab_DUTY
16.03.2018, 12:04
Antnigm, как именно меняешь? Что в логе?
mortan
16.03.2018, 12:07
Xottab_DUTY, скорее всего разрешение экрана - тоже сталкивался с такой проблемой, в логе ничего нет( Игра падает, перезапускаешь - новое разрешение применяется.
NanoBot-AMK
27.03.2018, 15:00
Я так понял что ХР не поддерживается. Смысл использовать 2017 студию, ничего она кроме гемора не даёт.
Neo][
27.03.2018, 16:12
Цитата(NanoBot-AMK @ 27.03.2018, 17:00)
Смысл использовать 2017 студию, ничего она кроме гемора не даёт.
NanoBot-AMK, ну, как минимум: последний компилятор, удобство/скорость работы среды на проекте такого размера.
А про какой геммор говоришь ты? )
jamakasi
27.03.2018, 17:22
Цитата(NanoBot-AMK @ 27.03.2018, 15:00)
Я так понял что ХР не поддерживается. Смысл использовать 2017 студию, ничего она кроме гемора не даёт.
Хм, я так понял на ХР сидишь. Смысл использовать в 2018 старую ХР, она 32х битная, многий софт ее не поддерживает уже давно, кроме гемора ничего не дает.
NanoBot-AMK
27.03.2018, 19:34
jamakasi, 7-ка сдохла. А ХР кое как, но работает. Новые студии просто загромождают проект всякими тупыми библиотека, которые вроде как должны повысить скорость, но конечно, такой скорости не дают*. Я про анализировал код IDA Pro 6.8, куча мёртвых функций, синусы по прежнему не инлайн, в общем не вижу смысла использовать VS2017. Я даже не использую в XRayExt SSE2, что бы Athlon XP могли работать.
* - если нет кеша 3-го уровня, то промах кеша съест всё преимущество.
Modera
27.03.2018, 19:56
Цитата(jamakasi @ 27.03.2018, 17:22)
она 32х битная
Да ну что за гон, есть же версия под х86-64.
jamakasi
27.03.2018, 20:52
Цитата(NanoBot-AMK @ 27.03.2018, 19:34)
jamakasi, 7-ка сдохла. А ХР кое как, но работает. Новые студии просто загромождают проект всякими тупыми библиотека, которые вроде как должны повысить скорость, но конечно, такой скорости не дают*. Я про анализировал код IDA Pro 6.8, куча мёртвых функций, синусы по прежнему не инлайн, в общем не вижу смысла использовать VS2017. Я даже не использую в XRayExt SSE2, что бы Athlon XP могли работать.
* - если нет кеша 3-го уровня, то промах кеша съест всё преимущество.
Не думал что скорости и не будет на старом железе?) А то что есть колоссальная зависимость "мусора" в зависимости от компилятора и ключей при компиляции?)
Цитата
Modera, Да ну что за гон, есть же версия под х86-64.
Гыг Попробуй её! Когда найдешь хоть одну софтинку которая просто сможет на ней запуститься то зови, ну или если запустишь на ней х32 софт ХРх64 такое же мертвое чудо как и XP 64-Bit Edition(версия для Itanium такая же мертвая как и эти камни), такое же как Win RT.
Вот прям сейчас, для домашнего юзания а не корп спецухи где это необходимость, юзать ХР это уже просто аут, софт медленно но верно прекратил развитие как и дрова, директа нового нет, дырявая, нормальной поддержки нового железа нет, новых игр нет в конце концов. Тут если железо настолько убогое то хотябы на висту\7ку переезжать, в крайнем случае на 8.1 которая на удивление отлично умудряется впахивать даже на 2х гб рам и обычном харде не самом шустром.
Modera
27.03.2018, 21:09
Цитата(jamakasi @ 27.03.2018, 20:52)
Гыг Попробуй её! Когда найдешь хоть одну софтинку которая просто сможет на ней запуститься то зови, ну или если запустишь на ней х32 софт ХРх64 такое же мертвое чудо как и XP 64-Bit Edition(версия для Itanium такая же мертвая как и эти камни), такое же как Win RT.
Прикинь, с 2014 года только её и пробую. 32-битный софт весь работает на ура, из х64 юзал 2009 майю, фаерфокс, клиент для меркуриал, какую-то игрушку на юнити, крузис2, оперу и ещё дофига чего. Лучше ты действительно сам попробуй, а потом пиши.
Neo][
27.03.2018, 21:31
Цитата(NanoBot-AMK @ 27.03.2018, 21:34)
jamakasi, 7-ка сдохла. А ХР кое как, но работает. Новые студии просто загромождают проект всякими тупыми библиотека, которые вроде как должны повысить скорость, но конечно, такой скорости не дают*. Я про анализировал код IDA Pro 6.8, куча мёртвых функций, синусы по прежнему не инлайн, в общем не вижу смысла использовать VS2017. Я даже не использую в XRayExt SSE2, что бы Athlon XP могли работать.
* - если нет кеша 3-го уровня, то промах кеша съест всё преимущество.
Надеюсь на момент написания поста ты был в курсе про особенности различных платформ и реализация тригонометрических функций на них, о интринсиках, о том, что компилятор имеет настройки, а также о том, что Athlon XP по меркам it это примерно ископаемое!?
* - про кэшмиссы, это про какие функции идёт речь и что вообще здесь имелось ввиду? ** - и не стоит забывать, что компилятор делает только безопасные оптимизации и код написанный без учёта этого факта может быть печальным на выходе
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.