Crystallize писал: Так это же совсем разные уровни абстракции, нет? Как они могут друг другу мешать?
В следующем пункте содержится ответ на этот вопрос. По сути .nod файлы кэша, и то что записывалось внутрь BSP-файлов - это одно и то же.
Цитата:
Crystallize писал: Теперь виндиффить нельзя Т_Т
Всегда можно откатиться на коммит до изменения структуры каталогов. Но там в целом по серверной части изменений особо и не было, так что и смотреть нечего.
Цитата:
Дядя Миша писал: понадобился std::filesystem и он ради этого дропнул поддержку кучи виндов.
Не понимаю, какая связь между двумя этими действиями. VS2019 все ещё имел вполне рабочую поддержку XP, вместе с этим он имел и полную реализацию C++17 (в которую std::filesystem входит и еще много чего). Это уже где-то в более поздних версиях VS2022 её поломали, и никто даже не заметил, что само по себе является довольно символичным событием
Дядя Миша писал: Ну и почему, будучи записанным в bsp файл, оно ломало кроссплатформенность?
Потому что объект из памяти пишется напрямую в файл через memcpy. Это уже будет несовместимо между 32 и 64 битами, т.к. паддинги в структурах там разные. Не говоря уж про размер указателя.
SNMetamorph писал: Потому что объект из памяти пишется напрямую в файл через memcpy. Это уже будет несовместимо между 32 и 64 битами, т.к. паддинги в структурах там разные. Не говоря уж про размер указателя.
А конвертеров никаких не бывает для такого?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А конвертеров никаких не бывает для такого?
Разумеется, нет. Единственное что можно сделать - писать код сразу заранее учитывая все эти возможные различия на уровне ABI.
Добавлено 19-08-2024 в 18:45:
Цитата:
Дядя Миша писал: FiEctro я, признаться, удивлён что ты участвуешь в тестировании PrimeXT.
Не то что бы это какой-то согласованный и единый процесс. Это его личная инициатива была, об которой я узнал уже постфактум (я к подобным инициативам положительно отношусь всегда, и сопутствую если такая потребность имеется).
Дядя Миша писал: FiEctro я, признаться, удивлён что ты участвуешь в тестировании PrimeXT.
Голдсорс под макось умер, а вот джек ещё существует. Почему бы не починить ксаш под это дело и утилиты к нему. Форки Альбатроса и Метаморфа в этом плане идеально подходят, просто нужно было их собрать под 64 бита. Ну и заодно узнали как оно ведёт себя на этих платформах. Пока нативно работает всё хорошо, практически так же как и на винде или линуксе. Правда вот модельвьювер не запускается из-за ошибок с памятью или ещё чего то. Метаморф увы никаких комментариев по моему репорту не дал.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Все консольные утилиты собрались и работают вполне корректно как и на винде, а вот остальные (pxmv, pxsv) падают с segmentation fault , надеюсь Альбатрос прислал тебе логи и бинарники? Если нет то напиши в дискорд, помогу с отладкой. Есть ещё мысль сам Прайм собрать, но тоже будет нужна ваша помощь.
Так pxmv и pxsv всё же скомпилировались под макось? Ну я так из твоего сообщения понял. А вообще, мне чтоб с сегфолтом этим хоть что-то понять, надо иметь напрямую доступ к дебаггеру, чего у меня нет, и платформы такой у меня тоже нет, а этот процесс кому-то делегировать я не представляю как
Добавлено 22-08-2024 в 02:19:
Вообще оба вьювера основаны на библиотеке mxtk, а она для платформ которые не являются виндой, под капотом использует Qt (не знаю, какую конкретно версию). Возможно, что этот сегфолт связан именно с ним как-то. Но в то же время, под линуксом никаких проблем с ним нет. Так что вообще без понятия, это все гадание на кофейной гуще.
SNMetamorph писал: Так pxmv и pxsv всё же скомпилировались под макось? Ну я так из твоего сообщения понял. А вообще, мне чтоб с сегфолтом этим хоть что-то понять, надо иметь напрямую доступ к дебаггеру, чего у меня нет, и платформы такой у меня тоже нет, а этот процесс кому-то делегировать я не представляю как
Скомпилировались, дебагер есть.
Цитата:
SNMetamorph писал: Вообще оба вьювера основаны на библиотеке mxtk, а она для платформ которые не являются виндой, под капотом использует Qt (не знаю, какую конкретно версию). Возможно, что этот сегфолт связан именно с ним как-то. Но в то же время, под линуксом никаких проблем с ним нет. Так что вообще без понятия, это все гадание на кофейной гуще.
У меня с qt@5 собралось.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Давненько ничего сюда не писал, но зато за это время (то есть с августа 2024) кое какие новости накопились.
- Исправлена работа блума и автоэкспозиции на разрешениях экрана выше 1920x1080 (https://github.com/SNMetamorph/Prim...9a62c0733e8f304).
- Исправлен искажённый рендеринг отражений в зеркалах, которые имеют ненулевой угол наклона (https://github.com/SNMetamorph/Prim...333f7dec7c3754e).
- Исправлен PVS куллинг в рендерпассе порталов (https://github.com/SNMetamorph/Prim...a0d20c681ec4ef0).
- Исправлены вылеты в коде привязки PhysX при удалении энтитей, использующих физику (https://github.com/SNMetamorph/Prim...955489e8aefebe0).
- Добавлена энтити trigger_teleport_point из мода Diffusion
- Документация: добавлено 80+ статей по различным энтитям, как по старым, так и по некоторым новым (как например, env_postfx_controller).
- Документация: добавлена статья про дебаг-инструменты мода. В общем-то эта статья исходно была в документации к XashXT, тут лишь актулизована информация.
- Документация: добавлены статьи про парент-систему, префиксы объектов, классы NPC. Статьи перешли практически в исходном виде из документации XashXT.
- Исправлен PVS куллинг у спрайтовых моделей и систем партиклей: проблема также присутствовала в P2, но была исходно исправлена в XashXT.
- Обновлен RenderAPI, для использования новых фич воспроизведения видеороликов через FFmpeg в экспериментальной ветке FWGS-движка.
- Ну и собственно исправлено само воспроизведение видеороликов. Для этого можно использовать энтити func_screenmovie или env_dynlight. На данный момент воспроизведения видео нету в mainline движке FWGS. Там еще нужно доделать некоторые минорные детали, перед тем как мержить в мастер.
А также, последние 7 месяцев я работаю над предиктингом оружия. Его стандартная имплементация из HLSDK просто отвратительна и ужасна: серверный код вместе со всеми серверными типами затащили на клиент, сделали отдельный .cpp файл под стабы, чтобы оно хоть как-то могло компилиться. Какие-то минимальные изменения в серверном коде ломают компиляцию кода оружий на клиенте, надо лезть в стабы, там править. Ну короче говоря - грязь отвратительная. Потому было решено код предиктинга переосмыслить вообще полностью. И вот тут шло туго, но в итоге я всё таки пришёл к довольно чистому и логичному решению: вся геймлогика оружий теперь напрямую не опирается ни на серверный, ни на клиентский код - оно теперь изолированно в отдельный класс. А работа с данными из внешнего мира (узнать/выставить количество патронов у игрока, проверить нажата ли кнопка, и так далее) ведётся сугубо через абстрактный интерфейс, у сервера и клиента имплементации этого интерфейса уже раздельные, и друг об друге ничего не знают. В итоге, имеем для оружий один и тот же код и для сервера, и для клиента, который притом не испещрён ifdef'ами и сама логика кода тоже абсолютно идентична на обоих сторонах. Я всё ещё занимаюсь этой задачей, а именно пишу имплементацию того самого абстрактного интерфейса для клиентской части. Но по ходу такой масштабной переработки появились и побочные задания: реализовать клиентские ивенты пушек, доработать save-restore систему под новый код, и т.п. Сейчас на данном этапе оно пока не критично, но будет критично, когда вся остальная работа уже будет сделана.
SNMetamorph писал: вся геймлогика оружий теперь напрямую не опирается ни на серверный, ни на клиентский код - оно теперь изолированно в отдельный класс
SNMetamorph писал: Потому было решено код предиктинга переосмыслить вообще полностью. И вот тут шло туго, но в итоге я всё таки пришёл к довольно чистому и логичному решению: вся геймлогика оружий теперь напрямую не опирается ни на серверный, ни на клиентский код - оно теперь изолированно в отдельный класс. А работа с данными из внешнего мира (узнать/выставить количество патронов у игрока, проверить нажата ли кнопка, и так далее) ведётся сугубо через абстрактный интерфейс, у сервера и клиента имплементации этого интерфейса уже раздельные, и друг об друге ничего не знают. В итоге, имеем для оружий один и тот же код и для сервера, и для клиента, который притом не испещрён ifdef'ами и сама логика кода тоже абсолютно идентична на обоих сторонах. Я всё ещё занимаюсь этой задачей, а именно пишу имплементацию того самого абстрактного интерфейса для клиентской части. Но по ходу такой масштабной переработки появились и побочные задания: реализовать клиентские ивенты пушек, доработать save-restore систему под новый код, и т.п. Сейчас на данном этапе оно пока не критично, но будет критично, когда вся остальная работа уже будет сделана.
Основную работу завершил около недели назад, теперь занимаюсь побочными делами: дорабатываю save-restore систему, чтобы можно было читать/писать значения через лямбда-коллбэки, т.к. текущая система может работать только со значениями которые находятся по некоему оффсету в памяти относительно объекта самой энтити.