about summary refs log tree commit diff stats
path: root/apworld/README.md
blob: 386a2a15c02d3c119d0c4f434199acf43f453d40 (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
# Lingo 2 Apworld

The Lingo 2 Apworld allows you to generate Archipelago Multiworlds containing
Lingo 2.

## Installation

1. Download the Lingo 2 Apworld from
   [the releases page](https://code.fourisland.com/lingo-archipelago2/about/apworld/CHANGELOG.md).
2. If you do not already have it, download and install the
   [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/).
3. Double click on `lingo2.apworld` to install it, or copy it manually to the
   `custom_worlds` folder of your Archipelago installation.

## Running from source

The apworld is mostly written in Python, which does not need to be compiled.
However, there are two files that need to be generated before the apworld can be
used.

The first file is `data.binpb`, the datafile containing the randomizer logic.
You can read about how to generate it on
[its own README page](https://code.fourisland.com/lingo-archipelago2/about/data/README.md).
Once you have it, put it in a subfolder of `apworld` called `generated`.

The second generated file is `data_pb2.py`. This file allows Archipelago to read
the datafile. We use `protoc`, the Protocol Buffer compiler, to generate it. As
of 0.6.3, Archipelago has protobuf 3.20.3 packaged with it, which means we need
to compile our proto file with a similar version.

If you followed the steps to generate `data.binpb` and compiled the `datapacker`
tool yourself, you will already have protobuf version 3.21.12 installed through
vcpkg. You can then run a command similar to this in order to generate the
python file.

```shell
.\out\build\x64-Debug\vcpkg_installed\x64-windows\tools\protobuf\protoc.exe -Iproto\ ^
  --python_out=apworld\generated\ .\proto\data.proto
```

The exact path to `protoc.exe` is going to depend on where vcpkg installed its
packages. The above location is where Visual Studio will probably put it.

After generating those two files, the apworld should be functional. You can copy
it into an Archipelago source tree (rename the folder `apworld` to `lingo2` if
you do so) if you want to edit/debug the code. Otherwise, you can zip up the
folder and rename it to `lingo2.apworld` in order to package it for
distribution.