Skip to content

Launcher: add Epic Games Store platform - #228

Merged
Kheartz merged 4 commits into
MafiaHub:developfrom
Kheartz:add_epic_platform
Jul 31, 2026
Merged

Launcher: add Epic Games Store platform#228
Kheartz merged 4 commits into
MafiaHub:developfrom
Kheartz:add_epic_platform

Conversation

@Kheartz

@Kheartz Kheartz commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Resolve the game through the Epic launcher's plaintext manifests: new External::Epic component, ProjectPlatform::EPIC, and RunInnerEpicChecks mirroring the Steam path.

Summary by CodeRabbit

  • New Features

    • Added Epic Games Launcher support for launching games.
    • Detects installed Epic games from local manifests and uses the discovered installation path.
    • Added an optional Epic app name setting to improve matching accuracy.
    • Supports matching games by executable filename or Epic app name.
  • Bug Fixes

    • Shows a clear error when a matching Epic installation cannot be found.
    • Ignores missing, unreadable, or malformed manifest entries during discovery.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Kheartz, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 57 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 187000bf-8964-408c-b91d-c18a40100b34

📥 Commits

Reviewing files that changed from the base of the PR and between e93686b and 9e093ef.

📒 Files selected for processing (1)
  • code/framework/src/utils/string_utils.h

Walkthrough

Adds Epic Games Launcher manifest discovery and launcher wiring for the EPIC platform path. The change enumerates manifests, finds installed applications, and resolves the install path before launch.

Changes

Epic Launcher Integration

Layer / File(s) Summary
Epic manifest data contract and header
code/framework/src/external/epic/manifest.h
Defines InstalledApp with validation and declares Epic manifest directory, enumeration, and lookup APIs.
Epic manifest discovery implementation
code/framework/src/external/epic/manifest.cpp, code/framework/src/utils/string_utils.h, code/framework/CMakeLists.txt
Resolves the manifest directory, scans .item files, parses JSON, matches applications, adds string utilities, and includes the source in FrameworkLoader.
Launcher EPIC platform wiring and pre-launch checks
code/framework/src/launcher/project.h, code/framework/src/launcher/project.cpp
Adds EPIC and epicAppName, then validates the Epic installation and stores the normalized install path before launch.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested reviewers: segfaultd

Poem

A rabbit scans each Epic file,
Finds the matching game in style.
The path is checked before the run,
Then off it hops beneath the sun. 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding Epic Games Store support to the launcher.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Kheartz
Kheartz force-pushed the add_epic_platform branch from 269f8e7 to 26de343 Compare July 9, 2026 12:39
@Kheartz Kheartz closed this Jul 9, 2026
@Kheartz
Kheartz deleted the add_epic_platform branch July 9, 2026 14:36
@Kheartz
Kheartz restored the add_epic_platform branch July 9, 2026 14:37
@Kheartz

Kheartz commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator Author

Woops sorry, didnt mean to close--was cleaning out my branches.

@Kheartz Kheartz reopened this Jul 9, 2026
@Kheartz
Kheartz requested a review from Segfaultd July 9, 2026 16:06
Comment thread code/framework/src/external/epic/manifest.cpp Outdated
Kheartz added 3 commits July 31, 2026 19:04
Resolve the game through the Epic launcher's plaintext manifests:
new External::Epic component, ProjectPlatform::EPIC, and
RunInnerEpicChecks mirroring the Steam path.
ToLower and FileName are not Epic-specific; drop the anonymous namespace in manifest.cpp and share them from utils/string_utils.h.
@Kheartz
Kheartz force-pushed the add_epic_platform branch from c298dbc to e93686b Compare July 31, 2026 23:18

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
code/framework/src/utils/string_utils.h (1)

46-58: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove the duplicate helper implementations.

The supplied repository context shows identical ToLower and FileName implementations in code/framework/src/launcher/project.cpp Lines 47-58, code/framework/src/launcher/project.h Lines 47-58, and code/framework/src/external/epic/manifest.h Lines 47-58. Replace those copies with Framework::Utils::StringUtils::ToLower and Framework::Utils::StringUtils::FileName. This keeps launcher and Epic matching behavior consistent.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@code/framework/src/utils/string_utils.h` around lines 46 - 58, Remove the
duplicate ToLower and FileName helper implementations from the launcher and Epic
manifest code, and replace their uses with
Framework::Utils::StringUtils::ToLower and
Framework::Utils::StringUtils::FileName. Update the relevant code in
project.cpp, project.h, and manifest.h while preserving existing matching
behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@code/framework/src/utils/string_utils.h`:
- Around line 46-58: Remove the duplicate ToLower and FileName helper
implementations from the launcher and Epic manifest code, and replace their uses
with Framework::Utils::StringUtils::ToLower and
Framework::Utils::StringUtils::FileName. Update the relevant code in
project.cpp, project.h, and manifest.h while preserving existing matching
behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e0f05989-03d7-45ef-a5c0-5876d321fba1

📥 Commits

Reviewing files that changed from the base of the PR and between 26de343 and e93686b.

📒 Files selected for processing (6)
  • code/framework/CMakeLists.txt
  • code/framework/src/external/epic/manifest.cpp
  • code/framework/src/external/epic/manifest.h
  • code/framework/src/launcher/project.cpp
  • code/framework/src/launcher/project.h
  • code/framework/src/utils/string_utils.h
🚧 Files skipped from review as they are similar to previous changes (5)
  • code/framework/CMakeLists.txt
  • code/framework/src/launcher/project.cpp
  • code/framework/src/launcher/project.h
  • code/framework/src/external/epic/manifest.cpp
  • code/framework/src/external/epic/manifest.h

@Kheartz
Kheartz merged commit d219303 into MafiaHub:develop Jul 31, 2026
5 checks passed
@Kheartz
Kheartz deleted the add_epic_platform branch July 31, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants