about summary refs log tree commit diff stats
path: root/README.md
blob: c087917a06ed7600a9ac95b6b25d5bd95cc08c22 (plain) (blame)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Anodyne Archipelago Client

[Archipelago](https://archipelago.gg/) is an open-source project that supports
randomizing a number of different games and combining them into one cooperative
experience. Items from each game are hidden in other games. For more information
about Archipelago, you can look at their website.

This is a project that modifies the game [Anodyne](https://www.anodynegame.com/)
so that it can be played as part of an Archipelago multiworld game.

## Installation

1. Download the Anodyne Archipelago Randomizer from
   [the releases page](https://code.fourisland.com/anodyne-archipelago/about/CHANGELOG.md).
2. Locate `AnodyneSharp.exe`. On Steam, you can find it by right clicking on
   "Anodyne", going to "Manage", and clicking "Browse local files". In the
   folder that opens, you should see another folder called "Remake".
   `AnodyneSharp.exe` should be in there.
3. Unzip the randomizer into the same folder as `AnodyneSharp.exe`. This should
   add one folder, one exe, and several dll files to this folder.

## Joining a Multiworld game

1. Run `AnodyneArchipelagoLauncher.exe`.
2. Enter your connection details on the main menu. Text must be entered via
   keyboard, even if you are playing on controller.
3. Select "Connect".
4. Enjoy!

To continue an earlier game, you can perform the exact same steps as above. The
randomizer will remember the details of your last nine unique connections.

## Running from source

If you are not testing local changes to the source code, skip this section and
read the Installation section instead.

The `AnodyneArchipelago` project depends on several other assemblies. These can
be found either in the BepInEx project or in the `AnodyneSharp.exe` folder. The
BepInEx assemblies used, as well as the mod launcher itself, must be compiled
for x64 (not Any CPU) and .NET Framework 4.6.2. You will need to clone the
BepInEx project and configure it so that they compile correctly.

The layout of the `AnodyneArchipelago` release is as follows:

- The `BepInEx.NET.Framework.Launcher` executable, renamed to
  `AnodyneArchipelagoLauncher.exe`.
- The BepInEx dependencies: `0Harmony.dll`, `BepInEx.Core.dll`,
  `BepInEx.NET.Common.dll`, `BepInEx.Preloader.Core.dll`, `Mono.Cecil.dll`,
  `Mono.Cecil.Mdb.dll`, `Mono.Cecil.Pdb.dll`, `Mono.Cecil.Rocks.dll`,
  `MonoMod.RuntimeDetour.dll`, `MonoMod.Utils.dll`, `SemanticVersioning.dll`.
- The `AnodyneArchipelago` dependencies: `Archipelago.MultiClient.Net.dll`,
  `Newtonsoft.Json.dll`.
- A folder called `BepInEx`, containing two subfolders: `config`, which contains
  `BepInEx.cfg` from the repository root, and `plugins`, which contains
  `AnodyneArchipelago.dll` itself.

## Frequently Asked Questions

### Will this impact the base game?

The base game can still be played normally using `AnodyneSharp.exe` (i.e. by
launching the game through Steam). The randomizer will only be invoked when
running the game using `AnodyneArchipelagoLauncher.exe`. The randomizer also
uses separate save files from the main game, so your vanilla saves will not be
affected either.

### Is my progress saved locally?

The randomizer generates a savefile name based on your Multiworld seed and slot
number, so you should be able to seamlessly switch between multiworlds and even
slots within a multiworld.

The exception to this is different rooms created from the same multiworld seed.
The client is unable to tell rooms in a seed apart (this is a limitation of the
Archipelago API), so the client will use the same save file for the same slot in
different rooms on the same seed. You can work around this by manually moving or
removing the save file from the AnodyneFNA save file directory.