FiEctro То было воссоздание веревок из опфора. А у ксерокса были силовые кабели, по ним нельзя(?) было лазить, но они извивались, пускали искры, и от выстрелов рвались и отключали оборудование.
FiEctro писал: Там же вроде были верёвки? По ним ещё лазить можно было.
Цитата:
Crystallize писал: Этсамое. А реально ли сделать для BSP29 утилиту которая, без перекомпиляции, фиксит в клипнодах невидимый порожек который возникает на стыке наклонного и ровного пола?
Не знаю, попробуй.
По текущим задачам: портирование идёт гладко, быстро, что и неудивительно - язык в полной мере отвечает поставленным задачам.
Но как вы понимаете не всё так просто - мне предстоит написать физический движок, точнее дописать его. Коллижен-дектор с матлибой у меня представлены, а вот солвера твёрдых тел ещё нету.
Так же надо добавить в рендер зеркала-порталы-тени, он изначально рассчитывался на всё это. Но в любом случае время.
Первоочередная задача конечно же физика. А в физике - парент-система, трансформы. Вторая задача - бесшовный чейнджлевел. Он готов, но ещё не протестирован.
Добавлено 10-09-2024 в 17:18:
Цитата:
Crystallize писал: А у ксерокса были силовые кабели, по ним нельзя(?) было лазить, но они извивались, пускали искры, и от выстрелов рвались и отключали оборудование.
В ксаш моде они тоже извиваются, пускают искры, вот только что от выстрелов не рвуцца. Но это легко добавить.
Crystallize писал: сделаешь клиентский сейв как у Кутузова?
клиент несамостоятелен, он отображает только то, что ему прислал сервер.
Наоборот, когда я реализовал полноценную клиент-серверную архитектуру, я с удовольствием выкинул часть сериализации, например тех же лучей, ибо в ней просто отпала потребность. Единственное, что пожалуй можно было бы сохранить, так это партиклы, но особого смысла в том я не вижу.
Дядя Миша писал: Но как вы понимаете не всё так просто - мне предстоит написать физический движок, точнее дописать его. Коллижен-дектор с матлибой у меня представлены, а вот солвера твёрдых тел ещё нету.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Проблема халфовских рендермодов и аналогичных динамических переключений GL-стейтов успешно разрешена!
Ввёл в систему материалов условные стейты, которые вешаются на пользовательскую переменную. Ну например на тот же рендермод.
Таким образом для разных типов моделей можно создавать разные рендермоды, встроенными средствами самой системы материалов можно игнорировать рендермоды если нам это не нужно (например как это было сделано моделей с флажками на мешах Transparent или Solid), т.е. полный контроль над ситуацией. Видя такое дело - удалил из движка Translucent Hack, который запрещал делать полигоны уровня прозрачными. Больше эта штука не понадобится, теперь всё полностью в ведении пользователя.
Добавлено 13-09-2024 в 20:00:
Ну и да. Гибко сочетая возможности шейдеров с рендермодами их теперь можно добавлять новые, которых не было в оригинальной халфе.
Единственный негативный момент - поскольку потенциально рендермоды способны переключиться во время игры, мы уже не сможем подготовить статическое условие при компиляции шейдера и должны использовать динамический бранчинг. Но тут уж ничего не поделать.
Дядя Миша писал: Видя такое дело - удалил из движка Translucent Hack, который запрещал делать полигоны уровня прозрачными.
А что в этом такого? Сорс вроде это позволял.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал:
А что в этом такого? Сорс вроде это позволял.
Ксаш тоже позволяет без проблем. Это отголосок старой концепции, когда я вознамерился проэмулировать рендермоды, жестко прописав режимы отображения в самих материалах. Тогда я рассуждал следующим образом: какие-нибудь стекла наверняка используют текстуру, типа glass. Так я ей просто пропишу режим полупрозрачности, да и всё. Уже буквально на первой такой ропытке я получил по лбу. Выяснилось что полупрозрачный барьер, за которым находится скафандр Гордона... использует текстуру стола, на котором стоит микроволновка. Тогда-то, в попытках спасти эту концепцию и родился translucent hack. Но очень быстро выяснилось, что абсолютно никакой системы в использовании текстур в качестве прозрачных и непрозрачных - нет. Там встречались любые комбинации. Тогда я плюнул и отложил решение этой проблемы до лучших времен. Ну и вот. Новая концепция полностью сняла все проблемы, убрала ограничения, добавила новые возможности принципиально ничего не затронув в уже написанных материалах. Наоборот появилась возможность их дополнительно упорядочить.
Добавлено 13-09-2024 в 23:17:
Цитата:
Crystallize писал: Sky brushes not allowed in entity!
Это откуда? Ксаш без проблем позволяет иметь небесные текстуры на энтитях. И полноценно рисовать на них скайбокс.
Добавлено 13-09-2024 в 23:24:
Если кто-то не понял - я не встроил рендермоды в систему материалов. Я добавил нее возможности, позволяющие написать динамическое переключение стейтов opengl и оформить его любым, удобным пользователю способом. Вплоть до того, что в качестве условий переключения можно писать регулярные выражения. Но с другой стороны - стейты это единственное, что можно убрать под динамические условия в рамках самой системы материалов, а не внутри шейдера. Так-то, умало сочетая статичные и динамические условия можно соблюдать баланс между гибкостью и производительностью. Можно всё задекларировать статически. А можно рулить визуалкой с сервера в любых аспектах. Всё на усмотрение юзера.
Дядя Миша писал: Это откуда? Ксаш без проблем позволяет иметь небесные текстуры на энтитях. И полноценно рисовать на них скайбокс.
p2csg
code:
// check to make sure we dont have an origin brush as part of worldspawn
if(( b->entitynum == 0 ) || ( !Q_strcmp( "func_group", name ) || !Q_strcmp( "func_landscape", name ) || !Q_strcmp( "func_detail", name )))
{
if( contents == CONTENTS_ORIGIN )
MsgDev( D_ERROR, "Entity %i, Brush %i: origin brush not allowed in world\n", b->originalentitynum, b->originalbrushnum );
}
else
{
// otherwise its not worldspawn, therefore its an entity. check to make sure this brush is allowed
// to be an entity.
switch( contents )
{
case CONTENTS_SOLID:
case CONTENTS_WATER:
case CONTENTS_SLIME:
case CONTENTS_LAVA:
case CONTENTS_ORIGIN:
case CONTENTS_EMPTY:
break;
default:
COM_FatalError( "Entity %i, Brush %i: %s brushes not allowed in entity",
b->originalentitynum, b->originalbrushnum, ContentsToString( contents ));
break;
}
}
А вот наблюдаю в предыдущем демо такую штуку как materials.def, где указано какие декали, какие звуки у той или иной поверхности. По образцу добавил это в демку квейка из СДК, но такое ощущение, что этот функционал просто отсутствует в этом демо. Это так?
Ну то бишь стекло-то стало прозрачным, но декаль на нем обычная остается.
Да уж. Самое конечно муторное - это переносить игровые объекты на новый язык. Да в сущности не в языке даже дело, а в самом факте переноса.
Игрового кода много, он естественно не на 100% соответствует поведению старого ксаша. Плюс для некоторых вещей функционал в движке ещё не написан. Но и писать его в ваккуме - какой смысл. Не проверишь толком.
Но по крайней мере после портирования ксаш-мода у меня больше нет никаких масштабных задумок по портированию кода. Тут уж дело за вами.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!