Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
Project Packaging Guide

Overview

Once your rendering application is ready for distribution, you can package it using:

python3 package_project.py
python3 package_project.py --packed
python3 package_project.py --packed --keep-plain

Before packaging, ensure that the project is built in Release mode. If only a Debug build exists, the packager will use it automatically, assuming this is intentional. Normally, however, applications should be shipped in Release mode for better performance and smaller binary size.

The purpose of packaging is to gather:

  • the compiled application executable,
  • all required assets,
  • the Rendering Engine runtime library,
  • and platform-dependent shared libraries

into a single, self-contained folder. This folder can then be uploaded to platforms like Steam, or wrapped into an installer using tools such as:

or delivered in any other custom way.

Rationale

The packaging system of the Rendering Engine is intentionally aligned with Steam’s content structure requirements, which are practical, consistent, and easy for developers to follow.

Useful links from Steam’s official documentation:

These pages describe how application content should be organized and uploaded, and they serve as a reference for our packaging approach.

Workflow

After packaging, the output appears under:

Build/UserApplications/<ApplicationName>/Packages/

The package has the following directory structure:

└───<ApplicationName>-v<X.Y.Z>-<Platform>
├───Binaries --> executable + required shared libraries
├───Config --> application configuration files
├───Content --> assets (plain or packed)
└───Logs --> empty folder for runtime logs

A ZIP (or .tar.gz on Unix) archive of the package is also generated.

Packaging Modes

  1. Plain content (default)
python3 package_project.py

Assets remain in their normal directory structure under Content/:

Content/
Textures/
Models/
Shaders/
Fonts/
  1. Packed content
python3 package_project.py --packed

All assets are packed into:

Content/Pack.bin
Content/Pack.json

The engine reads assets directly from the packed file at runtime. This mode produces the cleanest and smallest distribution.

  1. Packed + keep plain
    python3 package_project.py --packed --keep-plain
    Both the packed file and the original asset folders are included. The engine always prioritizes the packed version, but the plain files remain available for debugging, inspection, or comparison. This mode is helpful when validating asset loading or debugging packaging issues.

<- Back to Developer Guide Page