| |
Описание
NeoAxis Engine - это игровой движок,
спроектированный для создания игр в практически любых жанрах. Движок также предназначен для создания
3D систем и систем виртуальных реальностей.
Особенности
-
Движок проектируется так, чтобы быть максимально удобным и расширяемым.
-
Благодаря уникальной системе сущностей и системе логики, написание и
интеграция игровой логики проста и прозрачна.
-
Широкие возможности инструментария максимально упростят написание игровой
логики и создание контента. К ним относятся расширяемые редактор ресурсов и редактор карт.
-
В качестве основного языка программирования взят C#
и платформа .NET. Это даёт большое удобство
и высокую скорость разработки. Вы можете писать
дополнительные компоненты на любом .NET
поддерживаемом языке программирования.
Наша главная цель - сделать движок максимально удобным и
простым!
Движок
Поддерживаемые платформы
Система сущностей (Entity System)

Система сущностей - это сердце NeoAxis Engine.
С помощью единой системы сущностей создаётся вся игровая логика.
В каждой игре или приложении присутствует некая система объектов.
В каждой такой системе есть набор объектов и правила их
взаимодействия. По сути, было бы удобно описывать объекты, алгоритмы
их функционирования, способы взаимосвязи с другими объектами неким
единым образом. И, опять же, организовать базу для описания объектов
так, чтобы создавать новые объекты с минимальными усилиями. И при
этом, в большинстве случаев, такая система должна хорошо
ассоциироваться с реальным миром, чтобы можно было легко
отождествлять игру и мир который мы создаем в игре.
Обычно в игре есть мир. Игра делится на уровни. Каждый уровень
живет по правилам мира + по специфичным для этого уровня свойствам.
Сущностью является любой объект игровой логики. Игроки, предметы,
пули и любые другие игровые объекты являются сущностями.
Каждая сущность имеет свой класс и тип.
Класс сущности - это базовый алгоритм поведения сущности. Классы
сущностей пишутся на языке программирования и легко интегрируются в
единую систему. Такая интеграция позволяет расширять редакторы
(редактор ресурсов и редактор карт) без их непосредственного
изменения.
Тип сущности - это фактически набор настроенных свойств класса
сущности. Типы сущностей создаются и настраиваются в редакторе
ресурсов. (.type файлы). Настройка
подразумевает конфигурирование различных свойств объектов (внешний
вид персонажей, максимальное количество жизней и т.д.).
Система
логики (Logic System)
Часто необходимо задавать особую игровую логику на уровнях.
Логику, которая специфична для каждого уровня. Для удобного задания
такой логики придумана система логики. Она позволяет расширять
базовые игровые элементы дополнительной функциональностью.
Программисты пишут базовую игровую логику на языке
программирования, а дизайнеры уровней расширяют её в пределах уровня
с помощью визуальных средств или скриптов.
Поддерживается два способа задания логики на уровнях:
-
Визуальный
Возможность конструировать алгоритмы визуальными средствами не прибегая к
написанию скриптов. Алгоритмы представляются в виде деревьев.
-
Скриптовый
Типичный способ расширения функциональности с помощью скриптов.
Система карт (Map System)
Система карт - это расширение системы сущностей, которая
позволяет позиционировать сущности в пространстве, прикреплять к ним
внешний вид, работать с физическими моделями и т.д. В целом это
набор алгоритмов для реализации 3D мира.
Существуют такие фундаментальные классы, как карта (Map)
и объект карты (MapObject). На карте
располагаются объекты карты и функционируют. Объект карты - это
расширенная сущность для работы в системе карт.
Система прикрепляемых объектов (Attached
Objects System)
Система прикрепляемых объектов позволяет прикреплять к сущностям
различные объекты:
-
Сущности
Возможность прикреплять сущности к другим сущностям. Таким образом
просто создавать сложные динамические конструкции. К примеру, вы можете
легко прикреплять на вертолеты вращающиеся башни, а на них в свою очередь
пулеметы. Прикреплять мечи и доспехи к персонажам также рекомендуется с
помощью такой системы.
-
Модели
-
Системы частиц
-
Билборды
-
Ленточные лучи (ribbon trails)
-
Источник света
-
Внутриигровые пользовательские интерфейсы
-
Звуки
Объекты можно прикреплять к телам физической модели, костям
моделей и просто фиксировать к сущности.
Рендер

