HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Pathos Engine (https://hlfx.ru/forum/showthread.php?threadid=6078)
Отправлено nemyax 06-03-2024 в 16:17:
Цитата:
XaeroX писал:
Но они-то об этом не знают!
Мало того, им вообще до одного места твоя этническая принадлежность.
Отправлено XaeroX 06-03-2024 в 17:28:
Цитата:
nemyax писал:
им вообще до одного места твоя этническая принадлежность.
Русский это не просто этническая принадлежность. Русский - это мир!
Добавлено 06-03-2024 в 12:28:
Но вообще это очень наивно считать, что на западе людям до одного места этническая принадлежность... Хотя да, вслух об этом рассуждать не любят. Для русских в последние пару лет сделали исключение, да и то не все.__________________
Отправлено FiEctro 06-03-2024 в 18:33:
XaeroX
Тебя канадцы обижают?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Crystallize 07-03-2024 в 01:28:
Цитата:
Дядя Миша писал:
Наезд был на тех чувачков, которые хотели сделать на нём игру.
Это о том что игру на Ксаше нельзя релизить в Стиме? Half-Life Enhanced?
Отправлено XaeroX 07-03-2024 в 01:40:
FiEctro
Нет вроде, но я их почти не вижу - я ж в Торонто живу.
Искать в Торонто коренных канадцев - это всё равно что в Москве искать коренных москвичей. И я не скажу, что это плохо!
__________________
Отправлено a1batross 07-03-2024 в 05:35:
Цитата:
XaeroX писал:
Цитата:
Pathos's model format requires a custom level editor, and currently there are no alternatives, other than the custom Hammer I use, which was based on the 2003 leak code. There have been previous examples of people releasing custom Hammer binaries (Hammer++, and afaik JACK) and Valve not really caring
Какой же нехороший человек, пишет такое.
Цитата:
-- А почему апдейте халфы для новых карт юзали бесплатную версию джека?
-- А зачем им платить за свой редактор?
Автор если что не я %)__________________
Xash3D FWGS форк
Отправлено FiEctro 07-03-2024 в 05:55:
Вот она плата за схожесть с хаммером, чтобы потом тебя обвинили в плагиате хаммера 
По большей части согласен с автором, в своих проектах лучше как можно сильнее абстрагироваться от валвовского контента, форматов и хлсдк.
XaeroX
Ну ты так говоришь будто там ходят за тобой толпой и тычат пальцем словно прокаженный. Хотя как я понял весь хейт идёт разве что от выходцев из СНГ которые живут теперь на западе.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 07-03-2024 в 06:41:
Цитата:
Crystallize писал:
Это о том что игру на Ксаше нельзя релизить в Стиме?
Я не знаю, можно или нельзя. Считается что нельзя. Но те, кто пытаются сделать игру на Ксаше, первым делом уведомляют об этом Вальву и она им конечно же говорит - нет. А вот так, чтобы уже сделали и выложили - типа всё норм, об этом мне ничего не известно. Может быть уже и есть прецеденты.
Ну там временем автор апубликовал исходники Pathos, вот ссылка:
https://github.com/TheOverfloater/p...ublic/tree/main__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 07-03-2024 в 07:09:
Цитата:
Crystallize писал:
Это о том что игру на Ксаше нельзя релизить в Стиме?
Если избавишься от халфовских зависимостей то никто ничего предъявить не сможет.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 07-03-2024 в 10:47:
Ну чтож, давайте поизучаем структуру. Для начала - ресурсы. Я буду дополнять пост по мере изучения.
Спрайты - халфовские, 100% совместимые. Модели - открываются в халфовском модельвьювере, однако ничего не показывают. Рядом с каждой моделью файлик с расширением vbm, я полагаю там лежит то, что параноя строила на лету - VBO-ready массив.
Так же есть очень забавная система материалов с расширением pmf.
Вот например содержимое gib_placeholder.pmf
C++ Source Code:
3 | $scriptfile models/gibs/gib_placeholder.pmf |
Очевидно идёт отсылка на другой скрипт. Открываем его:
C++ Source Code:
3 | $texture diffuse models/gibs/gib_placeholder.tga |
Но возможно эти скрипты позволяют куда больше комманд, чем тут прописано. Увидим. Так же отмечу, что в комплекте с движком идут только модели гибсов почему-то.
Из папки docs можно узнать всякое. Например, что движок поддерживает лицевую анимацию (скорее всего взята из Source).
Модельки из халфы - не поддерживаются совсем. Они должны иметь файлик vbm вот этот. Но зато поддерживаются карты из халфы, а так же карты собственного нативного формата, компилятор основан на VHLT.
Текстуры должны быть уложены по папкам, декали в textures\decals, небо в textures\sky, каустики в textures\general
Так же в комплекте идёт какая-то мощная система партиклей, но это как раз неудивительно. Программисты, научившиеся писать код боле-мене нормально первым делом почему-то пишут именно партикл-систему.
Даётся описание системы материалов, оно довольно простое:
C++ Source Code:
4 | $texture diffuse models/shellcasings/pistolcasing_silver.tga |
5 | $texture luminance models/bullets/pistolcasing_silver_glow.tga |
Ну и так же есть параметры для кубемап, копии экрана, бампа, глосса и детальной текстуры. И стандартный набор параметров, типа $nodecal, $nostepsound. Кастомные шейдеры хранятся в формате .bss, который дико долго грузится и компилируется, что хорошо заметно на демонстрационных видео. Про модели и редактор уровней информации немного - там что-то про утёкшие исходники беты из-за чего исходники ни компилятора моделей ни редактора уровней не могут быть опубликованы.
То есть вроде как человек обещал лицензионно чистый код, однако у него там минимум две мины заложены. Возможно в дальнейшем он всё это полностью перепишет. Например на Qt (я про редактор).
Добавлено 07-03-2024 в 11:11:
Теперь приступим к изучению ресурсов в папке pathos.
Главный файл мода называется gameinfo.cfg
Внутри вот такое:
C++ Source Code:
Интересно, причём тут стенсил вообще.
В папке textures\decals лежат декали из паранои. Кажется со второй, но может и из первой тоже есть. Впрочем, другие декали там тоже присутствуют. (Главное что мой ЕДОДОЙ не упёрли, вот за это я бы реально предъявил).
Система материалов не поддерживает анимацию текстур, поэтому анимированные кадры лежат в отдельных текстовых файликах:
C++ Source Code:
2 | "caustics/caustics0.dds" |
3 | "caustics/caustics1.dds" |
4 | "caustics/caustics2.dds" |
5 | "caustics/caustics3.dds" |
6 | "caustics/caustics4.dds" |
7 | "caustics/caustics5.dds" |
8 | "caustics/caustics6.dds" |
9 | "caustics/caustics7.dds" |
Чем-то напомнило билды сталкера.
Модели равномерно размазаны по куче папок. Где-то текстуры, где-то сами модели, где-то материалы. Собрать всё это в кучку и поделиться вероятно будет так же неудобно как и в сорсе. Текстуры партиклей - из паранои, но там они тоже откуда-то, уже не помню откуда. Может из Quake 2 Evolved, а может и нет.
Скайбоксы идут порубленными на шесть сторон, автор не осилил отрендерить скайбокс, собранный в одну dds-кубемапу. Ну кстати не такая уж и тривиальная задачка.
Материалы для мира в основном собраны в ваде. На каждый материал видимо требуется отдельный файл. Поэтому в папке textures\world\pathos лежит один wad-файл и 155 pmf файлов, среди которых замечена текстура от нашего FiEctro, а именно {cj_fence.pmf - да-да, тот самый заборчик, который он когда-то делал лично для меня.
WAD-файлы самые обычные, HL-совместимые.
В кредитсах про меня ни слова, про ФиЭктру, разумеется тоже. Но упомянут BUzer. Разумеется про Вальву, у которой попячен Хаммер - тоже ни слова. Ладно, идём дальше.
materialdefs.txt - это к слову явное отражение моих идей из P2.
Можно сравнить
Paranoia 2: Savior
C++ Source Code:
4 | "impact_parts" "test_impact" "test_smoke" |
5 | "impact_sound" "debris/concrete1.wav" "debris/concrete2.wav" "debris/concrete3.wav" "debris/concrete4.wav" |
6 | "step_sound" "player/pl_beton1.wav" "player/pl_beton2.wav" "player/pl_beton3.wav" "player/pl_beton4.wav" |
Pathos
C++ Source Code:
4 | "impact/concrete_impact_bullet1.wav" |
5 | "impact/concrete_impact_bullet2.wav" |
6 | "impact/concrete_impact_bullet3.wav" |
7 | "impact/concrete_impact_bullet4.wav" |
10 | particlescript "concrete_impact_cluster.txt" |
13 | BULLET_PLAYER_GLOCK 0 0 0 0 0 |
14 | BULLET_PLAYER_KNIFE 0 0 0 0 0 |
15 | BULLET_NPC_9MM 0 0 0 0 0 |
16 | BULLET_NPC_BUCKSHOT 0 0 0 0 0 |
17 | BULLET_NPC_SIG552 24 1 2 0.5 1 |
18 | BULLET_NPC_M249 24 1 2 0.5 1 |
19 | BULLET_NPC_TRG42 32 3 1 0.7 1 |
22 | BULLET_PLAYER_GLOCK 15 4 3 1 0.5 |
23 | BULLET_PLAYER_KNIFE 0 0 0 0 0 |
24 | BULLET_NPC_9MM 15 4 3 1 0.5 |
25 | BULLET_NPC_BUCKSHOT 5 4 4 1 0.7 |
26 | BULLET_NPC_SIG552 10 3 2 2 0.2 |
27 | BULLET_NPC_M249 10 3 2 2 0.2 |
28 | BULLET_NPC_TRG42 15 2 2 2 0.3 |
Ну да, чуть-чуть добавили параметров, но внутренняя логика нарушена. Пенетрация и рикошет должны быть в настройках оружия, а не материалов. В настройках материалов тогда уж должна быть плотность.
Папка scripts\expressions вероятно содержит лицевую анимацию. Я особо не разбирался как оно там в хл2 устроено, так что ничего сказать не могу.
Шейдеры в файликах .bss. Очень неприятный и некрасивый код, практически каша. Примеры
C++ Source Code:
1 | $global_determinator texture 0 1 |
2 | $global_determinator fog 0 1 |
C++ Source Code:
5 | ps_texcoord = in_texcoord; |
9 | vec4 position = in_position*modelview; |
13 | ps_vertexpos = position.xyz; |
16 | gl_Position = position*projection; |
C++ Source Code:
1 | $determinator rectangle 0 1 |
4 | #extension GL_ARB_texture_rectangle : enable |
9 | uniform sampler2D texture0; |
13 | uniform sampler2DRect rectangle0; |
Очевидно пытались сделать убер-шейдеры, но налажали с синтксисом.
Прикол в том, что это шейдер basicdraw, то есть самый простейший из всех. Так же есть файлы csd, что-то вроде кэша. Но уже разобранные по бранчам. Файлы бинарные но легко открываются в блокноте.
C++ Source Code:
4 | vec4 position = in_position*modelview; |
6 | gl_Position = position*projection; |
То есть вот тут оно уже читабельное, как видите. Ну и наконец есть файлы BSD - там уже NVidia ASM. Из-за того кэши лежат рядом с исходниками образуется знатная каша. Папки cache - нет.
Т.е. вручную удалить этот кэш будет проблмематично.
Из забавного. Есть файлик vbmrender.bss, который весит 20 килобайт.
А вот закэшированный с его помощью шейдер весит знаете сколько? Держитесь крепче за стул - ТРИДЦАТЬ МЕГАБАЙТ. Ну вот и ответ, почему они так чудовищно долго грузятся.
Внутри вот такое:
C++ Source Code:
1 | $branch shadertype == 0 || shadertype == 1 || shadertype == 2 || shadertype == 3 || shadertype == 5 || shadertype == 6 || shadertype == 4 || shadertype == 10 || shadertype == 12 || shadertype == 13 || shadertype == 14 || shadertype == 15 || shadertype == 16 || shadertype == 17 |
3 | ps_texcoord1 = in_texcoord1 + scroll; |
То есть тут очевидно какой-то злокачественный комбинаторный взрыв.
Вот ещё любопытное
C++ Source Code:
1 | $invalid_state 2 chrome 1 1 shadertype 2 11 |
2 | $invalid_state 2 chrome 1 1 shadertype 13 17 |
3 | $invalid_state 2 num_lights 1 6 shadertype 3 14 |
4 | $invalid_state 2 num_lights 1 6 shadertype 16 17 |
5 | $invalid_state 2 alphatest 1 2 shadertype 3 11 |
6 | $invalid_state 2 alphatest 1 2 shadertype 13 13 |
7 | $invalid_state 2 alphatest 1 2 shadertype 15 15 |
8 | $invalid_state 2 alphatest 1 2 chrome 1 1 |
9 | $invalid_state 2 specular 1 1 shadertype 7 12 |
10 | $invalid_state 2 specular 1 1 shadertype 14 14 |
11 | $invalid_state 2 specular 1 1 shadertype 16 17 |
12 | $invalid_state 2 specular 0 0 shadertype 15 15 |
13 | $invalid_state 2 luminance 1 1 shadertype 3 17 |
14 | $invalid_state 2 bumpmapping 1 1 shadertype 7 14 |
15 | $invalid_state 2 bumpmapping 1 1 shadertype 16 17 |
Что здесь вообще происходит - понятно только автору. Как это масштабировать? Хидеров нет, в них невозможно вынести общие функции, поэтому в каждом bss файлике они дублируются. Плохо.
Теперь наконец-то можно перейти к исходникам.
Добавлено 07-03-2024 в 12:02:
Теперь собственно, по исходникам. Начнём с компиляторов VHLT.
Изменения, как я понял чисто косметические:
C++ Source Code:
5 | lump_t lumps[HEADER_LUMPS]; |
Здесь добавлен идентификатор.
C++ Source Code:
4 | int children[2]; // negative numbers are -(leafs+1), not nodes |
5 | short mins[3]; // for sphere culling |
7 | unsigned int firstface; |
8 | unsigned int numfaces; // counting both sides |
14 | int children[2]; // negative numbers are contents |
19 | unsigned int v[2]; // vertex numbers |
24 | unsigned int planenum; |
27 | int firstedge; // we must support > 64k edges |
32 | byte styles[MAXLIGHTMAPS]; |
33 | int lightofs; // start of [numstyles*surfsize] samples |
Тут часть переменных сделаны 32-х битными. Вот в принципе и все отличия от HLBSP. Сорцы самих компиляторов я не копал - лень, но почему-то уверен, что других отличий там и нет. В компиляторах единицы разбираются на самом деле. Обычно вот то, что я привёл - это максимум что меняют.
vbmconvert основан на переписанном коде из P2, который генерит VBO, автор его значительно переписал и расширил, но я же вижу.
Сам формат VBM ничего особенного из себя не представляет, это просто вариация на тему кэша из Paranoia 2. Но да, автор там добавил флексы, которые сохранил в текстуру и грузит прямо в вертексном шейдере.
Это хорошо. Насколько я помню Source это делал на CPU, что давно уже неактуально.
C++ Source Code:
#define STUDIO_MF_SMALLFOV 1024 // Use a small FOV(view models) |
Помоему логичнее было бы пометить вью-модели, т.е назвать флаг MF_VIEWMODEL, поскольку укороченный FOV только им и нужен. Опять логика проседает, ну ладно.
C++ Source Code:
Здесь, как видим - изменений нет. Пользовательская клиентская библиотека переписана на С++, но на самом низком уровне изменений нет. Вместо того чтобы написать собственный класс векторов, наблюдаем вот такую порнографию
C++ Source Code:
1 | Math::VectorScale(m_idealLeanAngles, leanFraction, m_curLeanAngles); |
2 | Math::VectorMA(m_curLeanAngles, (1.0-leanFraction), m_prevLeanAngles, m_curLeanAngles); |
3 | Math::VectorMA(pviewmodel->curstate.angles, 0.4, m_curLeanAngles, pviewmodel->curstate.angles); |
4 | Math::VectorCopy(pviewmodel->curstate.angles, pviewmodel->curstate.angles); |
Время на причёсывание кода потрачено как-то очень избирательно, да.
Так же найден новый формат ald
C++ Source Code:
3 | ALD_LUMP_NIGHTDATA_BUMP = 1, // nighttime light data for bsp |
4 | ALD_LUMP_EDD_NIGHTDATA_NOBUMP, // nighttime light data for edd(not used in Pathos, only kept for legacy support) |
5 | ALD_LUMP_EXTERNAL_BUMP, // externally stored regular BSP lightdata(not used, legacy support) |
6 | ALD_LUMP_EXTERNAL_NOBUMP, // external data with no bump info(not used, legacy support) |
7 | ALD_LUMP_NIGHTDATA_NOBUMP, // nighttime data with no bump |
8 | ALD_LUMP_EDD_NIGHTDATA_BUMP, // edd data with no bump info(not used in Pathos, only kept for legacy support) |
9 | ALD_LUMP_DAYLIGHT_RETURN_DATA_NOBUMP, |
10 | ALD_LUMP_DAYLIGHT_RETURN_DATA_BUMP |
Лайтмапа на день и ночь по раздельности. Оригинально. Помоему до такого ещё никто не додумался. Собственно hlrad сохраняет лайтмапу именно туда, вместе с бамп-маппингом.
Есть собственные строки, тоже называются CString
C++ Source Code:
5 | m_pString = new Char[1]; |
А потом мы удивляемся, почему вся память засрана и фрагментирована и не рекомендуем использовать 32-х битные библиотеки, ну конечно!
Ну и в динамических массивах аналогично, нет даже ещё лучше!
C++ Source Code:
1 | template <typename T> inline void CArray<T>::push_back( const T& element ) |
3 | Uint32 addIndex = m_arraySize; |
4 | if(m_reservedSize <= m_arraySize) |
Прямо наглядное пособие по анти-паттернам.
Добавлено 07-03-2024 в 13:47:
Теперь посмотрим игровую библиотеку. В основе - всё та же связка edict_t+CBaseEntity, но хотя бы entvars_t выбросили. Это большая и нудная работа на самом деле. Структура организации игровой библиотеки полностью повторяет халфовскую, но код конечно весь переписан, чтобы избежать претензий. Там нет ничего особо интересного - весь основной код вынесен в движок. Давайте же посмотрим и его наконец.
C++ Source Code:
1 | bool SV_InitPrivateData( edict_t* pedict, const Char* pstrClassname ) |
3 | // Init the gamedll interface |
4 | pfnPrivateData_t pfn = reinterpret_cast<pfnPrivateData_t>(SDL_LoadFunction(svs.pdllhandle, pstrClassname)); |
11 | // Call to declare save fields |
12 | svs.dllfuncs.pfnDispatchDeclareSaveFields(pedict); |
Обратите внимание - аллокация объекта провоцирует добавление в список полей для сохранения, которые не являются общей статической таблицей, а выделяются отдельно для каждой энтити через CLinkedList, который делает копию каждого элемента при добавлении. В данном случае это делается для entity_data_desc_t, который - тадам! содержит CString
C++ Source Code:
1 | struct entity_data_desc_t |
5 | // Name of the variable |
Т.е. каждое поле выделяет минимум один байт, но маллок не может выделить менее 64 байт, а у нас здесь - на каждую энтить, на каждое поле и каждый раз при создании. Это я его ещё не запускал, но мне уже интересно, сколько же эта штука жрёт памяти.
А вот интересная реализация AllocString
C++ Source Code:
1 | Uint32 SV_AllocString( const Char* pString ) |
3 | if(!pString || qstrlen(pString) == 0) |
4 | return NO_STRING_VALUE; |
6 | // See if it's already present |
7 | for(Uint32 i = 0; i < svs.strbuffer.numstrings; i++) |
9 | if(!qstrcmp(pString, svs.strbuffer.buffer[i])) |
Хэш, бинарный поиск? Действительно, что за глупости.
Смотрим сеть. Тут охотно верю, что код взят из Quake
C++ Source Code:
1 | if(updateMask & U_BASICS4) |
3 | svs.netinfo.pnet->WriteFloat(curstate.health); |
4 | svs.netinfo.pnet->WriteFloat(curstate.armorvalue); |
5 | svs.netinfo.pnet->WriteInt32(curstate.frags); |
6 | svs.netinfo.pnet->WriteInt64(curstate.weapons); |
7 | svs.netinfo.pnet->WriteInt32(curstate.buttons); |
8 | svs.netinfo.pnet->WriteInt32(curstate.oldbuttons); |
9 | svs.netinfo.pnet->WriteUint64(curstate.flags); |
10 | svs.netinfo.pnet->WriteInt32(curstate.waterlevel); |
11 | svs.netinfo.pnet->WriteFloat(curstate.fov); |
Ну и соответсвенно там ещё много такого. В клиентском приёмном коде, к слову заметил потенциальную ошибку
C++ Source Code:
if(entindex >= cls.numentities) |
cls.numentities = entindex+1; |
Тут по смыслу нужен while, а не if. Перехожу к рендереру.
Ну навскидку - тут действительно солянка из Paranoia и Trinity, но например интерполяция лайтстилей - всё же взята из Ксаша. Рендеринг кубемап (основная идея) аналогично. Т.е. он знал, что я буду изучать его сорцы, поэтому постарался всё очень сильно переписать. А в кредитсы меня естественно включать не хочется, поскольку я его тогда тыкал носом в ошибки и он от этого сильно бугуртил. Да я собственно и сейчас тыкаю, только новые ошибки куда фундаментальнее старых. И это только из того что явно в глаза бросилось за полчаса скроллинга.
Ну и подводя итоги, что хочется сказать. Действительно проделана очень большая работа - в основном по переписыванию чужого кода, но конечно там есть и собственные оригинальные находки - например чёрная дыра и vapor-trail. Но к сожалению всё это особого смысла не имеет. Вы наверное помните, я и сам хотел сделать нечто подобное, еще в 2013-м году. Тогда появился ксаш-мод. Второй раз я хотел сделать это в 2016-м - и продолжил работу над рендером паранои, написал компиляторы, расширил форматы.
И всё равно в конечном итоге отдал народу. Причина проста - и HLDML и HLBSP это древние форматы которые давно утратили актуальность.
Строить движок вокруг них - напрасная трата времени. Ладно, когда этот движок ещё совместим с халфой - какой-то смысл в этом есть. А делать по принципу "пусть похожее, но зато своё" - ну такое.
Но в любом случае, повторюсь, объем проделанной работы впечатляет.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 07-03-2024 в 10:53:
Тоесть что в итоге имеем? Опять легаси форматы и легаси код, за который этот же автор критиковал Джек и Ксаш. Тогда ради чего это всё?
Цитата:
Дядя Миша писал:
Из папки docs можно узнать всякое. Например, что движок поддерживает лицевую анимацию (скорее всего взята из Source).
Уж лучше нормальные шейпкеи чем городить для этого отдельный опять ни с чем не совместимый формат и редактор
Цитата:
Дядя Миша писал:
среди которых замечена текстура от нашего FiEctro, а именно {cj_fence.pmf - да-да, тот самый заборчик, который он когда-то делал лично для меня.
Забавно что я вообще уже не помню что это за текстура.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 07-03-2024 в 10:58:
Ну кстати к вопросу, как он всё переписывает.
Вот пример из паранои:
C++ Source Code:
flTotal = flWeight0 + flWeight1 + flWeight2 + flWeight3; |
if( flTotal < 1.0f ) flWeight0 += 1.0f - flTotal; // compensate rounding error |
Переделано вот в это
C++ Source Code:
1 | void VBM_NormalizeWeights( Float* pflweights, Uint32 maxweights ) |
4 | for(Uint32 i = 0; i < maxweights; i++) |
5 | totalweight += pflweights[i]; |
7 | Float scale = 1.0f/totalweight; |
8 | for(Uint32 i = 0; i < maxweights; i++) |
11 | pflweights[i] *= scale; |
Почему я так в этом уверен? Этот код он не мог взять ниоткуда, это мое личное изобретение, без которого развесовка попросту не будет работать, если хранить веса в байтах. Их собственно никто в байтах и не хранит по этой причине. А я вот догадался как это разрулить.
Ну и вот так оно переписано, чтобы никто не догдался. Если вдумчиво посидеть можно ещё много таких мелочей найти, но мне лень и всё равно.
Добавлено 07-03-2024 в 13:58:
Цитата:
FiEctro писал:
Опять легаси форматы и легаси код, за который этот же автор критиковал Джек и Ксаш. Тогда ради чего это всё?
Ну своё же, своё родное теперь. Ты недооцениваешь силу человеческого фактора.
ЗЫ. Это я просто ресурсы изучал. Потом попозже запущу и проверю в деле.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Cybermax 07-03-2024 в 11:22:
Цитата:
Pathos Engine - Public Release Copyright © 2021 Andras Istvan "Overfloater" Lukacs/Andrew Stephen Lucas Released under the MIT license
Ксаш под GPL же? Как можно перелицензировать под MIT? Или он там весь движок переписал? Или только свой код под MIT? Не понятно.
Цитата:
Andras Istvan "Overfloater" Lukacs/Andrew Stephen Lucas
Это четверное имя или сколько там человек указано?
Добавлено 07-03-2024 в 14:22:
Цитата:
The Pathos Engine is a Quake-like engine developed as the basis for my own video game, which began life as a GoldSrc mod back in 2009.
Ну если человек пилит ради своего мода игры выкладывая параллельно исходники это ладно, но не указать оригинального автора это не круто.
Да и что страшного вылодить исходник редактора карт и компилятора моделей. Что ему Вальва сделает? Потребует удалить с Гитхаба?__________________
ㅤ
Отправлено nemyax 07-03-2024 в 11:22:
Цитата:
Cybermax писал:
Это четверное имя или сколько там человек указано?
Просто англофонизация венгерского имени. Андрей-Степан Лукин. Хотя у венгров-то может быть Андреев Степан-Лука.
Отправлено Cybermax 07-03-2024 в 11:29:
Цитата:
Дядя Миша писал:
Строить движок вокруг них - напрасная трата времени. Ладно, когда этот движок ещё совместим с халфой - какой-то смысл в этом есть. А делать по принципу "пусть похожее, но зато своё" - ну такое.
Но в любом случае, повторюсь, объем проделанной работы впечатляет.
Ну очевидно что у человека синдром утенка, он хочет использовать привычные механизмы как ему кажется дополняя новыми возможностями.
Добавлено 07-03-2024 в 14:25:
Цитата:
Дядя Миша писал:
Ну своё же, своё родное теперь. Ты недооцениваешь силу человеческого фактора.
В комплекте с синдромом неприятия чужой разработки.
Добавлено 07-03-2024 в 14:27:
Цитата:
nemyax писал:
Просто англофонизация венгерского имени. Андрей-Степан Лукин.
Записывать восточно/центрально славянские имена латиницей это да.
Добавлено 07-03-2024 в 14:29:
Я вот сколько не смотрел видое из плейлиста, атк и не понял чем сабж лучше того же Прайма.__________________
ㅤ