The environment for development is Linux. If you don't have Linux you may create a dual-boot on your Windows machine or buy a dedicated machine. I recommend using Linux Mint as the OS.
It is highly recommended that you use a virtual machine on your physical machine. Oracle VM VirtualBox is perfect for this purpose. Why a virtual machine? Partly for security reasons (GameTop is new software), partly because the setup for development should not interfere with any setup/configuration you already have on your physical machine.
There are many good guides around for making a virtual machine. I use 4 GB RAM and 50 GB storage. Install VBoxGuestAdditions.iso after the Linux Mint iso is installed (Settings->Storage->Controller:IDE). Activate copy/paste with Devices->Shared Clipboard->Bidirectional.
The first thing you need to check on your new machine is the C++ compiler. It should be C++17. Please, for the time being do not use features from later C++ compiler versions. Check the compiler by running:
// test.cpp// g++ -Wall -o test test.cpp#include<iostream>intmain(){std::cout<<"C++ version: "<<__cplusplus<<std::endl;return0;}
The output should be "C++ version: 201703" , which is C++17.
Install Qt.
First, you need to install two xcb libs:
apt install libxcb-cursor0 libxcb-cursor-dev
Install build essentials (if not already installed).
A way down on the page you find the button 'Download the Qt Online Installer'.
Select the right OS (Linux x64).
The downloaded installer is (right now) called 'qt-online-installer-linux-x64-4.11.0.run'.
You may need to set the permission of this file to execute.
Run the .run file in a terminal. The installer opens and you follow the steps. Now you use your Qt account.
Set installation directory, choose Developer Tools for Qt6.11 Desktop Development and choose Custom Installation (you may want to avoid unnecessary installs of designer tools etc, I only choose 'Qt for Development -> Qt -> 6.11.0'). Untick WebAssembly. Under additional libraries, there are a lot of code/features you don't need. You can untick much.
All the libraries are precompiled with the installation and are found in Qt/6.11.0/gcc_64/lib.
You need to specify the path where the C++ GameTop executable can find the Qt libs:
Also, you need to make sure the CMakeLists.txt file has the correct paths.
Install CMake. It is found in the Software Manager on Linux Mint (not necessarily the latest version, can also use 'sudo apt-get -y install cmake'). My CMake version right now is 3.22.1.
Note: I know very well that this is not the latest version of Luau. At time of writing the latest version is 0.719. The compilation of 0.719 went well but for some unexplainable reason errors occurred when linking the Luau libraries to the GameTop code. The errors were like this:
Note that there is no images directory in the download. The images directory must be extracted from the VASSAL module Paths of Glory found here: https://vassalengine.org/library/projects/Paths_of_Glory (at time of writing the name of the module is PathsofGlory10.8.vmod, the size of the unpacked images directory is 37.8 MB). Place the unpacked images directory along side the __images directory in the prototype folder.
Install your favorite IDE. It must obviously be able to support the C++ language.
The compiler is the C++ compiler in your Linux distribution (C++17).
Code completion is handy if the IDE has a plug-in for C++ and Lua.
I use a simple IDE (Geany). I compile in a terminal window. Luau code is executed by the Luau interpreter (Luau VM). It is advisable to have an IDE with a proper C++ debugger, I won't argue that. Still you get far with "printf()" in the C++ code. The compile time is not huge (about 78 sec for a complete compile of 12.000+ lines). CMake only compiles what is needed, so usually the compile time is much less. When it comes to Luau debugging, inserting "print()" in the code is as far as I know the only way to find out where and what is wrong. Luau sometimes output run-time errors but usually (like Javascript) the execution of the script just halts.
With all this in place you should be able to compile and run the GameTop engine. The engine is still very much Beta and no user documentation exists. Try making small changes in the code and see what happens. The design is described on the GitHub wiki https://github.com/RhettTR/Alben/wiki (where many fundamental concepts are defined) and in the thread 'Some new design thoughts' on the VASSAL forum https://forum.vassalengine.org/t/some-new-design-thoughts/76627
Last edit: Rhett 2026-05-06
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The environment for development is Linux. If you don't have Linux you may create a dual-boot on your Windows machine or buy a dedicated machine. I recommend using Linux Mint as the OS.
It is highly recommended that you use a virtual machine on your physical machine. Oracle VM VirtualBox is perfect for this purpose. Why a virtual machine? Partly for security reasons (GameTop is new software), partly because the setup for development should not interfere with any setup/configuration you already have on your physical machine.
There are many good guides around for making a virtual machine. I use 4 GB RAM and 50 GB storage. Install VBoxGuestAdditions.iso after the Linux Mint iso is installed (Settings->Storage->Controller:IDE). Activate copy/paste with Devices->Shared Clipboard->Bidirectional.
The first thing you need to check on your new machine is the C++ compiler. It should be C++17. Please, for the time being do not use features from later C++ compiler versions. Check the compiler by running:
The output should be "C++ version: 201703" , which is C++17.
Install Qt.
First, you need to install two xcb libs:
Install build essentials (if not already installed).
You may need to install libraries for OpenGL:
You need to create a Qt account (if you don't have one). Go to https://login.qt.io/login and click Create Qt Account.
The home page of Qt changes. The steps below are what at time of writing makes you able to download the open source version of Qt.
Go to the page https://www.qt.io/development/download-open-source
A way down on the page you find the button 'Download the Qt Online Installer'.
Select the right OS (Linux x64).
The downloaded installer is (right now) called 'qt-online-installer-linux-x64-4.11.0.run'.
You may need to set the permission of this file to execute.
Run the .run file in a terminal. The installer opens and you follow the steps. Now you use your Qt account.
Set installation directory, choose Developer Tools for Qt6.11 Desktop Development and choose Custom Installation (you may want to avoid unnecessary installs of designer tools etc, I only choose 'Qt for Development -> Qt -> 6.11.0'). Untick WebAssembly. Under additional libraries, there are a lot of code/features you don't need. You can untick much.
All the libraries are precompiled with the installation and are found in Qt/6.11.0/gcc_64/lib.
You need to specify the path where the C++ GameTop executable can find the Qt libs:
Also, you need to make sure the CMakeLists.txt file has the correct paths.
Install CMake. It is found in the Software Manager on Linux Mint (not necessarily the latest version, can also use 'sudo apt-get -y install cmake'). My CMake version right now is 3.22.1.
Install Luau.
Luau is found here: https://github.com/luau-lang/luau/releases/tag/0.615
At the bottom of the page click "Source code (tar.gz)".
Note: I know very well that this is not the latest version of Luau. At time of writing the latest version is 0.719. The compilation of 0.719 went well but for some unexplainable reason errors occurred when linking the Luau libraries to the GameTop code. The errors were like this:
This must be looked into later. If you can find a solution with 0.719 please post it.
The CMakeLists.txt I use without errors looks like this:
The README.md in /home/me/luau-0.615 tells you how to build the static Luau libraries. I used:
Download the GameTop source code from https://github.com/RhettTR/Alben (you only need the prototype folder).
Note that there is no
imagesdirectory in the download. The images directory must be extracted from the VASSAL module Paths of Glory found here: https://vassalengine.org/library/projects/Paths_of_Glory (at time of writing the name of the module is PathsofGlory10.8.vmod, the size of the unpacked images directory is 37.8 MB). Place the unpacked images directory along side the__imagesdirectory in the prototype folder.Install your favorite IDE. It must obviously be able to support the C++ language.
The compiler is the C++ compiler in your Linux distribution (C++17).
Code completion is handy if the IDE has a plug-in for C++ and Lua.
I use a simple IDE (Geany). I compile in a terminal window. Luau code is executed by the Luau interpreter (Luau VM). It is advisable to have an IDE with a proper C++ debugger, I won't argue that. Still you get far with "printf()" in the C++ code. The compile time is not huge (about 78 sec for a complete compile of 12.000+ lines). CMake only compiles what is needed, so usually the compile time is much less. When it comes to Luau debugging, inserting "print()" in the code is as far as I know the only way to find out where and what is wrong. Luau sometimes output run-time errors but usually (like Javascript) the execution of the script just halts.
With all this in place you should be able to compile and run the GameTop engine. The engine is still very much Beta and no user documentation exists. Try making small changes in the code and see what happens. The design is described on the GitHub wiki https://github.com/RhettTR/Alben/wiki (where many fundamental concepts are defined) and in the thread 'Some new design thoughts' on the VASSAL forum https://forum.vassalengine.org/t/some-new-design-thoughts/76627
Last edit: Rhett 2026-05-06