🛠️ Asher

Plataforma de modding para Dust: An Elysian Tail

Asher é uma plataforma de modding para Windows e Linux para Dust: An Elysian Tail, desenvolvida com o objetivo de fornecer uma infraestrutura modular para criação, instalação e execução de modificações.

O projeto combina patching de código em runtime e substituição de conteúdo, buscando oferecer uma experiência de modding segura, modular e reversível.

Repositório

Documentação técnica detalhada: Asher (Jardim)

🎯 Objetivo

A proposta é fornecer uma camada intermediária entre o jogo e os mods, permitindo que diferentes modificações possam ser instaladas e gerenciadas de maneira independente.

O projeto foi inspirado em soluções consolidadas do ecossistema de modding, especialmente SMAPI, SMAPI Content Patcher e outras plataformas de patching utilizadas como referência arquitetural.

🧩 Arquitetura

A arquitetura do Asher é dividida em componentes com responsabilidades distintas, separando o gerenciador (fora do processo do jogo) da execução das modificações dentro do jogo.

Gerenciador (Electron + Host)

O gerenciador é uma aplicação Electron (Asher.Electron) apoiada por um host headless em C# (Asher.Host), comunicando-se via JSONL em stdin/stdout.

Entre suas responsabilidades estão:

A UI do gerenciador permanece em Distribution; a pasta do jogo recebe runtime, mods e um helper de emergência (Uninstall-Asher.cmd).

Launcher / Runtime

No Windows, o Asher.Launcher substitui DustAET.exe e controla a ordem de inicialização. No Linux, o DustAET permanece intacto e o libasher_bootstrap.so (via LD_PRELOAD) se conecta ao Mono embutido. Em ambos, o Asher Runtime atua durante a execução do jogo, fornecendo a infraestrutura para aplicar modificações em tempo de execução.

O projeto utiliza Harmony como parte de sua infraestrutura de patching, permitindo modificar o comportamento do código existente sem alterar permanentemente os assemblies originais. Essa abordagem torna as alterações mais controláveis e reversíveis, além de permitir que diferentes mods sejam aplicados sobre o mesmo ambiente.

🔧 Tecnologias

O projeto utiliza principalmente o ecossistema .NET/C#, com um shell de gerenciamento em Electron.

Entre as principais tecnologias e referências utilizadas estão:

🧠 Principais desafios técnicos

O desenvolvimento do Asher envolve problemas diferentes daqueles encontrados no desenvolvimento de uma aplicação convencional.

Entre os principais desafios estão:

Esses requisitos tornam o projeto particularmente interessante como estudo de engenharia reversa, extensibilidade de software e arquitetura de sistemas sobre aplicações existentes.

< Voltar

🛠️ Asher

Modding platform for Dust: An Elysian Tail

Asher is a modding platform for Windows and Linux for Dust: An Elysian Tail, designed to provide a modular infrastructure for creating, installing, and running modifications.

The project combines runtime code patching and content replacement, aiming to provide a safe, modular, and reversible modding experience.

Repository

Detailed technical documentation: Asher (Garden)

🎯 Objective

The platform introduces an intermediate layer between the game and its mods, allowing different modifications to be installed and managed independently.

The project takes inspiration from established modding solutions, particularly SMAPI, SMAPI Content Patcher, and other patching platforms used as architectural references.

🧩 Architecture

Asher is divided into components with distinct responsibilities, separating the manager (outside the game process) from modification execution inside the game.

Manager (Electron + Host)

The manager is an Electron app (Asher.Electron) backed by a headless C# host (Asher.Host), communicating over JSONL on stdin/stdout.

Its responsibilities include:

The manager UI stays in Distribution; the game folder receives runtime, mods, and an emergency helper (Uninstall-Asher.cmd).

Launcher / Runtime

On Windows, Asher.Launcher replaces DustAET.exe and controls startup order. On Linux, DustAET stays untouched and libasher_bootstrap.so (via LD_PRELOAD) attaches to the embedded Mono runtime. In both, the Asher Runtime operates while the game is running, providing the infrastructure required to apply modifications at runtime.

The project uses Harmony as part of its patching infrastructure, allowing existing code behavior to be modified without permanently altering the original assemblies. This approach makes modifications more controlled and reversible while allowing multiple mods to operate within the same environment.

🔧 Technologies

The project primarily uses the .NET/C# ecosystem, with an Electron management shell.

Key technologies and references include:

🧠 Key technical challenges

Asher involves challenges that differ significantly from those found in conventional application development.

Key challenges include:

These requirements make the project a practical study in reverse engineering, software extensibility, and system architecture built around an existing application.

< Back

Garden