Xrysnow / LuaSTG-x

LuaSTG-x is a multi-platform game engine.
MIT License
88 stars 17 forks source link
cocos2d-x game-engine luastg luastg-x shooting-game

LuaSTG-x

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.


Gallery | Core API Manual | Changelog

Download

Full release download:

Main Features

Relevant Link

Build Instructions

  1. Clone the repo and submodules from GitHub (or download from release page).

    $ git clone --recursive https://github.com/Xrysnow/LuaSTG-x.git
  2. 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
  3. Download extra files from Cubism SDK if you need live2d module. (instructions).

  4. 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 check Code 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 use ninja since default make is very slow.
  5. Compile with your target compiler.

Build Requirements

Runtime Requirements

Runtime requirements is actually decided by your compiler, but in most cases they should satisfy these conditions:

Note that iOS 13+ and macOS 10.15+ are always required for std::filesystem (source).

Dependency Graph

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