Rhett - 6 days ago

Development is done on Linux. The default development platform is Linux Ubuntu.

C++ is used. The C++ version is C++17.

g++ is used. There is no particular reason for using g++ other than habit. Read about the difference between g++ and gcc here. On my Linux system g++ --version, gcc --version and c++ --version print the same. On Ubuntu c++ is actually the same as g++.

Luau is used. Luau is a sandboxed version of Lua 5.1, see here. It was the safety aspect that was the most important when choosing Luau. Luau can not access the host file system or load packages. Read more here. A very important feature of Luau/Lua is the C API. Luau is the perfect script interface for a C++ binary.

The game engine is part Luau and part C++. Simply put, the C++ part takes care of event handling and rendering while the Luau part takes care of the game engine logic. An illustration of the basic design is found on GitHub wiki.

Rendering is done with Qt. Read more about Qt here. An open source version of Qt is used. The Qt documentation is excellent. Right now version 6.8.1 is used. Versions of Qt are renewed rapidly and there is no particular reason for using version 6.8.1. A big advantage of Qt is that their libraries can run on many different platforms.

A Windows 11 version of the game engine has already been made using the cross-compiler mingw-w64, the Windows version of Qt and the Windows version of Luau found here.