Мотор! Доброго времени суток! На моих часах сейчас 23:45 2009-00-00(UTC), и под покровом наступающего дня, я хотел бы поговорить с Вами о «open source game and simulation engine». Предлагаю обратить Ваш взгляд в сторону проекта содержащего (не буду говорить мощные) обширные возможности, качественный код и неплохой визуализатор. Не то, что бы потрясающий игровой движок, но являющимся весомым источником, для черпки опыта и набивки рук, а так же механизмом открыто показывающем, что есть что, и для чего, но с условием — Вас не пугает английский язык и Вы не прочь приложить голову. А имя ему Delta3D. Он вроде, как и не игровой, одновременно нагружен, но и одновременно прост. Ну что же я не дав попробовав напиток, разглагольствую о его привкусе, хотя он должен быть Вам знаком. Для начала, позволю себе пару слов о его альма-матре. MOVES, Институт Моделирования, Виртуальных Средств и Симулирования, был основан в 2000, но как академическая программа был создан ещё в 1996году, с запуском «Master of Science program»( «Мастер Научных программ»), в последующем Докторская программа, с 1999. Институт призван сочетать смесь традиционного анализа деятельности Operations Research Department, моделирования(симуляции), обучения, и разработки программного обеспечения Computer Science Department.
У института есть корни в NPSNET Research Group, основанной в 1986. NPSNET изначально дешевый, принадлежавший правительству, SIMNET и DIS совместимый визуальный тренажер. Он широко используется во всём мире и был включена во многие программы «government programs over its lifetime». Институт так же является местом рождения America's Army. Спонсорская помощь выделялась Административной частью ВМС Армии США(кадрового и резервного отделений). America's Army было их первое творение в области использования технологий видео игр для оборонных нужд. Разработка тех пор покинула Институт, но начиная с 2000 года, многие миллионы игроков скачали и сыграли в «Армию США».
Недавние разработки, включают «Extensible Modeling and Simulation Framework (XMSF)», который используется для совместимости M&S систем, а так же в Delta3D Open Source Game-Based Simulation Engine
. Delta3D - это Open Source двигатель, который может быть использован для игр, моделирования ситуаций, или для других графических приложений. Его модульная конструкция включает другие известные проекты Open Source: Open Scene Graph, Open Dynamics Engine, Character Animation Library, и OpenAL. Вместо того, чтобы «похоронить»(утопить в своем коде) основные модули, Delta3D объединяет их в легкий в использовании API - - всегда открывая доступ к основным компонентам. Что обеспечивает на высоком уровне API, одновременно позволяя конечному пользователю, опцианально, находится на низком функциональном уровне. Все основные зависимости является кросс платформенными, неофициально поддерживается на Mac OSX; официально же разработан и опробован на Windows XP с помощью Microsoft Visual Studio и Linux с помощью GCC. В частности, Delta3D — это полностью специализированный игровой движок , подходящий, для различных проектов, включая тренировку(обучение), образование, визуализацию(моделирование), развлечение и производственную сферу. Delta3D предоставляет и другую специализацию, подходящую для Моделирования, Имитирования и «DoD communities» [сообществ], таких как High Level Architecture (HLA) [Архитектура Высокого Уровня] , After Action Review (AAR) [Последующее Рассмотрение действий] , поддержка крупномасштабных местностей, и SCORM Learning Management System (LMS) integration. Основная цель Delta3D создание единого гибкого Программного Интерфейса Приложений (Application Programming Interface), с базовыми элементами, необходимыми для всех приложений визуализации. В дополнение к основным компонентам, Delta3D предоставляет целый ряд инструментов, таких, как Simulation(имитирование, симуляция), Training(тренировка, обучение), and Game Editor (STAGE)[игровой редактор], the BSP Compiler, the particle editor(редактор частей), a stand-alone model viewer(просмоторщик отдельных моделей), and a HLA Stealth Viewer. На рис. 1 представлена схема «индигриентов» приложений, основанныз на Delta3D. Этот проект основан на стандартных библиотеках С++ за рядом исключений, обоснованных спецификацией. Это упрощает понимание и взаимодействие с «мотором». Как уже говорилось основная цель Delta3D это предоставление единого гибкого API с основными элементами нужными для всех приложений визуализации. В дополнение к основным компонентам, Delta3D предоставляет ряд инструментов, таких как Моделирование, Обучение и Редактор Игр(STAGE), BSP компилятор, редактор частиц, автономный просмотр моделей, и HLA Stealth Viewer. Кроме того, Delta3D имеет большой архитектурный Suite, который интегрирован во всем двигателе. Этот набор включает в себя структуры, такие как pplication Base Classes (ABC) для запуска; Dynamic Actor Layer (DAL) for Actor Proxies and Properties; сигнал / слот, для поддержки прямого метода linking; Игровой Менеджер (GM), для управления актером; pluggable terrain tools для чтения; рендеринг, а также украшения местности; и низкоуровневые сообщения для связи actor. dtCore Содержит все общие основные функции. Входные устройства отображения (клавиатура, мышь, джойстик, треккеры) Модели движений (Fly, UFO, Walk, Orbit, First Person) Рендеринг окружающая среды (облака, туман, skyboxes, время суток) Система воздействия частиц (дым, взрывы, пользовательские) Рендеринг местности (Бесконечная Процедурная Местность, Heightfield-основа местности) Возможность использования следующих типов файлов(загрузка): .3dc, .3ds, .ac, .dw, .flt, .geo, .ive, .logo, .lwo, .lws, .md2, .obj, .osg, .tgz, .x, .zip .bmp, .dds, .gif, .jpg, .pic, .png, .pnm, .rgb, .tga, .tiff, .txp .wav Управление камерой (поле зрения, штатив) Многократная поддержка камер Поддержки Multiple window Физика (твердого тела, обнаружение столкновения Auto-ограничивающей формы) Open GL Освещение Bezier path nodes(воспроизводит закон Безье) Полная поддержка OpenGL 2.0 GLSL Vertex and Fragment Shaders dtABC High-level Application Base Components(Основные компоненты Приложений). Полезно для некоторых приложений. Применение шаблона Интерфейс погоды (видимость, облачность) Окно интеграции с Fast Light Toolkit (FLTK) Widget класс для облегчения интеграции с другими инструментами окна dtHLAGM Интерфейс к сети HLA. Интегрируется внутренние компоненты с пользователем RTI. Система преобразования координат Интерфейс детонация HLA организацией интерфейса dtTerrain Обеспечивает основу для осуществления загрузки местности , рендеринга и отделочных работ(декораций). Подключаемые архитектуры для подготовки рендеринга, чтения, и декораций. Paged плитки местности, графические утилиты и генерация шума DTED читатель SOARX визуализации с непрерывным уровнем детализации Процедурное размещение растительности - поддержка классификации растительного покрова (LCC) Image Overlay Decorator - поддержка GEOTIFF dtDAL Dynamic Actor Layer обеспечивает общую инфраструктуру для создания, доступа и манипулирования Субъектами.. Прокси Субъекта и архитектура собственности субъекта Управление библиотекой (субъект реестра) Проекты и карты загрузки (XML) Субъект типов собственности: звук, рельеф, характер, текстуры, статические Mesh, системы частиц, перечисление, субъект, цвет, Vec2/3/4, String, Int, Double, и более База движка прокси субъекта dtGUI Прямое взаимодействие с графическим интерфейсом Crazy Eddie's. Холст интерфейса и визуализации Extensisble шкуры интерфейса По умолчанию графический интерфейс искусства dtGame Обеспечивает полную архитектуру для построения сложных игр и подготовки приложений. Game Manager (GM) это высокоуровневая инфраструктуры для общения между участниками(субъектами) и компонентами, на «месте» или в клиент-серверной среде. Игровые субъекты и прокси GM компоненты архитектуры с поддержкой плагинов - по умолчанию сообщения процесса, правила компонентов и регистраторы компонентов Сообщение инфраструктуры - сообщения и параметры factories Сеть агностик - поддержка одного клиента, клиент / сервер, и воспроизведения Сообщение для потоковой передачи, приема и записи сообщений Клиентскую база и сервер игрового менеджера dtUtil Основные утилиты объектов, предназначенные всему Delta3D. Файл регистрации и Xerces XML утилитами Текстура, шумы, матрица, и строковые утилиты Библиотечный менеджмент Типы безопасных перечислений dtAudio Обеспечивает высокоуровневую функциональность для воспроизведения звука. 2D/3D звуков Полный контроль за звуками (прибыль, высота, позиция, воспроизведение, стоп, пауза, перемотка и т.д.) Эффект Доплера Эффективное использование аудио-аппаратов. dtNet Обеспечивает высокоуровневый API для использования в многопользовательских сетях. Клиент / сервер архитектура Надежная / ненадежная коробка передач пакетов dtPython * Предоставляет доступ к API, через интерфейс сценариев Python. Полный доступ к API * требует дополнительной загрузки Python и Boost STAGE - Моделирование, Обучение и Редактор Игр Полный визуальный редактор для создания вашей 3D карты. STAGE Редактирование карт - проекта ресурсов и управление библиотекой Визуально создавать и манипулировать субъектами Редактор свойств и связей с субъектами Undo / Redo Разделение экрана окнах - Перспектива плюс сверху, сбоку, боковой орфографический просмотр Wireframe, освещения и режим текстурированния Перенастройки пользовательского интерфейс с Undo / Redo Поиск субъектов и глобальное управление субъектами Текстура, сетка, звук, и частицы браузеров Тесты Delta3D предоставляет широкий набор примеров приложений и юнит-тестов, для быстрого старта. 29 примеров тестовых приложений, охватывающих почти все аспекты Delta3D Более 22000 линий юнит-тестов Cross Platform Может быть использован на разных компиляторах и операционных системах. Поддерживает Windows, Linux, и Mac OS X Использование CMake для создания make файлов и настройки проекта/решений. Использование Scons скрипта, для всех платформ Утилиты Графический редактор эффектов частиц - обеспечивает удобный графический интерфейс для отображения и редактирования эффектов частиц. 3D Model Viewer - простой в использовании, автономный просмоторщик для просмотра 3D-моделей. BSP Compiler — загрузка, компиляцтя, и сохранение основных Объектов в BCP оптимизированный файл HLA Graphical Stealth Viewer — простой 3D репрезентатор (предпросмоторщик, representation) всех entities в HLA network. «How to Get Started With Delta3D»(Как начать работать с Delta3D). Delta3D Tutorials содержит массу обучающих программ, которые раскрывают все её аспекты, а так же дают базовые знания С++. Delta3D содержит более 30 примеров, основанных на нём приложений; более 20,000 линий юнит-тестов, которые показывают, фактическое использование системы под delta3d/tests. Многие из этих учебников, - это работоспособные проекты (в комплекте с исходным кодом). Т.е. если у Вас возникли трудности, можете обратится, «к плодам» проекта. Как начать работу с Delta3D. Есть так много учебников, демо-приложений и тестовых примеров, что иногда - они даже подавляют новичков в Delta3D. Данный раздел, предназначен для новичков, в руководстве содержится наиболее важные материалы. Следующие вопросы выделены, поскольку они обеспечивают обзор основных архитектур Delta3D, включая такие понятия, как Субъекты(Actors), Свойства Субъектов(Actor Properties), Менеджер Игр(the Game Manager), Компоненты Игры(Game Components), Сообщения Игры(Game Messages) и Ядро Моделирования(the Simulation Core). После завершения изучения, этого раздела, Вы будете достаточно хорошо подготовлены, для начала создание собственных приложения Delta3D, и изучения других учебников и примеров приложений. 1.Game Manager Tutorial — Узнайте о Менеджере Игр, Субъектах Игр, Компонентах и Сообщениях Игр. 2.Creating an Actor Tutorial — Узнайте о Субъектах , Свойствах Субъектов, и Прокси. 3.STAGE Tutorial - Узнайте, как использовать редактор уровней Delta3D, для создания субъектов и их мест, на карте. 4. Tank Tutorial - Пошаговый обзор создания приложения в Delta3D/demos/TankTargetTutorial. Это приложение, является хорошим примером с HUD Компонентом, Компонентом Вход, пользовательскими типами субъектов, обмена сообщениями и вершинными & фрагментарными шейдерами. 5.Simulation Core & Stealth Viewer Build Guide – обзор, инструкции по загрузке, настройке и созданию Ядра Моделирования и Stealth Viewer часть Delta3D-дополнений. Он также объясняет, как создать(построить) dtPhysX. 6.IITSEC 2008 Simulation Core Tutorial - приводятся подробные сведения об особенностях Ядра Моделирования Delta3D и обзор, ключевых элементов Driver Demo. Представленного, на IITSEC 2008 в Орландо, Флорида: Дек 1. 7.Fire Fighter App - under Delta3D/demos/fireFighter - ещё один пример приложений GM с HUD, Вводом и Субъектами, которые также представлены несколькими картами, задачами субъектов, LMS интеграцией, главным меню, звуковыми и голосовыми сигналы. 8.Test AAR - under Delta3D/examples/testAAR - ещё один пример приложения GM с HUD & Вводом, который показывает, как использовать записи и воспроизведение. 9.Driver Demo - under delta3D-extras/SimulationCore/trunk/demos/DriverDemo - полностью функциональный виртуальный тренажёр основанный на Ядре Моделирования. Он, всё ещё в разработке, чтобы получить дополнительную информацию, обратитесь к Driver Demo Thread. Одними из первых приложений были Cleared Hot и FOPCSIM. Например Cleared Hot(2003-2006г), моделирование вертолёта AH-1W, для тренировки, выполнение авио — разведки и авиоподдержки, во время наступление пеходных отрядов в пустыни. FOPCSIM(2001-2001г) программа — тренажёр, для корпусов морской пехоты США, для обучения наведения артелерийского огня, и его корректировки. За подробностями прошу на официальный сайт. Хорошие и основательные Delta3D Tutorials, не дадут пропасть человеку, с минимальными знаниями английского языка. Не мне судить, но в итоге не плохой «прибор», да к тому же, а вернее в первую очередь open source. Игровых движков под GPL и иже с ним, можно по пальцем пересчитать(по крайней мере известных мне), конечно же, если не брать в расчет готовые игровые проекты, которых предостаточно. Пробуем, если понравилось — нашли еще одну опору, нет — громко материтесь в мой почтовый адрес. Ссылки: Все изоображения, использованные в статье 2001 — 2006 гг [1]Delta3d http://www.delta3d.org [2]Wikipedia http://www.wikipedia.org [3] MODSIM.org Available from: http://www.modsim.org [4] OpenSceneGraph http://www.openscenegraph.org/ [5] Open Dynamics Engine http://ode.org/ [6] Open Audio Library http://www.openal.org/ [7] Character Animation Library 3D http://cal3d.sourceforge.net [8] ReplicantBody http://www.vrlab.umu.se [9] Python Software Foundation http://www.python.org С уважением, «бот» Rockslinux. P.s. no pasaran! - враги не пройдут! |