Ant is an open source game engine developed by Lingxi Interactive Entertainment. At this stage, only the code repository is made public and has not yet been officially released. Documentation, examples, etc. are to be gradually improved on the Wiki If you have any questions, you can post in Discussions. Issues are only used for bug tracking, please do not ask questions in them.
git submodule update --init
- Install Visual Studio 2022 version 17.5 or later to ensure support for C11 Atomics. Otherwise, you will encounter the error
stdatomic.h no such file or directory
during compilation.
- Download and install msys2
- Find the msys2 installation directory and use mingw64.exe to open the msys2 terminal
- Add the path to ming64 to the environment variable
echo "export MINGW=/mingw64" >> ~/.bash_profile
echo "export PATH=\$MINGW/bin:\$PATH" >> ~/.bash_profile
- Install gcc/ninja
pacman -Syu mingw-w64-x86_64-gcc mingw-w64-x86_64-ninja
- Install xcode, ninja
git clone https://github.com/actboy168/luamake
cd luamake
git submodule update --init
.\compile\install.bat (msvc)
./compile/install.sh (mingw/linux/macos)
luamake
tools include: shaderc, texturec, gltf2ozz, release mode will be an order of magnitude faster (tools in debug mode do not need to be compiled)
luamake -mode release tools
luamake [target] -mode [debug/release] #-mode默认是debug
Run a minimal example
bin/msvc/debug/ant.exe test/simple/main.lua
bin/msvc/debug/ant.exe tools/editor/main.lua [projectdir] #for example: test/simple
- Install VSCode;
- Install the Lua Debug plug-in;
- Add debug configuration to
.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "lua",
"request": "launch",
"name": "Debug",
"luaexe": "${workspaceFolder}/bin/msvc/debug/ant.exe",
"luaVersion": "lua-latest",
"path": null,
"cpath": null,
"console": "integratedTerminal",
"stopOnEntry": true,
"outputCapture": [],
"program": "test/simple/main.lua",
"arg": []
}
]
}
- bin:compilation results, exe/dll/lib, etc
- build:intermediate results of compilation
- clibs:c/c++ code
- engine:engine basic support code, including package manager, startup code, etc
- pkg:Each function package of the engine (there are dependencies between packages)
- runtime:different platform support for engine runtime
- test:test project
- tools:engine related tools