English Readme | 中文简介
LuaSTG-x is a multi-platform game engine based on cocos2d-x and LuaSTGPlus. It is aimed at providing a powerful engine for building STG, especially bullet hell games.
Full release download:
- Complete 2D game engine functions from cocos2d-x.
- Multi-platform audio engine, supports audio effects.
- Multi-platform video engine based on FFmpeg.
- Cocos Creator support from creator_to_cocos2dx.
- Live2D support with Lua binding.
- ImGui support with Lua binding.
- Multi-thread optimizations.
- LuaSTG-x GitHub Wiki
- LuaSTG-x Lua API Document
- Baidu Tieba
- LuaSTG Wiki Site
- Bullet Hell Engines Discord Channel
-
Clone the repo and submodules from GitHub (or download from release page).
$ git clone --recursive https://github.com/Xrysnow/LuaSTG-x.git
-
For releases before 2023, clone external libraries into
frameworks/cocos2d-x/external
(or download from release page).$ cd LuaSTG-x/frameworks/cocos2d-x/external $ git clone --recursive https://github.com/Xrysnow/cocos2d-x-3rd-party-libs-bin.git
-
Download extra files from Cubism SDK if you need live2d module. (instructions).
-
Generate project using CMake (instructions).
- If your target is Android platform, just open
frameworks/runtime-src/proj.android
with Android Studio. - If your target is macOS platform, add
-GXcode
parameter to CMake. - If your target is IOS platform, you can search for a bash script that helps to configure CMake.
- If your target is macOS/IOS platform, you need to open
project setting -> TARGETS -> LuaSTG-x -> Build Phases -> Copy Files
and checkCode Sigh On Copy
for frameworks. - If your target is Linux platform, you need to execute
frameworks/cocos2d-x/install-deps-linux.sh
before using CMake. It's recommended to add-GNinja
parameter to useninja
since defaultmake
is very slow.
- If your target is Android platform, just open
-
Compile with your target compiler.
- CMake 3.20+
- Android Studio 2021.1.1+ and NDK r22+
- Linux with compiler supports C++17 (Clang is recommended)
- macOS 11.3+ and Xcode 13+
- Windows 7+ and VS 2019+
Runtime requirements is actually decided by your compiler, but in most cases they should satisfy these conditions:
- Android 5.0+
- iOS 13+
- macOS 10.15+
- Windows 7+ and visual c++ runtime
Note that iOS 13+ and macOS 10.15+ are always required for std::filesystem
(source).
LuaSTG-x
├ cocos-x
│ └ cocos-x-external
│ ├ cocos2d-x-gfx
│ ├ glslang
│ ├ openal-soft
│ └ SPIRV-Cross
├ cocos2d-x-imgui
│ ├ ImGui
│ ├ imgui_markdown
│ ├ ImGuiColorTextEdit
│ └ implot
├ cocos2d-x-live2d (optional)
│ ├ CubismNativeFramework
│ └ Cubism SDK for Native
├ cocos2d-x-video
│ └ FFmpeg (in lstgx_external)
├ lstgx_Audio
│ └ openal-soft (in cocos-x-external)
├ lstgx_external
│ ├ ANGLE (optional)
│ ├ BurstLinker
│ ├ FFmpeg (optional)
│ ├ libzippp
│ │ └ libzip
│ ├ Lua CJSON
│ ├ luafilesystem
│ ├ LPeg
│ ├ MicroTeX
│ ├ nanosvg
│ ├ NativeFileDialog
│ └ Yuescript (optional)
├ lstgx_Math
└ lstgx_LuaCore