В качестве рендера используется движок
OGRE
Платформа
-
Поддержка
Direct3D и OpenGL
Материалы и шейдеры
-
Мощный язык для определения материалов в отдельных файлах (.material файлы)
-
Поддержка вершинных и фрагментных программ (шейдеров). Движок поддерживает
как низкоуровневые программы, написанные на ассемблере, так и программы,
написанные на языках высокого уровня (Cg, HLSL,
GLSL).
-
Поддержка множественных техник материала. Вы можете разработать несколько
альтернативных вариантов материала, а движок автоматически будет
использовать лучшие из тех, которые поддерживаются видеокартой.
-
Поддержка LOD'ов для материалов, что позволяет увеличить производительность.
-
Загрузка текстур из файлов PNG, JPEG, TGA, HDR, BMP, PSD и DDS, включая такие
форматы как одномерные текстуры, объемные текстуры, кубемапы и
сжатые текстуры (DXT/S3TC).
-
Per-pixel lighting
-
Normal mapping
-
Parallax mapping
-
Cubemap reflections
64-bit High Dynamic Range рендеринг
-
Блум
-
Адаптация зрения
-
Tone mapping
Тени
-
Shadow maps
-
Мягкие тени
-
Самозатетение
-
Корректные тени от альфа тест объектов
-
Стенсильные тени
Модели
-
LOD'ы. Ручные и
автоматически генерируемые.
-
Батчер статической геометрии
Анимация моделей
-
Смешивание нескольких анимаций с разными коэффициентами
- Ручное управление костями
-
Софтверный и аппаратно-ускоренный способы расчета
- Конфигурирование режимов интерполяции, компромисс точности и скорости
Сцена
- Indoor/outdoor портальная система.
Возможность смешивать indoor и
outdoor пространства.
- Окклюдеры
- Octtree разбиение сцены
-
Разнообразные техники рендеринга теней.
Проективные shadow maps и стенсильные техники.
-
Развитые возможности выборки объектов из сцены
Эффекты
-
Формат файлов для задания систем частиц (.particle файлы)
-
Поддержка систем частиц, включая легко настраиваемые эмиттеры и аффекторы.
-
Объединения частиц
Движок автоматически использует объединения частиц для
увеличения производительности.
-
Поддержка skyboxes, skyplanes и skydomes.
-
Compositor-система для простого создания
постэффектов
-
Формат файлов для задания постэффектов (.compositor файлы)
- Ленточные лучи (ribbon trails)
- Автоматическое управление прозрачными объектами (управление порядком
отрисовки и настройками буфера глубины).
Другие особенности
-
Возможность ограничивать версию шейдеров
-
Полноэкранное сглаживание
-
Контроль фильтрации: билинейная, трилинейная, анизотропная 2-16x
Физика
-
Абстрактный враппер для физики. Возможность легко имплементировать другую стороннюю физическую
библиотеку.
-
Имплементирован
Ageia PhysX
(необходима лицензия PhysX)
-
Имплементирован
ODE. Расширен
непрерывной проверкой столкновений.
-
Формат файлов для задания физических моделей (.physics файлы)
-
Примитивы: параллелепипеды,
сферы, капсулы,
меши (определяемые пользователем коллизии произвольных форм)
-
Джоинты: hinge, universal, ball, hinge2, slider, fixed
-
Моторы: attractor, geared, servo
-
Линейные и угловые торможения (damping)
-
Разрушаемые джоинты
-
События: столкновение тел,
разрушение джоинта
-
Группы контактов
Определять как взаимодействуют объекты между собой
-
Физические материалы
-
Возможность применять материалы по примитивам
-
Регдоллы
Система пользовательских интерфейсов (UI System)

