Visual Basic - мастерская разработчика
Библиотеки

DirectX

Обзоры
DirectDraw
Direct3D
DirectX Audio
DirectPlay
DirectInput
Fido Topics
SourceCode
Tools&Libs

OpenGL

Статьи и учебники
Fido Topics
SourceCode
Tools&Libs

Архив по Glide

Движки

Обзоры
Учебники
SourceCode
Downloads

Создание игр

Ваши игры

Обзорные статьи
Учебники
Fido Topics
SourceCode
Download

Stuff

Программер-Чат

Псевдо-FTP
Disclaimer
Оффтопик

 

Обзор Crystal Space

(cs18_001)

В обзоре Genesis3D Anti пишет, что не видит достойной альтернативы этому движку. Я считаю, что такая альтернатива существует, это Crystal Space - бесплатный, мультиплатформенный движок с открытыми сорцами . CS реализует все возможности Дженезиса и в придачу ещё столько же.

 

CS делает не какая-то одна фирма, а множество разработчиков со всего мира. Делают они его уже довольно долго - с 97 года и всё ещё не добрались до первой версии. Начинатель и глава проекта Jorrit Tyberghein. Он 4 года назад опубликовал начальную версию движка, с тех пор к проекту подключилось несколько сотен программеров. Среди них есть пиплы из Бельгии, Америки, Японии, даже Русские!

SkyBox'ы, водичка...  Тут вам не дворики!  Зеркала

Возможности и архитектура

Движок (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>

 


Проект
Создание Народного Учебника по OpenGL

Участвовать!
Поиск
Найдите статью или файл:


Рассылка
Новости сайта
La Vision в вашем почтовом ящике








Программирование на С++ Delphi и Паскаль
Центр демо-искусства в России