about summary refs log tree commit diff stats
path: root/data/maps/daedalus
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-09-25 18:26:53 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-09-25 18:26:53 -0400
commit05827d25733698a26cc0f305966e6a8a03be4684 (patch)
tree75dbec594a0bd0c2494df31b712bb6435730197c /data/maps/daedalus
parentcb2eca4fed1eb3692eaa13715f65ebcaf8472b64 (diff)
downloadlingo2-archipelago-05827d25733698a26cc0f305966e6a8a03be4684.tar.gz
lingo2-archipelago-05827d25733698a26cc0f305966e6a8a03be4684.tar.bz2
lingo2-archipelago-05827d25733698a26cc0f305966e6a8a03be4684.zip
Game talks through CommonClient now
Diffstat (limited to 'data/maps/daedalus')
0 files changed, 0 insertions, 0 deletions
ype */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# 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/lingo2-archipelago/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/lingo2-archipelago/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.