{"id":16064784,"url":"https://github.com/psichix/unreal-systems-architecture","last_synced_at":"2025-08-08T23:13:48.668Z","repository":{"id":48138998,"uuid":"457162804","full_name":"PsichiX/Unreal-Systems-Architecture","owner":"PsichiX","description":"Systems Architecture plugin workspace for Unreal Engine","archived":false,"fork":false,"pushed_at":"2023-10-20T11:56:02.000Z","size":23094,"stargazers_count":56,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T08:21:41.460Z","etag":null,"topics":["unreal-engine","unreal-engine-plugin"],"latest_commit_sha":null,"homepage":"https://psichix.github.io/Unreal-Systems-Architecture/systems/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PsichiX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-09T01:18:04.000Z","updated_at":"2025-03-07T09:43:14.000Z","dependencies_parsed_at":"2023-02-12T16:31:45.163Z","dependency_job_id":"76cd3ab0-a6f0-4ee1-ab5c-bc79e96619ea","html_url":"https://github.com/PsichiX/Unreal-Systems-Architecture","commit_stats":{"total_commits":109,"total_committers":1,"mean_commits":109.0,"dds":0.0,"last_synced_commit":"1d5093e9aaf91b89d8157454bcc87c4e6de5d055"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/PsichiX/Unreal-Systems-Architecture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PsichiX%2FUnreal-Systems-Architecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PsichiX%2FUnreal-Systems-Architecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PsichiX%2FUnreal-Systems-Architecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PsichiX%2FUnreal-Systems-Architecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PsichiX","download_url":"https://codeload.github.com/PsichiX/Unreal-Systems-Architecture/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PsichiX%2FUnreal-Systems-Architecture/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269502567,"owners_count":24427790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["unreal-engine","unreal-engine-plugin"],"created_at":"2024-10-09T05:09:34.067Z","updated_at":"2025-08-08T23:13:48.640Z","avatar_url":"https://github.com/PsichiX.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unreal Systems Architecture\nSystems Architecture plugin for **Unreal Engine 5.1**.\n\n## Table of contents\n\n- [About](#about)\n- [Installation](#installation)\n- [Testing demos](#testing-demos)\n- [Quick showcase](#quick-showcase)\n- [Plugins documentation](#plugins-documentation)\n\n## About\n\nThis plugin adds database-like interface over Unreal Engine world that allows\nyou to query and process game world data in easy, ergonomic and modular way.\n\nIt is all about enabling decoupling of data from logic, allowing fast development\niteration times, making it easier to develop and reason about game logic.\n\n\u003e **More in-depth about Systems Architecture can be found in\n[Systems Architecture documentation](https://psichix.github.io/Unreal-Systems-Architecture/systems)**\n\nThis repository contains a workspace project for small demos showcasing how to\nsetup and use Systems Architecture in your game:\n\n- Boids demo\n\n    Boids are somewhat standard way to showcase database-like approach to game\n    architecture in a nutshell.\n\n    - [C++ Code](Source/Boids/)\n    - [Content](Content/Boids/)\n\n- Life simulation demo\n\n    Small simulation-like demo where player is a god and watches over humans and\n    animals running around doing their business.\n\n    - [C++ Code](Source/Life/)\n    - [Content](Content/Life/)\n\n- Multiplayer demo\n\n    Example of how to combine Systems Architecture with multiplayer essentials\n    (For now with no client-side predicition and server-side reconciliation).\n\n    - [C++ Code](Source/Multiplayer/)\n    - [Content](Content/Multiplayer/)\n\n- Tutorial\n\n    Learning project that will be later used in documentation to teach users how\n    to work with Systems Architecture.\n\n    - [C++ Code](Source/Tutorial/)\n    - [Content](Content/Tutorial/)\n\n## Installation\n\nFor now until plugin gets accepted into Epic Marketplace, you should download\nplugins ZIP files from [Releases page](https://github.com/PsichiX/Unreal-Systems-Architecture/releases)\nand unpack them in `Plugins` folder of your game project, enable plugins in game\n`.uproject` file and recompile game project (basically follow 3rd-party plugins\ninstallation rules).\n\n## Testing demos\n\nIf you want to test demo mini-games, please clone this entire repo, compile game\nand open default level (`/Content/Shared/Maps/GameSelectionMap.umap`).\n\n## Quick showcase\n\n- Components store data:\n\n    ```c++\n    UCLASS(BlueprintType, Blueprintable, Meta = (BlueprintSpawnableComponent))\n    class SHARED_API UVelocityComponent : public USystemsActorComponent\n    {\n        GENERATED_BODY()\n\n    public:\n        UPROPERTY()\n        FVector Value = FVector(0);\n    };\n    ```\n\n- There are also tag components that do not store data, rather mark actors:\n\n    ```c++\n    UCLASS(BlueprintType, Blueprintable, Meta = (BlueprintSpawnableComponent))\n    class BOIDS_API UBoidComponent : public USystemsActorComponent\n    {\n        GENERATED_BODY()\n    };\n    ```\n\n- In system functions we can query Systems World database to process batches of world data\nin more functional way, using powerful lazy-iterators:\n\n    ```c++\n    void BoidsMovementSystem(USystemsWorld\u0026 Systems)\n    {\n        const auto DeltaTime = Systems.GetWorld()-\u003eGetDeltaSeconds();\n\n        for(auto\u0026 QueryItem : Systems.Query\u003cUVelocityComponent, UBoidComponent\u003e())\n        {        \n            auto* Actor = QueryItem.Get\u003c0\u003e();\n            const auto* Velocity = QueryItem.Get\u003c1\u003e();\n            const auto Position = Actor-\u003eGetActorLocation() + Velocity-\u003eValue * DeltaTime;\n    \n            Actor-\u003eSetActorLocation(Position);\n        }\n    }\n    ```\n\n\u003e That's all what falls into common use of Systems Architecture in code,\nfor more in-depth explanation and examples please visit plugin documentation.\n\n## Plugins documentation\n\n- [Systems Architecture](https://psichix.github.io/Unreal-Systems-Architecture/systems)\n- [Systems Query Debugger]() (TODO)\n- [Systems Spatial Query]() (TODO)\n- [Reactive UI Systems]() (TODO)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsichix%2Funreal-systems-architecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsichix%2Funreal-systems-architecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsichix%2Funreal-systems-architecture/lists"}