Skip to content

Latest commit

 

History

History
323 lines (253 loc) · 26.2 KB

README.md

File metadata and controls

323 lines (253 loc) · 26.2 KB

RTSOpen

RTSOpen is a source-available BSL(1.1) project for developing tools and systems for an RTS game base anyone can bootstrap their games on. The license has custom usage rights that permit *most people to use this in a commercial game project if appropriate credits are given and if the source code is not redistributed outside of compiled form.

*Persons and studios with any access to finances above 100,000 USD per year need to read the additional grants section in the license for further details

beta version license

Notes

Updated the readme to better reflect the current state of the system, although it is still incomplete, so I will update the readme some more in the coming days (6th May 2026).

status_inprog_backlogged

Sections badge badge badge
Status done done mostly_done_backlogged
Description
Integral & Floating point number boxes

status_mostly_done_backlogged

Sections badge badge badge
Status mostly_done_backlogged mostly_done_backlogged mostly_done_backlogged
Description
Keep network load lighter when there are many recipients and senders
Message datums contain a message tag, to be routed to a list of game messages to display to the target actor
Registers network managers to route RX/TX messages to managed actors

status_mostly_done

Sections badge badge badge badge badge badge
Status mostly_done done done done done done
Description
Configurable rulesets and a ruleset evaluator.

Make custom rulesets or recreate existing well-known rulesets
Configurable Skills & Skilltrees
Configurable level scaling and stat modifier rules
Replicated progression component and progression datums (fastarrays again)
Maps data so we can access it at O(1) when searching for specific default data
Base UMG widgets for developers to bootstrap from or to use as example for progression related widgets
Sections badge Sections badge
Status todo_backlogged Status todo_backlogged
Description Description
TODO: Need to finish up the ruleset code, it was mostly done but was a long time ago since I wrote it so I will need to investigate first
TODO: Need to assess if this needs more substantial additions. Not very likely. I do vaguely remembe

status_mostly_done

Sections badge badge badge
Status done done done
Description
Configurable tracer for interactions or other purposes
Base interact actor, Interact component, and Interact interface
Base UMG widgets for developers to bootstrap from or to use as example for progression related widgets
TODO: Need to assess if this needs more substantial additions

status_mostly_done

Sections badge badge badge
Status done done done
Description
Configurable item definitions via datatable
MassFragment base, can interact with inventory components
UObject component base, can interact with inventory fragments
Sections badge badge Sections badge
Status done done Status done
Description
N/A
N/A
Description
Replicating items and item counts (fastarrays again) for the inventory component.
Inventory Fragment is currently not being replicated iirc
TODO: Need to assess if this needs more substantial additions

status_mostly_done

Sections badge badge badge badge badge
Status done done done mostly_done inprog
Description
Generates custom octree nodes and assigns them to entities

Custom octree nodes that packs certain entity data
Calculates dynamic hashgrid cells

Recalculates locations to dynamic hashgrid mapping
Scans hashgrid for entities to ping

Pings JobTag to entities to target given actor
Uses hashgrid for actor placement

Tracks buildings and owners

Caches build system recipes
Custom Mass Tasks, Processors, Evaluators, Fragments, Traits

Custom State tree behaviour schema
Sections badge badge badge
Status done inprog done
Description
Applies different camera presets/setups using 'FPDCameraManagerSettings'

Allows for custom presets/setups (Has a default base RTS preset )
UPDATEME

UPDATEME
Ghost building interface, used by actors that wants to be managed by the builder system

Builder Interface, used by actors that wants to be able to build other actors

status_inprog_backlogged

Sections badge badge
Status done inprog
Description
Bootstrapped from Unreal Conversation
Mission editor classes are halfway implemented in another repo, will move here when it is more complete and continue work then
TODO: Need to move this over to PDOpen and to wrap up the mission editor code in PDOpen and port it over here when done.

status_todo_backlogged

Sections badge badge
Status todo_backlogged todo_backlogged
Description



status_mostly_done

