Документация/Приступаем к работе

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше

Contents

Что такое NeoAxis Game Engine?

NeoAxis Game Engine - это современный игровой 3D движок, предназначенный для создания систем визуализации и игр. Движок включает в себя полценную среду разработки, существенно экономя время при создании приложений, работающих с трехмерной графикой. Он включает в себя набор программных библиотек и инструментарий.

Движок подходит для широкого спектра 3D приложений. Сюда относятся игры, симуляторы, тренажеры, системы виртуальной реальности, программы для визуализации физических или химических процессов.

NeoAxis Engine SDK

Установка

Установка NeoAxis Engine SDK

Движок поставляется в виде SDK, включающий в себя все необходимые составляющие для разработки. Предлагается несколько видов SDK, о которых можно прочитать на странице лицензирования. Для свободного скачивания доступна NeoAxis Non-Commercial SDK, на базе которой можно разрабатывать только некоммерческие продукты.

Скачать Engine NeoAxis Non-Commercial SDK.

Скачав и установив SDK, можно приступить к его изучению.

Обзор меню

После установки SDK, зайдя в стартовое меню Windows можно увидеть новые пункты:

Меню содержит следующие пункты:

FolderIcon.jpg NeoAxis Engine Non-Commercial SDK 1.0

  • APIReferenceIcon.jpg API Reference - Автоматически-сгенерированный справочник по API.
  • FolderIcon.jpg Browse Files - Обзор файлов установленного SDK.
  • ConfiguratorIcon.jpg Configurator - Приложение для настройки движка.
  • DemoIcon.jpg Demo - Демонстрационное приложение. Мы рекомендуем начать изучение с Demo.
  • NeoAxisIcon.jpg Documentation - Ссылка на онлайн документацию, которую вы сейчас читаете.
  • MapEditorIcon.jpg Map Editor - Редактор карт.
  • BlankIcon.jpg NeoAxis Engine on the Web - Ссылка на сайт движка.
  • ResourceEditorIcon.jpg Resource Editor - Редактор ресурсов проекта.
  • NeoAxisIcon.jpg Uninstall NeoAxis Engine Non-Commercial SDK - Деинсталляция SDK.

Мы рекомендуем начать изучение с Demo.

Демо

Game.exe
Карта SkirmishDemo
Карта TankDemo
Опции игры

Описание

NeoAxis Engine Demo представляет собой интерактивное приложение, которое демонстрирует практически все возможности движка. Демо содержит карты, демонстрирующие различные типы игр.

После запуска мы попадаем в главное меню. В главном меню можно загрузить карту Village Demo или множество технических демо All Tech Demos. Для того, чтобы перейти к нужной нам карте из доступных, нужно нажать кнопку Maps и выбрать карту.

Клавиши управления

Клавиши управления персонажем:

  • ASDW, стрелки - управление персонажем
  • Пробел - прыжок
  • Кнопки мыши - стрелять
  • 1 - 9 - переключить оружие
  • E - использовать предмет

Клавиши управления приложением:

  • F7 - изменить тип камеры
  • F8 - пауза
  • F11 - попасть в окно профилирования
  • F12 - сделать скриншот
  • ~ - открыть консоль
  • Page Up, Page Down - приблизить/удалить камеру (только для камеры от третьего лица)
  • Home, End - изменить высоту камеры (только для камеры от третьего лица)

Список карт

Основные:

  • VillageDemo - Комплексная карта демонстрации движка. Представляет собой карту деревни, которая может работать в режиме демонстрации.
  • TankDemo - Пример симулятора танка.
  • JigsawPuzzleGame - Настольная игра с возможностью игры по сети.
  • RTSDemo - Пример стратегии в реальном времени.
  • TPSArcadeDemo - Пример игры с видом от третьего лица и сцен на движке.
  • PhysicsDemo - Пример использования физической системы.

