CS-Mapping.com.ua

CS-Mapping.com.ua (http://cs-mapping.com.ua/forum/index.php)
-   GameDev (http://cs-mapping.com.ua/forum/forumdisplay.php?f=143)
-   -   Игровые движки: стереотипы и заблуждения (http://cs-mapping.com.ua/forum/showthread.php?t=38428)

Дядя Миша 20.04.2017 18:16

Игровые движки: стереотипы и заблуждения
 
Под спойлером развернутое объяснение для чего нужна эта тема.
Оффтоп

BSP плохо работает с открытыми пространствами
BSP - это алгоритм индексации пространства. Ему абсолютно наплевать коридоры у вас или лужайка до горизонта. Главным отличием BSP от QuadTree или Octree является невозможность построения дерева "налету", поскольку это занимает достаточно много времени, т.к. BSP действительно режет полигоны, там где это необходимо, чего не делают ни QuadTree ни Octree. Отсюда же вытекает ответ, полагаю, на мучающий многих вопрос, почему формат map так странно устроен, вместо вертексов - какие-то плоскости. Подобная структура гораздо более удобна при разрезании не только на полигоны, но и на сложные геометрические фигуры, как в редакторе, так и при построении дерева.

BSP требует замкнутого пространства для правильной работы
Не требует. Вы наверняка видели в кваке аптечки и ящики патронов, эти модели по сути представляют собой крохотные уровни, где такая аптечка просто висит в пустоте. А сама Квака без проблем позволяет собирать уровни с дыркой и даже просчитывать им освещение. Замкнутое пространство необходимо для правильной работы порталов, которые в свою очередь необходимы для ускорения работы VIS. Вы наверное обращали внимание, что VIS вообще работает крайне неспешно? Так вот, если считать видимость без порталов, подобная операция может вообще растянуться на недели, если считать видимость каким-нибудь рей-трейсингом из каждой точки. Таким образом требование замкнутого пространства это одна из оптимизаций, постепенно превратившаяся в абсолютное требование.

GoldSource создан на базе движка Quake 2
На момент передачи исходников конторе Гейба, никакого Quake2 в природе еще не существовало, а с учётом модификаций движка Quake1, сделанных Valve, что-либо добавлять из Quake2 на тот момент стало просто безсмысленным - ID и Valve уже разошлись в своём подходе. Поэтому GoldSource сделан на базе NQ (NormalQuake). Однако, с появлением CS остро встал вопрос о внедрении нормальной поддержке сети с предиктингом движений игрока и Valve использовала исходники QuakeWorld (который является веткой от NQ и часть наработок из которого вошла в Quake2), взяв правда не всё, в частности был выброшен предиктинг нелокальных игроков, но зато введена компенсация лагов. Однако, как я понимаю, между Valve и ID был достаточно долгосрочный контракт по тех-поддержке, поэтому наработки из Quake2 попали в Source. Правда в очень ограниченном кол-ве. Фактически туда попал только формат уровней из Quake2 и компиляторы карт, поверх которых вальвовцы накрутили дисплейсементы и делюкс-мапы. Сам же Source представляет собой сильно переписанную версию GoldSource с двумя ключевыми моментами - движок был переписан с чистого Си на С++ и графическая под-система переделана с OpenGL на DirectX, однако в целом архитектура почти не поменялась. Т.е. революции там не было, только эволюция, к тому же достаточно спорная в некоторых местах. Но для 2004-го года это было вполне актуально.

тема будет обновляться по мере поступления новых вопросов и предложений о чём еще написать

xDShot 20.04.2017 18:57

[ Цитата ] формат уровней из Quake2
Вот прям один-в-один? Или просто структуры похожие?
[ Цитата ] движок был переписан с чистого Си на С++
Half-Life игровой код всегда был на C++?

Cybermax 20.04.2017 20:14

Как всегда интересно читать, все доступным и понятным языком.

Flash 20.04.2017 20:16

2 Дядя Миша:
Мало букф, ни асилил!

Дядя Миша 20.04.2017 20:32

[ Цитата ] Вот прям один-в-один? Или просто структуры похожие?
Вот прямо компиляторы виндиффом бьются, некоторые файлы вообще без изменений от кудвашных. Старые естественно. Новые на кресты переписали и уже не посравниваешь.

Raid 20.04.2017 20:45

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

ncuxonaT 20.04.2017 20:52

2 Raid:
или opengl в те времена был гумно

DrTressi 20.04.2017 20:52

2 Дядя Миша: а разве гс не на с++?

Дядя Миша 20.04.2017 21:29

2 DrTressi: ядро нет, вот вокруг дллки - да, уже на крестах были. Вгуи там всякие. ну там как. Даже если файлики имели расширение .cpp, внутри всё равно были обычные сишные функции. Как бы это достаточно непростая задача, к тому же не несущая полезной нагрузки. Поэтому переписывали постепенно, когда возникала необходимость коснуться той или иной подсистемы. Скажем в бетке 2003-го года сетевой канал - функциональщина, а в сорсе 2007 его уже в класс завернули. Смысла никакого конечно.

FiEctro 20.04.2017 21:39

2 Дядя Миша:
Расскажи народу про применение лайтмап для имитации динамического освещения. Например той же смены дня и ночи.
Это ведь тоже распространенное заблуждение, что многие считают что лайтмапы офигенно производительные.

GNU/Hurt 20.04.2017 21:56

2 Дядя Миша:
>сетевой канал - функциональщина
На чистом C? Как это сделано?

Дядя Миша 20.04.2017 22:02

2 FiEctro: помоему про эти лайтмапы считаешь только ты, но здесь тема не про твои заблуждения, а про общие. Да, лайтмапы это офигенно производительно, пока не начинаешь смешивать их с динамикой.
[ Цитата ] На чистом C? Как это сделано?
На чистом Си можно написать вообще всё что угодно, например винду.

GNU/Hurt 20.04.2017 22:12

2 Дядя Миша:
Ну вот опять троллишь вместо ответа.

Дядя Миша 21.04.2017 00:08

2 GNU/Hurt: ну значит я не понял твоего вопроса.


Часовой пояс GMT +3, время: 20:26.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community