Sections badge badge
Status mostly_done mostly_done
Description
GodHand player pawn (Basic godhand concept. Uses 'IPDRTSBuilderInterface, IRTSOInputInterface, IRTSOConversationInterface')
Player Controller (Uses 'IRTSOInputInterface, IPDRTSBuilderInterface, IRTSOActionLogInterface')
TODO: Need to assess if this needs more substantial additions

status_mostly_done

Sections badge badge badge
Status done done mostly_done
Description
Handling interaction logic for resource buildings or building ghost steps
Resource type interactables, makes use of the inventory system
Handles triggering unreal conversations and mmanages checking and applying mission tags
TODO: Need to assess if this needs more substantial additions

status_inprog

Sections badge badge
Status inprog inprog
Description
Custom tasks that hooks into other systems, such as interaction or inventory
Custom fragments that uses data for other systems, such as interaction or inventory
TODO: Need to assess if this needs more substantial additions. Very likely there is need for furhter tasks w.r.t specialized reource gathering or stacked build tasks

status_inprog
Sections badge badge badge
Status mostly_done mostly_done inprog_backlogged
Description
Tag based mission system. Tags serve as missions and as flags for objectives/sideobjectives states.
Custom conversation actor that uses one of the interaction systems intrfaces and has interaction logic that handles checking and granting for mission tags
Slate core widgets with UMG wrappers. Used for a Mission Menu View and Mission/Objective Lists
TODO: integrate with mission/quest plugin in PDOpen when getting back to that
TODO: Need to move this over to PDOpen and to wrap up the mission editor code in PDOpen and port it over here when done.

status_inprog_backlogged
Sections badge badge badge
Status mostly_done mostly_done done
Description
Handles login player controller flow and loads in their buildings if they have any
Handles level transitions
Handles Autosaving logic, timers and auto save slots
TODO: Single player and custom server matchmaking is the plan, and official servers I guess could run game with anti-cheat? not sure yet, but a login flow and loading logic is needed for the p2p part, the single player part stores the savefile on
TODO: Very likely I will need to add more login related code and loading more player data than just buildings ()

status_inprog
Sections badge badge
Status done deprecated
Description
Draws selection marquee and gathers results
Minimap logic (Deprecated, moved to compute shaders)
TODO: Need to assess if this needs more substantial additions. Very likely there is need for it later down the line

status_mostly_done
Sections badge badge badge badge
Status done done todo inprog_backlogged
Description
See 'User Settings' for more details
Custom Save/load menu, Slate base
N/A
Mission view widgets, Slate base
TODO: Need to assess if this needs more substantial additions. Somewhat likely there is need for it later down the line

status_mostly_done_backlogged
Sections badge badge badge
Status done done done
Description
Mix of slate and UMG to generate widget slots for each settings type
Supports POD data settings types, String settings type, Enum/String selector settings types, vector settings types
Settings bindable to actual in-game data, as to make thigns more plug and play an avoid having hardocded edge cases for each binding
TODO: Need to fix a darn bug I notced when overriding the slate widget for certain overriden boolean members (specifically those that via a checkbox and control access to other variables)

status_mostly_done_backlogged
Sections badge badge
Status done done
Description
Mix of slate and UMG widgets
Reads the current save data and allows for live modification within the game
TODO: Update UI, looks horrendous. Alos while at it add import and export from custom binary format and also json format (With this many entities I might need to be creative with the Json structure so I can cram alot of data into few fields)

status_done
Sections badge
Status done
Description
Injects user defined strings and generates tags at game startup. Meant ot be used to allowing mods that target different systems liek the inventory system, skill system etc

status_inprog
Sections badge badge
Status done done
Description
Build system HUD View buttons (mostly slate)
Conversation system HUD View Elements (mostly slate)
TODO: Need to assess if this needs more substantial additions. Somewhat likely there is need for it later down the line

status_done
Sections badge
Status done
Description
Stacks input for IA actions, mainly due to a bug in 'Enhanced Input' causing input data to be reset

status_inprog
Sections badge
Status inprog
Description
Global Minimap splatter shader (used for splatting mass entities unto a RT texture, need to reuse for other data I want on the minimap RT texture)
TODO: I have more texture shaders and compute shaders I want to write and make use of for other data visualization w.r.t. entities