doom2d.org

Главная база плоских морпехов
It is currently 16 Jul 2026, 16:59

All times are UTC + 3 hours




Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: 04 Oct 2016, 15:39 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
вы вот тут киснете и нифига не знаете, что новый Oblige релизнули недавно. как и полагается новому — с новым алгоритмом генерации уровней. лично мне нравится больше предыдущего. ну и, само собой, если тыкать по рандомным вадам с idgames, то он делает уровни лучше, чем как минимум 2/3 попадающихся.

к сожалению, временно (так автор говорит) разучился делать 3д‐полы (ака мосты).

и скучные новости: [g]zdoom усердно переводят на floating point. также впилили порталы и заявляют, что работает. но я ни разу не верю, конечно. а ещё граф переписал сохранение игр в json, и наглухо его по дороге сломал, например. потому что граф, конечно, голова — но тот ещё долбоёб.


Top
 Profile  
 
PostPosted: 04 Oct 2016, 16:07 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7305
Location: Владивосток
> переписал сохранение игр в json
Но зачем?

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 04 Oct 2016, 16:58 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
затем, что текущий формат непригоден для чтения не то, что глазами, а даже отладочными инструментами. потому что их нет и быть не может. потому что каждый дебильный объект сохраняет себя в бинарном формате, и чтобы это прочитать для анализа, надо из исходников повыковыривать все сраные объекты, которые умеют сохраняться, а из них вычистить всю логику кроме записи/чтения. что нифига не тривиально, потому что кодовая база — говно, и оно подвязано друг на друга, на рендер, на виртуальные машины (все три на данный момент) и так далее.

p.s. да, в этом диком пиздеце три полноценных скриптовых языка сейчас. невзаимозаменяемых и несовместимых: fragglescript, acs, decorate zscript (нет, этот последний — не скомпиленые декораты; в декоратах теперь тоже можно писать скриптовые вставки на си‐подобном говне; acs, как полагается, для этого не подошёл, потому сделали новый).


Top
 Profile  
 
PostPosted: 04 Oct 2016, 17:13 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7928
Location: \\HULK
Кетмар, у тебя хорошо получается объяснять: что такое порталы применительно к движкам?

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 04 Oct 2016, 18:07 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
в данном случае именно то, о чём ты, скорее всего, подумал в первую очередь: дырка в другой сектор. то бишь, рендерер натыкается на портал, прыгает в тот сектор, на который портал указывает, и рендерит уже его (но в дырке, и так, как камера смотрит на дырку). в общем случае. при этом «прыгнутый» сектор совершенно не обязан быть соседом исходного: он может находиться где угодно, по любым координатам, и как угодно ориентирован.

частные случаи порталов — это зеркала, например: зеркало — это портал, который указывает на тот же самый сектор, к которому принадлежит, но вдобавок к нему ещё присобачена матрица для изменения направления смотрелки камеры. как и к другим порталам, тащемта: обычно у портала есть «направление смотрелки на сектор», которое прикладывается к камере в момент прыжка.

на самом деле, думовый BSP строит ещё более вырожденые, но тоже порталы. но тут всё проще, потому что такой вырожденый портал гарантировано ведёт в соседний сектор, поэтому не надо делать никаких трасформаций координат и векторов при трассировке и рендере, например.

реализация «честных» порталов чуть сложнее, чем вырожденых BSP (особенно учитывая состояние кодовой базы zdoom), и там куча нюансов. типа хитсканы должны тоже транслироваться, прожектайлы правильно лететь, свет корректно считаться, и ты пы — всё это сквозь портал, конечно. потому что с точки зрения юзера никакого портала не существует, а просто обычное «ничего», сквозь которое видно другой сектор. а что это действительно совсем другой сектор, никак не связаный с текущим даже соседством — это движка напряги уже.

в своё время технологии BSP и порталов усердно бились за рынок. BSP надо долго‐долго считать, зато потом его можно быстро‐быстро рисовать. а порталы вообще считать не надо (при условии, что хуманс их руками расставит), зато при рисовании надо заниматься сортировками и прочими проверками (которые BSP уже сделал за нас). вот build, например — это чисто портальный движок, там никаких BSP нет. поэтому в билде запросто появились нормальные двери, открывающиеся в стороны, а в хексене они сделаны через такую жопу, что лучше бы их не было совсем.

соответственно, порталы позволяют менять геометрию уровней с намного меньшим напрягом. фактически, BSP вообще не позволяет этого делать (хотя алгоритмы «слияния» разных BSP-деревьев и есть, но они и сейчас не то, чтобы lightning fast, а тогда вообще печальные были). а порталы — пожалуйста. двигай стены, поворачивай стены, да хоть добавляй‐убирай: всё равно вся тяжёлая работа по корректной отрисовке делается в момент рендеринга.

соответственно, портальные движки медленней, чем bsp-движки. билд, например, в общем медленней дума на сопоставимой геометрии.

однако все вышеописаные радости по изменению геометрии к zdoom, понятно, не относятся: там всё ещё BSP. а порталы они сделали для того, чтобы можно было написать демку «zdoom умеет херово эмулировать игру portal». зачем ещё — я не знаю.


Top
 Profile  
 
PostPosted: 05 Oct 2016, 06:31 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7928
Location: \\HULK
Т.е. БСП состоит из таких же порталов, но они ведут строго в соседний сектор?
Я наивно представлял себе уровень, как большую 3д-модель с отрезанными невидимыми полигонами.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 05 Oct 2016, 07:21 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
>большую 3д‐модель с отрезанными невидимыми полигонами.
>Т.е. БСП состоит из таких же порталов, но они ведут строго в соседний сектор?
>Я наивно представлял себе уровень, как большую 3д-модель с отрезанными
>невидимыми полигонами.

примерно это и есть «вырожденые порталы» в моём описании. на самом деле уровень порезан на кучу выпуклых многоугольников (отсюда рассечение стен, например, при построении BSP, и slime trails иногда из‐за потери точности при разрезании). некоторые рёбра у этих многоугольиков просто отсутствуют, и движок подразумевает, что там на самом деле портал, ведущий строго в соседний многоугольник. потому я назвал их «вырождеными». для 3д всё то же самое, но выпуклые уже в 3д пространстве. кардинальной разницы нет.

а вот в билде именно обычный полигон, не обязательно выпуклый.

отсюда некоторая сложность «сектора над сектором» в думовом движке: BSP-построитель напрочь игнорирует всяческие «сектора» и координату Z, потому нещадно рубит перекрывающиеся сектора в мелкую кашицу. в билде ты можешь просто нарисовать ещё один сектор и поднять его повыше, и движок более‐менее поймёт, что с этим делать. а в думе оно нарежется в УЖОС, и всё сложнее.

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

p.s. естественно, вся эта механика нафиг не нужна для современных 3д ускорителей. более того: приходится делать дополнительную работу, потому что информация о полигонах для пола в думе не хранится вообще: они рисуются хитрым алгоритмом, напоминающим flood fill. поэтому полигоны пола приходится восстанавливать из нарезаных секторов (и вот тут факт «нарезаности» на руку, потому что ускорители умеют только в треугольники, что тривиально для выпуклых полигонов, и нифига не тривиально для… concave — как это правильно по‐русски?). поэтому для билда, например, gl-рендерер появился только после того, как Кен задолбался ждать, и сам сделал всем polymost.


Top
 Profile  
 
PostPosted: 05 Oct 2016, 08:49 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7928
Location: \\HULK
Вроде более-менее понял. А что с дальнейшими версиями бсп-движков? Уpoвня кваки с ее честным триде и подвижными элементами уровней?

ketmar» очень много вадостроителей в своё время мечтали, чтобы в думе был эффект «невидимый телепорт»
А в ДФ есть телепорт без эффектов, я его туда протащил (скромно).
Не хватает, правда, спецэффекта "медленного телепорта".

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


_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 05 Oct 2016, 09:50 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
>А что с дальнейшими версиями бсп‐движков?
то же самое. ограничения BSP от движка не зависят.

>подвижными элементами уровней?
это спрайты, лол. трёхмерные, но спрайты. ну, они там «мэши» называются, но суть не меняется: это совершенно отдельный кусок геометрии (со своим отдельным BSP, кстати), который хитрохаками рисуется после основного уровня (один из немногих случаев, когда квак делает overdraw).

единственная игра, где честное изменение геометрии — это Red Faction. я, правда, не помню, BSP там или нет. впрочем, гейдизы всё равно не знали, что делать с таким крутым движком, и поэтому вдоволь покрушить уровни в RF нельзя, оно тупо заблокировано в редакторе. к тому же в RF монстры бегают по вэйпоинтам, которые при изменении геометрии движок перестраивать не умеет.

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

