forked from OpenRA/OpenRA
-
Notifications
You must be signed in to change notification settings - Fork 3
/
launcher.txt
60 lines (52 loc) · 3.39 KB
/
launcher.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Crossplatform "Launcher" ideas:
provides facility for commands like "--install-ra-packages", etc instead of having to reinvent the wheel on each platform.
Command ideas:
--list-mods: Simple list of available mods
- This is already done on game init, just needs pulling somewhere generic
--mod-info <mod>: Metadata on specific mod
--list-mod-heirarchy: Like above, but shows mod heirarchy
Is this needed? With a combination of listing and mod info, you can easily build the tree yourself. But if every platform has to do this, we may as well share the code. *shrug* its not a big deal at this stage.
--install-ra-music <path to cd>: Extracts scores.mix and copies it to the ra/packages dir
--install-cnc-music <path to cd>: Copies scores.mix from cnc disk to cnc/packages dir
--download-(ra|cnc)-packages: downloads ds and extracts packages from web
--install-(ra|cnc)-packages <path to cd>: copies required files from ra/cnc cd
Implementation:
Either separate exe or in the OpenRA.Game executable as a cli interface for modifying
the game install.
Platform specific guis that call the appropriate commands, and launch the game itself.
Separate Exe: <-- lets go with this for the first version. It can link against Fileformats to get
the mix extraction and mod list stuff.
Pros:
Small
Doesn't clutter main executable with functionality not used elsewhere.
Cons:
OpenRA.Game executable:
Pros:
Cons:
Platform specific gui scope:
-- Allow setting basic settings before launch? (toggle fullscreen is frequently asked for)
This would be a nice feature given setting them in game requires a restart.
Lets limit this to graphical settings. I'd rather not reinvent the wheel for things that
don't need it.
-- Give an overview of installed mods.
-- Install new mods from site/downloaded archive.
-- Install new maps for a mod.
-- Update core game and mods
-- Launch game with a selection of mods.
-- Also allow the user to set custom commandline args
Via GUI selection? Via a textfield below the mods checkbox
That would be unfriendly to a lot of users or is this for "power user" options?
Power users. It can be hidden behind a toggle/pref if necessary.
Gameplan:
-- Start by building the cli interface, and hook up the existing postinstall scripts to use them
-- Code for listing mods exists, move this into fileformats (for --list-mods)
-- Code for extracting files from mixes exists in fileformats (for --install-ra-music).
-- Copying files: filesystem permissions? Do we require root? How do we handle this?
We do on Windows and Linux at least. Unless we do per user.
-- Is installing files to the support dir acceptable?
For mods, perhaps. For core game: no.
-- Gui launchers can run the cli app with appropriate permissions. cli can be dumb.
-- Require code to download files from intarwebs, and report progress to stdout.
This is about the only non-trivial code that we need to write. Its still relatively trivial.
-- Platform-specific maintainers work on their own launcher later
-- ????