61 lines
3.4 KiB
Plaintext
61 lines
3.4 KiB
Plaintext
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
|
|
-- ????
|
|
|