Обзор Crystal Space
(cs18_001)
В обзоре
Genesis3D Anti пишет, что не видит достойной альтернативы этому движку.
Я считаю, что такая альтернатива существует, это Crystal Space
- бесплатный, мультиплатформенный движок с открытыми сорцами . CS реализует
все возможности Дженезиса и в придачу ещё столько же.
CS делает не какая-то одна фирма, а множество разработчиков со всего мира.
Делают они его уже довольно долго - с 97 года и всё ещё не добрались до первой
версии. Начинатель и глава проекта Jorrit Tyberghein. Он 4 года назад
опубликовал начальную версию движка, с тех пор к проекту подключилось несколько
сотен программеров. Среди них есть пиплы из Бельгии, Америки, Японии, даже Русские!
Возможности и архитектура
Движок (csEngine)
- CS изначально портальный движок (как Unreal). (Для справки: "портальный"
обозначает алгоритм определения видимости, используемый движком, а совсем
не наличие гиперпространственных телепортеров в играх, построенных на CS :)
С помощью порталов в CS реализуется много интересных фич. Например прозрачность,
зеркала, небо. Порталы могут хранить собственную матрицу трансформации и вести
в другую часть уровня или в совсем другой уровень. Поверьте, это выглядит
классно: посреди комнаты висит прямоугольник, через который видно совершенно
другой уровень.
- В CS реализуется не классический портальный алгоритм: сектора невыпуклые.
Для сортировки и отбрасывания невидимых граней внутри сектора используется
сочетание Octree, BSP деревьев и C-Buffer'a.
- Как всегда 6 степеней свободы.
- Интегрированный движок для работы с ландшафтами (теперь у вас есть не только
дворики Half-Life!).
- Двигающиеся объекты и скриптовая система.
- Статическое, псевдо-динамическое и полностью динамическое цветное освещение.
- Поддержка скелетных meshей, с LOD(Уровень детализации) упрощением на расстоянии.
- Поддержка 2D и 3D спрайтов, систем частиц (этих самых спрайтов).
- Динамические Гуро-затененные небесные сферы, также возможны Скайбоксы.
- Кривые Безье поверхности с динамическим упрощением на расстоянии (Интересно,
что эта фича в Crystal Space появилась, когда ещё не было QueakeIII)
- Поддержка нескольких камер, можно делать игры и от первого лица (Quake,
Unreal, Doom) и от третьего (Tomb Rider, Unreal).
- Все карты и данные хранятся в ZIP архивах.
- Мощный текстовый формат файла
- Поддержка библиотек часто используемых текстур.
2D/3D рендерер
- Windows версия поддерживает Direct3D.
- OpenGL идёт под GNU/Linux, BeOS, MacOS/9, OS/2, и Windows.
- Glide идёт под GNU/Linux and BeOS.
- Софтварный рендеринг.
- Перспективное наложение текстур.
- Работа в 8 битном цвете, 15/16 битном и в 32 битном!
- Мипмеппинг.
- Размеры текстуры должны быть степенями двойки, но текстура не обязательно
квадратная.
- Процедурные текстуры (Это опять таки, как в Unreal), сейчас поддерживаются
плазма, небо, огонь и вода. Можно создавать свои.
- Можно по-разному накладывать текстуру на полигон: двигать, вращать, растягивать.
- Прозрачные текстуры.
- Цветной объемный туман.
- Корны вокруг фонарей.
Также в CS входят: библиотека утилит, поддерживающая работу с ИНИ-файлами,
ZIP архивами, динамическими библиотеками и массивами; VFS - Виртуальная Файловая
Система - интерфейс позволяющий абстрагироваться от особенностей работы с файлами
на конкретной платформе, позволяющий работать с архивами, как с обычными директориями,
создавать виртуальные директории, объединяющие несколько физических директорий;
Звуковая подсистема; Сетевой драйвер; Скрипты на основе PYTHON.
Архитектурно CS делится на статическую часть - библиотеки и динамически подгружаемую,
вынесенную в плагины.
Все жизненно важные или системно-зависимые части Crystal Space являются библиотеками.
В первую очередь это системный драйвер. Он реализует всю платформенно-зависимую
функциональность движка (не связанную с аудио/видео). Также сюда входит ранее
упомянутая библиотека утилит, геометрическая библиотека, библиотека для работы
с различными форматами графических файлов (JPG, GIF, TGA, PNG, BMP), читалка
карт CS, оконная система, физическая библиотека...
Плагины реализованы с помощью механизма SCF(Shared Class Facility). SCF в чём-то
схож с COM, эта технология создана специально для CS (by Andrew Zabolotny).
SCF как и COM использует понятие интерфейса, который определяется обычным классом
с виртуальными методами на C++, для интерфейса может существовать несколько
различных реализаций. Сейчас в списке плагинов: система проверки столкновений,
консоль, скриптер, файловая система, звуковая подсистема, видео-драйвера, сетевая
подсистема и сам csEngine.
Приложения CS
Вместе с Crystal Space поставляется несколько (десятков) приложений. В первую
очередь это приложения, основанные на самом движке, предназначенные для его
тестирования и демонстрации возможностей. Основное приложение CS - walktest,
оно позволяет совершать прогулки по разным уровням, пользоваться консолью, мочить
стены ракетами :) Мне кажется, что самый большой недостаток CS, это уровень,
который загружается по-умолчанию в walktest (flarge.zip): очень уж он убогий.
Советую загрузить с homepage Crystal Space другие уровни, которые лучше показывают
возможности движка.
В комплект также входят пара простых программ simple, которые являются примерами
инициализации и использования движка, несколько демок и простых игр, конвертеры
в формат CS из 3DS, Quake и Unreal. Есть в Crystal Space и свой редактор карт
MazEd, основанный на оконной системе CSWS.
Хочется отметить наличие прекрасной документации у CS. Она существует в двух
версиях HTML - для Windows и TXI - для Linux. Документация включает описания
приложений, библиотек, плагинов, учебники, документы по теории CS. Отдельно
присутствует Справочник по API, который занимает аж 11 (одиннадцать!) мегов.
Есть также немаленький файл истории, в котором по дням расписано, что и куда
было добавлено, что было исправлено, а что убрано.
Где взять и как использовать
Официальная страничка Crystal Space - crystal.linuxgames.com,
здесь вы можете скачать последний релиз движка, посмотреть скриншоты (их много),
почитать документацию. Страничка проекта CS на SourceForge - sourceforge.net/projects/crystal,
здесь вы можете скачать последнюю рабочую версию CS.
Crystal Space - проект с открытыми исходными текстами, который распространяется
по лицензии LGPL (GNU Copyleft license). Это значит, что вы можете использовать
его в своих программах бесплатно, но исходники движка должны входить в поставку
вашей программы.
В итоге имеем вполне конкурентноспособный продукт, который может быть использован
при разработке игры или другого 3D приложения.
Андрей "Storm" Цыганков <storm3d@mail.ru>
|
 |
 |
|