Skip to content

20210131

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 31 Jan 11:24
· 42 commits to master since this release
  • Updated engine to playtest-20210131
  • Updated toolchain to work with the new OpenRA engine
  • Removed legacy python2 requirement
  • Fixed 64-bit Windows installer installing to the wrong Program Files directory
  • Fixed HiDPI rendering in Windows installers
  • Replaced Travis CI continuous integration support with GitHub Actions

This is a major update to the mod SDK. The following files have changed:

  • .github/workflows/ci.yaml (new file)
  • .github/workflows/packaging.yml (new file)
  • .gitignore
  • .travis.yml (deleted)
  • Makefile
  • make.ps1
  • mod.config
  • fetch-engine.sh
  • launch-dedicated.cmd
  • launch-dedicated.sh
  • launch-game.cmd
  • launch-dedicated.sh
  • utility.cmd
  • utility.sh
  • OpenRA.Mods.Example/OpenRA.Mods.Example.csproj
  • mods/example/audio/notifications.yaml
  • mods/example/cursor.yaml
  • mods/example/mod.yaml
  • packaging/linux/buildpackage.sh
  • packaging/linux/include/AppRun.in (deleted)
  • packaging/linux/include/gtk-dialog.py (deleted)
  • packaging/linux/include/mod-mimeinfo.xml.in (deleted)
  • packaging/linux/include/mod-server.in (deleted)
  • packaging/linux/include/mod-utility.in (deleted)
  • packaging/linux/include/mod.desktop.in (deleted)
  • packaging/linux/include/mod.in (deleted)
  • packaging/macos/buildpackage.sh
  • packaging/macos/entitlements.plist (deleted)
  • packaging/package-all.sh
  • packaging/windows/buildpackage.nsi
  • packaging/windows/buildpackage.sh

We recommend updating by making a backup of your packaging/artwork directory, deleting the packaging directory, and then replacing it with the updated directory structure in this release before restoring your custom artwork. Note that many files have been deleted, so extracting the new files over the top of the existing structure is not sufficient.

.travis.yml should be deleted and replaced with the new .github directory structure.

.gitignore, Makefile, make.ps1, fetch-engine.sh, launch-dedicated.cmd, launch-dedicated.sh, launch-game.cmd, launch-dedicated.sh, utility.cmd, utility.sh should then be replaced with the updated versions in this release.

The following changes are required in your mod.config:

  • In the Core Configuration section:
    • Change ENGINE_VERSION to playtest-20210131
  • Delete the entire Continuous Integration section
  • In the Packaging section:
    • Add new definitions:
      # Space delimited list of dll files compiled by the mod, which
      # should be copied from the bin directory into your installers
      PACKAGING_COPY_MOD_BINARIES="OpenRA.Mods.Example.dll"
      
      # If your mod depends on OpenRA.Mods.Cnc.dll from the engine set
      # this to "True" to package the dll in your installers.
      # Accepts values "True" or "False".
      PACKAGING_COPY_CNC_DLL="False"
      
      # If your mod depends on OpenRA.Mods.D2k.dll from the engine set
      # this to "True" to package the dll in your installers.
      # Accepts values "True" or "False".
      PACKAGING_COPY_D2K_DLL="False"
      
      # If you wish to enable Discord integration, register an
      # application at https://discord.com/developers/applications
      # and define the client id here and in your mod.yaml
      PACKAGING_DISCORD_APPID=""
      and update the values if relevant for your mod.
    • Change PACKAGING_OSX_LAUNCHER_TAG="osx-launcher-20200316" to PACKAGING_OSX_MONO_TAG="osx-launcher-20200830" (note that both the name and value have changed)
    • Change PACKAGING_APPIMAGE_DEPENDENCIES_TAG to 20200328
  • In the Advanced Configuration section:
    • Delete all of the variable definitions and replace with
      # Automatic engine managment will treat the OpenRA engine files like a read-only dependency.
      # Disable this if you would like to modify or manager your own engine files.
      AUTOMATIC_ENGINE_MANAGEMENT="True"
      
      # The URL to download the engine files from when AUTOMATIC_ENGINE_MANAGEMENT is enabled.
      AUTOMATIC_ENGINE_SOURCE="https://github.com/OpenRA/OpenRA/archive/${ENGINE_VERSION}.zip"
      
      # Temporary file/directory names used by automatic engine management.
      # Paths outside the SDK directory are not officially supported.
      AUTOMATIC_ENGINE_EXTRACT_DIRECTORY="./engine_temp"
      AUTOMATIC_ENGINE_TEMP_ARCHIVE_NAME="engine.zip"
      ENGINE_DIRECTORY="./engine"
      
      # The url to download the OpenRA macOS mono runtime.
      PACKAGING_OSX_MONO_SOURCE="https://github.com/OpenRA/OpenRALauncherOSX/releases/download/${PACKAGING_OSX_MONO_TAG}/mono.zip"
      
      # Temporary file name used when downloading the OpenRA macOS launcher files.
      PACKAGING_OSX_MONO_TEMP_ARCHIVE_NAME="mono.zip"
      
      # The url to download the OpenRA AppImage dependencies.
      PACKAGING_APPIMAGE_DEPENDENCIES_SOURCE="https://github.com/OpenRA/AppImageSupport/releases/download/${PACKAGING_APPIMAGE_DEPENDENCIES_TAG}/mono.tar.bz2"
      
      # Temporary file name used when downloading the OpenRA AppImage dependencies.
      PACKAGING_APPIMAGE_DEPENDENCIES_TEMP_ARCHIVE_NAME="mono.tar.bz2"
      
      # List of .NET assemblies that we can guarantee exist
      WHITELISTED_OPENRA_ASSEMBLIES="OpenRA.exe OpenRA.Utility.exe OpenRA.Server.exe OpenRA.Platforms.Default.dll OpenRA.Game.dll OpenRA.Mods.Common.dll OpenRA.Mods.Cnc.dll OpenRA.Mods.D2k.dll"
      
      # These are explicitly shipped alongside our core files by the packaging script
      WHITELISTED_THIRDPARTY_ASSEMBLIES="ICSharpCode.SharpZipLib.dll FuzzyLogicLibrary.dll Eluant.dll BeaconLib.dll Open.Nat.dll SDL2-CS.dll OpenAL-CS.Core.dll DiscordRPC.dll Newtonsoft.Json.dll"
      
      # These are shipped in our custom minimal mono runtime and also available in the full system-installed .NET/mono stack
      # This list *must* be kept in sync with the files packaged by the AppImageSupport and OpenRALauncherOSX repositories
      WHITELISTED_CORE_ASSEMBLIES="mscorlib.dll System.dll System.Configuration.dll System.Core.dll System.Numerics.dll System.Security.dll System.Xml.dll Mono.Security.dll netstandard.dll"

If your mod includes any custom c# projects you must update their csproj files to use the new OpenRA standard template. Open each csproj file with a standard text editor and replace the file contents with the text in OpenRA.Mods.Example/OpenRA.Mods.Example.csproj.

This SDK version is not backwards compatible with previous OpenRA's engine versions, and you must proceed with the Engine update guide before your mod will run on the new release.