Система пользовательских интерфейсов представляет собой
расширяемую и унифицированную систему для создания
пользовательских контролов, меню, диалогов, окон и
HUD экранов.
Идея проста. Дизайнер создает в редакторе ресурсов дизайн
контролов, создает экраны игры и размещает на них
ui элементы. Далее программист (или дизайнер уровней)
использует экраны, созданные дизайнером. С помощью средств
программирования или с помощью системы логики работает с ними,
заполняя данными и задавая события контролов.
UI класс - это программный класс, реализующий некоторый базовый элемент управления. Кнопка, чекбокс,
список - это всё примеры ui классов.
UI модель - это объект некоторого
базового ui класса, содержащий в себе
другие ui объекты. Кнопка, меню (с набором
кнопок), окно опций, неделимый HUD экран -
это всё примеры ui моделей. В ресурсах
ui модели представлены
.gui файлами.
-
Формат файлов для задания ui моделей (.gui файлы)
- Каждая ui модель может быть вложена в другую.
Пример 1. Вы создаете меню игры. Меню игры - это отдельная
ui модель. Вы создаете рамку, вкладываете в него
заголовок и размещаете кнопки. Заголовок и кнопки тоже являются отдельными
ui моделями.
Пример 2. Вы можете создать список (ListBox) и в
его элементах размещать чекбоксы, картинки и любые другие контролы.
- UI модели наследуются от ui
классов или от других ui
моделей. К примеру, вы можете создать дизайн базовой кнопки (на основе
класса Button) и потом создать немного другой
дизайн на основе вашей базовой кнопки.
- Базовые ui классы
-
Control - предок всех ui классов. Позволяет задать
имя, настроить цвет и текстуру фона
-
Button
-
TextBox - контрол для вывода текста
-
CheckBox
-
ComboBox
-
ScrollBar - горизонтальный или вертикальный
-
ListBox
-
TabControl - закладки страниц
-
EditBox
-
VideoBox (базированный на
Ogg Theora Video)
- Возможность наследовать базовые и создавать свои
ui классы
- Внутриигровой gui
Звук
-
Абстрактный враппер для звука. Возможность легко имплементировать другую
стороннюю звуковую библиотеку.
-
Имплементация коммерческой библиотеки FMOD (необходима
лицензия FMOD)
-
Имплементация DirectSound
-
Управление каналами воспроизведения. Виртуальные каналы. Возможность создать
практически неограниченное число источников звуков на ограниченных
аппаратных средствах. Звуки сортируются в зависимости от расстояния и
приоритета.
-
Биндинг звуков к сущностям (с помощью системы прикрепляемых объектов)
-
Управление группами каналов воспроизведения. Возможность разделять звуки по
группам. К примеру, у звуков разные громкости.
Удобнее разместить их по разным группам и менять громкость для всей группы
сразу.
-
3D звук
-
Стримминг звука
-
Получение звука с микрофона
Виртуальная файловая система
-
Общая система управления ресурсами
-
Поддержка файловых архивов. Интерфейс для создания новых типов
файловых архивов.
-
Поддержка zip архивов
Дополнительные особенности
- Фреймворк для создания новых типов игр и других проектов
- Кривые
Кривые Безье, кубические сплайны.
- Менеджмент камер
Простые камеры и камера двигающиеся по кривым.
- Менеджер кат сцен
Возможность настраивать кат сцены в редакторе карт.
- Динамические объекты
Понятие жизни объекта, звуки и ущерб при столкновениях физических
тел, управление воздействиями.
- Юниты
Юнит отличается от динамического объекта тем, что у него есть
интеллект. Т.е. этот объект
управляется интеллектом (объектом интеллекта).
- Физические персонажи
- Орудия
У орудия может вращаться башня. На башне
устанавливаются пушки. Игрок может садиться в орудие и управлять им.
- Фракции
Понятие команды. Противники с искусственным интеллектом атакуют
юнитов чужой фракции.
- Воздействия
Воздействия оказывают на объекты влияние. К примеру, возможность
поджечь монстра, реализуется с помощью воздействий.
- Пули
- Взрывы
Невидимая взрывная волна, которая наносит ущерб и придает импульс
физическим моделям в некотором радиусе.
- Предметы
Предметы, которые можно подобрать. Больнички, оружие, патроны.
- Двери
Автоматически открываемые
двери
- Переключатели
Булевы и
количественные.
- Оружие
Пушки, оружие ближнего боя. Оружие в руках персонажей или установленные пушки на орудии - это всё
оружие.
- Вентиляторы
- Точки старта и респавна
- Воздействующие потоки
Возможность создавать паровые, огненные потоки и т.д.
Искусственный интеллект
- Юнит-интеллект фреймфорк
Искусственный
интеллект (AI) и интеллект игрока.
Интеллект руководит юнитом. Существует наследованный класс
AI являющийся базой для искусственного интеллекта.
К примеру, существует класс GameCharacterAI,
который занимается управлением персонажей.
Интеллект игрока (PlayerIntellect) передает
команды нажатий клавиш, мыши для управления персонажем или орудием.
-
Расширяемая система поиска пути основанная на сетке
Инструментарий
В инструментарий разработчика на данных момент входят следующие
утилиты: редактор ресурсов,
редактор карт, плагины импорта
моделей из популярных пакетов моделирования.
- Плагины импорта моделей с поддержкой импорта мультиматериалов
и данных скелетной анимации:
- Autodesk 3D Studio
Max
- Autodesk Maya
- SoftImage XSI
- Milkshape
- Lightwave
- Blender
- AC3D
- Wings3D
- Мы можем предоставить полные исходные коды редакторов и право распространять
редакторы с вашей игрой. Это очень удобно для мод-мэйкеров, энтузиастов и
может дать вашей игре вторую жизнь.
Редактор ресурсов (Resource Editor)
Ресурсом в движке является любой файл. Ресурсы делятся по типам.
Редактор ресурсов предназначен для централизованного управления,
создания и редактирования ресурсов различных типов.
-
Редактор типов сущностей (.type файлы)
Позволяет полноценно конфигурировать все типы сущностей в игре, визуально
настраивать прикрепленные объекты и просматривать полученный тип.
Редактор типов сущностей расширяется за счёт сторонних сборок динамической
линковки.
-
Редактор пользовательских интерфейсов
-
Редактор систем частиц
-
Редактор физических моделей
- Обозреватель моделей с возможностью смены материалов,
настройки LOD'ов и просмотром анимаций (.mesh
и .skeleton файлы)
-
Обозреватель текстур
-
Обозреватель звуков
-
Обозреватель видео файлов
Редактор карт (Map Editor)
Редактор карт предназначен для редактирования карт, расстановки и
настройки сущностей. Настройка сущностей подразумевает настройку
свойств и расширение функциональности с помощью системы логики.
-
Редактор расширяется за счёт сторонних сборок динамической линковки.
-
Визуальная расстановка и редактирование любых игровых сущностей, таких как
статические объекты, предметы, персонажи, источники света и т.д. Возможность
редактирования свойств всех объектов дизайнером уровней.
Программисты могут создавать новые свойства для дизайнеров.
-
Редактор игровой логики позволяет задавать
игровую логику в пределах одной карты. Любая сущность может быть расширена с
помощью редактора логики. Поддерживается как визуальные, так и скриптовые
способы разработки.
-
Редактор ландшафтов на основе карты высот
-
Полноценная реализация "What You See Is What You Get" в редакторе карт
-
Нет времени компиляции! Нажмите "Run simulation"
для мгновенного запуска созданной вами карты.
-
Поддержка Undo/redo
-
Слои
-
Гизмо
|
|