SkillAgentSearch skills...

Pragma

Repository for the pragma game engine.

Install / Use

/learn @Silverlan/Pragma

README

Build Windows Build Linux License

<img align="right" width="150" height="150" alt="Pragma Logo" title="Pragma Logo" src="https://wiki.pragma-engine.com/uploads/images/gallery/2022-09/scaled-1680-/pragma-logo-256.png">

What is this?

This is the repository for the Pragma Game Engine. For more information, visit the official website: https://pragma-engine.com/

Download

All versions include the core Engine, as well as the Pragma Filmmaker (PFM).

Stable

Download

You can find older releases in the releases section of this repository. No installation is required, simply extract the archive somewhere and launch the pragma or pfm executable.

Supported languages: English, Deutsch, Français, Español, Italiano, Polski, 日本語, 中文 (Zhōngwén),

Nightly

In addition, there is also an automated nightly release with all of the latest features which you can find here, but it is not guaranteed to be stable or functional.

Updating

PFM automatically checks for updates when you launch it, and can automatically install them as well, so you don't have to download new releases manually.

Media

<p float="left"> <img src="https://wiki.pragma-engine.com/uploads/images/gallery/2022-11/scaled-1680-/pragma-2022-11-21-16-31-04.png" width="380" /> <img src="https://wiki.pragma-engine.com/uploads/images/gallery/2022-11/scaled-1680-/pragma-2022-11-21-16-35-19.png" width="444" /> </p>

What platforms and hardware does it work on?

  • Windows 10 (or newer) / Ubuntu 24.04 (or newer)
  • Graphics card: GTX 1050 Ti or newer

Contributions

PFM

If you would like to contribute to the development of the Pragma Filmmaker, please go to the PFM repository for more information.

Pragma

The recommended way to work with Pragma is through the Lua API. If this is not enough, and you need more control, you will have to build Pragma manually. You can find the build instructions below.

Please consider creating a binary module if you're planning on adding new features that don't require any changes to the existing code files. This way the module can simply be installed into existing releases of Pragma. (You will still have to set up a build of Pragma before creating a binary module.)

Build Requirements

<sub>* CLion ships with a slightly older version of CMake. If you want to use CLion, you will have to download the latest version of CMake manually and set it up in the CLion settings under File > Settings... > Build, Execution, Deployment > Toolchains > CMake.</sub>

Linux (Recommended)
  • ~30 GiB of disk space
  • Ubuntu 24.04 or newer, or Arch-based distro with up-to-date packages

