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.md284
1 files changed, 284 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..24e9fa2 --- /dev/null +++ b/README.md
@@ -0,0 +1,284 @@
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 only
75exception is The Hinterlands, which will probably be repurposed into a hint
76area. Some advanced/hidden maps are also disabled by default (as discussed
77below).
78
79### Is my progress saved locally?
80
81Lingo 2 autosaves your progress every time you solve a puzzle, get a
82collectable, or interact with a keyholder. The randomizer generates a savefile
83name based on your Multiworld seed and slot number, so you should be able to
84seamlessly switch between multiworlds and even slots within a multiworld.
85
86The exception to this is different rooms created from the same multiworld seed.
87The client is unable to tell rooms in a seed apart (this is a limitation of the
88Archipelago API), so the client will use the same save file for the same slot in
89different rooms on the same seed. You can work around this by manually moving or
90removing the save folder from the users directory in Lingo 2's game files.
91
92If you play the base game again, you will see one or more save files with a long
93name that begins with "zzAP\_". These are the saves for your multiworlds. They
94can be safely deleted after you have completed the associated multiworld. It is
95not recommended to load these save files outside of the randomizer.
96
97A connection to Archipelago is required to resume playing a multiworld. This is
98because the set of items you have received is not stored locally.
99
100### What about wall snipes?
101
102"Wall sniping" refers to the fact that you are able to solve puzzles on the
103other side of opaque walls. The player is never expected to or required to do
104this in normal gameplay. This randomizer does not change how wall snipes work,
105but it will likewise never require the use of them.
106
107### How do cyan doors work?
108
109In the base game, there are a number of cyan-colored doors that ordinarily open
110once you collect H2 in The Repetitive. There are also a handful of panels that
111only appear upon getting H2 as well, which the apworld treats the same as the
112cyan doors.
113
114There is an option that lets you choose how these doors and panels behave. By
115default, they act the same as in the base game: they only open or appear after
116collecting H2. Note that this means the actual H2 collectable in The Repetitive.
117Receiving H2 via remote letter shuffle does not count for this requirement.
118However, you can also make cyan doors activate upon collecting or receiving your
119first double letter, regardless of what it is or if it's remote. Finally, you
120can lock cyan doors behind an item called "Cyan Doors".
121
122It is important to note, however, that the Cyan Door Behavior option only
123applies to cyan doors that are not already affected by another type of
124shuffling. When door shuffle is on, the following cyan doors are activated by
125individual items and are not impacted by your choice of Cyan Door Behavior:
126
127- The entrance to The Tower from The Great (The Great - Tower Entrance)
128- The entrance to The Butterfly from The Bearer (The Bearer - Butterfly
129 Entrance)
130- The entrance to The Repetitive from The Entry (The Entry - Repetitive
131 Entrance)
132- The eye painting near the yellow color hallway in Daedalus (Daedalus - Eye
133 Painting)
134- The Red I room in The Repetitive (The Repetitive - Anti Collectable Room)
135
136Additionally, when control center color shuffle is enabled, the orange door in
137The Unkempt (which ordinarily doubles as a cyan door) opens upon receiving the
138Control Center Orange Doors item, instead of following the Cyan Door Behavior
139option.
140
141### Help! I lost C/G in The Congruent!
142
143If you place C or G into the relevant keyholders in The Congruent, the keyholder
144disappears. You can retrieve your letter immediately by pressing C or G again
145before leaving solve mode, as the keyholder will still be considered to be
146"focused", even though it has moved. If you have already moved, though, there is
147another way to get your letters back: just use the Key Return in The Entry.
148
149### Why is the tracker telling me to solve a panel that's currently red?
150
151Red usually indicates that a panel cannot be solved because of missing letters.
152However, that only applies to the puzzle's main answer. If a puzzle has
153alternate answers, you may be expected to use one of those instead of the main
154one. As long as you have all of the necessary letters, an alternate answer can
155be typed into a red panel even though it does not show you typing. When you
156finish typing the answer, the panel will solve as normal.
157
158### Why does the tracker say "The Entry (Colored Doors Area) - OPEN" is in logic?
159
160This is an infamous panel, both in the base game and in the randomizer. There
161are _two_ valid answers that open the door / clear the location. These are
162"ORANGE" and "WALL".
163
164### I can't solve the COLORS panel in The Sturdy!
165
166The Sturdy contains a rainbow painting that leads to the Gold Ending area in
167Daedalus. There are three ways to spawn this painting, which have different
168logical requirements:
169
170- Solve the COLORS panel that appears after collecting S2. This is the most
171 well-known way, and causes the most confusion because you may be expected to
172 enter the painting even if you are unable to solve the panel (e.g. if you are
173 missing letters or missing Boxes Symbol).
174- Solve the panels in the order that you walk across the colors on the way
175 toward S2: Magenta, Red, Orange, Yellow, Green, Blue, Purple, Cyan. This has
176 the same logic as accessing S2.
177- Type "MOVE" into the Green and Yellow panels, and none of the other ones. This
178 is a subset of the logic for accessing S2, so you may actually be expected to
179 use the rainbow painting before you can even collect S2.
180
181### How does Icarus work?
182
183While Icarus is easily accessible during normal play, it is not randomized by
184default. The main reason for this is that Icarus employs significantly more use
185of gravity changing mechanics than the rest of the game and as a result tends to
186cause motion sickness in a lot of players. It is also an infamously confusing
187area to navigate.
188
189Because of this, the player may enter and exit Icarus from the usual place in
190Daedalus, but it will not contain any locations, and no items will be added to
191the pool for it. The worldport will not be included in the randomization if
192worldport shuffle is on. Icarus can also still be entered from The Crystalline,
193but doing so (in order to then access Daedalus) will not be logically required.
194
195However, Icarus can be randomized via the "Enable Icarus" option. Doing so
196creates locations and items for the map, and includes the worldport in worldport
197shuffle. The aforementioned connection from The Crystalline also becomes
198logical, if The Crystalline is enabled.
199
200It is not trivial to telegraph exactly what is logical within Icarus. It is very
201easy to break logic because the gravity changers allow you to fall in almost any
202direction you want to. In general, falling is only in logic if it is "guided",
203i.e. falling through a hole or an open door to another platform, or using a
204gravity inverter. You may also sometimes be required to solve panels that are
205physically near you and easily visible, but not on your plane of gravity. The
206tracker can help you determine what is considered logical, if you want to stay
207within the randomizer's logic.
208
209### How do the gift maps work?
210
211The beta tester gift maps are hidden levels intended for specific people. By
212default, these are not accessible at all from within the randomizer. The "Enable
213Gift Maps" option allows you to enter the maps, and creates items and locations
214for them. If worldport shuffle is on, their worldports will be included in the
215randomization.
216
217The gift maps are accessed via a panel in The Entry's Starting Room, which only
218appears if at least one gift map is enabled. It is also treated like a cyan
219door, and will not appear until the condition specified in the Cyan Door
220Behavior option is satisfied. Solving this panel with the name of one of the
221beta testers will teleport you to their corresponding gift map. This README
222purposefully does not list the names you need to enter the maps via the panel.
223
224In the base game, nothing happens once you complete a gift map. Masteries have
225been added to the gift maps in the randomizer so that the player can be rewarded
226for completing them.
227
228Note that the gift maps were originally only intended to be played by specific
229people, and as a result may be frustrating or require knowledge of inside jokes.
230The Crystalline is particularly difficult as it requires completing a parkour
231course. It is highly recommended that you complete these maps vanilla or solo
232before bringing them to a multiworld. It is also perfectly acceptable to never
233enable them.
234
235## Running from source
236
237The randomizer is mostly written in Python and GDScript, which do not need to be
238compiled. However, there are three files that need to be generated before the
239apworld can be used.
240
241The first file is `data.binpb`, the datafile containing the randomizer logic.
242You can read about how to generate it on
243[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
244Once you have it, put it in a subfolder of `apworld` called `generated`.
245
246The second generated file is `data_pb2.py`. This file allows Archipelago to read
247the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
248of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
249to compile our proto file with a similar version.
250
251If you followed the steps to generate `data.binpb` and compiled the `datapacker`
252tool yourself, you will already have protobuf version 3.21.12 installed through
253vcpkg. You can then run a command similar to this in order to generate the
254python file.
255
256```shell
257.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
258 --python_out=apworld\generated\ .\proto\data.proto
259```
260
261The exact path to `protoc.exe` is going to depend on where vcpkg installed its
262packages. The above location is where Visual Studio will probably put it.
263
264The third generated file is `proto.gd`. This is the GDScript version of the
265previous file. We use a Godot script to generate it, which means
266[the Godot Editor](https://godotengine.org/download/) is required. From the root
267of the repository:
268
269```shell
270cd vendor\godobuf
271godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
272 --output=..\..\apworld\generated\proto.gd
273```
274
275If you are not on Windows, replace the forward slashes with backslashes as
276appropriate (and the caret with a forward slash). You will also probably need to
277replace "godot" at the start of the second line with a path to a Godot Editor
278executable.
279
280After generating those three files, the apworld should be functional. You can
281copy it into an Archipelago source tree (rename the folder `apworld` to `lingo2`
282if you do so) if you want to edit/debug the code. Otherwise, you can zip up the
283folder and rename it to `lingo2.apworld` in order to package it for
284distribution.