HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Компьютерные игры > Обзоры > Обзор Cafu Engine
Билд от 27.04.2019
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32319
Нанёс повреждений: 392 ед.

Рейтинг



Обзор Cafu Engine

Информация

Оф. сайт: https://www.cafu.de
Создаётся с 2007-го года. Мультиплатформенный 3D движок.
Использовался исследовательскими лабораториями США для оценки эффективности визуальной памяти пилотов (?)

Цитата из Вики:

Цитата:
The Cafu Engine has been used by the United States Air Force's Research Labs for Human Effectiveness in a study about the visual working memory of pilots.[4] It has also been used in multiple studies and research projects that simulate artificial lighting in urban environments and examine how that lighting is perceived by humans and influences the nocturnal orientation of pedestrians and motorists


Знакомство
Движок с открытым исходным кодом, основан на наработках Кармака. С оф. сайта можно скачать уже скомпилированные бинарники, на выбор - 32 бита, 64 бита, Windows, Linux. С запуском у меня возникли некоторые сложности. Во первых стоит отметить, что даже самая свежая сборка от 2019-го года прекрасно работает на WindowsXP, однако требует установки Redist2015 и модификации всех .exe файлов при помощи моей утилиты pe_tool.exe, очередной случай, когда она меня выручает.
Однако при запуске монитор показывает табличку "Неоптимальное разрешение экрана". Правка конфига не даёт никаких результатов, движок упорно запускается в полном экране с неоптимальным разрешением. Если вы с этим столкнулись, то следует дописать в параметр командной строки ключ -n А размеры экрана можно задавать через ключи -x <width> -y <height>. В принципе уже из этих ключей должно быть понятно, что кое-где немецкая логика будет вам интуитивно непонятной. Так, например консоль вызывается по F1, а команда помощи выглядит как help(), причём между круглыми скобками можно вводить аргументы - ключевые слова, если вам требуется помощь по какой-то конкретной вещи.


Менеджера проектов тут нет, а редактор без открытого проекта выглядит скучно.


С открытым проектом, редактор весьма похож на старый недобрый Хаммер. Оконный менеджер сделан на wxWidgets. Для создания браша тоже необходимо переключиться в режим New Brush. Так же есть режимы New Bezier, New Terrain, New Decal по аналогии. Для закрепления браша больше не нужно нажимать Enter. Выделение браша при помощи клика мышкой в рамках его границ не работает. Только через создание рамки, часть которой пересечётся с нужным нам брашем. Для удаления выделенного браша используется кнопка на тулбаре, Delete не работает. Ctrl + D тоже не работает. В настройках редактора горячих клавиш нет. Зато можно закрывать практически все окошки, таскать их по экрану, выдёргивать из посадочных мест и без проблем вставлять обратно, как собственно и должно быть.


Вьюпортов тоже может быть сколько угодно. Правда авто-прилипалка на мой вкус излишне активная, к ней следует приноровиться. Главный минус заключается в том, что 3D-вьюпорт закрыть невозможно. И таскать его тоже нельзя. Зато можно включать разнообразные режимы рендеринга.



Сетка


Геометрия


Рендеринг материалов (без освещения нет бампа и спекуляра, так что это просто вид на затекстуренный уровень)


Сетка лайтмапы (вероятно визуализация лайтблоков)


При запуске компиляции вылезает встроенная консолька. Пресеты для компиляции странные и нелогичные, отредактировать можно только кастомный. Сама компиляция очень и очень неспешная (всё происходит в один поток). К примеру, карта на скриншотах потребовала 23 секунды на BSP, Две минуты 39 секунд на VIS и час тридцать шесть минут на RAD (XashNT за такое время успел бы уже посчитать свет на Кордоне из сталкера).
Автоматический запуск карты не происходит, приходится её выбирать вручную из меню. Результат освещения вы можете видеть на скриншоте ниже.


Светлая окантовка вокруг тени, это глосс.
Так же имеется редактор моделей, общий вид:


Пол является частью редактора, модель - это труба, лежащая на полу. Модели в формате Half-Life, во всяком случае мой p2mv их прекрасно открывает. Так же у статичных моделей есть их исходники в формате .map.

