An open API service indexing awesome lists of open source software.

https://github.com/d3ara1n/polymerium

๐Ÿฟ๏ธ A next-generation Minecraft instance manager that thinks differently about game management
https://github.com/d3ara1n/polymerium

avalonia csharp dotnet fabric forge launcher minecraft modpack modrinth quilt xaml

Last synced: 3 days ago
JSON representation

๐Ÿฟ๏ธ A next-generation Minecraft instance manager that thinks differently about game management

Awesome Lists containing this project

README

          

# Polymerium

![Polymerium](https://socialify.git.ci/d3ara1n/Polymerium/image?description=1&font=Jost&forks=1&issues=1&language=1&name=1&owner=1&pattern=Overlapping%20Hexagons&pulls=1&stargazers=1&theme=Auto)

**A next-generation Minecraft instance manager that thinks differently about game management.**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![.NET 10.0](https://img.shields.io/badge/.NET-10-5C2D91?style=for-the-badge&logoColor=white)](https://dotnet.microsoft.com/)
[![Avalonia](https://img.shields.io/badge/Avalonia-12-3355FF?style=for-the-badge&logoColor=white)](https://avaloniaui.net/)
[![C#](https://img.shields.io/badge/C%23-14-239120?style=for-the-badge&logoColor=white)](https://learn.microsoft.com/en-us/dotnet/csharp/)
[![zread](https://img.shields.io/badge/Ask_Zread-_.svg?style=for-the-badge&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff)](https://zread.ai/d3ara1n/Polymerium)

[![Codacy Badge](https://app.codacy.com/project/badge/Grade/8516e3e1a3994d138a1adc537d7c6ecd)](https://app.codacy.com/gh/d3ara1n/Polymerium/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![CodeFactor](https://www.codefactor.io/repository/github/d3ara1n/polymerium/badge)](https://www.codefactor.io/repository/github/d3ara1n/polymerium)

[๐ŸŒ ไธญๆ–‡ไป‹็ป](https://github.com/d3ara1n/Polymerium/blob/main/README.zh.md) โ€ข [๐Ÿ“ฅ Download](https://github.com/d3ara1n/Polymerium/releases) โ€ข [๐Ÿ“– Documentation](https://github.com/d3ara1n/Polymerium/wiki) โ€ข [๐Ÿ› Report Bug](https://github.com/d3ara1n/Polymerium/issues) โ€ข [๐Ÿ’ก Request Feature](https://github.com/d3ara1n/Polymerium/issues)

---

## ๐ŸŽฎ Experience Polymerium in Action

[![Screenshot](assets/screenshots/overview.avif)](#-experience-polymerium-in-action)

*From launch to gameplay in seconds* โšก

---

## ๐ŸŒŸ What Makes Polymerium Different

> **Traditional Minecraft launchers manage files. Polymerium manages experiences.**

### ๐Ÿš€ The Evolution of Minecraft Launchers

| Generation | Management Focus | Representative Approach |
|-------------|------------------|-----------------------------------------------------|
| **1st Gen** | ๐Ÿ“ Versions | "Version Isolation" mechanism |
| **2nd Gen** | ๐Ÿ“ฆ Instances | Isolated game environments with copied resources |
| **3rd Gen** | ๐Ÿงฌ Metadata | Declarative configuration with on-demand deployment |

**Polymerium is a third-generation launcher.** Instead of copying and storing thousands of mod files for each instance,
Polymerium describes your game setup as lightweight metadata and builds the actual game files on-demand. This
revolutionary approach brings several game-changing benefits:

### ๐ŸŽฏ **Smart Resource Management**

- **Zero Duplication**: Multiple instances sharing the same mods? Only one copy exists on disk
- **Symlink Magic**: Files are intelligently linked, not copied, saving gigabytes of storage
- **Instant Switching**: Change between completely different modpacks in seconds

### ๐Ÿ“ฆ **Portable Game Experiences**

- **Metadata-Driven**: Your entire game setup fits in a tiny configuration file
- **Version Control Ready**: Use Git to collaborate on modpack development
- **True Portability**: Share your exact game experience with a simple file transfer

### ๐Ÿ”ง **Effortless Maintenance**

- **Integrity Guaranteed**: Every deployment validates file completeness and correctness
- **Dependency Resolution**: Automatically handles mod dependencies and conflicts
- **One-Click Updates**: Upgrade individual mods or entire modpacks seamlessly

### ๐ŸŽฎ **Player-Focused Design**

- **No Java Hunting**: Configure Java once, works everywhere
- **Account Flexibility**: Multiple accounts, each linked to specific instances
- **Clean Uninstall**: Remove Polymerium completely by deleting two folders

---

## โœจ Key Features

### ๐Ÿ—๏ธ Modern Architecture

- ๐ŸŽจ **Avalonia UI**: Beautiful, responsive interface that works across platforms
- ๐Ÿ“‹ **Metadata Engine**: Lightweight instance descriptions that rebuild perfectly every time
- ๐Ÿš€ **Deployment System**: Intelligent file management with integrity checking
- ๐Ÿ”— **Resource Pooling**: Shared file storage with symlink distribution

### ๐ŸŒ Platform Integration

- ๐ŸŽŸ๏ธ **CurseForge & Modrinth**: Native integration with major mod repositories
- ๐Ÿ“ฆ **Modpack Publishing**: Export your instances as distributable modpacks
- ๐Ÿ“ **Automatic Changelogs**: Generated documentation for your modpack versions

### ๐Ÿ‘จโ€๐Ÿ’ป Developer Experience

- ๐Ÿ“ธ **Instance Snapshots**: Save and restore complete game states
- ๐Ÿ“œ **Layered Configuration**: Separate user settings from core game data
- ๐Ÿ”„ **Build Reproducibility**: Identical deployments from the same metadata

---

## Getting Started

### Prerequisites

> [!IMPORTANT]
> **Windows Developer Mode Required**
>
> Polymerium uses [symbolic links](https://www.wikiwand.com/en/Symbolic_link) for efficient file management. Enable
> Developer Mode to allow symlink creation without administrator privileges.

#### ๐Ÿ“‹ How to Enable Developer Mode

##### Windows 11

```
Settings โ†’ System โ†’ For developers โ†’ Developer Mode
```

##### Windows 10

```
Settings โ†’ Update & Security โ†’ For developers โ†’ Developer Mode
```

##### Windows 7/8

```
Upgrade to Windows 10+ first ๐Ÿ’ฅ
```

### ๐Ÿ“ฅ Installation

> [!NOTE]
> Polymerium is currently in active development. Features and UI may change between releases.

| Platform | Package | Direct Download |
| --- | --- | --- |
| Windows x64 | Installer | [Download](https://github.com/d3ara1n/Polymerium/releases/latest/download/Polymerium-win-Setup.exe) |
| Linux x64 | AppImage | [Download](https://github.com/d3ara1n/Polymerium/releases/latest/download/Polymerium.AppImage) |
| macOS Apple Silicon | PKG installer | [Download](https://github.com/d3ara1n/Polymerium/releases/latest/download/Polymerium-osx-Setup.pkg) |

[ๅทฒๆœ‰ Mirror้…ฑ CDK๏ผŸๅ‰ๅพ€ Mirror้…ฑ ้ซ˜้€Ÿไธ‹่ฝฝ](https://mirrorchyan.com/zh/projects?rid=Polymerium&channel=Polymerium_setup&source=github-readme)

**๐Ÿ“ฅ Download** -> **๐Ÿš€ Run** -> **โš™๏ธ Setup**

1. **Download** the package for your platform
2. **Run** the installer or executable
3. **Follow** the setup wizard to configure your first instance

### ๐Ÿš€ Quick Start

**๐ŸŽฎ Create** โ†’ **๐Ÿ“ฆ Add Content** โ†’ **๐Ÿ”ง Deploy** โ†’ **โ–ถ๏ธ Play**

1. **Create Instance**: Define your Minecraft version and mod loader
2. **Add Content**: Browse and install mods from CurseForge or Modrinth
3. **Deploy**: Let Polymerium build your game files
4. **Play**: Launch directly or export as a modpack

---

## ๐Ÿ—๏ธ Architecture Overview

| ๐Ÿ› ๏ธ Technology | ๐Ÿ“‹ Purpose | ๐Ÿ”— Integration |
|--------------------------|-----------------------------------------|----------------------|
| **.NET 10.0** | Latest runtime with C# preview features | Core platform |
| **Avalonia 11** | Cross-platform XAML UI framework | Presentation layer |
| **MVVM Pattern** | Clean separation of concerns | Architecture pattern |
| **Dependency Injection** | Modular, testable architecture | Service management |
| **Reactive Extensions** | Responsive data handling | Data flow |

### ๐Ÿ“ Project Structure

```sh
Polymerium/
โ”œโ”€โ”€ ๐Ÿ“š docs/ # Documentation
โ”œโ”€โ”€ ๐ŸŽจ src/Polymerium.App/ # UI application layer
โ”œโ”€โ”€ ๐Ÿ”— submodules/ # Shared components
โ””โ”€โ”€ ๐Ÿ“ฆ Releases/ # Build artifacts
```

---

## Development

### ๐Ÿ”จ Building from Source

```sh
# Clone with submodules
git clone --recursive https://github.com/d3ara1n/Polymerium.git
cd Polymerium

# Build the solution
dotnet build

# Run in development mode
./Development.ps1
```

### ๐Ÿ› ๏ธ Development Commands

```sh
# Development mode
./Development.ps1

# Production mode
./Production.ps1

# Build and publish
./Publish.ps1

# Get version info
dotnet gitversion

# Generate changelog
git cliff
```

### ๐Ÿค Contributing

We welcome contributions! Please ensure your code follows the established patterns:

| Aspect | Requirement |
|-----------------------------|------------------------------------------------|
| ๐Ÿ—๏ธ **Architecture** | MVVM pattern with clear separation of concerns |
| ๐Ÿ’‰ **Dependency Injection** | Use constructor injection throughout |
| ๐Ÿ”ฅ **Modern C#** | Leverage latest language features and patterns |
| โœจ **Code Style** | Follow the .editorconfig guidelines |

We use `resx` for localization. If you want to contribute to the translation, you can edit the `Resources.resx` file in
`src/Polymerium.App/Properties` and add your language file in the same directory. Rider and Visual Studio have built-in
editors for resx files.

---

## ๐Ÿ–ฅ๏ธ Platform Support

| Platform | Status |
|------------------------------------------------------------------------------------------------------------|----------------|
| ![Windows](https://img.shields.io/badge/Windows-10+-0078D6?style=flat-square&logo=windows&logoColor=white) | โœ… **Stable** |
| ![Linux](https://img.shields.io/badge/Linux-AppImage-FCC624?style=flat-square&logo=linux&logoColor=black) | โœ… **Stable** |
| ![macOS](https://img.shields.io/badge/macOS-ARM64-000000?style=flat-square&logo=apple&logoColor=white) | โœ… **Stable** |

---

## Privacy & Security

Polymerium respects your privacy:

- **Minor Telemetry**: Collect least necessary data for debugging
- **Local Storage**: All data stays on your machine
- **Minimal Footprint**: Clean uninstall leaves no traces
- **Open Source**: Transparent, auditable codebase

---

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## ๐Ÿ“Š Project Statistics

[![Star History Chart](https://api.star-history.com/svg?repos=d3ara1n/Polymerium&type=Date)](https://www.star-history.com/#d3ara1n/Polymerium&Date)

![Repobeats Analytics](https://repobeats.axiom.co/api/embed/594b206d199e6aae83226e6b7b834f6896322858.svg "Repobeats analytics image")

## ๐Ÿ“š References & Acknowledgments

### ๐Ÿ”— Technical References

- [Inside a Minecraft Launcher](https://ryanccn.dev/posts/inside-a-minecraft-launcher) - Game launch process and
Fabric/Quilt deployment
- [Tutorial: Writing a Launcher](https://minecraft.fandom.com/zh/wiki/%E6%95%99%E7%A8%8B/%E7%BC%96%E5%86%99%E5%90%AF%E5%8A%A8%E5%99%A8) -
Game launch process guide
- [ForgeWrapper](https://github.com/ZekerZhayard/ForgeWrapper) - Forge integration reference
- [Microsoft Authentication Scheme](https://wiki.vg/Microsoft_Authentication_Scheme) - Authentication implementation

### ๐Ÿ™ Special Thanks

- **Minecraft Community** - For the incredible modding ecosystem
- **Avalonia Team** - For the excellent cross-platform UI framework
- **API Providers** - CurseForge and Modrinth for their public APIs
- **Contributors** - Everyone who helps make Polymerium better

## ๐Ÿ“„ License

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fd3ara1n%2FPolymerium.svg?type=large&issueType=license)](https://app.fossa.com/projects/git%2Bgithub.com%2Fd3ara1n%2FPolymerium?ref=badge_large&issueType=license)

This project is licensed under the **MIT License** - see the [LICENSE](LICENSE.txt) file for details.

---

**Polymerium: Rethinking Minecraft instance management for the modern era** โœจ

Made with โค๏ธ by the Polymerium team