Документация/Статьи по программированию/Введение в структуру SDK

From NeoAxis Engine Wiki

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

Contents

Введение

Основные сведения о программировании в NeoAxis можно узнать здесь.

Здесь представлены доступные сборки движка. Сборки делятся на два типа: публичные и внутренние. Публичные сборки предназначены для использования разработчиками проектов и образуют собой NeoAxis API.

Для некоторых из представленных сборок доступны исходные коды. Доступность исходных кодов зависит от типа SDK (Non-Commercial, Indie, Commercial SDK).

Ниже представлено описание сборок.

Схема сборок и доступа к исходным кодам.

Основные публичные сборки API движка

  • EntitySystem.dll - Фреймворк для реализации концепции системы сущностей (системы игровых объектов). Описание базовых абстрактных игровых классов.
  • MapSystem.dll - Надстройка для системы сущностей, для реализации 3д мира. Описание концепции карт, объектов на карте.
  • Renderer.dll - Классы для работы с рендером движка.
  • PhysicsSystem.dll - Фреймворк для работы с физической системой движка.
  • SoundSystem.dll - Фреймворк для работы с звуковой системой движка.
  • UISystem.dll - Классы, реализующие гуи систему движка. Описание базовых классов контролов, таких как, кнопки, чекбоксы, листбоксы.
  • EngineApp.dll - Общее управления движком и работа с системой. Управление окном приложения.
  • Networking.dll - Поддержка сетевых возможностей движка.
  • FileSystem.dll - Включает виртуальную файловую систему для работы с ресурсами.
  • Log.dll - Работа с лог информацией. Поддержка вывода в .log файл.
  • MathEx.dll - Классы для реализации математических операций для использования в 3д проектах, таких как, векторы, матрицы, кривые.
  • Utils.dll - Различные утилитные классы.

Дополнительные публичные сборки API движка

  • HeightmapTerrain.dll - Поддержка ландшафтов на базе карт высот.
  • DecorativeObjectManager.dll - Поддержка декоративных объектов. Предназначен для легкого создания и размещения на карте больших массивов декоративных (небольших) объектов (например, травы или камней). При помощи него можно легко наносить большие массивы растительности.
  • GridPathFindSystem.dll - Система поиска пути на базе сетки.
  • WindowsAppFramework.dll - Фреймворк для создания проектов для WinForms из .NET Framework.

Внутренние сборки движка

  • PhysXPhysicsSystem.dll - Имплементация PhysX.
  • ODEPhysicsSystem.dll - Имплементация ODE.
  • OpenALSoundSystem.dll - Имплементация OpenAL.
  • DirectXSoundSystem.dll - Имплементация DirectSound.
  • ICSharpCode.SharpZipLib.dll - Поддержка zip архивов.
  • Lidgren.Network.dll - Библиотека, реализующая низкий уровень поддержки сети.
  • OggVorbisTheora.dll - Враппер для работы с нативными библиотеками ogg, vorbis, theora.
  • StaticLightingCalculationSystem.dll - Интерфейс для реализации расчетчика статичного освещения.
  • SimpleStaticLightingSystem.dll - Простая имплементация расчетчика статичного освещения.
  • EditorBase.dll - Общие классы для редактора ресурсов и редактора карт.
  • ZipArchive.dll - Поддержка zip архивов в виртуальной файловой системе.
  • DDSFormat.dll - Поддержка создания dds текстур.

Сборки проекта

  • GameCommon.dll - Различные классы проекта, такие как, описание типов материалов, сетевые сервисы проекта, класс консоли движка, пользовательские гуи классы.
  • GameEntities.dll - Описание игровых классов и всей логики игры.
  • Game.exe - Точка входа приложения. Инициализация движка, классы для реализации структуры проекта, навигации игровых экранов и взаимодействия с пользователем.

Обзор реализованных примеров типов игр

В демо вы можете наблюдать примеры различных типов игр. Например, есть карты (ConstructionsDemo), где вы управляете персонажем от первого лица как Quake-подобных играх. Это один тип игры. А есть карта RTSDemo, в которой реализован пример типичной стратегии в реальном времени аля Starcraft. Это другой тип игры.

Ниже описаны реализанные в SDK примеры типов игр:

  • None - Отсутствие специального игрового типа. Используется для создания неинтерактивных карт, таких как, например, фоновая карта в главном меню.
  • Action - Игровой тип для реализации игры или других проектов, где нужно управлять персонажем от первого лица или третьего лица.
  • TurretDemo - Пример надстройки над Action игрового типа, для реализации карты TurretDemo.
  • TPSArcade - Пример релизации камеры от третьего лица, которая двигается по ранее заданной траектории в редакторе карт. Смотрите карту TPSArcadeDemo для примера.
  • RTS - Пример реализации стратегии в реальном времени. Смотрите карту RTSDemo для примера.
  • JigsawPuzzleGame - Пример реализации настольной игры собирания пазла. Поддержка сети для нескольних игроков.

Подразумевается, что вы можете использовать данные примеры, как шаблоны для вашего проекта.