about summary refs log tree commit diff stats
path: root/README.md
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-25 19:50:42 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-25 19:50:42 -0400
commitd30a8e2ca351ba05d1b346e59feef6d098f75adf (patch)
tree9b79740df8cec5c6117869f9c149f86edf0a0e2c /README.md
parentf0c59deb3bfa9189c2136ab3c494f8a5b452470b (diff)
downloadlingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.tar.gz
lingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.tar.bz2
lingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.zip
Reorganized READMEs
Diffstat (limited to 'README.md')
-rw-r--r--README.md116
1 files changed, 98 insertions, 18 deletions
diff --git a/README.md b/README.md index 1da3c2b..8b1a425 100644 --- a/README.md +++ b/README.md
@@ -9,17 +9,33 @@ This is a project that modifies the game
9[Lingo 2](https://www.lingothegame.com/lingo2.html) so that it can be played as 9[Lingo 2](https://www.lingothegame.com/lingo2.html) so that it can be played as
10part of an Archipelago multiworld game. 10part of an Archipelago multiworld game.
11 11
12## How To Play 12## Installation
13 13
14Here are the components needed in order to play: 141. Download the Lingo 2 Apworld from
15 15 [the releases page](https://code.fourisland.com/lingo2-archipelago/about/CHANGELOG.md).
16- **Apworld**: This is used by Archipelago to generate randomized Lingo 2 162. If you do not already have it, download and install the
17 worlds. 17 [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/).
18 - [Installation & FAQ](https://code.fourisland.com/lingo2-archipelago/about/apworld/README.md) 183. Double click on `lingo2.apworld` to install it, or copy it manually to the
19 - [Downloads](https://code.fourisland.com/lingo2-archipelago/about/apworld/CHANGELOG.md) 19 `custom_worlds` folder of your Archipelago installation.
20- **Client**: This is how Lingo 2 connects to an Archipelago multiworld. 20
21 - [Installation & FAQ](https://code.fourisland.com/lingo2-archipelago/about/client/README.md) 21## Joining a Multiworld game
22 - [Downloads](https://code.fourisland.com/lingo2-archipelago/about/client/CHANGELOG.md) 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**Note**: Running the randomizer modifies the game's memory. If you want to play
38the base game after playing the randomizer, you need to restart Lingo 2 first.
23 39
24## Frequently Asked Questions 40## Frequently Asked Questions
25 41
@@ -46,6 +62,27 @@ exceptions are:
46- The Hinterlands (this will probably be repurposed) 62- The Hinterlands (this will probably be repurposed)
47- The beta tester gift maps 63- The beta tester gift maps
48 64
65### Is my progress saved locally?
66
67Lingo 2 autosaves your progress every time you solve a puzzle, get a
68collectable, or interact with a keyholder. The randomizer generates a savefile
69name based on your Multiworld seed and slot number, so you should be able to
70seamlessly switch between multiworlds and even slots within a multiworld.
71
72The exception to this is different rooms created from the same multiworld seed.
73The client is unable to tell rooms in a seed apart (this is a limitation of the
74Archipelago API), so the client will use the same save file for the same slot in
75different rooms on the same seed. You can work around this by manually moving or
76removing the save folder from the users directory in Lingo 2's game files.
77
78If you play the base game again, you will see one or more save files with a long
79name that begins with "zzAP\_". These are the saves for your multiworlds. They
80can be safely deleted after you have completed the associated multiworld. It is
81not recommended to load these save files outside of the randomizer.
82
83A connection to Archipelago is required to resume playing a multiworld. This is
84because the set of items you have received is not stored locally.
85
49### What about wall snipes? 86### What about wall snipes?
50 87
51"Wall sniping" refers to the fact that you are able to solve puzzles on the 88"Wall sniping" refers to the fact that you are able to solve puzzles on the
@@ -95,10 +132,53 @@ before leaving solve mode, as the keyholder will still be considered to be
95"focused", even though it has moved. If you have already moved, though, there is 132"focused", even though it has moved. If you have already moved, though, there is
96another way to get your letters back: just use the Key Return in The Entry. 133another way to get your letters back: just use the Key Return in The Entry.
97 134
98## Project Details 135## Running from source
99 136
100There are multiple parts of this project: 137The randomizer is mostly written in Python and GDScript, which do not need to be
101 138compiled. However, there are three files that need to be generated before the
102- [Client](https://code.fourisland.com/lingo2-archipelago/about/client/README.md) 139apworld can be used.
103- [Apworld](https://code.fourisland.com/lingo2-archipelago/about/apworld/README.md) 140
104- [Data](https://code.fourisland.com/lingo2-archipelago/about/data/README.md) 141The first file is `data.binpb`, the datafile containing the randomizer logic.
142You can read about how to generate it on
143[its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md).
144Once you have it, put it in a subfolder of `apworld` called `generated`.
145
146The second generated file is `data_pb2.py`. This file allows Archipelago to read
147the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
148of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
149to compile our proto file with a similar version.
150
151If you followed the steps to generate `data.binpb` and compiled the `datapacker`
152tool yourself, you will already have protobuf version 3.21.12 installed through
153vcpkg. You can then run a command similar to this in order to generate the
154python file.
155
156```shell
157.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
158 --python_out=apworld\generated\ .\proto\data.proto
159```
160
161The exact path to `protoc.exe` is going to depend on where vcpkg installed its
162packages. The above location is where Visual Studio will probably put it.
163
164The third generated file is `proto.gd`. This is the GDScript version of the
165previous file. We use a Godot script to generate it, which means
166[the Godot Editor](https://godotengine.org/download/) is required. From the root
167of the repository:
168
169```shell
170cd vendor\godobuf
171godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^
172 --output=..\..\apworld\generated\proto.gd
173```
174
175If you are not on Windows, replace the forward slashes with backslashes as
176appropriate (and the caret with a forward slash). You will also probably need to
177replace "godot" at the start of the second line with a path to a Godot Editor
178executable.
179
180After generating those three files, the apworld should be functional. You can
181copy it into an Archipelago source tree (rename the folder `apworld` to `lingo2`
182if you do so) if you want to edit/debug the code. Otherwise, you can zip up the
183folder and rename it to `lingo2.apworld` in order to package it for
184distribution.