crypt of decay - всё через жопу в этой гоззе [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

всё через жопу в этой гоззе [Apr. 11th, 2019|08:48 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|, , ]

нет, вы представляете: авторы gzdoom имеют наглость заявлять (комментариями в коде), что в вавуме 3д-полы сделаны идиотски! вот эти вот безмозглые дегенераты. почему? объясню.

в вавуме 3d floor сделан на первый взгляд несколько… своеобразно. надо создать сектор, у которого потолок ниже пола. это называется control sector. и привязать его к сектору, где тебе надо 3д-пол сделать. и тогда потолок control sector'а становится потолком 3д пола, а пол — полом. ну, то есть, получается такая вот платформа. понимаете, почему надо такой «перепутаный» контроль делать? потому что пол и потолок — это плоскости с нормалями. и они органично ложатся «куда надо» при таких раскладах: потолок у 3д-пола ниже…. пола, так оно само и получается. плюс — этот пол не копирует данные контрольки, а тупо имеет на них указатели. поэтому когда высота контрольки меняется — 3д-пол двигается совершенно автоматически. само собой происходит.

а в гоззе, типа, «всё правильно». куча типов контрольных секторов, с «правильным» потолком выше пола… и потом гозза создаёт специальные объекты для них, запоминает родителей, и когда у какой-то контрольки меняется высота — надо ручками ходить по этим запомненым связям и всё вручную же чинить. охуительно придумано, совсем не идиотично — просто, удобно, элегантно. ага. почему нельзя как в вавуме — просто указатели? потому что одна контролька может создавать полы нескольких типов: воду, вырезаную дырку, вставленый солид. и её полы-потолки приходится вертеть-отражать. и нельзя просто на них сослаться, надо впендюривать или механику копирования, или флаги, которые будут говорить, флипать ли плоскость. и это ещё без учёта того, что в гоззе можно делать 3д-полы с границами выше-ниже сектора — и они полностью убивают систему регионов, которая заточена на то, что «целевой» сектор по высоте всегда включает в себя все «контрольные».

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

и да, система 3д-полов вавума не менее выразительна, чем гоззовая. они просто делаются чуть-чуть иначе, и иногда надо использовать две или три контрольки там, где гоззовый говнохак обходится одной (и кучей лапши в сырцах). что, в принципе, совершенно неважно, потому что в любой нормальный редактор можно добавить плугин для создания любого вида 3д-полов, и больше вручную этим не париться никогда. но вот автоматически одно в другое не конвертируется. поэтому я серьёзно думаю над тем, чтобы по обнаружении гоззоговнища вылетать с «fatal error: gozzo idiocity is not supported. go get gzdoom if you're so… nuts.»
Linkmeow!

Comments:
[User Picture]
From:[info]3d_camper
Date:April 11th, 2019 - 05:27 pm
(Link)
т.е. "вырезается" пространство ниже нормального сектора?
[User Picture]
From:[info]ketmar
Date:April 11th, 2019 - 05:33 pm
(Link)
в вавумчике — сектор просто добавляется в пустое пространство. в гоззе — несколько вариантов, все уёбищные.

ну, технически, наоборот: сектор «изымается» из пустого пространства, потому что регионы хранят именно «пустоту». но это детали. в гоззе же — может «вырезать», может «добавлять», может под балалайку плясать. и всё совершенно зря, потому что средствами вавума без проблем всё делается. вода? режем сектором высотой ноль, вниз кидаем предмет «водичка» — получается бассейн. мост? просто кидаем контрольку, получается автоматический мост. и так далее — всё строится из одного, по сути, кирпичика, который очень изящно ложится в код.
[User Picture]
From:[info]ketmar
Date:April 11th, 2019 - 05:38 pm
(Link)
то есть, именно потому, что сектор «изымается», у него и должен быть потолок ниже пола. потому что потолок контрольки становится потолком нижнего региона, а пол — полом верхнего региона. поэтому у контрольки отрицательная высота. дёшево, элегатно, красиво.
[User Picture]
From:[info]ketmar
Date:April 11th, 2019 - 05:41 pm
(Link)
а. в смысле — все операции проходят внутри базового сектора. выше-ниже резать нельзя. базовый сектор задаёт минимальную и максимальную высоты своими полом и потолком, а потом мы нарезаем этот базовый сектор на части, «изымая» из его пустоты кусочки, которые становятся платформами. то есть, такая вот csg, где мы не вырезаем дырки, а вырезаем наоборот, солиды. ну, чуть-чуть непривычно сперва в такой манере мыслить, но очень быстро проникаешься.
[User Picture]
From:[info]ketmar
Date:April 11th, 2019 - 05:45 pm
(Link)
лол. или так: в пустоту базового сектора добавляем платформы. только они «вверх ногами» добавляются, у них пол — это то, что будет потолком, а потолок — что будет полом. поэтому они «перевёрнутые» с орицательной высотой.

короче, куча есть вариантов, как об этом думать. но только не так, как в гоззе — через жопу, без какой-либо единой системы вообще.
[User Picture]
From:[info]3d_camper
Date:April 12th, 2019 - 06:32 am
(Link)
А, то есть они "инвертируются". Если у них пол и потолок нормальные, то это пустой сектор, а если наоборот, то это заполненный?
[User Picture]
From:[info]ketmar
Date:April 12th, 2019 - 10:27 am
(Link)
нет. зачем тебе класть пустой сектор в пустое место? это пустота. если высота не отрицательная, то вавум ругается матом и делает её отрицательной насильно.
[User Picture]
From:[info]ketmar
Date:April 12th, 2019 - 10:29 am
(Link)
смотри. у тебя есть корпус шкафа. ты туда вставляешь полочки. это вот точное описание процесса. основной сектор — корпус, контрольки — полочки.
[User Picture]
From:[info]3d_camper
Date:April 12th, 2019 - 05:13 pm
(Link)
Пол шкафа - потолок полочки - пол полочки - потолок шкафа.
потолок полочки ниже пола полочки.
Правильно?
[User Picture]
From:[info]ketmar
Date:April 12th, 2019 - 05:21 pm
(Link)
именно.
[User Picture]
From:[info]ketmar
Date:April 12th, 2019 - 05:25 pm
(Link)
можно, конечно, и «нормальную» полочку вдвинуть, но вавумчик ей насильственно поменяет местами пол и потолок тогда.