about summary refs log tree commit diff stats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md210
1 files changed, 210 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a522ac --- /dev/null +++ b/README.md
@@ -0,0 +1,210 @@
1# lingo2-archipelago
2
3[Archipelago](https://archipelago.gg/) is an open-source project that supports
4randomizing a number of different games and combining them into one cooperative
5experience. Items from each game are hidden in other games. For more information
6about Archipelago, you can look at their website.
7
8This is a project that modifies the game
9[Lingo 2](https://www.lingothegame.com/lingo2.html) so that it can be played as
10part of an Archipelago multiworld game.
11
12## Installation
13
141. Download the Lingo 2 Apworld from
15 [the releases page](https://code.fourisland.com/lingo2-archipelago/about/CHANGELOG.md).
162. If you do not already have it, download and install the
17 [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/).
183. Double click on `lingo2.apworld` to install it, or copy it manually to the
19 `custom_worlds` folder of your Archipelago installation.
20
21## Joining a Multiworld game (Windows)
22
231. Open the Archipelago Launcher.
242. Select "Lingo 2 Client".
253. The first time you do this, Archipelago will prompt you for the location of
26 the Lingo 2 executable file ("Lingo2.exe"). You can find this by
27 right-clicking on Lingo 2 in Steam, going to "Manage", and clicking "Browse
28 local files".
294. Lingo 2 will open, and you will see a form asking for your connection
30 details. Enter the Archipelago address, slot name, and password into the
31 fields.
325. Press Connect.
336. Enjoy!
34
35To continue an earlier game, you can perform the exact same steps as above.
36
37## Joining a Multiworld game (Non-Windows)
38
39Lingo 2 only officially supports Windows, but has been known to work on Linux
40using Proton. Archipelago can be played on a non-Windows system, but the process
41is a little more complex.
42
431. Download
44 [archipelago.tscn](https://code.fourisland.com/lingo2-archipelago/plain/client/archipelago.tscn)
45 and put it in your custom maps folder. You only have to do this once.
462. Open Lingo 2, and select Archipelago from the level selection list.
473. Put the path to your `lingo2.apworld` into the field provided. You only have
48 to do this once, as the game will remember what you put in.
494. Click Start and wait for the connection settings screen to load.
505. Open the Archipelago Launcher.
516. Select "Lingo 2 Client".
527. You should see "Connected to Lingo 2!" You can then return to Lingo 2 and
53 fill out your connection details.
548. Press Connect.
559. Enjoy!
56
57## Frequently Asked Questions
58
59### Why aren't the starting room letters shuffled?
60
61The letter requirements for solving puzzles are very restrictive, especially in
62the early game. It is possible for the generator to find some subset of letters
63and doors to place in the starting room such that you are not trapped, but this
64places a lot of strain on generation and leads to significantly more generation
65failures.
66
67As a result, the starting room letters (H1, I1, N1, and T1) are always present
68in the starting room, even when remote letter shuffle is enabled. These letters
69will _also_ count as clearing a check, so you will send out another item at the
70same time as collecting the letter.
71
72### What areas are randomized?
73
74Almost all maps that you can access from the base game are randomized. The
75exceptions are:
76
77- Icarus (this will be randomized at some point, although it will be optional)
78- Demo
79- The Hinterlands (this will probably be repurposed)
80- The beta tester gift maps
81
82### Is my progress saved locally?
83
84Lingo 2 autosaves your progress every time you solve a puzzle, get a
85collectable, or interact with a keyholder. The randomizer generates a savefile
86name based on your Multiworld seed and slot number, so you should be able to
87seamlessly switch between multiworlds and even slots within a multiworld.
88
89The exception to this is different rooms created from the same multiworld seed.
90The client is unable to tell rooms in a seed apart (this is a limitation of the
91Archipelago API), so the client will use the same save file for the same slot in
92different rooms on the same seed. You can work around this by manually moving or
93removing the save folder from the users directory in Lingo 2's game files.
94
95If you play the base game again, you will see one or more save files with a long
96name that begins with "zzAP\_". These are the saves for your multiworlds. They
97can be safely deleted after you have completed the associated multiworld. It is
98not recommended to load these save files outside of the randomizer.
99
100A connection to Archipelago is required to resume playing a multiworld. This is
101because the set of items you have received is not stored locally.
102
103### What about wall snipes?
104
105"Wall sniping" refers to the fact that you are able to solve puzzles on the
106other side of opaque walls. The player is never expected to or required to do
107this in normal gameplay. This randomizer does not change how wall snipes work,
108but it will likewise never require the use of them.
109
110### How do cyan doors work?
111
112In the base game, there are a number of cyan-colored doors that ordinarily open
113once you collect H2 in The Repetitive. There are also a handful of panels that
114only appear upon getting H2 as well, which the apworld treats the same as the
115cyan doors.
116
117There is an option that lets you choose how these doors and panels behave. By
118default, they act the same as in the base game: they only open or appear after
119collecting H2. Note that this means the actual H2 collectable in The Repetitive.
120Receiving H2 via remote letter shuffle does not count for this requirement.
121However, you can also make cyan doors activate upon collecting or receiving your
122first double letter, regardless of what it is or if it's remote. Finally, you
123can lock cyan doors behind an item called "Cyan Doors".
124
125It is important to note, however, that the Cyan Door Behavior option only
126applies to cyan doors that are not already affected by another type of
127shuffling. When door shuffle is on, the following cyan doors are activated by
128individual items and are not impacted by your choice of Cyan Door Behavior:
129
130- The entrance to The Tower from The Great (The Great - Tower Entrance)
131- The entrance to The Butterfly from The Bearer (The Bearer - Butterfly
132 Entrance)
133- The entrance to The Repetitive from The Entry (The Entry - Repetitive
134 Entrance)
135- The eye painting near the yellow color hallway in Daedalus (Daedalus - Eye
136 Painting)
137- The Red I room in The Repetitive (The Repetitive - Anti Collectable Room)
138
139Additionally, when control center color shuffle is enabled, the orange door in
140The Unkempt (which ordinarily doubles as a cyan door) opens upon receiving the
141Control Center Orange Doors item, instead of following the Cyan Door Behavior
142option.
143
144### Help! I lost C/G in The Congruent!
145
146If you place C or G into the relevant keyholders in The Congruent, the keyholder
147disappears. You can retrieve your letter immediately by pressing C or G again
148before leaving solve mode, as the keyholder will still be considered to be
149"focused", even though it has moved. If you have already moved, though, there is
150another way to get your letters back: just use the Key Return in The Entry.
151
152### Why is the tracker telling me to solve a panel that's currently red?
153
154Red usually indicates that a panel cannot be solved because of missing letters.
155However, that only applies to the puzzle's main answer. If a puzzle has
156alternate answers, you may be expected to use one of those instead of the main
157one. As long as you have all of the necessary letters, an alternate answer can
158be typed into a red panel even though it does not show you typing. When you
159finish typing the answer, the panel will solve as normal.
160
161## Running from source
162
163The randomizer is mostly written in Python and GDScript, which do not need to be
164compiled. However, there are three files that need to be generated before the
165apworld can be used.
166
167The first file is `data.binpb`, the datafile containing the randomizer logic.
168You can read about how to generate it on
169[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
170Once you have it, put it in a subfolder of `apworld` called `generated`.
171
172The second generated file is `data_pb2.py`. This file allows Archipelago to read
173the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
174of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
175to compile our proto file with a similar version.
176
177If you followed the steps to generate `data.binpb` and compiled the `datapacker`
178tool yourself, you will already have protobuf version 3.21.12 installed through
179vcpkg. You can then run a command similar to this in order to generate the
180python file.
181
182```shell
183.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
184 --python_out=apworld\generated\ .\proto\data.proto
185```
186
187The exact path to `protoc.exe` is going to depend on where vcpkg installed its
188packages. The above location is where Visual Studio will probably put it.
189
190The third generated file is `proto.gd`. This is the GDScript version of the
191previous file. We use a Godot script to generate it, which means
192[the Godot Editor](https://godotengine.org/download/) is required. From the root
193of the repository:
194
195```shell
196cd vendor\godobuf
197godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
198 --output=..\..\apworld\generated\proto.gd
199```
200
201If you are not on Windows, replace the forward slashes with backslashes as
202appropriate (and the caret with a forward slash). You will also probably need to
203replace "godot" at the start of the second line with a path to a Godot Editor
204executable.
205
206After generating those three files, the apworld should be functional. You can
207copy it into an Archipelago source tree (rename the folder `apworld` to `lingo2`
208if you do so) if you want to edit/debug the code. Otherwise, you can zip up the
209folder and rename it to `lingo2.apworld` in order to package it for
210distribution.