MCModMachine / Design

Overall Design/Requirements/Planning Repository
Other
24 stars 1 forks source link

M3: Minecraft Mod Machine

Discord

Comic describing our goal

Modified from xkcd 918, licensed under CC BY-NC.

This is a project to build a repository/package manager for Minecraft mods, allowing modders to easily publish mods, players to easily download mods, and modpack creators to easily, ahem, create modpacks. This project is currently in its earliest stages. Once we get a rough idea of exactly what we want in such a tool and what parts would be necessary, we will get started on coding.

Wishlist

These are the features we would like to have. For now, anything goes. Once the list has pretty much settled down, we will separate it into phases so we can start implementation. Have an idea? Send a PR and we'll add it to this list.

Architecture (Technical Details)

These are the big components we forsee needing.

Backend - Implementation Thread

This is the system that hosts mod files along with mod metadata and modpacks. The CI system will also be in this component.

Exposed Interface: JSON API

Requirements: Light on resources (disk space, bandwidth, CPU) so that it is affordable.

Client Core - Implementation Thread

This handles storing mods locally, communicating with the backend, and interfacing with Minecraft.

Builds on: Backend

Exposed Interface: Library

Requirements: Light on resourses (CPU, Memory) so that it can run alongside Minecraft without slowing it down

Client User Interface - Implementation Thread (CLI, GUI thread will come later)

This is what the user sees. It needs to allow building modpacks, launching instances, etc.

Builds on: Client Core

Exposed Interface: CLI first, seperate GUI implementation later

Requirements: Easy to use, light on resources (see client core)

Web Interface

This is similar to Curse's CurseForge. It allows casual browsing of available mods, and some of the things the client UI allows (everything but managing instances).

Builds on: Backend

Exposed Interface: Website

Requirements: Simple to navigate