Skip to content

Commit c247e85

Browse files
committed
Add documentation for the UI Launcher, upgrade documentation to Andraste 0.2.2
1 parent 1b4b337 commit c247e85

16 files changed

+196
-46
lines changed
-11.6 KB
Binary file not shown.
8.76 KB
Loading
9.07 KB
Loading
8.67 KB
Loading
10.5 KB
Loading
10.5 KB
Loading
11.8 KB
Loading
15.5 KB
Loading
Loading

content/modules/ROOT/nav.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
* xref:glossary.adoc[Glossary]
22
* Getting Started
3-
** xref:creating-the-first-mod.adoc[Creating a first mod]
4-
** xref:creating-the-first-plugin.adoc[Creating a first plugin]
3+
** xref:getting-started/ui-launcher.adoc[The UI Launcher]
4+
** xref:getting-started/creating-the-first-mod.adoc[Creating a first mod]
5+
** xref:getting-started/creating-the-first-plugin.adoc[Creating a first plugin]
56
* Advanced topics
7+
** xref:cli-launcher.adoc[The CLI Launcher]
68
** xref:mod-information.adoc[The mod.json file]
79
** Features
810
*** xref:features/builtin/vfs.adoc[The builtin VFS feature]
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
= Launching Games using the CLI Launcher
2+
:author: MeFisto94
3+
:revnumber: 1.0
4+
:revdate: 2024/05/02
5+
6+
The CLI Launcher is an integral part of every xref:glossary.adoc#_framework[framework] distribution.
7+
It may not be the version built by the Andraste team, but tailored to the specifics of the game.
8+
This is exactly it's purpose. Making sure the game launches and bootstrapping the framework
9+
appropriately.
10+
11+
Since it's command line arguments function as some sort of API, it is expected that every CLI
12+
launcher *at least* supports the subset of the https://github.com/AndrasteFramework/Launcher[Generic Andraste Launcher].
13+
If this is not the case, the UI Launcher may not even be capable of launching the specific framework.
14+
15+
NOTE: This documentation page aims to be a quick start, not a full and up-to-date reference
16+
manual for the command line arguments. When in doubt, consult the application or the source code.
17+
18+
== Command line arguments
19+
20+
NOTE: For Andraste 0.1.X, the launcher supported drag and dropping the game application on top of it. This is *NOT* supported anymore as of Andraste 0.2.X
21+
22+
TIP: You can always use `Andraste.Launcher.exe --help` to see the built in help for all the command
23+
arguments.
24+
25+
=== Overview
26+
The CLI is structured like this: `Andraste.Launcher.exe [global arguments] subcommand [command arguments]`, where the subcommand is one of `launch`, `attach` and `monitor`.
27+
28+
The most common option is `launch`, which will launch the passed application, as opposed to `attach`
29+
and `monitor`, which will both attach to a running process, but `attach` requires a PID, while
30+
`monitor` will wait until the passed application is running and then attach to that.
31+
32+
=== Mandatory Arguments
33+
The Launcher at least needs the following command line arguments to work:
34+
35+
The Game Executable Path::
36+
This is the application that will be launched and inside of which an andraste framework is spawned.
37+
Prefer to enter an absolute path here and don't forget to use `""` so you don't need to escape spaces.
38+
+
39+
The flag used for this is `--file`, as in `--file="C:\WINDOWS\system32\notepad.exe"`
40+
+
41+
With the optional `--commandLine="foo"` flag, you can append things to the command line when
42+
starting the application. Some games expect the graphics backend, vsync or windowed mode here.
43+
44+
The "mods.json" Path::
45+
The launcher needs to know which mods to pull from where, so you hand it a path to your mods.json,
46+
which is essentially the "profile folder" in UI terms.
47+
+
48+
The flag used for this is `--modsJsonPath`, as in `--modsJsonPath="C:\WINDOWS\totally-not-mods.json"`
49+
+
50+
NOTE: The launcher also supports `--modsPath` as the path to a folder of mods where it will
51+
derive the `mods.json` automatically. This is useful when debugging the framework, but for
52+
any serious use-case, especially for shortcuts/steam or third-party launchers, *do use* the
53+
mods.json file as it represents your profile settings and has a higher expressivity.
54+
55+
The Framework DLL Path::
56+
The launcher needs to know which xref:glossary.adoc#_framework[framework] distribution to boot.
57+
This is typically just a relative path, as the launcher resides inside said distribution, but
58+
there may be multiple DLLs (e.g. one game specific, one `Andraste.Payload.Generic.dll`).
59+
+
60+
The flag used for this is `--frameworkDll` as in `--frameworkDll="C:\WINDOWS\NotepadFramework.dll"`
61+
+
62+
This flag is optional and may fall back to `Andraste.Payload.Generic.dll`
63+
64+
=== Global Arguments
65+
==== Non Interactive mode
66+
When launching andraste with `--non-interactive`, the launcher will omit the default behavior
67+
of reading the payload logging files and redirecting them to stdout.
68+
69+
== Installing mods with the generic CLI Launcher
70+
In the same directory as the `Andraste.Launcher.exe`, there should be a `mods`
71+
folder. If not, create one.
72+
73+
Installing mods is now as simple as placing every mod inside that folder.
74+
In case your mod came zipped, you have to unzip it.
75+
76+
TIP: If the mod hasn't been found/loaded (check the logs), make sure the
77+
directory structure is correct: `mods` -> `mod-name` footnote:[This should
78+
correspond to the `slug` in the `mod.json`, but is not mandatory, just good
79+
practice] -> `mod.json`