Технические демо:

  • ConstructionsDemo - Демонстрация использования сложных физических конструкций. Таких как кран, мост.
  • CutSceneDemo - Пример использования сцена на движке.
  • DeathmatchDemo - Пример шутера от первого лица.
  • PortalSystemDemo - Пример использования портальной системы, позволяющий улучшить производительность при отрисовке закрытых помещений.
  • RagdollDemo - Пример использования кукольной анимации.
  • RenderDemo - Демонстрация различных особенностей системы рендеринга.
  • SkirmishDemo - Демонстрация искусственного интеллекта персонажей, разделения на команды.
  • SoundDemo - Пример использования 3D звука.
  • StaticLightingDemo - Пример использования статического освещения.
  • SwitchesDemo - Пример использования переключателей.
  • TurretDemo- Пример реализации пушки в игре.

Обзор файлов SDK

Зайдем в папку с SDK. По умолчанию она находится в директории C:\NeoAxis\. Проведем краткий экскурс по дереву папок SDK.

  • Game - Папка проекта.
    • Bin - Исполняемые файлы программ, входящих в инструментарий и демонстрационное приложение Game.exe.
      • Data - Папка с ресурсами проекта. Внутри находятся файлы 3D моделей, текстур, файлов карт и другие.
      • NativeDLLs - Внутренние нативные библиотеки, необходимые для работы движка.
      • UserSettings - Различные пользовательские настройки, временные файлы, а также логи приложений.
    • Src - Исходные коды демо, которые одновмеренно будут являться каркасом вашего проекта.
  • SDK - Директория с документацией и дополнительными утилитами.
    • Docs - Справочник по API.
    • Tools - Дополнительные утилиты.
      • Exporters - Экспортеры моделей для пакетов трехмерного моделирования.
        • 3dsMax - Экспортер моделей для Autodesk 3dsMax.
        • Maya - Экспортер моделей для Autodesk Maya.
      • Fonts - Утилиты для работы со шрифтами.
        • BitmapFontGenerator - Утилита для генерации текстуры со шрифтом.
        • BitmapFontGeneratorToNeoAxisConverter - Приложение для преобразования шрифтов, созданных в BitmapFontGenerator, в формат движка.
      • Video - Утилиты для работы с видео.
        • ffmpeg2theora - Утилита для конвертации видео в формат OGG Theora Video.
WinFormsAppExample.exe

Дополнительные демонстрационные приложения

Список дополнительных приложений:

  • UtilitiesIcon.jpg DedicatedServer.exe - Приложение для создания выделенного сервера.
  • UtilitiesIcon.jpg WinFormsAppExample.exe - Пример интеграции движка в Windows Forms приложение.
  • UtilitiesIcon.jpg WPFAppExample - Пример интеграции движка в WPF приложение.
  • UtilitiesIcon.jpg ChatExample.exe - Пример реализации сетевого чата на базе Windows Forms.

Инструментарий

Обзор

Инструментарий движка представляет собой полноценный набор редакторов и утилит.

Приложения инструметария:

  • ResourceEditorIcon.jpg Редактор ресурсов - Редактор ресурсов предназначен для редактирования ресурсов проекта. Сюда входят, главным образом, трехмерные модели, карты, материалы, текстуры, звуки и прочее.
  • MapEditorIcon.jpg Редактор карт - Редактор карт предназначен для создания и редактирования игровых карт.
  • ConfiguratorIcon.jpg Конфигуратор - Утилита для настройки параметров движка.
  • DeploymentToolIcon.jpg Deployment Tool - Инструмент для подготовки конечного продукта.
  • UtilitiesIcon.jpg Компилятор шейдеров - Компилятор кэша шейдеров.

Также, в инструментарий входят плагины для пакетов трехмерного моделирования, которые позволяют импортировать 3D модели в движок.

Основными редакторами являются редактор ресурсов и редактор карт, которые будут рассмотрены далее.

Редактор карт

Редактор карт

