Skip to content
This repository was archived by the owner on Jun 10, 2023. It is now read-only.
Ľuboš Lendáč edited this page Feb 18, 2022 · 4 revisions
  • Create repo
    • When given a folder makes a repo/modpack/mod/**/*
    • Produces a repo file which has relative paths to the files
    • Instead of plain files mod, user can reference a mod with a absoluteRepoUrl.bin?modpack=modpack&mod=mod
    • Repo (filesystem) has folders=mods and a text file with properties
  • Start a modpack
    • User defines list of repo and group urls
    • ModSink shows list of modpacks
    • User chooses server to start (including per-server params)
    • Build or start or start+connect
    • Game-specific options

Models:

  • Repo
    • Name
    • Modpack[]
      • Name
      • Mod[]
        • Name
        • Files...
      • IServer[] - TBD
  • ArmaServer
    • Name
    • IP
    • Port
    • QueryPort
    • AdditionalParams
    • Password

Artefakty

  • bin ui win, bin linux ui/staci cli
  • cli server bin win + linux

Requirements

  • Robust
  • Multipule Oraganization > Multiple Repository > Multiple modpack > multiple mod, multiple server

Organization*

  • Repo URL list*
  • icon / banner

Repository*

  • Name*
  • Modpacks*

Modpack*

  • Name*
  • Description
  • icon / banner

Mod*

  • Name*
  • source / workshop url
  • Paths (files)* (not necesarry in UI)
  • optional (default enabled/disabled) / mandatory*

Server

  • Name*
  • Hotsname/IP*
  • gameport*
  • queryport*
  • Password*
  • get steamapi info

Features Client:

Chunky or simmilar (u updatu se stahuji jenom zmeny, ne cele soubory)*

Features Server

Dam mu config file a udela metadata soubor pro Organizaiton aj repa

Random poznamky

Client drzi data jakou soubory kterych jmeno je jejich hash, stahuje ze serveru chunky - v metadatech je napsane ktery soubor ma jake chunky, hosti se na serveru addony .pbo ve stejne forme jak je zapina server (storage na serveru jenom jednou)

Client buildne slozku symlinku podle metadat.

U stahovani se klient podiva kterej soubor ma chunk ktery prave ma na seznamu a podiva se jestli uz ho nema soubor ktery je stazeny, takze si bud nakopiruje lokalne nebo stahne z URL. (delat checksum u vsecho co se stahne nebo skopiruje protoze CPU cheaper then Storage IO).

Si zeradim chunky podle poctu serveru ne kterych se nachzai prvni worker stahuje od nejmensi (1) druhy prvni chunk ktery je na serveru z ktereho se nestahuje atd. Nastavitelny max pocet workeru a max pocet workeru per server.

hostit repo na dvou serverech - repo ma hash a kdyz je stejny tak je stejne, to same mody, takze se nezobrazi duplicitne ale bude v backendu duplicitne. Stahujes pak jak kdyby to byli jine repa, vid predchozi.

Config na serveru je yaml / toml vyplnim seznam addonu v modpackoch atp (chci met vsechny addony v jedne slozce a definovat modpacky tady ne po slozkach)

Checkovani jestli soubor addonu je spravne podepsanej prilozenym klicem, pozito jako kontrola jestli soubor ktery admind al neni fucked. - nesmi byt mandatory, nektere addony nejsou podepsane vubec.

TODO Benchmark chunking veci - github addonu update mezi stare nove pbo udelat benchmark a porovnat z git diff https://github.com/acemod/ACE3/releases test prototypu klienta na modpacku - symlinky Benchmarky na size chunk vs metadata

Clone this wiki locally