content/modules/ROOT/pages/creating-the-first-plugin.adoc renamed to content/modules/ROOT/pages/getting-started/creating-the-first-plugin.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ namespace Andraste.Examples.HelloWorld
120120

121121
== Step 2: Creating a basic mod.json file
122122

123-
This works exactly the same as in the xref:creating-the-first-mod.adoc[Creating a first mod] tutorial.
123+
This works exactly the same as in the xref:getting-started/creating-the-first-mod.adoc[Creating a first mod] tutorial.
124124

125125
== Step 3: Using the plugin feature
126126
Andraste's functionality is split into features.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
= Launching Games using the generic GUI Launcher
2+
:author: MeFisto94
3+
:revnumber: 1.0
4+
:revdate: 2024/05/02
5+
6+
The GUI Launcher is an application that primarly manages your _profiles_. Profiles are your
7+
isolated modding environments. Every profile has an associated game path, xref:glossary.adoc#\_framework[framework], mods folder and settings for that mods (load order, enabled status, version).
8+
9+
NOTE: As opposed to other Andraste components, the GUI Launcher is very decoupled from the actual
10+
game you want to launch. As a result, the generic GUI Launcher should be capable of launching almost
11+
every game and andraste framework flavor. This means you can use the same launcher for multiple
12+
games even!
13+
14+
== Getting Started
15+
=== Overview over the main menus
16+
.The Main Screen
17+
image::ui-homescreen.png["A screenshot of the main UI"]
18+
19+
.The Profile Manager
20+
image::ui-profile-manager.png["A screenshot of the UI profile manager"]
21+
22+
=== Create your first profile
23+
Everything in the UI Launcher revolves around profiles. As such, your first action has to be to
24+
create a profile. Click on the Profile Manager and there click on "Add Profile".
25+
26+
This will open a wizard, whose steps look like the following:
27+
28+
.Add Profile Wizard: Enter information about the game
29+
image::ui-add-profile-1.png["Add Profile Wizard Page 1"]
30+
31+
On the first wizard page, you have to tell your profile which game to launch and which launch
32+
arguments (command line) to use. Most of the time, this is blank, but if you were launching
33+
the game with different arguments, you may want to adjust this here.
34+
35+
.Add Profile Wizard: Give your profile a name
36+
image::ui-add-profile-2.png["Add Profile Wizard Page 2"]
37+
38+
.Add Profile Wizard: Choose a path where your profile (and mods) will be stored.
39+
image::ui-add-profile-3.png["Add Profile Wizard Page 3"]
40+
41+
On the third wizard page, the prefilled profile location should probably be fine, _unless_ you are
42+
planning on installing a lot of heavy mods and know you don't have enough disk storage on that
43+
partition. In that case, just pick a different location.
44+
45+
.Add Profile Wizard: Choose the Andraste Framework Distribution to use
46+
image::ui-add-profile-4.png["Add Profile Wizard Page 4"]
47+
48+
Andraste frameworks are a more advanced topic, covered xref:glossary.adoc#\_framework[here],
49+
but in most cases, picking the bundled framework should be fine. It will default to the most recent
50+
"generic" framework at the time of downloading the UI Launcher.
51+
52+
NOTE: If any mod/plugin you download demands a specific version of andraste, you'll most likely
53+
need to download it and use the "external andraste framework" option here.
54+
55+
=== Adding Mods to your profile
56+
Click on the "Mod Folder" button, it should open the correct folder in your Windows Explorer.
57+
Installing mods is now as simple as placing every mod inside that folder. In case your mod came
58+
zipped, you have to unzip it.
59+
You then have to press "Refresh Mods" for them to appear in your profile.
60+
61+
TIP: If the mod hasn't been found/loaded (check the logs), make sure the
62+
directory structure is correct: `mods` -> `mod-name` footnote:[This should
63+
correspond to the `slug` in the `mod.json`, but is not mandatory, just good
64+
practice] -> `mod.json`
65+
66+
67+
=== Switching between profiles
68+
In case you have more than one profile, you can switch between them on the drop down next to
69+
"Manage Profiles".
70+
71+
In order to keep that drop down list small to the most relevant entries, you can "enable" profiles
72+
in the profile manager. Only enabled profiles will appear in the drop down.
73+
74+
The list of mods should auto reload, but you can always press "Refresh Mods"
75+
76+
NOTE: This isn't the best design decision and may change in the future.
77+
78+
== Advanced Profile Settings
79+
=== Profile Settings Dialog
80+
As opposed to the wizard, editing a profile has a more technical appearance, but the fields are the
81+
same.
82+
83+
.The Profile Edit Dialog
84+
image::ui-edit-profile.png["The profile edit dialog"]