Анализ исходного кода
Этого раздела нет в других обзорах, поскольку те движки не используют код из Id Tech и, соответственно, их изучение займет более получаса.
А в данном случае мы можем наблюдать как был взят код из Quake2, Quake3, Doom3 и что из этого получилось. Движок использует мультирендерер с максимально поддерживаемой версией OpenGL 1.2. Шейдеров нет. Система материалов взята из Doom3, однако не могу сказать навскидку, насколько полно она поддерживает все особенности материалов из Doom3 и есть ли там нечто новое. Рендерер использует только лайтмапы, динамического освещения я не заметил. Нет даже вспышек от выстрелов и взрывов. За физическую подсистему отвечает Bullet. Компилятор BSP взят от Quake3 с собственным кодом "уничтожения взаимопроникновений брашей", т.е. код, который пытается выполнять работу вместо CSG. Рассчёт видимости основан частично на коде от Q3, частично на каких-то собственных наработках, в частности используется трассировка лучей (?). Радиосити использует реализацию Instant Radiosity из Quake2 и модель Варда, вероятно для симуляции солнечного света. Все компиляторы работают в однопоточном режиме. Есть скриптовой язык Lua, используется для консоли, для конфигурации запуска и вероятно для объектов уровня (замена Doom.Script).
Собственно, главная мысль, которую я хочу донести: нельзя просто взять компиляторы от Quake3, рендерер от Doom3, переделать текстовые форматы на бинарные и надеяться, что из этого получится современный движок. Получится либо CaFu, либо OverDose. В самом идеальном случае - нечто вроде Volatile. Смысл в том, что подобная архитектура очень недружелюбна к современным видеокартам и не учитывает их особенности. Это предостережение для тех, кто может задумывался над тем, что таким образом можно сконструировать движок. К тому же не забывайте, что драйвера адаптируются под старые игры, опознавая их по имени экзешника (камрад Ксерокс не даст соврать). Так что производительность устаревших архитектур может вытягиваться хаками в драйвере.

Выводы
В своём текущем виде движок непригоден ни для чего. Даже странно, что его могли как-то использовать. Но вот эта мысль, что внутри основного окна редактора все окошки можно таскать и настраивать как угодно, она правильная. К сожалению редактор не запоминает то, как мы настроили окна, поэтому после смены редактируемой карты раскладка возвращается в исходное состояние.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 203899

Старое сообщение 04-09-2021 12:57
-
xrcore_cpu
Новичок

Дата регистрации: Sep 2020
Проживает: Санкт-Петербург
Сообщений: 13
Возраст: 21

Рейтинг



Честно говоря, посмотрев исходный код движка не увидел намека на код от идтеков. Скорее писалось под вдохновением от них + сорс

Сообщить модератору | | IP: Записан
Сообщение: 203902

Старое сообщение 04-09-2021 15:53
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32319
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
xrcore_cpu писал:
не увидел намека на код от идтеков

Там все переменные назвали по своему и красиво завернули в классы.
Я смотрел на алгоритмы.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 203904

Старое сообщение 04-09-2021 15:55
-
xrcore_cpu
Новичок

Дата регистрации: Sep 2020
Проживает: Санкт-Петербург
Сообщений: 13
Возраст: 21

Рейтинг



Цитата:
Дядя Миша писал:
Там все переменные назвали по своему и красиво завернули в классы.
Я смотрел на алгоритмы.

Т.е. переименовали методы и засунули в классы как в одном движке нашего форумчанина?

Сообщить модератору | | IP: Записан
Сообщение: 203906

Старое сообщение 04-09-2021 16:00
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32319
Нанёс повреждений: 392 ед.

Рейтинг



Дело не в том, что они там переименовали. Они это делали не с целью что-то спрятать, а чтобы вся кодобаза была в едином стиле. Там и своего кода хватает, например. Какой-то удалятор взаимопроникновений брашей.
Да и в радиосити тоже всякое. Но я вижу что послужило им базой.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 203907

Старое сообщение 04-09-2021 17:43
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
xrcore_cpu писал:
Т.е. переименовали методы и засунули в классы как в одном движке нашего форумчанина?

У нас на форуме были ещё какие-то движки, помимо ксаша и волатилы?

Добавлено 04-09-2021 в 16:47:

Цитата:
Дядя Миша писал:
Но я вижу что послужило им базой.

Ну так это и называется "вдохновлялись". Ты, похоже, неправильно выразился. Не код был взят, а идеи. Это как раз тот случай, когда скармливаешь движку те же ресурсы, что и, скажем, ку3 - а ошибки другие (либо их нет вообще).
Волатила, как все знают, сделана по тому же принципу - берём идеологию id tech и творчески переосмысливаем (где-то сильнее, где-то слабее, где-то вообще меняем подход). В итоге получается очень привычный для нашего комьюнити продукт, но с более широким набором фич, и адаптированный под нужды конкретных или планирующихся проектов. Ну и кодовая база, с комментариями, читабельная и в едином стиле - это прекрасно.

Кстати, судя по набору фич этого Кафу - очень интересно наблюдать конвергенцию мышления разработчиков в конце нулевых. Тут и редактор "в стиле хаммера", и луа-скрипты, и внешний физдвиг, и текстовая система материалов в файлах. Жаль, что движок в итоге не был доведён до приличного состояния, чтобы делать на нём игры.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 203911

Старое сообщение 04-09-2021 20:47
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32319
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
XaeroX писал:
Не код был взят, а идеи.

ну если алгоритмы остались прежними, как это называется?
С одной стороны, если выбранный алгоритм работает хорошо, зачем же его менять. Однако в CaFu мы видим обратную ситуацию. Те же самые алгоритмы, которые справлялись в ку3 и д3, здесь совершенно не помогают.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 203914

Старое сообщение 05-09-2021 06:52
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 03:42. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Компьютерные игры > Обзоры > Обзор Cafu Engine
Билд от 27.04.2019
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024