Документация/Статьи по программированию/Введение в структуру SDK
From NeoAxis Engine Wiki
| Language: | Status: | Approved |
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 - Пример реализации настольной игры собирания пазла. Поддержка сети для нескольних игроков.
Подразумевается, что вы можете использовать данные примеры, как шаблоны для вашего проекта.