Skip to content

Commit

Permalink
Merge pull request #1418 from Patriot99/doc
Browse files Browse the repository at this point in the history
Docs
  • Loading branch information
Al12rs authored May 23, 2024
2 parents 424531b + 4262cf1 commit 6dd1feb
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 29 deletions.
8 changes: 4 additions & 4 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

**Q:** What is this? A replacement for Vortex?

**A:** Eventually, yes. But not for quite some time, at the moment this software should be considered "pre-alpha". Do not ask for support for these tools until official announcements and a product launch is made. Feel free to direct any questions to halgari in the meantime.
**A:** Eventually, yes. But not for quite some time, at the moment this software should be considered "pre-alpha". Do not ask for support for these tools until official announcements and a product launch is made. Feel free to direct any questions to Halgari in the meantime.


**Q:** Why is this being done, why a new platform, design, etc.?

**A:** Vortex was designed primarily for development by a team of one person (Tannin), as at the time Nexus wasn't ready to take on the financial and leadership burden of a larger development team. However, times change and we're now in the position of being able to have a more well structured team and development schedule. As such we are increasing the size of our mod management team. On the technical side of things we're taking time to lay a solid CI foundation, setup a well rounded datamodel (using lessons we've learned over the years of developing Vortex), and build this project to be more of a company product and less of a community project.
**A:** Vortex was designed primarily for development by a team of one person (Tannin), as at the time Nexus wasn't ready to take on the financial and leadership burden of a larger development team. However, times change, and we're now in the position of being able to have a more well-structured team and development schedule. As such we are increasing the size of our mod management team. On the technical side of things we're taking time to lay a solid CI foundation, setup a well-rounded data model (using lessons we've learned over the years of developing Vortex), and build this project to be more of a company product and less of a community project.


**Q:** Company product? Is this going closed source?

**A:** Absolutely not, modding tools should be free, and the Nexus Mods App will always be open source (GPL3). But we also want to use this app as a way to get tools into the hands of modders and users. Instead of publishing only a download API, we want to give users a download CLI tool. Once file uploading is reworked on the site, this repo will contain the code and CLI tools required for authenticating with Nexus Mods and uploading files via a CLI (and eventually a UI). In short, this is us getting serious about supporting (and leading) the desktop side of modding, not just the file hosting side.


**Q:** I see tests run on Linux, Windows and OSX, are you targeting all those platforms?
**Q:** I see tests run on Linux, Windows, and OSX; are you targeting all those platforms?