The following system packages have to be installed (these will be installed automatically if you're using the build script):

Ubuntu:

sudo apt install cmake ninja-build gcc g++ libfreetype6-dev libwayland-dev libx11-dev libxkbcommon-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev pkg-config libxcb-keysyms1-dev libx11-xcb-dev libssl-dev

(libssl-dev is only required if you're building with PFM.)

Arch:

sudo pacman -S cmake ninja
Windows
  • ~80 GiB of disk space
  • Visual Studio 2022 or newer *
  • Windows SDK 10.0.22000.0 or newer

<sub>* Generating a Visual Studio project is currently not supported, but you can still use the MSVC compiler.</sub>

Build Instructions

To clone Pragma, run:

git clone https://github.com/Silverlan/pragma.git

Then use the build method of your choice below *. CMake will be used regardless of which build method you choose. The build files will be placed in "pragma/build", and Pragma will be installed to "pragma/build/install" by default. The default (and recommended) compiler (regardless of the os) is clang and the default build system is Ninja.

To cut down on disk space, Pragma uses prebuilt binaries for a lot of third-party dependencies by default. You can use the build script if you want to build those as well, but this will significantly increase the build time and disk space usage and is generally not recommended.

<sub>* :warning: On Windows only the build script method is currently supported. Simply double-click "build.bat"/"build_full.bat" or execute it from a command-line window.</sub>

CLion (Recommended)

If you're using the CLion IDE, you can simply open the cloned Pragma repository and it should prompt you with a list of the available profiles. Make sure to delete or disable the default Debug profile, then enable the profile of your choice:

<img src="https://wiki.pragma-engine.com/uploads/images/gallery/2026-01/clion-profiles.png" width="800" />

Use a profile with the -full suffix if you want to have all features available, including VR support and PFM. If you only want the core Engine, use a profile without the suffix. Whether you use a build- profile or not should not matter. Enabling more than one profile is not recommended.

Press OK and CLion will configure the project automatically. Once the configuration, you should restart CLion at least once to make sure CLion loads the most up-to-date configuration files, otherwise you may get issues when trying to run Pragma through CLion.

You can then build, install and launch Pragma using the "pragma" configuration. If you have chosen a -full profile, you can use the "pfm" configuration respectively to launch PFM.

CMake

If you want to use a different IDE or just want to set up Pragma via command-line, you can set up Pragma using a CMake workflow preset:

Linux:

git clone https://github.com/Silverlan/pragma.git
cd pragma
cmake --workflow --preset linux-clang

Windows:

git clone https://github.com/Silverlan/pragma.git
cd pragma
cmake --workflow --preset windows-clang-ninja

Available presets are:

  • linux-clang
  • linux-clang-full
  • windows-clang-ninja
  • windows-clang-ninja-full
  • windows-msvc-ninja *
  • windows-msvc-ninja-full *

Use the -full suffix if you want all features, including PFM and VR support.

Please note that all presets will use the Ninja generator. No other generators are supported at the moment.

<sub>* Using the MSVC compiler will significantly increase build times and disk space usage and is therefore not recommended until MSVC support for C++20 modules improves substantially.</sub> <br/><br/><br/> The following CMake options are available when using this method:

| Option | Description | Default | |---|---|:---:| | PRAGMA_DEBUG | Build without optimizations? | OFF | | PRAGMA_WITH_VR | Build with VR support? | OFF | | PRAGMA_WITH_NETWORKING | Build with networking support? | OFF | | PRAGMA_WITH_COMMON_ENTITIES | Build with common entity scripts? | OFF | | PRAGMA_WITH_COMMON_MODULES | Build with common modules? | ON | | PRAGMA_WITH_ESSENTIAL_CLIENT_MODULES | Build with essential client modules? | ON | | PRAGMA_WITH_PFM | Build with Pragma Filmmaker? | OFF | | PRAGMA_WITH_CORE_PFM_MODULES | Include essential PFM modules. | ON | | PRAGMA_WITH_ALL_PFM_MODULES | Include non-essential PFM modules (e.g. chromium and cycles). | ON |

Example usage:

cmake --workflow --preset linux-clang -DPRAGMA_WITH_VR=ON

Please note that the -full preset variants already enable all of these options by default.

Once the project has been generated, you can build the "pragma" (or "pfm", if enabled) target to build and install Pragma:

cd build
cmake --build . --config RelWithDebInfo --target pragma

Build Script

This method requires Python 3.9.5 or newer (with NumPy).

To build Pragma using the build script, simply launch "build.bat" for Windows, or "build.sh" for Linux. Use the "build_full" version if you want to include additional features such as VR support and PFM.

You can also invoke the build script using python like so:

git clone https://github.com/Silverlan/pragma.git
cd pragma
python build_scripts/build.py

(On some systems you may have to substitute the "python" command with "python3".)

:warning: Linux<br/> Do not run the script as superuser.<br/> The script will automatically install all required system packages. Since this requires admin priviliges, you may be prompted for your password several times.<br/> You can disable confirmation prompts (e.g. for automated builds) by adding the --no-confirm argument, however entering your password may still be required.

<br/>

By default the build script will set up Pragma with core features only, but you can use the options below to customize the build. The build script also allows you to build all of the third-party dependencies yourself instead of using prebuilt binaries, but this is generally not recommended as it significantly increases build times and disk space usage.

Once the project has been generated, you can build the "pragma" (or "pfm", if

View on GitHub
GitHub Stars236
CategoryDevelopment
Updated7d ago
Forks26

Languages

C++

Security Score

100/100

Audited on Mar 26, 2026

No findings