diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/README.md | 97 |
1 files changed, 97 insertions, 0 deletions
| diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..07c5459 --- /dev/null +++ b/client/README.md | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | # Lingo 2 Archipelago Client | ||
| 2 | |||
| 3 | The Lingo 2 Archipelago Client is a mod for Lingo 2 that allows you to connect | ||
| 4 | to an Archipelago Multiworld and randomize your game. | ||
| 5 | |||
| 6 | ## Installation | ||
| 7 | |||
| 8 | 1. Download the Lingo 2 Archipelago Randomizer from | ||
| 9 | [the releases page](https://code.fourisland.com/lingo-archipelago2/about/client/CHANGELOG.md). | ||
| 10 | 2. Open up Lingo 2, go to settings, and click View Game Data. This should open | ||
| 11 | up a folder in Windows Explorer. | ||
| 12 | 3. Unzip the randomizer into the "maps" folder. Ensure that archipelago.tscn and | ||
| 13 | the Archipelago folder are both within the maps folder. | ||
| 14 | |||
| 15 | **NOTE**: It is important that the major version number of your client matches | ||
| 16 | the major version number of the apworld you generated with. | ||
| 17 | |||
| 18 | ## Joining a Multiworld game | ||
| 19 | |||
| 20 | 1. Launch Lingo 2. | ||
| 21 | 2. Click on Level Selection, and choose Archipelago from the list. | ||
| 22 | 3. The selected player is generally ignored by the mod, and you don't even need | ||
| 23 | to ensure you use the same player between connections. However, if your | ||
| 24 | player name has a gift map associated with it, Lingo 2 will prioritize the | ||
| 25 | gift map over loading the mod, so in that case you should choose another | ||
| 26 | player. | ||
| 27 | 4. Press Play. | ||
| 28 | 5. Enter the Archipelago address, slot name, and password into the fields. | ||
| 29 | 6. Press Connect. | ||
| 30 | 7. Enjoy! | ||
| 31 | |||
| 32 | To continue an earlier game, you can perform the exact same steps as above. You | ||
| 33 | will probably have to re-select Archipelago from the Level Selection screen, as | ||
| 34 | the game does not remember which level you were playing. | ||
| 35 | |||
| 36 | **Note**: Running the randomizer modifies the game's memory. If you want to play | ||
| 37 | the base game after playing the randomizer, you need to restart Lingo 2 first. | ||
| 38 | |||
| 39 | ## Running from source | ||
| 40 | |||
| 41 | The mod is mostly written in GDScript, which is parsed and executed by Lingo 2 | ||
| 42 | itself, and thus does not need to be compiled. However, there are two files that | ||
| 43 | need to be generated before the client can be run. | ||
| 44 | |||
| 45 | The first file is `data.binpb`, the datafile containing the randomizer logic. | ||
| 46 | You can read about how to generate it on | ||
| 47 | [its own README page](https://code.fourisland.com/lingo-archipelago2/about/data/README.md). | ||
| 48 | Once you have it, put it in a subfolder of `client` called `generated`. | ||
| 49 | |||
| 50 | The second generated file is `proto.gd`. This file allows Lingo 2 to read the | ||
| 51 | datafile. We use a Godot script to generate it, which means | ||
| 52 | [the Godot Editor](https://godotengine.org/download/) is required. From the root | ||
| 53 | of the repository: | ||
| 54 | |||
| 55 | ```shell | ||
| 56 | cd vendor\godobuf | ||
| 57 | godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^ | ||
| 58 | --output=..\..\client\Archipelago\generated\proto.gd | ||
| 59 | ``` | ||
| 60 | |||
| 61 | If you are not on Windows, replace the forward slashes with backslashes as | ||
| 62 | appropriate (and the caret with a forward slash). You will also probably need to | ||
| 63 | replace "godot" at the start of the second line with a path to a Godot Editor | ||
| 64 | executable. | ||
| 65 | |||
| 66 | After generating those two files, the contents of the `client` folder (minus | ||
| 67 | this README) can be pasted into the Lingo 2 maps directory as described above. | ||
| 68 | |||
| 69 | ## Frequently Asked Questions | ||
| 70 | |||
| 71 | ### Is my progress saved locally? | ||
| 72 | |||
| 73 | Lingo 2 autosaves your progress every time you solve a puzzle, get a | ||
| 74 | collectable, or interact with a keyholder. The randomizer generates a savefile | ||
| 75 | name based on your Multiworld seed and slot number, so you should be able to | ||
| 76 | seamlessly switch between multiworlds and even slots within a multiworld. | ||
| 77 | |||
| 78 | The exception to this is different rooms created from the same multiworld seed. | ||
| 79 | The client is unable to tell rooms in a seed apart (this is a limitation of the | ||
| 80 | Archipelago API), so the client will use the same save file for the same slot in | ||
| 81 | different rooms on the same seed. You can work around this by manually moving or | ||
| 82 | removing the save file from the level1 save file directory. | ||
| 83 | |||
| 84 | If you play the base game again, you will see one or more save files with a long | ||
| 85 | name that begins with "zzAP\_". These are the saves for your multiworlds. They | ||
| 86 | can be safely deleted after you have completed the associated multiworld. It is | ||
| 87 | not recommended to load these save files outside of the randomizer. | ||
| 88 | |||
| 89 | A connection to Archipelago is required to resume playing a multiworld. This is | ||
| 90 | because the set of items you have received is not stored locally. | ||
| 91 | |||
| 92 | ### What about wall snipes? | ||
| 93 | |||
| 94 | "Wall sniping" refers to the fact that you are able to solve puzzles on the | ||
| 95 | other side of opaque walls. The player is never expected to or required to do | ||
| 96 | this in normal gameplay. This randomizer does not change how wall snipes work, | ||
| 97 | but it will likewise never require the use of them. | ||
