Giter VIP home page Giter VIP logo

modsink.wpf's Introduction

AppVeyor GitHub release

ModSink

A game launcher and mod downloader. Will start with Arma 3, the plan is to be able to easily add any game, either through contributions or dll addons.

Still early in design process

modsink.wpf's People

Contributors

j2ghz avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

fossabot

modsink.wpf's Issues

Update notification

Quit app to tray by default, show notification on repo update with snooze option

Announcements

Message from group admin, can be set in group.xml

Mod importer

Let user import existing already downloaded mods.

Changelog

Create changelog of mods for each repo

Simple launch use case

  1. Program launch
  2. download group file & apply
  3. download repo indexes
  4. let user choose server
  5. if any files for server modpack are missing, show download button that downloads them
  6. if all files for server are downloaded, allow starting server, game-specific

Arma3Launcher

  • Battleye (changes completely, exe and parameters)
  • 64bit (changes completely, exe and parameters)
  • optional and mandatory server parameters

Server file structure

Available files:

  • group.xml
    • lists repos
  • repo
    • index.xml
      • mods
        • metadata
        • required: bool, default: bool
        • list of (file hash; file path)
      • modpacks
        • list of mods
      • server
        • GameLauncher config
        • one modpack
    • all files mentioned in index.xml

Game Launchers

GameLauncher

  • Find game exe
  • Start it with parameters
  • Is provided with configuration

Arma3Launcher #4

  • Find game exe
  • Launch with arma parameters taken from active mods and configurations

Client file structure

  • downloads/
    • all downloaded files, named by their hash
      If a GameLauncher says files should be somewhere, they are symlinked from downloads

Could be enhanced by providing delta patching patches, that say use this patch to upgrade file hash a to file hash b

Choose Hashing function

Tried BenchmarkDotNet on https://github.com/brandondahler/Data.HashFunction/tree/DotNetCore/src/System.Data.HashFunction.xxHash

BenchmarkDotNet=v0.10.8, OS=Windows 10.0.16232
Processor=Intel Core i7-4710HQ CPU 2.50GHz (Haswell), ProcessorCount=8
Frequency=2435765 Hz, Resolution=410.5486 ns, Timer=TSC
dotnet cli version=2.0.0-preview2-006497
  [Host]     : .NET Core 4.6.25211.01, 64bit RyuJITDEBUG [AttachedDebugger]
  DefaultJob : .NET Core 4.6.25211.01, 64bit RyuJIT

Method Mean Error StdDev
Sha256 49.65 us 0.3757 us 0.3330 us
Md5 20.88 us 0.0838 us 0.0784 us
xxH 18.86 us 0.1706 us 0.1512 us

Extract mod info

ModInfoExtractor implementations get access to mod folder, will return name, description, version, icon, ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.