Welcome to the NRG Manual!

This guide is designed to get you started with your project(s) and to get you familiar with the NRG ecosystem. This documentation is built to act as a user manual, reference guide and contains practical usage examples as well. If you are looking for scripting and coding documentation please refer to the Programming API online documentation.

What is NRG?

NRG is a Realtime Application Development Environment built for rapid prototyping of small to large projects on multiple platforms simultaneously in realtime. During the development cycle of your app, you can choose to either use Lua or C/C++ and publish your application as a lightweight native C/C++ standalone executable for the platform(s) you are targeting.

NRG supports all major desktop and mobile platforms: Windows, Linux, Apple products, and Android, using the same code and the same feature sets (since each NRG projects are using an OpenGL ES profile to be compatible with).

Depending on the project profile you select you establish forward compatibility with all GLES API and OpenGL API. Using this method your apps can be supported on all OpenGL desktop API starting from v2.1 to v4.6+ and OpenGL ES v2.0 up to v3.2+ without any changes in your code or your shaders (which are developed using GLSL ES with emulated functionalities to ensure compatibility on embedded systems).

For development, NRG provides you a C/C++ interface (via hot-reload plugins) and a scripting interface based around Lua (with local and remote built-in debugging functionalities within the editor). Using this approach, you can write code once and execute it on multiple platforms without no CPUs or GPUs compatibility issues.

The unique internal design or NRG is built around a client/server based model that allows the editor (the server) to broadcast all changes made to your application in real time to one or multiple clients (s) running locally or remotely (up to 128). With NRG you are developing, running, debugging and profiling your code locally and/or remotely on one or multiple platforms simultaneously in real time.

What type of renderer NRG is using?

None, unlike any other 3d engine or 3d editor out there NRG does not have any predefined rendering path, tweakable uber shader, or material framework of any kind. NRG provides you a fully dynamic and "scriptable" render to maximize flexibility. NRG basically only there to handle all the low-level mechanism that a 3d engine requires including asset management, scene graph, shaders, textures, material definitions, physics, animations etc. With NRG you define the internals and maintain things the way you want them to be without having to carry a baggage of megabytes in prefabs, settings or any other type of dependencies that won't be needed by the final application.

In other words with NRG, you are in control! Only what you specify will find its way to the final executable package; making your final product a lot faster, more optimized (and smaller) than any other solution. NRG is there to create, set and maintain your assets and provide you with all the necessary tools to develop, debug and profile pure cross-platform 3d solutions running at full speed in C/C++ under the hood.

Where to get started?

Well, technically every developer that is working on a project using NRG will have to spend some time soon or later with at least one specific part of the editor. Depending on the type of developer you are browsing using the left side tree view to learn about the section(s) fit the most with your specialization(s).

Regardless of the type of work that you will be doing with the editor, consider the Editor overview as mandatory. It is important that before getting started with your NRG project you understand the basics and essentials of the main tools at the core of NRG.

NRG - Manual 2021.3.5b256 - Fri Sep 17 2021
Copyright © 2021 nrgcore.com. All Rights Reserved. Terms of Service - Privacy Policy - EULA