Skip to content

Unreal Death Slayer

Death Slayer is a UE5 action game featuring intense combat mechanics and dynamic environments. This document tracks the cooked, Shipping release (-clientconfig=Shipping, -cook -pak) compiled from the external game repository KBVE/deathslayer and distributed to itch.io under kbve/deathslayer.

The game is built using Unreal Engine 5.8.0 with cross-platform support for Windows, Linux, and macOS, featuring:

  • Fast-paced combat system
  • Dynamic environment interactions
  • Cross-platform multiplayer support (planned)
  • Steam and itch.io distribution

pipeline: unreal_gameci-main.yml dispatches ci-unreal.yml (task: game) → ci-unreal-build.yml (mode: game) whenever the MDX version: here outpaces version.toml, or source_path files change.

The engine.external_repo_url configuration makes the builder clone the external KBVE/deathslayer repository (default branch: main) instead of using the monorepo shell. The version gate and version_toml tracker remain in this monorepo for CI/CD orchestration.

engine.build_targets:

  • Win64 — Native build on the UE5-Win KubeVirt VM using RunUAT.bat
  • LinuxBuildCookRun in the cached Epic UE Docker image on arc-runner-ue
  • Mac — Native build on the [self-hosted, macOS, ARM64] runner with code signing and notarization

Plus the bundled Linux dedicated server (shell_pathtask: server): the deathslayerServer target (server_config: Shipping) is cooked from the monorepo shell and archived to the appropriate storage location for Agones fleet deployment.

macOS builds are automatically signed and notarized using the following GitHub secrets:

  • APPLE_CERTIFICATE — Base64-encoded .p12 certificate
  • APPLE_CERTIFICATE_PASSWORD — Certificate password
  • APPLE_SIGNING_IDENTITY — Team ID or signing identity
  • APPLE_ID — Apple Developer account email
  • APPLE_PASSWORD — App-specific password
  • APPLE_TEAM_ID — Apple Team ID for notarization

The build pipeline handles entitlements for network access and sandboxing automatically.

Ships to itch.io kbve/deathslayer, one channel per platform:

  • windows — Windows builds (Win64)
  • linux — Linux builds
  • macos — macOS builds (signed and notarized)

Version tracking via butler’s --userversion parameter. Requires the butler_api secret for automated uploads.

A cross-platform desktop launcher is available at apps/deathslayer/deathslayer-launcher, built with:

  • Tauri 2 — Rust backend for native performance
  • React 19 — Modern UI framework
  • Vite — Fast development and build tooling

The launcher provides:

  • Automatic game updates
  • Version management
  • Launch configuration
  • News and announcements
  • Cloud save management (planned)
Terminal window
# Run launcher in development mode
nx run desktop-deathslayer:dev
# Build launcher for production
nx run desktop-deathslayer:build:tauri
  1. Bump version: in this MDX file above version.toml (apps/deathslayer/unreal-deathslayer/version.toml)
  2. Run npx nx run astro-kbve:sync:ci-manifest to update the CI manifest
  3. Commit and push to trigger the build pipeline
  4. The next ci-main run fans out the game build + itch upload for this entry
  5. Post-publish atom PR updates version.toml automatically

Builds source from the external game repository KBVE/deathslayer (default branch: main). The builder clones it with the GitHub PAT, then materializes engine.project_path (deathslayer/ — the directory holding DeathSlayer.uproject).

Content blobs are managed via Git LFS. The repository’s .lfsconfig points to the authenticated LFS endpoint, which the builder normalizes to the authenticated HTTPS ingress route at build time.

When engine.external_repo_url is empty, the builder falls back to the monorepo shell at apps/deathslayer/unreal-deathslayer.

Terminal window
# Clone the external game repository
git clone https://github.com/KBVE/deathslayer.git
# Pull LFS content
git lfs pull
# Open in Unreal Editor
# File → Open Project → deathslayer/DeathSlayer.uproject
Terminal window
# Run automated tests
nx run unreal-deathslayer:test
# Run the game in editor
# Use Unreal Editor → Play (Alt+P)
  • Game Mode: DeathSlayerGameMode — Core game rules and mechanics
  • Main Menu: /Game/Menus/L_MainMenu — Entry point and UI
  • Game World: /Game/Maps/L_DeathSlayerWorld — Primary game level
  • Initial project setup
  • Core combat mechanics
  • Basic environment design
  • Multiplayer networking
  • Steam integration
  • Achievement system
  • Cloud save support
  • Mobile platform support (iOS/Android)