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.