NeoAxis Map Editor - это редактор карт. Термин "карта" берет свое начало из компьютерных игр. Карта - это некая местность, на которой разворачивается действие игры. Картой может быть как огромный город, так и одна комната. Редактор карт позволяет создавать разнообразные ландшафты, расставлять на них игровые объекты, деревья, дома, технику. Редактор работает по принципу WYSIWYG (What You See Is What You Get), т.е. вы работаете с картой в том виде, в каком она будет в игре. Кроме того, по нажатию одной кнопки, вы можете запустить карту и посмотреть ее в действии.

Подробнее с редактором карт можно познакомиться здесь.

Редактор ресурсов

Редактор ресурсов
Редактор физических моделей
Редактор пользовательского интерфейса

NeoAxis Resource Editor - редактор ресурсов. Назван так, потому что позволяет просматривать и редактировать множество типов ресурсов.

А именно:

  • Трехмерные модели (.mesh),
  • Материалы (.highMaterial),
  • Текстуры (.jpg, .tga, .png, .dds),
  • Звуки (.ogg, .wav),
  • Физические модели (.physics),
  • Системы частиц (.particle),
  • Пользовательские интерфейсы (.gui),
  • Описания шрифтов (.fontDefinition),
  • Игровые объекты (.type).

Трехмерная модель - это модель какого-либо объекта, задающая его форму в трехмерном пространстве. 3d-модель, пожалуй, можно назвать главным из ресурсов игры. Обычно, больше всего времени тратится на создание трехмерных моделей. Если вы незнакомы с этим понятием, прежде всего необходимо отметить, что в компьютерных играх используются главным образом полигональные трехмерные модели. Полигональные - состоящие из полигонов.

Материал - это информация о раскраске трехмерной модели. Самый простой материал - это материал, содержащий один единственный цвет. Трехмерная модель, покрытая таким материалом, будет раскрашена в его цвет. Зачастую используются гораздо более сложные материалы, содержащую одну или несколько текстур, блеск, свечение и bump-mapping.

Текстура - это плоское изображение. Текстуры используются, в основном, в материалах для нанесения на трехмерную модель.

Звук - это неотъемлемый ресурс любой игры, вносящий разнообразие в игровой процесс.

Физическая модель - это описание игрового объекта, с точки зрения его взаимодействия с другими объектами. Трехмерная модель описывает внешний вид, а физическая - внутренние характеристики. К примеру, вы можете создать физическую модель для автомобиля, используя ограничивающий параллелепипед (корпус автомобиля), цилиндры (колеса), оси, пружины (амортизаторы). С помощью физической модели осуществляются вращения, столкновения, разрушения объектов игрового мира.

Система частиц - это способ реализация различных визуальных эффектов. С помощью нее можно создавать эффекты дыма, огня, пара и многого другого.

Пользовательский интерфейс - это, так называемый, GUI (Graphic User Interface), отвечающий за взаимодействие с пользователем. Включает в себя всевозможные кнопки, списки, формы, поля ввода и прочие компоненты. Вы можете создавать собственные элементы интерфейса и использовать их в ваших приложениях.

Описание шрифта - это набор параметров характеризующих тот или иной шрифт.

Игровой объект - это один из компонентов, составляющих систему игрового мира. В качестве него может выступать что угодно: игровой персонаж, автомобиль, здание, дерево. Весь мир игры наполнен игровыми объектами. В игровом объекте сочетаются все другие виды ресурсов: трехмерные модели, физические модели, звуки.

Подробнее с редактором ресурсов можно познакомиться здесь.

Autodesk Maya

Пакеты трехмерного моделирования

Как же создаются трехмерные модели? Программы, которые позволяют создавать трехмерные модели, называются пакетами трехмерного моделирования. А люди, которые занимаются созданием трехмерных моделей, зовутся моделлерами.

В настоящее время существует большое количество различных пакетов трехмерного моделирования. Самыми популярными являются:

Отметим, что Blender, в отличии от трех других перечисленных выше пакетов моделирования, является бесплатным.

