Documentation/Programming Articles/Introduction to SDK Structure

From NeoAxis Engine Wiki

Jump to: navigation, search
Go to higher level

Contents

Introduction

You can find basic information on programming in NeoAxis Engine here.

Below you will find information on engine assemblies. There are two types of assemblies: public assemblies and internal assemblies. Public assemblies can be used by project developers and together make up the NeoAxis API.

For some assemblies the source code can be available. The source code availability depends on the particular SDK type (Non-Commercial, Indie or Commercial SDK).

You can see the assemblies description below.

A scheme of assemblies and source code availability.

Basic public assemblies of the engine API

  • EntitySystem.dll – A framework used for implementing the entity system (game objects system). Contains the description of the basic abstract game classes.
  • MapSystem.dll – A substructure for the Entity System used for implementing the 3D world. Contains the description of the map concept and the map objects.
  • Renderer.dll – Contains classes used for working with engine renderer.
  • PhysicsSystem.dll – Contains a framework used for working with engine physics system.
  • SoundSystem.dll - Contains a framework used for working with engine sound system.
  • UISystem.dll – Contains classes implementing the engine GUI system (the description of basic controls classes such as buttons, checkboxes and listboxes).
  • EngineApp.dll – Implements the general control of the engine and the application window.
  • Networking.dll – Provides networking support.
  • FileSystem.dll – Contains the file system for working with resources.
  • Log.dll – Implements the work with .log information (including output to .log files).
  • MathEx.dll – Contains classes for mathematical operations used in 3D graphics (such as vector, matrix or curve)
  • Utils.dll – Various utility classes.

Additional/Optional public assemblies of the engine API

  • HeightmapTerrain.dll - Landscapes suppport based on heightmap.
  • DecorativeObjectManager.dll – Support of decorative objects. It is used for the quick creation of small but numerous decorative objects (like grass or rocks). You can use it to create large areas of vegetation.
  • GridPathFindSystem.dll – Grid pathfinding system.
  • WindowsAppFramework.dll - A framework for creating WinForms windowed projects.
  • WPFAppFramework.dll - A framework for creating WPF windowed projects.

Internal assemblies of the engine

  • PhysXPhysicsSystem.dll – PhysX implementation.
  • ODEPhysicsSystem.dll - ODE implementation.
  • OpenALSoundSystem.dll - OpenAL implementation.
  • DirectXSoundSystem.dll - DirectSound implementation.
  • ICSharpCode.SharpZipLib.dll – Support of zip archives.
  • Lidgren.Network.dll - low-level later of the networking support.
  • OggVorbisTheora.dll - A wrapper for working with native libraries such as ogg, vorbis and theora.
  • StaticLightingCalculationSystem.dll – An interface implementing static lighting calculation.
  • SimpleStaticLightingSystem.dll - Simple implementation of static lighting calculation algorithm.
  • EditorBase.dll – Basic classes for the Resource Editor and the Map Editor.
  • ZipArchive.dll – Support of zip archives for virtual file system.
  • DDSFormat.dll – Support of DDS textures.

Project assemblies

  • GameCommon.dll – Contains various classes of the project such as description of material types, project’s networking, engine console class and user GUI.
  • GameEntities.dll – Contains the description of all game classes and game logic.
  • Game.exe – Application entry point. Engine initialization, classes implementing project structure, game screens navigation and user interaction.

Overview of the current game type examples

In these demos you can see games of various types created with NeoAxis Engine. For example, there some maps (e.g. ConstructionsDemo) with first-person view like in Quake. There is also a real time strategy map (RTSDemo) quite similar to StarCraft.

Below you can see the list of game type examples included in the SDK:

  • None – Null game type. This one is used for the creation of non-interactive maps such as background maps in the main menus.
  • Action – A game type used for the creation of games (or other projects) with 1st or 3rd person character control.
  • TurretDemo – A substructure for the Action game type used in the TurretDemo map.
  • TPSArcade – An example of a 3D camera following a certain path in the Map Editor (see the TPSArcadeDemo map).
  • RTS – An example of a real time strategy game (see the RTSDemo map).
  • JigsawPuzzleGame – An example of a puzzle game with network multiplayer support.

You can use these examples as templates for your projects.