Skip to content

A custom launcher for 'SnowBreak: Containment Zone' game, written in C# of .NET8

License

Notifications You must be signed in to change notification settings

Leayal/SnowBreakLauncher-Dotnet

Repository files navigation

SnowBreakLauncher-Dotnet

A custom launcher for SnowBreak: Containment Zone, written in C# of .NET8.

Notes

  • Currently, this is a hobby project: The launcher can check for game's update, install game client, update the game client and start the game. I can only maintain it in free time and I'll prioritize bug-fixing over feature-adding.
  • The launcher has no self-update function. In order to update the launcher, you will need to re-download the launcher by yourself and overwrite the old files.
  • Regarding playing on Linux OSs: tl;dr: Play at your own risk. While this launcher supports downloading and launching the game on Linux-based platforms, the game itself is not designed to support Linux natively. Playing the game via third-party emulations or translation layers (such as Wine or Proton) has risks of banning (as the emulators/layers may cause false-positive detect from the game's anti-cheat).

Usage:

You can download the binaries and use it in Release page

Or you can build the whole thing from source:

  • Requirements:
  • After installing the SDK, you can compile by running one of the build script files (if you're building it for personal use, I recommend building dependent one):
    • build-rel-win-standalone.bat file: For 64-bit Windows OSs, the binaries will be portably standalone and requires no dependencies to run.
    • build-rel-win-dependent.bat file: For 64-bit Windows OSs, the binaries will be portable but requiring .NET Runtime installed on the user's system to run.
    • crossbuild-rel-linux-standalone.bat file: For 64-bit Windows OSs, the binaries will be portably standalone which is for running on Linux OSs. In the nutshell, this is Building it on Windows, running it on Linux.
    • crossbuild-rel-linux-dependant.bat file: For 64-bit Windows OSs, the binaries will be portable but requiring .NET Runtime installed on the user's system to run.
    • build-rel-linux-standalone.sh file: For 64-bit Linux OSs, the binaries will be portably standalone and requires no dependencies to run. This is recommended if you are to distribute your binaries to other users.
    • build-rel-linux-dependent.sh file: For 64-bit Linux OSs, the binaries will be portable but requiring .NET Runtime installed on the user's system to run.
  • After the build is completed successfully, all the compiled binaries can be found in release directory.

Why are there multiple build script files:

  • Scripts with standalone in the name was meant to build binaries which you can give to others.
  • Scripts with build was meant to implies the script "should" produce the same kernel-targeting binaries as the OS invoked the script. Crossbuild means the opposite, produce different kernel-targeting binaries from the OS invoked the script.
  • Scripts with rel means building release binaries (meant to be distributed). rel-<OS> means release to be run on the target OS, for instance, rel-linux means binaries are for running on Linux-based OSs.

The .NET SDK includes all runtimes so you don't need to install .NET Runtime if you already have the SDK installed.

Development

As of writing this, I'm using Visual Studio 2022 IDE with. However, you can use any IDEs you like as long as it can deal with .NET C#.

Third-party libraries

  • CsWin32: A source code generator which generates Windows platform's P/Invoke functions "easily" (as sometimes you have to deal with pointers, aliased types and their haywires).
  • Avalonia: A cross-platform UI framework.
  • MessageBox.Avalonia: MessageBox for Avalonia.