кстати, гейдизы RF не так уж и виноваты: до сих пор никто не знает, что с такими движками делать, поэтому их никто и не использует. в RF:G сделали песочницу, но она скучная. а что ещё можно сделать, если игрок способен наплевать на все потуги дизайна и тупо продолбить проход куда угодно — это и посейчас проблема, от которой предпочитают отмахиваться. «просто не будем делать такую фичу — и нет проблемы!» поэтому, например, я сомневаюсь, что на том же atomontage получится сделать что‐то увлекательное. ибо для обычных шутеров, бродилок и ты пы он даже хуже, чем существующие технологии. огромный бесшовный мир он не умеет — поэтому епические ропогэ тоже пролетают. а песочницы скучны абсолютно всегда, это ещё «элита» с блеском доказала. так что максимум, что выродят — это какой‐нибудь очередной говномайнкрафт.

поэтому, кстати, мне было интересно получить «гигавоксель» от Кармака. потому что с ним надо было бы что‐то делать, а Кармак вряд ли удержался бы от добавления изменяемой геометрии — потому как иначе там вообще геометрию делать? тот id, конечно, не Уоррен Спектор времён Deus Ex, но уж что‐нибудь да смогли бы из идеи соорудить. а остальные бы потом подтянулись и улучшили, как оно раньше и происходило.


p.s. а что, такие фэйды нельзя на триггерах сделать сейчас?


Top
 Profile  
 
PostPosted: 05 Oct 2016, 10:13 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7928
Location: \\HULK
Вообще тут есть относительно простой путь. Делаем разрушаемым не все окружение, а только его часть.
Т.е. ты можешь снести со здания кирпичи, но останутся стальной каркас и стальные балки.
Примерно похожую штуку делал Ар в Ломай и РФ Трибьют.

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

Я бы сделал на спор интересный разрушаемый левел для Д2Д.

...
А фейды сделать должным образом нельзя - потому что оно должно работать и в мультиплеере, и потому что в момент перемещения игрок должен быть неуязвим.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 05 Oct 2016, 10:41 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 643
а вот тут ты тихонечко съезжаешь в сторону воксельных движков. потому что в полигональных этой внутренней структуры попросту не существует: оптимизаторы сцен выкинут её, как ненужную. а если не выкинут, то её придётся процессить «на общих основаниях», хотя её и не видно. BSP-модификации — это обычное CSG (constructive solid geometry), оно умеет резать дырки и заделывать дырки, а больше ничего не умеет. внутреннюю структуру придётся, фактически, кодировать руками, восстанавливая вырезаные куски, сшивая их со старыми, и всё такое. очень, очень муторное дело. это как раз уже уровень atomontage, где сцена действительно состоит из материалов «на всю глубину».

мой предыдущий (ныне уничтоженый) движок д2д был как раз таким: там каждый пиксель имел «материал», и все объекты тоже состояли из «материальных пикселей». вот там можно было построить железную основу, к ней прилепить глиняную облицовку, и отбивать эту облицовку до посинения, железякам пофигу. для этого там было три «слоя» материалов (один, фактически, просто каждый материал при приложении достаточной силы мог превращаться в другой, потом в третий). однако я там не смог сделать физику, которую хотелось, да и тормозило оно. потому в очередном приступе умопомрачительной депрессии я всё уничтожил. может, когда‐нибудь созрею воссоздать. но вряд ли. нет мотивации.


Top
 Profile  
 
PostPosted: 22 Feb 2026, 23:05 
Offline

Joined: 22 Feb 2026, 22:58
Posts: 1
Ну вообще у меня есть один такой вад. Он довольно хорош, как по мне, да и делал его я сам. Называется он The beast will rise. Думаю, в коопе самое то.
P.S. Я прикрепил файл этого вада, для его запуска также потребуется вад второго дума.
надеюсь вам понравится
:3


Attachments:
the_beast_will_rise.wad [28.52 MiB]
Downloaded 90 times
Top
 Profile  
 
PostPosted: 23 Feb 2026, 18:19 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7305
Location: Владивосток
MrAntTenna» the_beast_will_rise.wad
Гуглом нашлось, что это такой PWAD из Oblige: https://forum.zdoom.org/viewtopic.php?t=28589&start=4905&p=1258100#p1258100.
Поэтому сообщение перенёс в наиболее близкую тему.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2007