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

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


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

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

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, 19:57  #2
xDShot
xDShot
Полковник
Регистрация: 20.12.2010
Адрес: Санкт-Петербург
Возраст: 22
Сообщения: 1,287
Замечания: 2


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

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


По умолчанию

2 GNU/Hurt: ну значит я не понял твоего вопроса.
Дядя Миша вне форума Ответить с цитированием
Старый 12.09.2017, 17:57  #15
FaL_DemonoZa
FaL_DemonoZa
Loading...
Регистрация: 16.06.2006
Адрес: Магнитогорск, Россия
Возраст: 28
Сообщения: 114


По умолчанию

Возможна ли на goldsource реализация движения vanila quake 3? https://www.youtube.com/watch?v=eEsSJd1UIDU
Сложно ли на goldsource сделать пошаговую игру вроде XCOM?
FaL_DemonoZa вне форума Ответить с цитированием
Старый 12.09.2017, 18:16  #16
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,242


По умолчанию

2 FaL_DemonoZa: берёшь pm_move из кутри и адоптируешь к халфе. Там ничего сложного.
Дядя Миша вне форума Ответить с цитированием
Старый 12.09.2017, 18:30  #17
FaL_DemonoZa
FaL_DemonoZa
Loading...
Регистрация: 16.06.2006
Адрес: Магнитогорск, Россия
Возраст: 28
Сообщения: 114


По умолчанию

[ Цитата ] Сообщение от Дядя Миша: 2 FaL_DemonoZa: берёшь pm_move из кутри и адоптируешь к халфе. Там ничего сложного.
Ты уверен что в этом загвоздка? Мне так кажется что разницы в коде нет а вот разница в движении огромная. Даже в твоём ку1 ремейке движение не соответствует ку1.
FaL_DemonoZa вне форума Ответить с цитированием
Старый 12.09.2017, 19:01  #18
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 412


По умолчанию

2 FaL_DemonoZa:
всё движение как раз реализовано в PM. Это сокращение от PlayerMove.
a1batross вне форума Ответить с цитированием
Старый 12.09.2017, 19:16  #19
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,242


По умолчанию

[ Цитата ] Даже в твоём ку1 ремейке движение не соответствует ку1.
Уже соответствует
Дядя Миша вне форума Ответить с цитированием
Старый 12.09.2017, 19:24  #20
FiEctro
FiEctro
Регистрация: 28.07.2006
Адрес: Эквестрия
Возраст: 26
Сообщения: 16,401


По умолчанию

2 Дядя Миша:
А можно вкратце какие там основные различия в pm_move?
FiEctro сейчас на форуме Ответить с цитированием
Ответ

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

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

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

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



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


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