При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > GameDev
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2017, 18:16  #1
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,533


По умолчанию Игровые движки: стереотипы и заблуждения

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

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-го года это было вполне актуально.

тема будет обновляться по мере поступления новых вопросов и предложений о чём еще написать
Дядя Миша вне форума Ответить с цитированием
Старый 20.04.2017, 18:57  #2
xDShot
xDShot
Полковник
Регистрация: 20.12.2010
Адрес: Санкт-Петербург
Возраст: 22
Сообщения: 1,239
Замечания: 2


По умолчанию

[ Цитата ] формат уровней из Quake2
Вот прям один-в-один? Или просто структуры похожие?
[ Цитата ] движок был переписан с чистого Си на С++
Half-Life игровой код всегда был на C++?
xDShot вне форума Ответить с цитированием
Старый 20.04.2017, 20:14  #3
Cybermax
Cybermax
Генерал
Регистрация: 11.03.2008
Адрес: Sochi, KDA, RU
Сообщения: 2,301
Замечания: 11


По умолчанию

Как всегда интересно читать, все доступным и понятным языком.
Cybermax вне форума Ответить с цитированием
Старый 20.04.2017, 20:16  #4
Flash
Flash
Регистрация: 21.09.2004
Адрес: Кривой Рог, Украина
Возраст: 34
Сообщения: 15,796


По умолчанию

2 Дядя Миша:
Мало букф, ни асилил!
Flash вне форума Ответить с цитированием
Старый 20.04.2017, 20:32  #5
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,533


По умолчанию

[ Цитата ] Вот прям один-в-один? Или просто структуры похожие?
Вот прямо компиляторы виндиффом бьются, некоторые файлы вообще без изменений от кудвашных. Старые естественно. Новые на кресты переписали и уже не посравниваешь.
Дядя Миша вне форума Ответить с цитированием
Старый 20.04.2017, 20:45  #6
Raid
Raid
Регистрация: 28.03.2037
Адрес: CSM-чат
Возраст: 26
Сообщения: 7,617


По умолчанию

2 Дядя Миша:
>графическая под-система переделана с OpenGL на DirectX
>только эволюция, к тому же достаточно спорная в некоторых местах
Что-то мне подсказывает, что Вальва просто погналась за моднявыми фичами, или майкрософт бабла кому надо отвалила.
Raid вне форума Ответить с цитированием
Старый 20.04.2017, 20:52  #7
ncuxonaT
ncuxonaT
Прапорщик
Регистрация: 05.05.2013
Сообщения: 563


По умолчанию

2 Raid:
или opengl в те времена был гумно
ncuxonaT вне форума Ответить с цитированием
Старый 20.04.2017, 20:52  #8
DrTressi
DrTressi
Хрустик
Регистрация: 06.03.2010
Адрес: На белом свете
Возраст: 23
Сообщения: 5,514
Замечания: 16


По умолчанию

2 Дядя Миша: а разве гс не на с++?
DrTressi вне форума Ответить с цитированием
Старый 20.04.2017, 21:29  #9
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,533


По умолчанию

2 DrTressi: ядро нет, вот вокруг дллки - да, уже на крестах были. Вгуи там всякие. ну там как. Даже если файлики имели расширение .cpp, внутри всё равно были обычные сишные функции. Как бы это достаточно непростая задача, к тому же не несущая полезной нагрузки. Поэтому переписывали постепенно, когда возникала необходимость коснуться той или иной подсистемы. Скажем в бетке 2003-го года сетевой канал - функциональщина, а в сорсе 2007 его уже в класс завернули. Смысла никакого конечно.
Дядя Миша вне форума Ответить с цитированием
Старый 20.04.2017, 21:39  #10
FiEctro
FiEctro
Регистрация: 28.07.2006
Адрес: Эквестрия
Возраст: 25
Сообщения: 16,072


По умолчанию

2 Дядя Миша:
Расскажи народу про применение лайтмап для имитации динамического освещения. Например той же смены дня и ночи.
Это ведь тоже распространенное заблуждение, что многие считают что лайтмапы офигенно производительные.
FiEctro вне форума Ответить с цитированием
Старый 20.04.2017, 21:56  #11
GNU/Hurt
GNU/Hurt
☼-----⚛-----☄
Регистрация: 05.03.2014
Сообщения: 679


По умолчанию

2 Дядя Миша:
>сетевой канал - функциональщина
На чистом C? Как это сделано?
GNU/Hurt вне форума Ответить с цитированием
Старый 20.04.2017, 22:02  #12
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,533


По умолчанию

2 FiEctro: помоему про эти лайтмапы считаешь только ты, но здесь тема не про твои заблуждения, а про общие. Да, лайтмапы это офигенно производительно, пока не начинаешь смешивать их с динамикой.
[ Цитата ] На чистом C? Как это сделано?
На чистом Си можно написать вообще всё что угодно, например винду.
Дядя Миша вне форума Ответить с цитированием
Старый 20.04.2017, 22:12  #13
GNU/Hurt
GNU/Hurt
☼-----⚛-----☄
Регистрация: 05.03.2014
Сообщения: 679


По умолчанию

2 Дядя Миша:
Ну вот опять троллишь вместо ответа.
GNU/Hurt вне форума Ответить с цитированием
Старый 21.04.2017, 00:08  #14
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 11,533


По умолчанию

2 GNU/Hurt: ну значит я не понял твоего вопроса.
Дядя Миша вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



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


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