**A:** Yes, the CLI runs on these platforms and we run our CI on each of these OSes. What games are supported on these platforms (e.g. do we support Skyrim through Wine on Linux?) is yet to be determined.
**A:** Yes, the CLI runs on these platforms, and we run our CI on each of these OSes. What games are supported on these platforms (e.g. do we support Skyrim through Wine on Linux?) is yet to be determined.
8 changes: 4 additions & 4 deletions docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ The Nexus Mods App is programmed in C# with latest .NET Runtime. Setup should be
- [Visual Studio](https://visualstudio.microsoft.com/downloads/)
- [JetBrains Rider](https://www.jetbrains.com/rider/)

Our development team uses Rider, however Visual Studio is a great free offering on Windows.
Other code editors like [VSCode](https://code.visualstudio.com/) may work for you with [extensions](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit),
however may be a bit more complicated to use.
Our development team uses Rider; however, Visual Studio is a great free offering on Windows.
Other code editors, like [VS Code](https://code.visualstudio.com/), may work for you with [extensions](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit);
however, they may be a bit more complicated to use.

That's all. Open the project (`.sln`), build, and you're done.

Expand All @@ -23,7 +23,7 @@ Visual Studio and JetBrains Rider both have avalonia extensions that allow previ
- [Visual Studio Extension](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaVS)
- [Rider Extension](https://plugins.jetbrains.com/plugin/14839-avaloniarider)

You can install via web or from inside the IDEs extension managers themselves.
You can install via the web or from inside the IDE extension managers themselves.

There are also some [Item Templates](https://github.com/AvaloniaUI/avalonia-dotnet-templates) for Avalonia that can be very useful to have,
helping you make things like new 'Windows' and 'Controls' easier.
Expand Down
8 changes: 4 additions & 4 deletions docs/development-guidelines/AddingAGame.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

!!! info "Describes how to add a game to the Nexus Mods App."

To make a game automatically recognised by the Nexus Mods App, make a class that inherits from `AGame`.
To have a game be automatically recognised by the Nexus Mods App, create a class that inherits from `AGame`.

??? "Example Game (Click to Expand)"

Expand Down Expand Up @@ -77,11 +77,11 @@ In that scenario, to implement `Rocket League`, you would inherit `ISteamGame` a
public IEnumerable<uint> SteamIds => new[] { 252950u };
```

!!! tip "If you have a game that's not tied to a particular store, you'll probably need to extend `AGameLocator` class to implement the logic to 'find' your game."
!!! tip "If you have a game that's not tied to a particular store, you'll probably need to extend the `AGameLocator` class to implement the logic to 'find' your game."

## Populating Game Paths

!!! tip "You need tell the app where to look for files by overriding `GetLocations`."
!!! tip "You need to tell the app where to look for files by overriding `GetLocations`."

Example:
```csharp
Expand All @@ -108,7 +108,7 @@ The function `GetPrimaryFile` is the game's main executable (not a launcher).

!!! tip "To link your game with a Nexus page, you need to set the 'Domain' field."

Each `AGame` instance has a field named, `Domain`. This `Domain` corresponds to the URL used on Nexus Mods for the game.
Each `AGame` instance has a field named `Domain`. This `Domain` corresponds to the URL used on Nexus Mods for the game.

So for example, if you have [https://www.nexusmods.com/sifu][sifu], you should set the value to `sifu`

Expand Down
18 changes: 9 additions & 9 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@

Nexus Mods App is a mod installer, creator and manager for all your popular games.

Easy to use, runs on your standard Windows PC and Linux alike. Don't waste time troubleshooting, play your games,
fill those knees with arrows and most importantly, ***Have Fun***!
Easy to use, it runs on your standard Windows PC and Linux alike. Don't waste time troubleshooting; play your games,
fill those knees with arrows, and most importantly, ***Have Fun***!

!!! info "The Nexus Mods App is about creating that Modding experience that *'Just Works'* for old and new games alike!"

### Mod with Confidence

One of the biggest complaints of users over the years about modding is that they can't mod with confidence.
One of the biggest complaints from users over the years about modding is that they can't mod with confidence.

- Will a new mod wreck my install?
- Will I need to delete my game to revert a mod install?
- Will a new mod wreck my installation?
- Will I need to delete my game to revert a mod installation?
- The game updated, my mods updated, and now everything's broken.

Every step of the ***classic modding approach*** is fraught with pitfalls and destructive changes.
Expand All @@ -41,7 +41,7 @@ The Nexus Mods App intends to solve these problems. In addition to being a great
this project aims to always provide an *undo* feature for users. Not just on a metadata level (like most mod managers
offer today) but on a per-file basis as well.

Go ahead, update that mod, if you don't like it, you can always go back to the game as it was before you made the update.
Go ahead and update that mod; if you don't like it, you can always go back to the game as it was before you made the update.

Concept: [Immutable Mod Lists][immutable-mod-lists]

Expand Down Expand Up @@ -72,16 +72,16 @@ Virtual FileSystems:

#### Nexus Mods App Approach

!!! nexus "The Nexus Mods App aims to merge the mental simplicity of manual modding, with the hygiene of existing mod installers, and a promise of: "you can always go back to what last worked""
!!! nexus "The Nexus Mods App aims to merge the mental simplicity of manual modding with the hygiene of existing mod installers and a promise that "you can always go back to what last worked""

The 'Data Model' of the Nexus Mods App can be thought of as an extension of lessons learned from the development of
Nexus Collections and Wabbajack.

When you make a mod list, we don't directly manipulate files. Instead, we manipulate the 'instructions' used to deploy
the mods to the folder, and clicking 'Apply' simply moves the files directly to the folder.

We do this in a way that allows the user to revert changes at any time. Files aren't 'linked' or 'staged' in any way,
no functions are hooked and the the [cognitive overhead][cognitive-overhead] of the modding process is greatly reduced.
We do this in a way that allows the user to revert changes at any time. Files aren't 'linked' or 'staged' in any way;
no functions are hooked, and the [cognitive overhead][cognitive-overhead] of the modding process is greatly reduced.

Instead, users can focus on creating a perfect modding setup that works for them.

Expand Down
16 changes: 8 additions & 8 deletions docs/misc/DrawbacksOfNexusApproach.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ This takes considerable CPU and Disk resources.

This typically results in an increase in disk usage of 60-100% compared to regular game size.

!!! tip "For a 100GB game, an additional 60-100GB of space will be used once 'managed' with the Nexus Mods App."
!!! tip "For a 10 GB game, an additional 6-10 GB of space will be used once 'managed' with the Nexus Mods App."

For desktops, storage today is fairly cheap, however, there are still limitations.

Handheld users, such as those using the [Steam Deck][steam-deck] may end up limited with storage space;
and require buying expandable storage (microSD). To accomodate for such use case we'll need to support storing mods in
Handheld users, such as those using the [Steam Deck][steam-deck], may end up limited in storage space
and require buying expandable storage (microSD). To accommodate such a use case, we'll need to support storing mods in
multiple locations.

## Time to First Play

!!! info "The backup process for large games may take a long time."

A 100GB game may take around 10 minutes to backup under ideal circumstances on a system using a SATA SSD (we consider this the 'baseline').
A 100 GB game may take around 10 minutes to backup under ideal circumstances on a system using a SATA SSD (we consider this the 'baseline').

More realistically, probably in the realm of 12-13 minutes depending on:
More realistically, probably in the realm of 12-13 minutes, depending on:

- Drive activity
- CPU performance (and [Certain kind of software][microsoft-defender-antivirus])
Expand All @@ -34,15 +34,15 @@ This may be problematic if the user wants to immediately play their game, as the

## Footnote

!!! nexus "The Nexus Mods App is built in mind with the hardware of today. Taking advantage of fast CPUs and SSDs."
!!! nexus "The Nexus Mods App is built with the hardware of today in mind. Taking advantage of fast CPUs and SSDs."

With sufficient optimization and planning, we hope these processes become mostly 'transparent' to end users,
so they don't really notice a difference.

If we can be done with our work by the time an end user finds and downloads a mod they want to play;
If we can be done with our work by the time an end user finds and downloads a mod they want to play,
we're probably in a good place.

With certain game stores it may be possible to fetch the original
With certain game stores, it may be possible to fetch the original
files from the store rather than backing them up on the user's machine. We'll have to see in the future.

[steam-deck]: https://store.steampowered.com/steamdeck
Expand Down

0 comments on commit 6dd1feb

Please sign in to comment.