Sidebar

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

  • Наступило лето и у нас стартовал конкурс с призовым фондом в $120!
    "De-Make It!" Summer Contest.
Команда форума
VIP
28.03.2010
15 328
253
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Игровые движки: стереотипы и заблуждения

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

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

тема будет обновляться по мере поступления новых вопросов и предложений о чём еще написать
 
  • Like
Reactions: [email protected]

Cybermax

Супер Модератор
Команда форума
Супер Модератор
11.03.2008
2 590
28
48
Награды
0
Как всегда интересно читать, все доступным и понятным языком.
 
Команда форума
VIP
28.03.2010
15 328
253
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Вот прям один-в-один? Или просто структуры похожие?
Вот прямо компиляторы виндиффом бьются, некоторые файлы вообще без изменений от кудвашных. Старые естественно. Новые на кресты переписали и уже не посравниваешь.
 

Raid

VIP
VIP
11.07.2006
8 320
232
63
Награды
1
28
CSM-чат
  • Rocket медаль
2 Дядя Миша:
>графическая под-система переделана с OpenGL на DirectX
>только эволюция, к тому же достаточно спорная в некоторых местах
Что-то мне подсказывает, что Вальва просто погналась за моднявыми фичами, или майкрософт бабла кому надо отвалила.
 

ncuxonaT

Well-known member
05.05.2013
1 172
42
48
Награды
0
2 Raid:
или opengl в те времена был гумно
 
Команда форума
VIP
28.03.2010
15 328
253
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 DrTressi: ядро нет, вот вокруг дллки - да, уже на крестах были. Вгуи там всякие. ну там как. Даже если файлики имели расширение .cpp, внутри всё равно были обычные сишные функции. Как бы это достаточно непростая задача, к тому же не несущая полезной нагрузки. Поэтому переписывали постепенно, когда возникала необходимость коснуться той или иной подсистемы. Скажем в бетке 2003-го года сетевой канал - функциональщина, а в сорсе 2007 его уже в класс завернули. Смысла никакого конечно.
 

FiEctro

Супер Модератор
Команда форума
Супер Модератор
28.07.2006
17 145
345
83
Награды
2
27
Эквестрия
  • Золотая медаль 213
  • Neh
2 Дядя Миша:
Расскажи народу про применение лайтмап для имитации динамического освещения. Например той же смены дня и ночи.
Это ведь тоже распространенное заблуждение, что многие считают что лайтмапы офигенно производительные.
 

GNU/Hurt

Maïté
05.03.2014
1 092
23
38
Награды
0
2 Дядя Миша:
>сетевой канал - функциональщина
На чистом C? Как это сделано?
 
Команда форума
VIP
28.03.2010
15 328
253
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 FiEctro: помоему про эти лайтмапы считаешь только ты, но здесь тема не про твои заблуждения, а про общие. Да, лайтмапы это офигенно производительно, пока не начинаешь смешивать их с динамикой.

На чистом C? Как это сделано?
На чистом Си можно написать вообще всё что угодно, например винду.
 

GNU/Hurt

Maïté
05.03.2014
1 092
23
38
Награды
0
2 Дядя Миша:
Ну вот опять троллишь вместо ответа.
 
Команда форума
VIP
28.03.2010
15 328
253
83
Награды
4
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
2 FaL_DemonoZa: берёшь pm_move из кутри и адоптируешь к халфе. Там ничего сложного.
 

FaL_DemonoZa

Loading...
16.06.2006
125
11
0
Награды
0
30
Магнитогорск, Россия
www.faldemonoza.nm.ru
Дядя Миша сказал(а):
2 FaL_DemonoZa: берёшь pm_move из кутри и адоптируешь к халфе. Там ничего сложного.
Ты уверен что в этом загвоздка? Мне так кажется что разницы в коде нет а вот разница в движении огромная. Даже в твоём ку1 ремейке движение не соответствует ку1.
 

FiEctro

Супер Модератор
Команда форума
Супер Модератор
28.07.2006
17 145
345
83
Награды
2
27
Эквестрия
  • Золотая медаль 213
  • Neh
2 Дядя Миша:
А можно вкратце какие там основные различия в pm_move?
 

Донат - Операционные расходы

Итого
1 191.00 $
Цель
1 300.00 $
Донат завершается:

Доноры Красавчики

Новые сообщения

Пользователи онлайн