The project is a code name used to refer to the C++/Qt-based ENIGMA IDE that is being developed. The project was started by Goombert to improve ENIGMA's UI experience and the stability of game serialization. The architecture of the project is loosely based on MVC and MVVM and is centered around the ENIGMA compiler's Google Protocol Buffer format used in emake and libEGM to load, save, and compile games. The Google Protocol Buffer format is treated as the single source of truth for resource data and is contained in a Qt QAbstractItemModel that makes it possible to map various views/editors to it.
GitHub Repository: https://github.com/enigma-dev/RadialGM
The project is also licensed under the same License ENIGMA is licensed under, that being a modified GPL v3.
The goal of this project as stated earlier is to improve upon the ENIGMA UI experience, stability, and scalability.
Some advantages the new IDE will provide:
- Custom theming using Cascading Style Sheets
- Hardware accelerated rendering
- Runs natively among other optimizations
- Improved compile times
- Ability to handle much larger project files
- Advanced code editing including break points and code folding
- Dock interfaces and widgets allowing custom layouts with persistent state between sessions
The first step is to download the RadialGM source code from https://github.com/enigma-dev/RadialGM
To compile RadialGM, you must have Qt and Qt Creator. Download the Qt Open Source installer from https://www.qt.io/download
During the running of the installer, you will need to create a Qt account if you do not already have one. The components you should select during installation are the latest version of Qt and Qt Creator. At the time of writing, this is Qt 5.11.1 and Qt Creator 4.7.0-rc1. Download and installation will take some time, as the total file size will be over 30 GB.
Once installation is complete, open Qt Creator. Go to File -> Open File or Project and select RadialGM.pro from your downloaded RadialGM repository. It will warn you about the project not being configured. Choose a target (e.g. Desktop 5.11.1 MSVC2017 64bit).
Google Protocol Buffers
RadialGM uses protobuf to communicate with ENIGMA.
Download protobuf for C++ from this page: https://github.com/google/protobuf/releases/latest At the time of writing, this file would be protobuf-cpp-3.6.1.zip
Create a folder for your include files. For example, I have chosen to use the path "D:/qtinc/" Copy the "google" directory from protobuf-cpp's "/src" and place it into your custom include path.
With RadialGM open in Qt Creator, click "Edit" on the left and open RadialGM.pro. From here, modify the line with "INCLUDEPATH +=" and change "/usr/include/qt" to your include directory, such as "D:/qtinc".
Now go to from the menu, go to Build -> Run qmake so that it detects changes in the .pro file.
Scintilla is used for the code editor in Radial GM. Navigate to https://www.riverbankcomputing.com/software/qscintilla/download and download the appropriate source package for your operating system, such as QScintilla_gpl-2.10.7.zip
Once extracted, copy the contents of the Qt4Qt5 directory into your include directory, such as "D:/qtinc" used above.
Finally, from the menu select Build -> Build Project "RadialGM".