HLFX.Ru Forum
Показать все 54 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Увеличение размеров карты (https://hlfx.ru/forum/showthread.php?threadid=5033)


Отправлено Ku2zoff 09-08-2017 в 07:30:

Half-Life Увеличение размеров карты

Доброго времени суток всем, кто ещё моддит, ну или просто почитывает периодически этот форум. Так как в разработке своего долгостроя я достиг критической точки, после которой внесение каких-либо масштабных изменений в код будет грозить массовой переделкой всех карт, сейчас нужно определиться, в каком масштабе эти карты строить.
Можно ничего не трогать, и работать со стандартной сеткой 8192х8192х8192, но есть несколько наработок, которые требуют, как минимум, более длинных (в одном измерении) карт. Выходов из ситуации есть два. Первый: обойти ограничение на 8192 юнита в дллках и delta.lst. Второй: уменьшить все объекты в игре в два раза, и работать со стандартной сеткой в уменьшенном масштабе.
И то, и другое реализуется без особых проблем. Но и то, и другое имеет различные минусы. Минус обхода ограничения - надо писать свою собственную мессагу для темпэнтить. А возможно, и ещё какие-то мессаги переделывать, чтобы координаты правильно передавались по сети. Минус уменьшения масштаба - нужен хак с размерами хуллов, и задержка падения энтить на пол до спавна первого игрока на сервере.
В общем, куда ни кинь - всюду клин. Вариант с масштабом на самом деле предпочтительнее, т.к. если уж вдруг придётся ЕЩЁ увеличить карту, то можно будет применить поверх него снятие ограничения на размер. Правда, такой сценарий мне слабо представляется, разве что за пределами 8192 юнитов будет не игровая, а декоративная часть карты с плавным переходом в 3д небо.
Собственно, к чему все эти рассуждения? При каком из вариантов выше шанс вылезти за лимиты компиляторов? Я не о том, чтобы заваливать всю карту деталями, а о неожиданных ошибках, связанных со скейлом текстур/лайтмап и лимитах. Есть у кого-нибудь соображения? Конечно, я ещё сам протестирую пару карт на предмет оптимизации, но хотелось бы услышать мнения.


Отправлено Дядя Миша 09-08-2017 в 07:52:

В разумных пределах масштабирование даёт сравнимый эффект, например, в халфе камера на высоте 72 юнита, а в кваке - 56 юнитов, но громадные квейковские карты с халфовской точки зрения кажутся тесными и игрушечными А ведь хуллы даже почти совпадают.

Добавлено 09-08-2017 в 10:52:

Изменения для корректной потдержки больших размеров карт можно поискать в ксаше по строчке ENGINE_WRITE_LARGE_COORD.
Их там весьма немного: длина трассы до скайбокса, чтобы взять освещение от неба, а не с земли. sv_zmax максимальный становится 131070 или около того ну и пресловутый WriteCoord. Внутри халфы он используется, например для декалей, звуков и партиклей. Ну их тоже можно переделать на кастомные, а на клиенте вызывать эти звуки или партиклы. А амбиент саунд, это обычный саунд с каналом CHAN_STATIC.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 09-08-2017 в 08:13:

Дядя Миша спасибо, что упомянул про некоторые изменения. Работы выходит довольно много, особенно с кастомными мессагами. Так что я использую уже отработанный вариант с масштабированием. И если уж захочется ещё увеличить, то сниму ограничения на размер, но темпэнтити, декали и всякое разное за пределами старых размеров располагать не буду, пусть там будет только ландшафт.
В общем, буду активно мапать "маленькие" карты.


Отправлено Ku2zoff 10-08-2017 в 03:51:

Дядя Миша у меня попутный вопросец возник: я в теме про глобальное изменение масштаба упоминал про неправильный скейл хитбоксов по ключу $scale при компиляции моделей. То есть сама модель скейлится, а хитбоксы остаются тех же размеров, что и прописаны в qc-файле. Только если отскейлить модель во вьювере и пересохранить, они уменьшаются.
Ты не выкладывал сорцы своего studiomdl с поддержкой тайлинга и увеличенными лимитами? Я бы попробовал исправить для себя этот баг. Ну и по Motion Extraction хотелось бы что-то придумать тоже на этапе компиляции. А то уч0ные ростом 36 юнитов бегают со скоростью как при 72 юнитах, приходится в самом коде монстров использовать хак:

C++ Source Code:
1
DispatchAnimEvents( flInterval );
2
#ifdef _HALFSCALE
3
flInterval *= 0.55;
4
#endif
5
if ( !MovementIsComplete() )
6
{
7
  Move( flInterval );
8
}


Отправлено Дядя Миша 10-08-2017 в 14:55:

Цитата:
Ku2zoff писал:
Ты не выкладывал сорцы своего studiomdl с поддержкой тайлинга и увеличенными лимитами? Я бы попробовал исправить для себя этот баг.

Не знаю, видел ты или нет, но вот мега-навороченный модельвьювер, поддерживает развесовку из хл2, жрёт модели из хл2 и умеет почти все фишки из хл2, кроме конечно вертексной анимации. При этом бинарно совместим с голдсорсом: http://cs-mapping.com.ua/forum/showthread.php?t=38472
Аналогично тот компилятор в комплекте скейлит и хитбоксы и ататчменты, корочи полный комплект удовольствий. Ему можно прямо модельки из хл2 совать и он их сожрёт не поперхнувшись. И по идее скейл учтётся для ExctractionMovement, но тут неуверен - тестить надо.

Добавлено 10-08-2017 в 17:55:

Цитата:
Дядя Миша писал:
жрёт модели из хл2

Я имел в виду, после компиляции тем компилятором, который входит в комплекте, чтобы не возникало недопонимания.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 10-08-2017 в 15:04:

Цитата:
Дядя Миша писал:
но вот мега-навороченный модельвьювер

А на хлфх его не выкладывали, что ли? Как-то это странно.

__________________

xaerox on Vivino


Отправлено Дядя Миша 10-08-2017 в 18:31:

Ну я создал тему, но всем было настолько наплевать, что я не стал её продолжать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 11-08-2017 в 02:27:

А, это... Ну понятно.
Да у нас тут вообще всем на всё наплевать по большей части.

__________________

xaerox on Vivino


Отправлено FiEctro 12-08-2017 в 14:09:

Цитата:
XaeroX писал:
А, это... Ну понятно.
Да у нас тут вообще всем на всё наплевать по большей части.


А ты донатов заслал ?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено XaeroX 12-08-2017 в 14:20:

FiEctro
Если я правильно понимаю, то донаты должен засылать не я, а мне. Так?

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-08-2017 в 14:55:

Цитата:
XaeroX писал:
Да у нас тут вообще всем на всё наплевать по большей части.

Здесь моделлеров нет. Почти. И любителей таскать модели из сорса, видимо тоже. Т.к. главаная фича новых тулзов именно в развесовке, никто и не заинтересовался.


Отправлено Ku2zoff 16-08-2017 в 05:12:

Ещё один вопрос. Есть жёсткий лимит на 512 моделей (браши + спрайты + студио), на больших картах это может быть весьма актуально. Со спрайтами просто: можно запаковать несколько с одинаковой палитрой в один файл и управлять рисованием с помощью кадров. Со студийными тоже просто: бодигруппы + секвенции = несколько моделей в одной. А как быть с брашами? Квейк может грузить маленькие bsp файлики как модели, некоторые итемы там так и сделаны. Халфа по-моему не дублирует одинаковые брашевые энтити как разные модели. А что, если она умеет грузить bsp модели как Квака? Знаю, что ксаш умеет, а вот в халфе не пробовал.

Добавлено 16-08-2017 в 12:12:

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


Отправлено Crystallize 16-08-2017 в 09:05:

Ku2zoff "использование BSP ресурсов" на КСМ


Отправлено Дядя Миша 16-08-2017 в 09:19:

Цитата:
Ku2zoff писал:
А что, если она умеет грузить bsp модели как Квака?

умеет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 16-08-2017 в 12:25:

Crystallize а можно прямую ссылку? Что-то не гуглится и поиском по форуму не находится.


Отправлено Ku2zoff 17-08-2017 в 05:45:

Получилось. Пушабля из внешнего bsp загружается, её можно толкать, но она невидимая.


Отправлено Crystallize 17-08-2017 в 05:56:

Ku2zoff http://cs-mapping.com.ua/forum/showthread.php?t=28721
сам еле нашёл


Отправлено Ku2zoff 17-08-2017 в 07:51:

Crystallize ну это прям грязный хак какой-то. env_sprite для прекэша использовать... Я прекэшу прям в коде. Грузится, работает и осязается. Только не видно.
Ещё в этом туторе есть минус: если на нашей карте есть брашевая модель с именем, таким же как и в загружаемой сторонней карте, тады ой.

Добавлено 17-08-2017 в 14:12:

Обернул ящик в пустой браш, сделал свет. Откомпилил с визом и радом. Теперь его видно. Но вставляется в качестве модели вся карта, а не только ящик. Не смог нагуглить никаких туторов по кваке, как правильно делать итемы маппингом. С параметром hlbsp.exe -nofill компилится нормально, но нет освещения - браш чёрный.

Добавлено 17-08-2017 в 14:42:

Разобрался Вот описание действий вкратце:
1. Создаём пустую карту. В центре создаём нужный нам браш. Обставляем его лайтами со всех сторон, чтобы он был освещён.
2. Компилим hlcsg, hlbsp и hlrad. hlvis не используем, он не сработает, и не даст сработать hlrad (т.к. у нас нет "неба" вокруг ящика). Для hlbsp выставляем параметр -nofill, чтобы компилятор не срезал фейсы нашего браша, как торчащие наружу карты. Игнорируем варнинг с отсутствием prt файла, если он выскакивает (в Джеке так).
3. Собственно, установка на карту. Создаём точечную энтитю с класснеймом брашевой. Добавляем вручную ключ model, и в нём прописываем путь до мини-карты (maps/crate.bsp, например).
3(1). Если у вас чистая халфа, то нужно мини-карту каким-то образом прекэшить. Подойдёт тот же env_sprite, или вообще любая энтить, где можно в свойствах указать путь к модели. Указываем maps/crate.bsp, как и в ключе model нашей браш-точечной энтити.
3(2). Если мод свой, то достаточно в коде нашей брашевой энтити добавить перед вызовом SET_MODEL( ENT(pev), STRING(pev->model) ); строку прекэша: PRECACHE_MODEL((char *)STRING(pev->model));
4. Запускаем и проверяем.
Ограничения всё те же, что и для обычных браш-энтить: не меняется уровень освещённости при перемещении по карте.

Добавлено 17-08-2017 в 14:51:

Тестовые карты в аттаче. Не забудьте про прекэш! Я делал его в коде.


Отправлено Дядя Миша 17-08-2017 в 13:37:

Цитата:
Ku2zoff писал:
С параметром hlbsp.exe -nofill компилится нормально, но нет освещения - браш чёрный.

китайский рад умеет работать без виза, да и оригинальные вальвовские компилеры тоже умели. Это глючный ZHLT не умел.

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

Добавлено 17-08-2017 в 16:37:

А вообще идея хорошая была

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 17-08-2017 в 14:38:

Дядя Миша а что за неопределённость? Как по мне, то вполне неплохо можно делать таким образом зарядники здоровья и брони, поезда и всякое, что повторяется на разных картах.

Добавлено 17-08-2017 в 21:38:

И танк как в инвазионе можно тоже сделать такими же брашами. Башню отдельно, корпус отдельно. Прекэшить и грузить бспшки прямо из кода.


Отправлено Дядя Миша 17-08-2017 в 16:13:

Ну потому что во первых паренты, во вторых переход скрозь уровни. А в третьих (это самое стрёмное) - рекурсия. Начнут вкладывать префабы в префабы, а потом орать что энтити внезапно кончились на карте.
К тому же при таком подходе начнутся проблемы с пространством имён и джек эти префабы не сможет корректно отображать, я уже общался с Ксероксом и он подтвердил - да, не сможет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 17-08-2017 в 16:27:

Цитата:
Дядя Миша писал:
Начнут вкладывать префабы в префабы, а потом орать что энтити внезапно кончились на карте.

Хм. В Халфе в качестве bsp-модели загружается та модель, которая в самой карте имеет имя "*0". То есть, если на миникарте есть мир и брашевая энтитя, то загружаемой моделью будет только мир. А если мира нет, то моделью будет первая брашевая энтитя (первая субмодель мира). Как в рамках халфы запихнуть в таком случае префаб в префаб, я не могу понять, ведь будет грузиться только одна модель с именем "*0".

Добавлено 17-08-2017 в 23:27:

Цитата:
Дядя Миша писал:
во первых паренты

Ну так это в спирите и ксаше. Кстати, все эти вещи в мультиплеере жутко лагают, даже у локального игрока.


Отправлено Дядя Миша 17-08-2017 в 19:09:

Цитата:
Ku2zoff писал:
Хм. В Халфе в качестве bsp-модели загружается та модель, которая в самой карте имеет имя "*0".

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

Цитата:
Ku2zoff писал:
Кстати, все эти вещи в мультиплеере жутко лагают, даже у локального игрока.

потому что предиктинг надо делать не только игроку, но и энтитям тоже. Тогда ничо логать не буит.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 18-08-2017 в 04:13:

Цитата:
Дядя Миша писал:
Ну там довольно сложная концепция была.

О, ну это совсем меняет дело. Я думаю, что такая система будет слишком сложной для мапперов. И сил на её создание будет потрачено больше, чем в итоге будет получено профита.
Вообще, ИМХО, главная польза от использования внешних бмоделей - это уменьшение времени компиляции. Польза от вставки готовых бмоделей в точечную энтитю сомнительна, т.к. такие модели не видно в редакторе, а скопипастить префаб с одной карты на другую и подогнать его на новое место - дело одной минуты.
Цитата:
Дядя Миша писал:
потому что предиктинг надо делать не только игроку, но и энтитям тоже. Тогда ничо логать не буит.

Средствами дллок это же не получится сделать, нужна ответка со стороны движка?


Отправлено Дядя Миша 18-08-2017 в 13:12:

Цитата:
Ku2zoff писал:
Я думаю, что такая система будет слишком сложной для мапперов

Да, вероятно, у них возникнут проблемы в освоении.

Цитата:
Ku2zoff писал:
Средствами дллок это же не получится сделать, нужна ответка со стороны движка?

сейчас есть интерполяция, возможно что её будет достаточно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 18-08-2017 в 14:35:

Цитата:
Дядя Миша писал:
сейчас есть интерполяция, возможно что её будет достаточно.

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


Отправлено Дядя Миша 18-08-2017 в 16:34:

Это в будующем релизе

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 31-08-2017 в 15:37:

Цитата:
Дядя Миша писал:
но вот мега-навороченный модельвьювер, поддерживает развесовку из хл2, жрёт модели из хл2 и умеет почти все фишки из хл2, кроме конечно вертексной анимации. При этом бинарно совместим с голдсорсом

Компилит труЪ, скейлит всё как надо. И хитбоксы получаются правильные, и монстры бегают с правильной скоростью... Но. Пам, пара-ра-рам-пам-пам! Порция багов-бажочков в тему.
C++ Source Code:
Fatal Error: D:\Steam\steamapps\common\Half-Life\coop_mod\sdk\models\scientist\.\/AX.smd doesn't exist

Што это? Код в QC выглядит так:
C++ Source Code:
1
$sequence "helicack" "helicack" AX AY AZR fps 18 {
2
  { event 1003 9 "gunmedown" }
3
  { event 1000 9 }
4
  { event 1008 4 "*scientist/sci_pain4.wav" }
5
}
Предыдущий студиомдл с увеличенными лимитами жрёт и не давится.
И второй бажочек:
C++ Source Code:
Fatal Error: D:\Steam\steamapps\common\Half-Life\coop_mod\sdk\models\scientist\scientist.qc(231): - ParseAnimationToken:  fps (0.000000 from '0') <= 0.0
В qc так:
C++ Source Code:
1
$sequence "helicack" "helicack" fps 0 {
2
  { event 1003 9 "gunmedown" }
3
  { event 1000 9 }
4
  { event 1008 4 "*scientist/sci_pain4.wav" }
5
}
Короче, новый студиомдл напрочь не понимает AX AY AZR, AZ и прочее, а так же испытывает когнитивный диссонанс при указании fps 0. Предыдущий и оригинальный хавают такие строки в qc что алкаш боярышник, и им ничего.


Отправлено Дядя Миша 31-08-2017 в 17:25:

Цитата:
Ku2zoff писал:
Предыдущий студиомдл с увеличенными лимитами жрёт и не давится.

Модификаторов AX, AY, AZ больше нет. Собственно, они и не юзались никогда.
Цитата:
Ku2zoff писал:
испытывает когнитивный диссонанс при указании fps 0

А зачем ты указываешь fps 0

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 31-08-2017 в 18:38:

Цитата:
Дядя Миша писал:
А зачем ты указываешь fps 0

Ну, например, есть анимация для scripted_sequence. И чтобы не делать для неё анимацию idle (предшествующую самой этой анимации в качестве idle sequence), можно указать в qc-файле то же имя smd-файла, только фпс поставить в 0, чтобы монстр никуда не ходил и действий не делал.
Цитата:
Дядя Миша писал:
Модификаторов AX, AY, AZ больше нет. Собственно, они и не юзались никогда.

Ну а чего тогда компилятор ругается на эти модификаторы? Пущай тады игнорит их. Он не может собрать СТАНДАРТНУЮ модель из халфы из-за этих модификаторов. Другие версии собирают без проблем.


Отправлено Дядя Миша 31-08-2017 в 18:48:

Цитата:
Ku2zoff писал:
И чтобы не делать для неё анимацию idle (предшествующую самой этой анимации в качестве idle sequence), можно указать в qc-файле то же имя smd-файла, только фпс поставить в 0, чтобы монстр никуда не ходил и действий не делал.

При компиляции значение fps используется для деления на него, поэтому ноль там быть никак не может. Если компилятор вместо нуля будет сам подставлять дефолтные 30 фпс, тебе сильно легче станет? Так что не выпендривайся и делай нормальную idle.

Цитата:
Ku2zoff писал:
Ну а чего тогда компилятор ругается на эти модификаторы? Пущай тады игнорит их.

Так он и игнорит. Но любой незнакомый токен воспринимается как имя .smd файла...

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 31-08-2017 в 19:41:

Цитата:
Дядя Миша писал:
поэтому ноль там быть никак не может

Однако ж в других студиомдл может. Кто в этом случае не прав? Тот, ко писал эти студиомдл, или авторы математических законов, в которых деление на ноль невозможно?
Цитата:
Дядя Миша писал:
Так он и игнорит. Но любой незнакомый токен воспринимается как имя .smd файла...

Судя по логу, не игнорит. Документации нету, вдруг новомодный студиомдл собирает исходную модель коряво. Кто его знает, может эти токены отвечают за что-то невероятно важное. И если их удалить, будет пипец. Неужели на КСМ никто не пытался собрать обычные халфовские модели этим компилятором? (Ах да, там они обычно предлагают отключить второй монитор. Им нет дела до моделей, лишь бы срач разводить). Спасибо за пояснение, если новой версии с багфиксами не будет, буду компилить монстров, удаляя незнакомые токены из QC-файла.


Отправлено Дядя Миша 31-08-2017 в 20:06:

Цитата:
Ku2zoff писал:
Однако ж в других студиомдл может.

Однакож другие студиомдл не умеют и сотой доли того, что умеет этот. Они вообще этот фпс просто в модель пишут, никак не используя. Вот и могут.
Впрочем есть простой способ: пишешь имя своей секвенции и добавляешь команду frame 0 1. И будет тебе idle с нулевого по первый кадр. Так даже корректнее будет.

Цитата:
Ku2zoff писал:
Судя по логу, не игнорит.

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

Цитата:
Ku2zoff писал:
Документации нету, вдруг новомодный студиомдл собирает исходную модель коряво.

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

Цитата:
Ku2zoff писал:
Кто его знает, может эти токены отвечают за что-то невероятно важное

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

Цитата:
Ku2zoff писал:
буду компилить монстров, удаляя незнакомые токены из QC-файла.

Кроме этих AX, AXR и прочих, проблем возникнуть не должно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 01-09-2017 в 05:06:

Цитата:
Дядя Миша писал:
пишешь имя своей секвенции и добавляешь команду frame 0 1

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


Отправлено Дядя Миша 01-09-2017 в 08:11:

Цитата:
Ku2zoff писал:
Блин, вот что значит нет подробной документации по сборке моделей.

Як это нету?
Я же написал, вот команды от сорса: https://developer.valvesoftware.com...ory:QC_Commands
совпадает практически всё. И там унутре команд еще параметры. Конечно не всё будет иметь эффект на чистой халфе.

Добавлено 01-09-2017 в 11:09:

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

Добавлено 01-09-2017 в 11:11:

Цитата:
Ku2zoff писал:
Однако ж в других студиомдл может. Кто в этом случае не прав?

исходники, написанные для шестой студии не компиляцца без правок в 2010-й. И обратное тоже верно. Кто в этом случае не прав?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 01-09-2017 в 09:42:

Цитата:
Дядя Миша писал:
исходники, написанные для шестой студии не компиляцца без правок в 2010-й. И обратное тоже верно. Кто в этом случае не прав?

Говорили же что из 2010 компилится в 6-й.


Отправлено Ku2zoff 01-09-2017 в 15:00:

Цитата:
Crystallize писал:
Говорили же что из 2010 компилится в 6-й.

Написанные изначально под 2010-ю нет. А вот написанные под 6-ю, а затем адаптированные под 2010-ю, да.

Добавлено 01-09-2017 в 22:00:

Цитата:
Дядя Миша писал:
Я же написал, вот команды от сорса:

Неверю сорсовским докам. Тем более на этом сайте. Кажется, там статьи пишут не сами вальвовцы, а какие-то левые чуваки.
Цитата:
Дядя Миша писал:
Кто в этом случае не прав?

Тот, кто пытается компилить сорцы неподходящей версией студии.


Отправлено Дядя Миша 01-09-2017 в 15:35:

Цитата:
Ku2zoff писал:
Неверю сорсовским докам

ходи голодный

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 01-09-2017 в 15:57:

Дядя Миша ладно, так и быть почитаю Подскажи мне, пож, можно ли не отправляя мессагу с сервера, активировать ScreenShake на клиенте? Или таки придётся писать свою собственную кастомную мессагу, чтобы движок её не перехватывал?


Отправлено Дядя Миша 01-09-2017 в 16:40:

Цитата:
Ku2zoff писал:
можно ли не отправляя мессагу с сервера, активировать ScreenShake на клиенте?

наврядли

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 03-09-2017 в 03:57:

Цитата:
Дядя Миша писал:
наврядли

Значит сделаю свой кастомный ScreenShake на клиенте.


Отправлено Ku2zoff 06-09-2017 в 17:12:

Итак, провёл эксперимент. Объединил шесть карт из Ретрибьюшена (сорцы жы есть) в одну. В принципе, всё нормально. Компилится правда долго, но это из-за некоторых косяков на самих картах. Почти упёрся в лимит по клипнодам. Это решаемо использованием текстуры clip где надо. И таки упёрся в лимит по моделям. Ну это решаемо либо использованием всяких func_wall по минимуму (довольно много из них я перегнал в мир), либо использованием студийных пропов. И моё предположение подтвердилось: одинаковые брашевые модели довольно часто дублируются. Так что смысл в подгрузке внешних BSP есть. Ещё можно самой дллкой прекэшить по минимуму моделей и спрайтов.

Добавлено 07-09-2017 в 00:10:

Кстати, зачем юзать func_wall для избежания разбиения поверхностей, когда VHLT умеет func_detail? func_wall в таком случае нужны только для объектов с особыми рендермодами или с переключающимися текстурами (выключаемые лампы, например).

Добавлено 07-09-2017 в 00:12:

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


Отправлено Дядя Миша 06-09-2017 в 19:07:

Цитата:
Ku2zoff писал:
Кстати, зачем юзать func_wall для избежания разбиения поверхностей, когда VHLT умеет func_detail?

ну теперь уже незачем.

Добавлено 06-09-2017 в 22:07:

Ксаш к слову научился в последних билдах детайлы с альфа-текстурами рендерить.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 07-09-2017 в 03:34:

Цитата:
Дядя Миша писал:
ну теперь уже незачем.

Это очень здорово, т.к. я предпочитаю брашевую детализацию. Всякие там провода на стенах, мелкие трубы, таблички, лампочки и проч. Детайлы в этом случае убивают двух зайцев: во-первых, не занимают драгоценную таблицу моделей, которых не только на карте, а вообще движком может быть прекэшено не более 512 шт. А во-вторых, экономят клипноды, если делать их несолидными.
С моделями выходит вообще интересно. Их у меня получилось в самой карте чуть более 400 шт - уже словил Host_Error на прекэше. И это при том, что все монстры, кроме снарков, барников, учёных, крыс и тараканов временно вырезаны. Когда я перегнал кучу иллюжнарей и валлов (просмотрев треть карты) в мировые полигоны, удалось снизить кол-во моделей примерно на 100шт (того лога под рукой нет, точную цифру не помню). Но возросло количество клипнодов где-то до 70% от максимального. Тут я конечно подумал про текстуру clip и вспомнил про детайлы. Умело используя инструменты оптимизации можно уложиться в лимиты даже на очень сложных и детализированных картах.
C++ Source Code:
1
models            387/512        24768/32768    (75.6%)
2
planes           7259/32768     145180/655360   (22.2%)
3
vertexes        16014/65535     192168/786420   (24.4%)
4
nodes            6358/32767     152592/786408   (19.4%)
5
texinfos         4397/32767     175880/1310680  (13.4%)
6
faces           11549/65535     230980/1310700  (17.6%)
7
* worldfaces     8194/32768          0/0        (25.0%)
8
clipnodes       18693/32767     149544/262136   (57.0%)
9
leaves           4430/32760     124040/917280   (13.5%)
10
* worldleaves    1726/8192           0/0        (21.1%)
11
marksurfaces    14511/65535      29022/131070   (22.1%)
12
surfedges       53901/512000    215604/2048000  (10.5%)
13
edges           27029/256000    108116/1024000  (10.6%)
14
texdata          [variable]    4781628/33554432 (14.3%)
15
lightdata        [variable]          0/50331648 ( 0.0%)
16
visdata          [variable]          0/8388608  ( 0.0%)
17
entdata          [variable]     143527/2097152  ( 6.8%)
18
* AllocBlock       28/64             0/0        (43.8%)

Вот кусок лога от другой компиляции (здесь всего 4 карты в 1, а не 6, и нет оптимизации). Получается, самой большой проблемой остаётся маленький скейл текстур, влияющий на MAX_MAP_PATCHES и AllocBlock. Чтобы обойти это, придётся попотеть.
И самое главное: все шесть карт у меня предположительно уместились в игровое пространство 4096x4096x4096. То есть их можно даже не уменьшать в масштабе. Но карты маленькие, коридоры короткие, открытых пространств нет.


Отправлено Crystallize 07-11-2017 в 14:11:

Цитата:
Ku2zoff писал:
Это очень здорово, т.к. я предпочитаю брашевую детализацию. Всякие там провода на стенах, мелкие трубы, таблички, лампочки и проч.

А если их func_illusionary делать?


Отправлено Дядя Миша 09-11-2017 в 15:59:

Цитата:
Ku2zoff писал:
Их у меня получилось в самой карте чуть более 400 шт - уже словил Host_Error на прекэше. И это при том, что все монстры, кроме снарков, барников, учёных, крыс и тараканов временно вырезаны.

Открой ClientPrecache и W_Precache - там уже куча всего занимает место.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 10-11-2017 в 05:24:

Дядя Миша я знаю. В обычной халфе около сотни спрайтов и моделей кэшируются сервером. Это кол-во можно уменьшить по методу HLWE. Ну и ещё кое-что грузить только на клиенте. Спрайты эффектов, например, или звуки игроков (как радио в кс).


Отправлено Дядя Миша 10-11-2017 в 14:29:

Ku2zoff ты под WON-халфу ориентируешься? В стим-халфе параметр max_edicts уже давно можно прописать в liblist.gam. И он же лимит на модели расширяет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 10-11-2017 в 15:25:

Цитата:
Дядя Миша писал:
И он же лимит на модели расширяет.

Разве? А как же дефайн MAX_MODELS (1<<9)? В него только 512 влезает. И дефайн жёсткий, к кварам не привязан.


Отправлено Дядя Миша 10-11-2017 в 17:12:

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

Цитата:
Ku2zoff писал:
А как же дефайн MAX_MODELS (1<<9)

Ну где ты в SDK увидел такой дефайн?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 11-11-2017 в 02:32:

Цитата:
Дядя Миша писал:
Ну где ты в SDK увидел такой дефайн?

Это я в rehlds подглядел. Там массив всех прекэшенных моделей всё равно не больше 512. Вот в ксаше, MAX_MODELS (1<<11), на 2048 моделей. Соответственно, на 1024 должно быть MAX_MODELS (1<<10). А его такого в стим-версии нет. По крайней мере в сорцах rehlds я не увидел. Значит и в оригинальном движке всё по-старому.


Отправлено Дядя Миша 11-11-2017 в 09:56:

Ku2zoff просто проверь на стим-версии

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 11-11-2017 в 12:54:

Дядя Миша ну ок. Специально наклонирую моделей с разными именами, и засуну их все в ClientPrecache. Аж интересно стало. А MAX_MAP_MODELS таки всё равно 512 оставили наверное.


Отправлено Дядя Миша 11-11-2017 в 19:53:

Цитата:
Ku2zoff писал:
MAX_MAP_MODELS таки всё равно 512 оставили наверное.

в движке нет такого лимита

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 17:04.
Показать все 54 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024