Здравствуйте, господа форумчане, прошу помощи, потому что не знаю как поменять лимит максимального количества ентити в видимом пространстве игрока.
Скажу сразу - дело не в фанк_воллах и прочих брашевых энтитях, которые можно было бы объединить, и не получится объединить несколько моделей в одну. В принципе получится, но это на случай "урезки" идеи (чего не хотелось бы, конечно )
Собственно, зачем это надо: делаю мультиплеерный мод, где игрок - экипаж машины боевой, сидит в 5-и этажном роботе, крушит город, дает люлей другим роботам, подбирает с земли машины и кидается ими (если в кратце). Проблема в том, что изначальная идея - можно разбить каждое здание, вокруг много машин, танков, прочего добра, но лимит в 256 энтити в pvs слишком мал... И доп. проблема в том, что я слаб в кодинге, могу рисовать текстуры, монтажить трейлеры, немного моделить, нормально мапперить (ну, я так думаю), а вот в коде я слишком слаб.
Чтобы товарищи кодеры не ругались, что пришел опять кто-то с идеей, которая потом загнется через недельку/месяц - не загнется просто придется урезать много чего и искать обходные пути. На данный момент есть около 20 разных зданий (часть реализована скинами), модель одного робота игрока (в проекте еще один), бегающие лоу-поли горожане, поменены звуки, некоторые изменения в код таки получилось внести... Пока как-то так, надеюсь на помощь, и что это одна константа, а не перекодирование больших массивов...
RJ-riccio писал: и что это одна константа, а не перекодирование больших массивов
Да, это константа, но она вшита в движок. На чистом Goldsrc её изменить не удастся.
Однако проблему можно решить с другого конца. Например, понять, зачем нужно так много энтитей? Нельзя ли часть их целиком перенести на клиент? Статичные модели, скажем? Придётся немного покодить, конечно, но это вполне реально.
Крушить здания и прочее - это лучше на второй Халфе делать - больше возможностей. И роботов тоже там делали, погляди ролики на ютубе.
А проблема это у меня тоже была. Не вышло исправить.
Может быть, сейчас уже кто-то нашел смещение, по которому можно изменить это число на другое. Может быть...
По моделям так скажу - первохалфа очень плохо работает с моделями. Тормоза начинаются жуткие, когда много полигонов в кадре.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] писал: это лучше на второй Халфе делать - больше возможностей.
Вторая халфа на порядок сложнее в плане моделинга и текстуринга. Вот маппинг я думаю не сильно сложнее, а кодинг (исходники глядел) примерно такой же, но даёт больше возможностей.
Цитата:
XaeroX писал: На чистом Goldsrc её изменить не удастся.
Можно попробовать Xash3D в таком разе. Там лимиты повыше, а некоторые и без кодинга меняются. А ещё с моделями работает лучше, вон кучу UD-моделей Аликс в кадре вполне без тормозов рисует.
Добавлено 14-04-2015 в 22:17:
Цитата:
XaeroX писал: Нельзя ли часть их целиком перенести на клиент? Статичные модели, скажем?
Гибсы, трупы, проджектайли (если состоит из нескольких моделей) и т.д. и т.п. Я над этим тоже думал. Переписывать много кода надо. А если такими оптимизациями увлечься - будет как у тов. ~X~ супероптимизировано, но как, автор уже сам не помнит
XaeroX писал: Например, понять, зачем нужно так много энтитей? Нельзя ли часть их целиком перенести на клиент?
ну, по сути, каждое здание получается как энтити (npc) - чтобы и можно было их крушить, добавить "эффект смерти". Если бы можно было часть из них было перенести на клиент, то, наверное, это было бы хорошо, но я даже не понимаю принципа, как это сделать
Цитата:
Ku2zoff писал: Можно попробовать Xash3D в таком разе
я переписал много (по моим меркам, конечно) спиритовского кода и боюсь уже повторять все заново, хотя думал об этом. Про хл2 вообще молчу - пока научусь, уже хл3 выйдет..
По теме возникли еще 2 вопроса:
1. а неактивные до нужного момента спрайты, бимы, взрывы, прозрачные и неосязаемые фанк_трейны - тоже включаются в лимит?
2. кажется где-то давно я видел тему, где на определенном расстоянии хд-модели заменялись для игрока на лоу-поли модели, т.к. на расстоянии не было разницы - может быть возможно таким же макаром обойти лимит и на определенном расстоянии (том же max visible distance) чтобы модели становились null-овыми и "выпадали" из лимита?... ну, вы меня понимаете, надеюсь
RJ-riccio писал: а неактивные до нужного момента спрайты, бимы, взрывы, прозрачные и неосязаемые фанк_трейны - тоже включаются в лимит?
Как правило, нет. Но надо смотреть в дебаггере функцию AddToFullPack.
Цитата:
RJ-riccio писал: может быть возможно таким же макаром обойти лимит и на определенном расстоянии (том же max visible distance) чтобы модели становились null-овыми и "выпадали" из лимита?
Это легко реализовать в той же AddToFullPack. Проверяй расстояние до хоста (т.е. клиента, кому собирается снапшот), и если оно превышает некое значение - не пропускай энтитю.
XaeroX писал: Это легко реализовать в той же AddToFullPack. Проверяй расстояние до хоста (т.е. клиента, кому собирается снапшот), и если оно превышает некое значение - не пропускай энтитю.
KiQ
Что-то я тебя сегодня не понимаю...
Сам же цитируешь фразу про расстояние, а говоришь зачем-то про PVS.
PVS, на всякий случай, это виз, который компилятор считает.
Ku2zoff писал: Гибсы, трупы, проджектайли (если состоит из нескольких моделей) и т.д. и т.п. Я над этим тоже думал. Переписывать много кода надо. А если такими оптимизациями увлечься - будет как у тов. ~X~ супероптимизировано, но как, автор уже сам не помнит
А тоже вариант - взять движок тов. ~X~ за основу. Там колоссальная работа в этом плане проделана.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
RJ-riccio писал: 1. а неактивные до нужного момента спрайты, бимы, взрывы, прозрачные и неосязаемые фанк_трейны - тоже включаются в лимит?
да.
В AddToFullPack можно напихать тонны фильтров, что отсылать, а что нет. Я вообще запилил систему когда энтитя сама решает, кому себя послать, а кому - нет.