Skip to content

Modern customizable cross-platform auto-updating launcher solution / 现代 跨平台的自动更新启动器方案

License

Notifications You must be signed in to change notification settings

moehoshio/NekoLauncher

Repository files navigation

Neko Launcher

正體中文 | 简体中文 | English
Neko Launcher (NekoLc) is a modern, cross-platform, multi-language supported auto-updating launcher solution.
It can launch any target you want, and the current template can successfully launch Minecraft for Java.
It includes automatic content updates and self-updates (both your content and Neko Core itself), as well as automatic installation of your content.
If you're still searching for an auto-update solution, or if you're troubled by automating updates (users don't know how to operate, lack of automated update management solutions...), then try it.
The project is still in development, and any constructive ideas are welcome.
Preview :
img
gif:
img2

Become Contributors

Currently, the following aspects are still incomplete:

  • UI: Transition animations, theme settings/style customization, and better art design.

  • Others: more template examples, and Considering drag-and-drop mechanism for visual customization of the interface, maybe even adding music playback functionality?

Of course, I would be very grateful for any help you can provide or any ideas to make the project more robust. If you are interested, feel free to submit issues.

Supported Platforms

I use Qt6 to build the GUI, However, it shouldn't use any special APIs.
You should be able to use Qt5 to build:
Ubuntu 18.04
macOS 10.13
Windows 7

Our main program also uses cross-platform methods, making it supported on most platforms.
In other words, you can also forgo the GUI; its core should still run properly.

Build

prerequisites:
std >= c++20
Qt5.6.0 ? (6.6 & 6.8 is the tested version)
cmake 3.20 or above (3.29 is the tested version)
libcurl 8.1 is the tested version
openssl 3.4 is the tested version
boost.process 1.86.0 is the testd version
boost.stacktrace 1.86.0 is the testd version

Already included in the project dependencies:

simpleIni 4.20
nlohmann/json 3.11.3
loguru 2.1
threadpool for 2021-3507796

After satisfying the prerequisites, continue:

git clone https://github.com/moehoshio/NekoLauncher.git && cd NekoLauncher

# Unix
chmod +x ./build.sh && ./build.sh

# Windows
build.bat

# Or build manually

cp CmakeListsCopy.txt CmakeLists.txt

# fill path for your
cmake . -B./build -DLIBRARY_DIRS="Package path (e.g /to/path/vcpkg/installed/x64-windows)" -DQt6_DIR="Qt path (e.g /to/path/Qt/6.6.1/msvc_2019_64)" -DCMAKE_BUILD_TYPE="Debug or Release(Default)"

cmake --build ./build --config Release

cmake --install ./build --config Release --prefix ~/NekoLc

In addition, the working directory needs to contain the following files:
Folders required: lang/, img/
Files required: config.ini, cacert.pem, img/loading.gif, img/ico.png, lang/en.json. (This does not include your dynamic link libraries)

Contribution and Customization

If you want to use this project, you might need to make modifications to be able to use it. Because it is highly customized.

If you simply want to keep the content updated automatically, it shouldn't be too difficult.

Using our provided template method: modify the launcherMode variable at the top of src/include/neko/schema/nekodefine.hpp.

We currently provide a template for Minecraft Java; change the variable to "minecraft".

If you want complete custom logic: write your function anywhere and call it in the launcher function located in src/include/neko/core/launcher.hpp.

You might need to edit the version number and server links in src/include/neko/schema/nekodefine.hpp.

For example, if you want to launch example.exe:

inline void launcher(std::function<void(const ui::hintMsg &)> hintFunc,std::function<void()> onStart, std::function<void(int)> onExit) {
    // Write your content

    // shell: example.exe -args ...
    std::string command = std::string("example.exe ") + "-you might need some parameters " + "args...";
    launcherProcess(command,onStart,onExit);
}

For more detailed information, please refer to: dev.md

After completing these steps, you'll need to deploy your server. A simple example can be found at:
server.md.

About

Modern customizable cross-platform auto-updating launcher solution / 现代 跨平台的自动更新启动器方案

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages