Launcher, Mod manager, and Docker deployment

1sudo

New Member
Joined
Mar 17, 2022
Messages
6
I feel like if I don't release this stuff it may never see any use, I don't have a lot of time to work on them anymore. Feel free to submit PR's if you want to improve on them.

Repo's include my launcher and the API server required for game account creation / login. Requires a web server alongside API server for file downloading.

A mod manager I was inspired to build after Alge started one, also has an API server and requires a web server for file downloading. Also a repo with the mods and metadata used for tracking them.

A docker deployment that deploys Core3 zone and login servers, a database server, a web server, and the launcher API server The docker stuff, I don't remember what state that was left in, might work first go, might need some tweaking to get working, can't say for sure.

The mod manager works, it was one change away from me making a public release, which had to do with file conflicts between mods. Basically, if there are two mods that both utilize the same file, if you tell the mod manager to delete one of those mods, I wanted to make it so that the file those two mods shared doesn't get removed. Disclaimer: there are unfinished portions of the UI that need styling.

The launcher is functional although you'll have to implement your own stuff for the vote, donate, resources, bug report, and skill planner buttons. game settings, options & mods, and the developer tab are all fully working. I re-built the SWG GFX settings application to have in this launcher, because I hate that fucking thing. The only thing with mine is the Windows API I used to pull resolutions doesn't seem to work for some computers, but it does for me. This launcher includes character selection and auto-zone in, but requires a patched swgemu exe which I will provide. I've re-written most of this launcher using the MVVM design pattern but it's not complete, so I won't release that, at least not yet. I had plans to merge the API servers so that the launcher and mod manager ran off a single one, but I never got that far. The mod manager API is much better than the launcher API, it utilizes Entity Framework. The backend setup for the launcher and mod manager can be kind of tedious, I can help get that configured if the source code doesn't tell you what you need to know. The local filesystem password storage obfuscation in this repo is weak, but it should prevent morons from copy/pasta'ing passwords, I had plans to do full encryption of passwords but didn't get around to that.

This is literally months of work and they are things I've never actually got to use myself on a project I'm affiliated with, and I fear if I don't get it out into the wild, it will never see the light of day. Every project I've been a part of since being part of the mistake (being part of SR) has been very slow going or has died, while let me be clear, I don't fault anyone for that. Life comes first and this is all for fun.

I have one more project I'm almost willing to release, by far my most ambitious one, but I'm interested to see how these are received first.

Credits to @Tyclo for mod manager and launcher styles, he is a literal God in the design department.

https://github.com/orgs/SWGApps/repositories
 
Last edited:

1sudo

New Member
Joined
Mar 17, 2022
Messages
6
Launcher web server folder structure:
Code:
.
├── files
│   ├── dbghelp.dll
│   ├── dpvs.dll
│   ├── em05_u.dll
│   ├── em06_u.dll
│   ├── em07_u.dll
│   ├── manifest
│   │   ├── hdtextures.json
│   │   ├── livecfg.json
│   │   ├── required.json
│   │   └── reshade.json
│   ├── miles
│   │   ├── mssdsp.flt
│   │   ├── Msseax.m3d
│   │   ├── mssmp3.asi
│   │   └── msssoft.m3d
│   ├── mods
│   │   ├── d3d9.dll
│   │   ├── mtg_texture_hd_01.tre
│   │   ├── mtg_texture_hd_02.tre
│   │   ├── ...
│   │   ├── ReShade.ini
│   │   ├── ReShadePreset.ini
│   │   └── reshade-shaders
│   │       ├── Shaders
│   │       │   ├── ACES.fxh
│   │       │   ├── ...
│   │       └── Textures
│   │           ├── alpha-checkerboard.png
│   │           ├── ...
│   ├── Mss32.dll
│   ├── mtg_appearance_01.tre
│   ├── mtg_appearance_02.tre
│   ├── mtg_audio_01.tre
│   ├── mtg_audio_02.tre
│   ├── mtg_other_01.tre
│   ├── mtg_texture_01.tre
│   ├── mtg_texture_02.tre
│   ├── mtg_texture_03.tre
│   ├── qt-mt305.dll
│   ├── s205_r.dll
│   ├── s206_r.dll
│   ├── s207_r.dll
│   ├── swgemu.cfg
│   ├── SWGEmu.exe
│   ├── swgemu_machineoptions.iff
│   ├── swgemu_preload.cfg
│   └── SWGEmu_Setup.exe
└── html
    ├── css
    │   └── styles.css
    ├── imgs
    │   ├── launcher-post-large-01.png
    │   ├── launcher-post-small-01.png
    │   ├── launcher-post-small-02.png
    │   ├── launcher-post-small-03.png
    │   ├── refresh.png
    │   └── swg-legacy-bg.png
    ├── index.html
    └── old
        ├── css
        │   └── styles.css
        └── index.html
"files" contains all required launcher files.
"files/mods" contains whatever mods you include in the launcher (I had reshade and HD textures)
"html" contains the HTML page layout that you would see when you clicked on the "updates" button in the launcher

The manifest files in "files/manifest" can be generated by opening the launcher and hitting Left Shift + Left Control + F12 and selecting the folder you want to generate a manifest from. The json file will be spit out to the desktop once complete.

Modify https://github.com/SWGApps/LauncherApp/blob/main/LauncherManagement/Properties/ConfigFile.cs to reflect your URL's

If you want to be able to push automatic launcher updates (as in update the launcher itself), look into "ClickOnce", it's a feature built into Visual Studio. I tested it with the launcher and it works fine, but does require some additional setup, and an extra spot on your web server to house the update files. Pro tip: specify the minimum version on each ClickOnce build to the current version, so that the update is required.
 
Last edited:
Top Bottom