Building - festivaldev/Paradise GitHub Wiki

Building

:warning: If you're not a developer and you only want to play UberStrike, you can safely ignore these instructions!

:information_source: This section is a work in progress. Information presented here may be out of date.

To begin building Paradise and its components, prepare the project as described below:

  • Clone this repository
  • Make sure required assemblies have been copied to AssemblyReferences (as per Building Requirements)
  • Open Paradise.sln using Visual Studio 2019 or later
  • If not done automatically, restore the missing NuGet packages by right-clicking the root node ("Paradise") inside the Solution Explorer and selecting Restore NuGet Packages

Once the solution is opened in Visual Studio, make sure to select the "Release" build scheme (next to the green "play" symbol in the toolbar).
This will copy the build output into the build directory.

Each Paradise component (Client, Web Services and Realtime Applications) is linked through build dependencies, so for compiling a single component, you'll only need to (re-)build a single project, as described below:

Client

Building the client binaries is done using the Paradise.Client.Bootstrap project, located inside the Client group. This will build both the bootstrap and the actual Paradise client and copy it to both build\client\Managed and - for ease of development - to your local UberStrike directory. You may need to adapt this path to your local UberStrike directory.
This second post-build job is optional and can be disabled by removing the build event scripts of both Paradise.Client and Paradise.Client.Bootstrap (right-click on a project → Properties → Build Events → Post-build event command line).

Optionally, you can build Paradise.Client.DiscordRPC to use Discord Rich Presence within UberStrike. The build output will be placed in build\client\Plugins\ as well as the UberStrike game directory.

Web Services

The Paradise Web Services are compiled using the Paradise.WebServices.Services project in the Web Services\Plugins group. This project will build Paradise.WebServices for the console application, the Windows service used for running in th ebackground and the tray application alongside the actual Web Services. The compiled binaries are then placed in build\server\Paradise.WebServices.

If you would like Discord bot integration, you'll also need to build Paradise.WebServices.Discord. For barebones legacy support (currently limited to 4.3.10.1), you'll need to build Paradise.WebServices.LegacyServices.

For running the Web Services locally for testing purposes, see Server Installation.

Photon Realtime Applications

The Photon Realtime Applications, CommServer (used for communication) and GameServer (the actual gameplay logic), can be compiled by building the Paradise.Realtime project located inside the Realtime group. The build output will be located in build\server\Paradise.Realtime\bin.

For testing, you can install Photon locally by copying it to build\server\photon, as described in Server Installation.