RTS Open

A source-available Unreal Engine framework for real-time strategy games, tools and systems anyone can bootstrap an RTS on top of.

  • Unreal Engine, C++
  • Gamekit: RTS
  • BSL 1.1 License
  • Active

Overview

RTS Open is a modular Unreal Engine codebase for real-time strategy games, built as a set of standalone plugins around a playable game layer. It's licensed under the Business Source License 1.1, which permits commercial use under most circumstances and converts to a permissive license after a fixed term.

Plugins

  • PDRTSBase Mass-Entity-based unit simulation, camera presets, ghost-building/build-system interfaces, custom octree and hashgrid spatial queries
  • PDInteraction configurable interaction tracing, interact actor/component/interface base classes
  • PDInventory DataTable-driven item definitions, replicated inventory via Mass fragments
  • PDProgression configurable stat rulesets with an operator-precedence evaluator, skill trees, replicated progression components
  • PDUserMessageBase tag-routed, network-load-aware message delivery to many recipients
  • PDSharedUI, PDConversationHelper, PDTutorialSystem shared UI widgets, dialogue built on Unreal's Conversation framework tied to a tag-based mission system, and an early-stage tutorial system

Game layer

On top of the plugins sits the game-specific layer: a GodHand player pawn and controller, StateTree-driven AI tasks for unit behaviour, interactable buildings and resource nodes, and a tag-based mission system where gameplay tags double as both mission identifiers and objective-state flags.

Notable engineering

  • Unit AI rewritten on Unreal's Mass Entity framework. With a custom octree, which was later replaced by a hashgrid for resource-tracking performance for spatial queries at scale
  • A Slate-based minimap replaced with a GPU compute-shader version; entity position, team colour and rotation packed into a render target and sorted via a custom bitonic-sort global shader to render tens of thousands of entities in real time
  • A "pinger" job system that assigns idle units to buildings requesting resources, backing a full gather-and-deliver logistics loop
  • WC3-style marquee unit selection with up to 20 hidden, hotkeyed selection groups

Relationship to Permadev Open

RTS Open and Permadev Open share a codebase: RTS Open is where most day-to-day development happens, while Permadev Open is meant to hold the base/shared modules once they're stable. The interaction and progression systems above were both built and proven inside RTS Open, and the project's own notes mark them for eventual consolidation into Permadev Open, while the dialogue/mission system is earmarked to move the other way, once Permadev Open's mission editor is far enough along.

Development history

RTS Open's first commit landed on 10 April 2024, starting from an interaction-tracing plugin and a camera manager. Over the following weeks the project grew an inventory system, a GodHand player pawn, a tag-based conversation/mission layer, and a full rewrite of unit AI onto Unreal's Mass Entity framework, including an octree for spatial queries and marquee-based selection groups. Progression followed in July 2024, with a custom stat-ruleset evaluator and skill trees.

Development paused for roughly a year, resuming in August 2025 on the settings system, custom property-binding widgets for keys, vectors and colours, before pausing again from around November 2025 to March 2026. That second stretch produced the GPU minimap rewrite, swapping a CPU-bound Slate minimap for a compute-shader version sorting tens of thousands of entities per frame.

Since April 2026, development has focused on resource-gathering AI: the job-pinging system, StateTree tasks for fetching and delivering resources, and a hashgrid replacing the original octree for tracked resources. Most of May 2026 went into reworking the README into its current badge-and-table format.