What’s New
Getting Started

Engines (.ngine)

Last Updated: November 1, 20240.6 min read

Overview

We support having multiple versions of ngine on the same machine by having each engine version contain an .ngine JSON file. Each engine has a version, name and a unique identifier.
Copy to Clipboard

Engine Config Metadata

Entry Name

Description

  • version

    This engine's version number in the format of ...

  • name

    This engine's human readable name

  • guid

    This engine's unique identifier.

  • source_directory

    The directory in which the engine source code is contained.

  • binary_directory

    The directory in which the engine's binaries are output.

  • library_directory

    The directory in which the engine's libraries are output.

Available Shell Menu Actions

Name

Description

  • Launch Editor

    Launches the editor contained in this engine version

  • Generate Asset Database

    Traverses the EngineAssets directory and registers all .nasset files found into the engine.

  • Compile Assets

    Compiles all engine assets contained inside its asset database

  • Reconcile Assets

    Generates the engine asset database, compiles all detected assets, registers all default engine plug-ins and generates plug-in asset databases and compiles all detected plug-in assets. Commonly used after syncing a new engine version from version control.

  • Register Engine

    Registers the engine in the Engine Database.

  • Create Project

    Creates a new project referencing this engine

  • Create Plug-in

    Creates a new plug-in referencing this engine

  • Generate Solution

    Generates a C++ solution used to build the engine

  • Package Editor

    Compiles the engine assets into a new standalone engine package, creating a new engine that can be run separately and be distributed separately.

Engine Database

The engine database is a local JSON config file referencing registered engine unique identifiers (GUIDs) and the latest known path on disk to that engine.

The engine database is used by projects to allow switching between engine versions. See Projects (.nproject) for more information on how it is used.

Feedback

Please be sure to submit issues or feature requests through the embedded feedback form. In the event it is a major issue please contact us directly through Discord.