Для преобразования моделей в формат NeoAxis Engine существуют специальные программы-дополнения, называемые экспортерами. Экспортеры доступны для Autodesk 3ds Max и Autodesk Maya. Кроме того, все современные пакеты моделирования поддерживают экспорт в открытый формат Collada, а редактор ресурсов в свою очередь позволяет просматривать и преобразовывать модели в формате Collada в свой формат.

Программирование в NeoAxis

Microsoft Visual Studio 2008

Обзор

NeoAxis Engine API движка основано на .NET. Основной язык - C#. Можно писать код на любом языке, поддерживающем .NET. Также, к проекту можно прицеплять библиотеки написанные на C/C++ или другом неуправляемом языке. Логика проекта пишется на C#.

SDK включает в себя готовый скелет для разработки проекта (Демо), а также обширный набор примеров кода для быстрой разработки логики проекта. Движок предлагает сосредоточиться на разработке логики проекта, и не заниматься внутренними низкоуровневыми задачами, тем самым уменьшая время разработки проекта и как следствие его стоимость.

Внутренне, движок использует нативные C/C++ компоненты, такие как отрисовка, физика, звук для максимальной производительности.

Движок может работать через Mono Runtime, альтернативную среду выполнения .NET Framework.

Выбор IDE

Существует несколько IDE, поддерживающих разработку на языке C#.

Поддерживаются следующие IDE для разработки:

Мы рекомендуем начать с Visual C# 2010 Express, которую можно бесплатно загрузить.

Скачать Visual C# 2010 Express

После установки IDE перейдем к изучению исходного кода SDK.

Обзор исходного кода SDK

Перейдем как папке Game\Src и откроем NonCommercialLicense.sln.

Вы можете видеть список доступных проектов:

  • GameCommon - Различные классы проекта, такие как, описание типов материалов, сетевые сервисы проекта, класс консоли движка, пользовательские гуи классы.
  • GameEntities - Описание игровых классов и всей логики игры.
  • Game - Точка входа приложения. Инициализация движка, классы для реализации структуры проекта, навигации игровых экранов и взаимодействия с пользователем.
  • ChatExample - Пример реализации сетевого чата на базе Windows Forms.
  • DedicatedServer - Приложение для создания выделенного сервера.
  • WinFormsAppExample - Пример интеграции движка в Windows Forms приложение.
  • WPFAppExample - Пример интеграции движка в WPF приложение.

Основными являются сборки GameCommon, GameEntities и Game.

Мы настоятельно рекомендуем использовать демо, как скелет для вашего проекта.
Удалить весь код демо и переписать заново - не лучшая идея. 
Разработка проекта выглядит, как постепенное расширение и изменение доступного в SDK кода. 
В будущем, когда у вас будет больше опыта, вы сможете удалить ненужный код.

Также, возможно, вам потребуется справка по структуре SDK и описанию библиотек. Об этом можно узнать здесь.

Скриптование карт

NeoAxis Logic Editor

В дополнение к основному способу написания кода, существует возможность скриптования карт. Редактор карт включает в себя специальный редактор для написании логики карты.

Вы можете добавить к карте логику, не изменяя при этом основной код приложения. Для этого существует еще один редактор: NeoAxis Logic Editor. Он позволяет присоединить к объектам карты логику, осуществлять реакцию на события, управлять объектами с помощью ваших алгоритмов.

К примеру, вы отметили на карте некую область. С помощью редактора логики, можно получить уведомление о попадении игрока в данную область и выполнить какой-либо алгоритм. Также, с помощью редактора логики удобно создавать сцены на движке.

Редактор логики поддерживает два способа задания алгоритмов:

  • Designer Type (с помощью пользовательского интерфейса),
  • Script Type (на языке программирования C#).

Designer Type подойдет не только программистам, но и дизайнерам карт, т.к. весьма прост в использовании. Команды, из которых формируется алгоритм, создаются с помощью удобного меню.

Script Type, используя всю мощь языка C#, позволяет создавать алгоритмы немного быстрее, чем с помощью интерфейса, но и требует специальных навыков программирования.

Читайте больше о редакторе логики.

Что дальше?