Skip to content

refactor!: complete application rewrite, modernization, and post-refactor improvements - #4

Draft
Jaredl-Dev wants to merge 1 commit into
x64-dev:masterfrom
Jaredl-Dev:master
Draft

refactor!: complete application rewrite, modernization, and post-refactor improvements#4
Jaredl-Dev wants to merge 1 commit into
x64-dev:masterfrom
Jaredl-Dev:master

Conversation

@Jaredl-Dev

@Jaredl-Dev Jaredl-Dev commented Jun 30, 2026

Copy link
Copy Markdown

Summary

This PR completely rewrites and modernizes GenLauncherGO as a native Avalonia application targeting .NET 10 and C# 14.

The new implementation separates domain rules, infrastructure, presentation, and tests into four focused projects. It replaces the legacy deployment and update workflows while preserving compatibility with the existing remote YAML/backend contract.

Highlights

  • Modern architecture — Organizes the solution into GenLauncherGO.Core, GenLauncherGO.Infrastructure, GenLauncherGO.UI, and GenLauncherGO.Tests, with MVVM and dependency injection used at appropriate boundaries.
  • Standalone launcher — Unlike the predecessor launcher, GenLauncherGO runs outside the game directories and can manage both Generals and Zero Hour installations from the same launcher.
  • Safer deployment — Uses deployment manifests, NTFS hard links with copy fallback, containment checks, journaling, rollback, cleanup, and startup recovery.
  • Content integrity — Adds faster, always-enforced verification with clear reporting and repair workflows.
  • Focused client support — Provides built-in support for the GeneralsOnline and TheSuperHackers clients, optional World Builder support, and configurable custom executables.
  • Improved downloads and installation — Reworks S3 and single-file downloads with resumable transfers, speed and ETA reporting, safer staging, and SharpCompress-based archive extraction.
  • Improved launch experience — Adds process-family tracking, a running-process overlay with force-close support, Windows taskbar progress, and close confirmation during active downloads or repairs.
  • Portable data layout — Stores settings, installed content, runtime state, cached images, logs, and recovery data under one GenLauncherGO Data folder beside the launcher.
  • Safer diagnostics — Adds structured logging with automatic redaction of local paths, credentials, and sensitive query values.
  • Legacy cleanup — Removes GenTool integration, modded.exe, Vulkan support, automatic game-option changes, the recommended-options prompt, and custom camera-height adjustment.
  • Self-updater removal — Removes the self-updater so releases published for the original GenLauncher cannot inadvertently overwrite this fork.

Validation

This refactor was tested and verified by multiple people, including myself. All automated tests pass, and the launcher has been validated through real-world usage across the supported clients.

Disclaimer

GenLauncherGO is a community-developed tool intended for use with TheSuperHackers community fork and GeneralsOnline. It is not created by, endorsed by, or affiliated with Electronic Arts or any other rights holder unless explicitly stated.

This rewrite began as a personal project and is being shared as a temporary solution for the community while GenHub continues to mature and work toward becoming the stable, community-standard launcher. GenLauncherGO is therefore not presented as a perfect, permanent, or definitive solution.

@Jaredl-Dev
Jaredl-Dev force-pushed the master branch 2 times, most recently from 29584d2 to fe0212c Compare July 1, 2026 23:05
@Jaredl-Dev
Jaredl-Dev marked this pull request as draft July 27, 2026 00:09
@Jaredl-Dev

Copy link
Copy Markdown
Author

This PR is in the final stages of preparation. I’m completing an additional polish and cleanup pass, after which it should be ready for review.

@Jaredl-Dev
Jaredl-Dev force-pushed the master branch 8 times, most recently from a3ef9e7 to ae8968a Compare August 4, 2026 04:21
* update to .NET 10 and the latest C# version
* overhaul the application architecture to follow layered architecture, MVVM, and dependency injection principles
* modernize and improve the codebase
* add logging throughout the codebase
* greatly improve download performance and reliability
* support only GeneralsOnline and SuperHackers clients
* add support for SuperHackers world builders
* replace deployment with a manifest-driven system that uses hard links, with copy/move operations as a fallback
* redesign the launcher options menu
* remove support for legacy launcher workflows and functionality related to GenTool, modded.exe, Vulkan, unsupported World Builder features, recommended game options, game option tweaking, custom camera height adjustment, and other features that are unnecessary or incompatible with GeneralsOnline and SuperHackers
* rework content validation to be always enforced, more performant, more reliable, and stricter, and add a UI dialog to display validation deviations
* switch archive extraction to SharpCompress
* consolidate runtime folder creation into a single subfolder within the game directory and add support for running the application directly from that subfolder
* add several quality-of-life improvements, including download ETA and speed indicators, and active addon and patch counts in tab titles
* remove the application's self-updater to prevent fork installations from being overwritten by updates from the upstream repository
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.

1 participant