content/modules/ROOT/pages/glossary.adoc

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= The Glossary
22
:author: MeFisto94
3-
:revnumber: 1.0
3+
:revnumber: 1.1
44
:revdate: 2022/11/17
55

66
== Mod vs Plugin
@@ -12,4 +12,19 @@ application or game in any given way, for us is called Mod (modification).
1212

1313
Plugins, in contrast, are a specific species of mods: They contain code
1414
modifications, such as hooks to game functions or writing to game memory,
15-
as opposed to asset-only changing modifications.
15+
as opposed to asset-only changing modifications.
16+
17+
== Framework
18+
When talking about the "framework", we refer to the integral andraste component that is responsible
19+
for launching and hooking into the game. The framework provides all kinds of functionality for
20+
mod/plugin authors to use.
21+
22+
There can be various _flavours_ of the framework, as some games may want to replace specific
23+
components to be more specific for their game. If this doesn't happen, we talk about the
24+
_generic framwork_ (i.e. game agnostic, provided by the andraste team).
25+
26+
When managing your UI Launcher _profiles_, you may have to manage framework versions that can
27+
mean varying andraste versions _and_ flavours.
28+
29+
In contrast to the framework, there is the UI Launcher at the outer
30+
level and mods/plugins being driven by the framework.

content/modules/ROOT/pages/index.adoc

Lines changed: 11 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
= Andraste Framework Overview
22
:author: MeFisto94
3-
:revnumber: 1.0
4-
:revdate: 2022/11/15
3+
:revnumber: 1.1
4+
:revdate: 2024/05/02
55

66
== What is Andraste?
77
Andraste, at it's core, is a generic modding framework, aiming to bring a modern
@@ -14,50 +14,20 @@ possibility to write code modifications in .NET languages, that interface
1414
seamlessly with the native code of the game.
1515

1616
== Getting Started
17-
=== Launching Games using the generic CLI Launcher
18-
NOTE: Other Launchers may have a different launch procedure, but this one is
19-
universally usable, for when no one wrote a game specific launcher yet.
20-
21-
The generic CLI Launcher expects up to two command line arguments:
22-
```
23-
Andraste.Launcher.exe "C:\Path\To\Game.exe" [optional DLL Name] [-- optional flags passed to the app]
24-
```
25-
26-
This means, that in most cases you're fine by just dragging the game exe ontop
27-
of the Andraste.Launcher.exe and save that as a shortcut to use.
28-
29-
.Drag and Dropping the Game Application by Drag and Dropping onto the Launcher
30-
image::dnd-open-with.png["Drag and Dropping the Game Application onto the Launcher"]
31-
32-
TIP: You can also create a shortcut, or even better: add the Launcher.exe to Steam and just set the
33-
launch arguments there. That way you can easily launch Andraste and the Game as if it was on steam!
17+
Starting with Version 0.2.2, Andraste comes with a GUI Launcher that should be your preferred way of launching applications
18+
and managing the related mods and framework versions. You should only have to use the CLI launcher when having to
19+
embed Andraste into a different (game specific) launcher or adding your modpack as a steam foreign game.
3420

35-
NOTE: The default for "optional DLL Name" currently is Andraste.Payload.Generic.dll, which should work well for every game.
21+
=== Launching Games using the generic UI Launcher
22+
See xref:getting-started/ui-launcher.adoc[here] for more information about the UI Launcher
3623

37-
NOTE: Choosing a different DLL is for advanced users only and is only listed
38-
for completeness. It is only ever relevant if there's a non-generic version of
39-
Andraste that provides additional features for specific games, but does NOT have
40-
a specific Launcher yet. *IF* it has, always prefer that Launcher over this one.
41-
42-
=== Installing mods with the generic CLI Launcher
43-
NOTE: Other Launchers may have different (additional) ways of installing mods,
44-
but this one should apply to every launcher and it especially applies to the
45-
generic CLI launcher.
46-
47-
In the same directory as the `Andraste.Launcher.exe`, there should be a `mods`
48-
folder. If not, create one.
49-
50-
Installing mods is now as simple as placing every mod inside that folder.
51-
In case your mod came zipped, you probably have to unzip it.
24+
=== Launching Games using the generic CLI Launcher
25+
If you really want to use the generic CLI Launcher, see it's dedicated subpage xref:cli-launcher.adoc[here]
5226

53-
TIP: If the mod hasn't been found/loaded (check the logs), make sure the
54-
directory structure is correct: `mods` -> `mod-name` footnote:[This should
55-
correspond to the `slug` in the `mod.json`, but is not mandatory, just good
56-
practice] -> `mod.json`
5727

5828
=== Creating a first mod
59-
See xref:creating-the-first-mod.adoc[here] for a step-by-step tutorial on
29+
See xref:getting-started/creating-the-first-mod.adoc[here] for a step-by-step tutorial on
6030
creating modifications (i.e. non code changes).
6131

62-
See xref:creating-the-first-plugin.adoc[here] for a step-by-step tutorial on
32+
See xref:getting-started/creating-the-first-plugin.adoc[here] for a step-by-step tutorial on
6333
creating plugins (i.e. code changes).

0 commit comments

Comments
 (0)