Когда я первый раз
увидел на что этот движок способен, я чуть не упал со стула!
Когда я увидел насколько
просто это все программировать, я все-таки упал!!!
Я готов прыгать во
все стороны и кричать от радости на каждом углу, что Genesis3D - рулез
фарева и все такое... Но я не стану это делать. Потому-что я лучше
сяду за комп и буду прогать, прогать, прогать...
О чем это я? Ах,
да! Познакомьтесь с профессиональным 3D-движком программирования игр
Genesis3D от компании Wild Tangent
Только что вы прослушали мои восхищенные вопли по поводу этого движка, но давайте
разберемся за счет чего этот движок их удостоился.
Во-первых, этот движок
написан на Си и для Си, поэтому чтобы его прогать вам нужен будет официально
поддерживаемый Wild Tangent компилятор VC++
Во-вторых, этот движок
работает с несколькими графическими API:
- Glide -
рекомендуемые API, движок под них работает лучше всего
- Direct3D -
дает полную совместимость со всеми акселераторами
- 3D NOW! -
для процессоров AMD
- ...и наконец самые
рулезные API всех времен и народов - софтваре эмулейшн!!!
Работа с этими API
сделана в виде драйверов (физически в виде одной dll для каждого драйвера).
Эти dll берут всю работу по рендерингу на себя, поэтому вам остается
лишь творить свои миры!
Идем дальше.
Движок работает с картами уровней в собственном формате, основанном на BSP-trees.
Вместе с движком прилагается собственный редактор карт - очень рулезная
штука. Но кроме этого, можно создавать уровни в некоторых редакторах от
Quake.
Genesis3D оперирует
моделями персонажей и предметов в собственном формате. Чтобы создать
свою модель, вам потребуется 3DStudio MAX версии 2 или 3 с установленным
Character Studio 2.x, а также плагин-конвертер, поставляемый вместе
с Genesis3D
Скорость рендеринга
движка действительно высокая. На моем p166/32 + Voodoo Graphics Genesis3D
показывал 27-30 FPS, что чуть пониже Quake2 при том, что Genesis поддерживает
бОльшее количество эффектов, чем энжин Quake2.
Теперь вот вам официальный
список того, что поддерживает Genesis3D:
- Исключительно
быстрый рендеринг
- Сферическое освещение
- Симуляция физики
твердых тел для объектов игрового мира
- Пре-вычисляемое
освещение для анимирования интенсивности света и симулирования каустики
- Использование
BSP-trees для быстрого исключения невидимых поверхностей
- Динамическое RGB-освещение
- Динамические тени
- Динамический туман
- Динамические зеркала
- Динамические водные
эффекты
- Динамические эффекты
текстур, такие как процедуры, анимация, смешивание и морфинг
- "Прозрачная" геометрия
мира для создания окон или других эффектов
- Сферический маппинг
неба для создания целостного горизонта
- 3D-позиционирование
звука с эффектами ослабления от расстояния
- Расширяемые пользователем
специальные эффекты и системы частиц (particles)
- Шрифты Windows
или на основе растровых изображений для создания надписей
- Редакторы для
создания уровней
- Встроенная система
ключевых кадров для анимирования геометрии уровней
- Быстрая рекомпиляция
уровней в редакторе
- Конфигурируемая
система элементов в редакторе
- Встроенная система
физических система для создания взаимодействий объектов прямо в редакторе
- Целостные "мягкокожие" полигональные
персонажи
- Автоматическое
обрезание невидимых поверхностей на моделях для повышения быстродействия
- Инструменты для
быстрого перевода моделей из формата 3DSMax в формат Genesis3D
- Неограниченное
количество используемых материалов в моделях
- Материалы моделей
могут анимироваться
- Анимация персонажей
базируется на иерархической или не-иерархической скелетной системе
- Произвольное измерение
кадров для контроля анимации моделей
- Распределение
анимации между моделями
- Анимации могут
смешиваться или отображаться частично
- Анимация моделей
оптимизирована, чтобы занимать меньше места
- Поддержка Glide,
Direct3D, оконная и полноэкранная программная эмуляция для машин
без 3D-акселератора, оконная и полноэкранная программная
эмуляция с использованием технологии 3D NOW!
- Встроенное кэширование
текстур и световых карт
- Поддержка видеокарт
с возможностью мультитекстурирования
- Наложение 2D-изображений
- Виртуальная файловая
система позволяет доступ к коллекциям файлов, файлам памяти, файловой
системе DOS, а также пользовательской системе
- Математическая
поддержка векторов, матриц, кватернионов
- Простая обработка
сетевых протоколов для мультиплеера
- Быстрая обработка
столкновений
- Возможность загрузки
нескольких уровней и переключения между ними
- Несколько видов
из камер могут быть отображены на одном экране
- Высокоуровневые
API для добавления собственных объектов пользователя
Ну что, впечатляет?
Поверьте, это будет впечатлять еще больше, когда вы начнете программировать!
Сколько это чудо
стоит? Так вот, это стоит НИСКОЛЬКО !!!!
Это не шутка! Компания WildTangent создала графический engine, равный по производительности
коммерческим и подарила его всем нам! Вместе с разрешением использовать его
в шароварных и коммерческих продуктах. Вместе с исходным кодом. Да-да, вы не
ослышались. В комплекте с движком вас ждет его открытый код и вы можете сами
посмотреть как делается какая-нибудь фича. Но это еще не все. В "одном флаконе" вы
еще найдете полнофункциональную 3D-стрелялку aka "Замочи Бота" с возможностью
сетевой игры. Эта стрелялка идет вместе с исходным кодом, из которого можно
подцепить очень много чего интересного.
Подытожим, что же
мы получаем. Во-первых, сам движок, состоящий из набора .h и .lib (есть
еще вариант движка в отдельной .dll, так чтобы не компилировать его
вместе с вашей программой). Во-вторых исходный код движка. Далее идут
редактор уровней. Редактор/конвертер моделей. Вьювер моделей. Конвертер/библиотекарь
текстур. Плагины для 3DS MAX. Игра GTest вместе с исходным кодом. Документация
ко всему этому. +в качестве рекламы некий WildTangent SDK (что-то для
Интернета)
Соответственно "весит" все
это порядка 30мб.
У Genesis есть свой
сайт - http://www.genesis3d.com
На этом сайте вы можете еще раз прочитать о преимуществах движка, FAQ, пообщаться
в форуме, а самое главное - СКАЧАТЬ дистрибутив движка. Учитывая внушительные
размеры файла, дистрибутив возможно скачать по частям. Genesis3D не является
какой-нть бетой, а полноценной 1.1 версией (на сегодняшний день)
Однако не все так
радужно. Даже у этого движка есть недостатки.
Единственной ценой,
которую придется вам платить за использование движка Genesis3D - это
демонстрация при инициализации движка заставки Genesis3D. Но в отличие
от многих других подобных вещей, заставка сделана очень стильно и максимально
будет вписываться в вашу игру. (Похоже на splash при инициализации
glide у 3Dfx-видеокарт).
Движок в первую очередь
предназначен для создания игр подобных Quake. Пойдет он и для создания
игр типа Tomb Raider. Однако как признаются разработчики, engine испытывает
определенные трудности при рендеринге открытой местности. То есть скорость
рендеринга при отображении скажем, лунной поверхности как в Battle
Zone будет мягко говоря неважная. Максимум на что вы можете рассчитывать
- это открытые "дворики", как в Half-Life.
Документация к Genesis3D
далека от совершенства. Даже более - она далека от завершения. На сегодняшний
день SDK не имеет полного описания всех API движка. Будем надеятся,
что WT это пофиксит. Впрочем на что же тогда этот сайт?? :o)
Ну что-ж, в заключении
осталось сказать, что среди всех остальных известных бесплатных движков
Я НЕ ВИЖУ достойного конкурента Genesis3D, однако очень надеюсь, что
они появятся ;o) |