WebHost: Begin removing unnecessary line breaks.

This commit is contained in:
Hussein Farran 2021-11-29 22:34:28 -05:00
parent 5121b0d09b
commit ac02019930
4 changed files with 43 additions and 99 deletions

View File

@ -2,51 +2,36 @@
## What is a randomizer? ## What is a randomizer?
A randomizer is a modification of a video game which reorganizes the items required to progress through the game. A randomizer is a modification of a video game which reorganizes the items required to progress through the game.
A normal play-through of a game might require you to use item A to unlock item B, then C, and so forth. In a A normal play-through of a game might require you to use item A to unlock item B, then C, and so forth. In a randomized game, you might first find item C, then A, then B.
randomized game, you might first find item C, then A, then B.
This transforms games from a linear experience into a puzzle, presenting players with a new challenge each time they This transforms games from a linear experience into a puzzle, presenting players with a new challenge each time they play a randomized game. Putting items in non-standard locations can require the player to think about the game world and the items they encounter in new and interesting ways.
play a randomized game. Putting items in non-standard locations can require the player to think about the game world
and the items they encounter in new and interesting ways.
## What happens if an item is placed somewhere it is impossible to get? ## What happens if an item is placed somewhere it is impossible to get?
The randomizer has many strict sets of rules it must follow when generating a game. One of the functions of these The randomizer has many strict sets of rules it must follow when generating a game. One of the functions of these rules is to ensure items necessary to complete the game will be accessible to the player. Many games also have a subset of rules allowing certain items to be placed in normally unreachable locations, provided the player has indicated they are comfortable exploiting certain glitches in the game.
rules is to ensure items necessary to complete the game will be accessible to the player. Many games also have a
subset of rules allowing certain items to be placed in normally unreachable locations, provided the player has
indicated they are comfortable exploiting certain glitches in the game.
## What is a multi-world? ## What is a multi-world?
While a randomizer shuffles a game, a multi-world randomizer shuffles that game for multiple players. For example, While a randomizer shuffles a game, a multi-world randomizer shuffles that game for multiple players. For example, in a two player multi-world, players A and B each get their own randomized version of a game, called seeds. In each player's game, they may find items which belong to the other player. If player A finds an item which belongs to player B, the item will be sent to player B's world over the internet.
in a two player multi-world, players A and B each get their own randomized version of a game, called seeds. In each
player's game, they may find items which belong to the other player. If player A finds an item which belongs to
player B, the item will be sent to player B's world over the internet.
This creates a cooperative experience during multi-world games, requiring players to rely upon each other to complete This creates a cooperative experience during multi-world games, requiring players to rely upon each other to complete their game.
their game.
## What happens if a person has to leave early? ## What happens if a person has to leave early?
If a player must leave early, they can use Archipelago's forfeit system. When a player forfeits their game, all If a player must leave early, they can use Archipelago's forfeit system. When a player forfeits their game, all the items in that game which belong to other players are sent out automatically, so other players can continue to play.
the items in that game which belong to other players are sent out automatically, so other players can continue to
play.
## What does multi-game mean? ## What does multi-game mean?
While a multi-world game traditionally requires all players to be playing the same game, a multi-game multi-world While a multi-world game traditionally requires all players to be playing the same game, a multi-game multi-world allows players to randomize any of a number of supported games, and send items between them. This allows players of different games to interact with one another in a single multiplayer environment.
allows players to randomize any of a number of supported games, and send items between them. This allows players of
different games to interact with one another in a single multiplayer environment.
## Can I generate a single-player game with Archipelago? ## Can I generate a single-player game with Archipelago?
Yes. All our supported games can be generated as single-player experiences, and so long as you download the software, Yes. All our supported games can be generated as single-player experiences, and so long as you download the software, the website is not required to generate them.
the website is not required to generate them.
## How do I get started? ## How do I get started?
If you are ready to start randomizing games, or want to start playing your favorite randomizer with others, If you are ready to start randomizing games, or want to start playing your favorite randomizer with others, please join our discord server at https://discord.gg/archipelago. There are always people ready to answer any questions
please join our [Discord server](https://discord.gg/8Z65BR2). There are always people ready to answer any questions
you might have. you might have.
## I want to add a game to the Archipelago randomizer. How do I do that? ## I want to add a game to the Archipelago randomizer. How do I do that?
The best way to get started is to take a look at our [code on GitHub](https://github.com/ArchipelagoMW/Archipelago). The best way to get started is to take a look at our code on GitHub at https://github.com/ArchipelagoMW/Archipelago.
There, you will find examples of games in the [worlds](https://github.com/ArchipelagoMW/Archipelago/tree/main/worlds)
folder, as well as some [documentation](https://github.com/ArchipelagoMW/Archipelago/tree/main/docs) on our There you will find examples of games in the worlds folder at https://github.com/ArchipelagoMW/Archipelago/tree/main/worlds.
network interfaces.
You may also find developer documentation in the docs folder at https://github.com/ArchipelagoMW/Archipelago/tree/main/docs.
If you have more questions, feel free to ask in the **#archipelago-dev** channel on our Discord. If you have more questions, feel free to ask in the **#archipelago-dev** channel on our Discord.

View File

@ -2,25 +2,20 @@
## What is Plando? ## What is Plando?
The purposes of randomizers is to randomize the items in a game to give a new experience. The purposes of randomizers is to randomize the items in a game to give a new experience.
Plando takes this concept and changes it up by allowing you to plan out certain aspects of the game by placing certain Plando takes this concept and changes it up by allowing you to plan out certain aspects of the game by placing certain items in certain locations, certain bosses in certain rooms, edit text for certain NPCs/signs, or even force certain region
items in certain locations, certain bosses in certain rooms, edit text for certain NPCs/signs, or even force certain region connections. Each of these options are going to be detailed separately as `item plando`, `boss plando`, `text plando`, and `connection plando`. Every game in archipelago supports item plando but the other plando options are only supported
connections. Each of these options are going to be detailed separately as `item plando`, `boss plando`, `text plando`,
and `connection plando`. Every game in archipelago supports item plando but the other plando options are only supported
by certain games. Currently, Minecraft and LTTP both support connection plando, but only LTTP supports text and boss plando. by certain games. Currently, Minecraft and LTTP both support connection plando, but only LTTP supports text and boss plando.
### Enabling Plando ### Enabling Plando
On the website plando will already be enabled. If you will be generating the game locally plando features must be enabled (opt-in). On the website plando will already be enabled. If you will be generating the game locally plando features must be enabled (opt-in).
* To opt-in go to the archipelago installation (default: `C:\ProgramData\Archipelago`), open the host.yaml with a text * To opt-in go to the archipelago installation (default: `C:\ProgramData\Archipelago`), open the host.yaml with a text editor and find the `plando_options` key. The available plando modules can be enabled by adding them after this such as `plando_options: bosses, items, texts, connections`.
editor and find the `plando_options` key. The available plando modules can be enabled by adding them after this such as
`plando_options: bosses, items, texts, connections`.
## Item Plando ## Item Plando
Item plando allows a player to place an item in a specific location or specific locations, place multiple items into Item plando allows a player to place an item in a specific location or specific locations, place multiple items into a list of specific locations both in their own game or in another player's game. **Note that there's a very good chance that
a list of specific locations both in their own game or in another player's game. **Note that there's a very good chance that
cross-game plando could very well be broken i.e. placing on of your items in someone else's world playing a different game.** cross-game plando could very well be broken i.e. placing on of your items in someone else's world playing a different game.**
* The options for item plando are `from_pool`, `world`, `percentage`, `force`, and either item and location, or items and locations. * The options for item plando are `from_pool`, `world`, `percentage`, `force`, and either item and location, or items and locations.
* `from_pool` determines if the item should be taken *from* the item pool or *added* to it. This can be true or false * `from_pool` determines if the item should be taken *from* the item pool or *added* to it. This can be true or false and defaults to true if omitted.
and defaults to true if omitted.
* `world` is the target world to place the item in. * `world` is the target world to place the item in.
* It gets ignored if only one world is generated. * It gets ignored if only one world is generated.
* Can be a number, name, true, false, or null. False is the default. * Can be a number, name, true, false, or null. False is the default.
@ -29,13 +24,11 @@ and defaults to true if omitted.
* If set to true it will be any player's world besides your own. * If set to true it will be any player's world besides your own.
* If set to false it will target your own world. * If set to false it will target your own world.
* If set to null it will target a random world in the multiworld. * If set to null it will target a random world in the multiworld.
* `force` determines whether the generator will fail if the item can't be placed in the location can be true, false, * `force` determines whether the generator will fail if the item can't be placed in the location can be true, false, or silent. Silent is the default.
or silent. Silent is the default.
* If set to true the item must be placed and the generator will throw an error if it is unable to do so. * If set to true the item must be placed and the generator will throw an error if it is unable to do so.
* If set to false the generator will log a warning if the placement can't be done but will still generate. * If set to false the generator will log a warning if the placement can't be done but will still generate.
* If set to silent and the placement fails it will be ignored entirely. * If set to silent and the placement fails it will be ignored entirely.
* `percentage` is the percentage chance for the relevant block to trigger. This can be any value from 0 to 100 and if * `percentage` is the percentage chance for the relevant block to trigger. This can be any value from 0 to 100 and if omitted will default to 100.
omitted will default to 100.
* Single Placement is when you use a plando block to place a single item at a single location. * Single Placement is when you use a plando block to place a single item at a single location.
* `item` is the item you would like to place and `location` is the location to place it. * `item` is the item you would like to place and `location` is the location to place it.
* Multi Placement uses a plando block to place multiple items in multiple locations until either list is exhausted. * Multi Placement uses a plando block to place multiple items in multiple locations until either list is exhausted.
@ -120,26 +113,19 @@ plando_items:
percentage: 80 percentage: 80
force: true force: true
``` ```
1. This block has a 50% chance to occur, and if it does will place either the Empire Orb or Radiant Orb on another player's 1. This block has a 50% chance to occur, and if it does will place either the Empire Orb or Radiant Orb on another player's Starter Chest 1 and removes the chosen item from the item pool.
Starter Chest 1 and removes the chosen item from the item pool. 2. This block will always trigger and will place the player's swords, bow, magic meter, strength upgrades, and hookshots in their own dungeon major item chests.
2. This block will always trigger and will place the player's swords, bow, magic meter, strength upgrades, and hookshots
in their own dungeon major item chests.
3. This block will always trigger and will lock boss relics on the bosses. 3. This block will always trigger and will lock boss relics on the bosses.
4. This block has an 80% chance of occuring and when it does will place all but 1 of the items randomly among the four 4. This block has an 80% chance of occuring and when it does will place all but 1 of the items randomly among the four locations chosen here.
locations chosen here.
## Boss Plando ## Boss Plando
As this is currently only supported by A Link to the Past instead of explaining here please refer to the As this is currently only supported by A Link to the Past instead of explaining here please refer to the [relevant guide](/tutorial/zelda3/plando/en)
[relevant guide](/tutorial/zelda3/plando/en)
## Text Plando ## Text Plando
As this is currently only supported by A Link to the Past instead of explaining here please refer to the As this is currently only supported by A Link to the Past instead of explaining here please refer to the [relevant guide](/tutorial/zelda3/plando/en)
[relevant guide](/tutorial/zelda3/plando/en)
## Connections Plando ## Connections Plando
This is currently only supported by Minecraft and A Link to the Past. As the way that these games interact with This is currently only supported by Minecraft and A Link to the Past. As the way that these games interact with their connections is different I will only explain the basics here while more specifics for Link to the Past connection plando can be found in its plando guide.
their connections is different I will only explain the basics here while more specifics for Link to the Past connection
plando can be found in its plando guide.
* The options for connections are `percentage`, `entrance`, `exit`, and `direction`. Each of these options support subweights. * The options for connections are `percentage`, `entrance`, `exit`, and `direction`. Each of these options support subweights.
* `percentage` is the percentage chance for this connection from 0 to 100 and defaults to 100. * `percentage` is the percentage chance for this connection from 0 to 100 and defaults to 100.
* Every connection has an `entrance` and an `exit`. These can be unlinked like in A Link to the Past insanity entrance shuffle. * Every connection has an `entrance` and an `exit`. These can be unlinked like in A Link to the Past insanity entrance shuffle.
@ -172,9 +158,5 @@ plando_connections:
direction: both direction: both
``` ```
1. These connections are decoupled so going into the lake hylia cave shop will take you to the inside of cave 45 and 1. These connections are decoupled so going into the lake hylia cave shop will take you to the inside of cave 45 and when you leave the interior you will exit to the cave 45 ledge. Going into the cave 45 entrance will then take you to the lake hylia cave shop. Walking into the entrance for the old man cave and Agahnim's Tower entrance will both take you to their locations as normal but leaving old man cave will exit at Agahnim's Tower.
when you leave the interior you will exit to the cave 45 ledge. Going into the cave 45 entrance will then take you to the 2. This will force a nether fortress and a village to be the overworld structures for your game. Note that for the Minecraft connection plando to work structure shuffle must be enabled.
lake hylia cave shop. Walking into the entrance for the old man cave and Agahnim's Tower entrance will both take you to
their locations as normal but leaving old man cave will exit at Agahnim's Tower.
2. This will force a nether fortress and a village to be the overworld structures for your game. Note that for the Minecraft
connection plando to work structure shuffle must be enabled.

View File

@ -2,20 +2,14 @@
This guide is intended to provide an overview of how to install, set up, and run the Archipelago multiworld software. This guide should take about 5 minutes to read. This guide is intended to provide an overview of how to install, set up, and run the Archipelago multiworld software. This guide should take about 5 minutes to read.
## Installing the Archipelago software ## Installing the Archipelago software
The most recent public release of Archipelago can be found [here](https://github.com/ArchipelagoMW/Archipelago/releases). The most recent public release of Archipelago can be found [here](https://github.com/ArchipelagoMW/Archipelago/releases). Run the exe file, and after accepting the license agreement you will be prompted on which components you would like to install.
Run the exe file, and after accepting the license agreement you will be prompted on which components you would like to install.
The generator allows you to generate multiworld games on your computer. The ROM setups are required if The generator allows you to generate multiworld games on your computer. The ROM setups are required if anyone in the game that you generate wants to play any of those games as they are needed to generate the relevant patch files.
anyone in the game that you generate wants to play any of those games as they are needed to generate the relevant patch
files.
The server will allow you to host the multiworld on your machine. Hosting on your machine requires forwarding the port you are hosting on. The The server will allow you to host the multiworld on your machine. Hosting on your machine requires forwarding the port you are hosting on. The default port for Archipelago is `38281`. If you are unsure how to do this there are plenty of other guides on the internet that will be more suited to your hardware.
default port for Archipelago is `38281`. If you are unsure how to do this there are plenty of other guides on the internet
that will be more suited to your hardware.
The `Clients` are what are used to connect your game to the multiworld. If the The `Clients` are what are used to connect your game to the multiworld. If the
game/games you plan to play are available here go ahead and install these as well. If the game you choose to play is game/games you plan to play are available here go ahead and install these as well. If the game you choose to play is supported by Archipelago but not listed in the installation check the setup guide for that game. Installing a client for a ROM based game requires you to have a legally obtained ROM for that game as well.
supported by Archipelago but not listed in the installation check the setup guide for that game. Installing a client for a ROM based game requires you to have a legally obtained ROM for that game as well.
## Generating a game ## Generating a game
@ -27,13 +21,9 @@ YAML is a format very similar to JSON however it is made to be more human-readab
### Creating a YAML ### Creating a YAML
YAML files may be generated on the Archipelago website by visiting the games page and clicking the "Settings Page" link under any game. Clicking "Export Settings" in a game's settings page will download the YAML to your system. Games page: https://archipelago.gg/games YAML files may be generated on the Archipelago website by visiting the games page and clicking the "Settings Page" link under any game. Clicking "Export Settings" in a game's settings page will download the YAML to your system. Games page: https://archipelago.gg/games
In a multiworld there must be one YAML per world. Any number of players can play on each world using either the game's In a multiworld there must be one YAML per world. Any number of players can play on each world using either the game's native coop system or using Archipelago's coop support. Each world will hold one slot in the multiworld and will have a slot name and, if the relevant game requires it, files to associate it with that multiworld.
native coop system or using Archipelago's coop support. Each world will hold one slot in the multiworld and will have a
slot name and, if the relevant game requires it, files to associate it with that multiworld.
If multiple people plan to If multiple people plan to play in one world cooperatively then they will only need one YAML for their coop world. If each player is planning on playing their own game then they will each need a YAML.
play in one world cooperatively then they will only need one YAML for their coop world. If each player is planning on
playing their own game then they will each need a YAML.
### Gather All Player YAMLs ### Gather All Player YAMLs
All players that wish to play in the generated multiworld must have a YAML file which contains the settings that they wish to play with. All players that wish to play in the generated multiworld must have a YAML file which contains the settings that they wish to play with.
@ -49,10 +39,6 @@ After filling the `Players` folder the `ArchipelagoGenerate.exe` program should
The `.AP` file may be run locally in order to host the multiworld on the local machine. This is done by running `ArchipelagoServer.exe` and pointing the resulting file selection prompt to the `.archipelago` file that was generated. The `.AP` file may be run locally in order to host the multiworld on the local machine. This is done by running `ArchipelagoServer.exe` and pointing the resulting file selection prompt to the `.archipelago` file that was generated.
#### Changing local host settings for generation #### Changing local host settings for generation
Sometimes there are various settings that you may want to change before rolling a seed such as enabling race mode, Sometimes there are various settings that you may want to change before rolling a seed such as enabling race mode, auto-forfeit, plando support, or setting a password.
auto-forfeit, plando support, or setting a password.
All of these settings plus other options are able to be changed by All of these settings plus other options are able to be changed by modifying the `host.yaml` file in the Archipelago installation folder. The settings chosen here are baked into the `.archipelago` file that gets output with the other files after generation so if rolling locally ensure this file is edited to your liking *before* rolling the seed.
modifying the `host.yaml` file in the Archipelago installation folder. The settings chosen here are baked into
the `.archipelago` file that gets output with the other files after generation so if rolling locally ensure this file is edited
to your liking *before* rolling the seed.

View File

@ -1,18 +1,12 @@
# Archipelago Triggers Guide # Archipelago Triggers Guide
## What are triggers? ## What are triggers?
Triggers allow you to customize your game settings by allowing you to define certain options or even a variety of Triggers allow you to customize your game settings by allowing you to define certain options or even a variety of settings to occur or "trigger" under certain conditions. These are essentially "if, then statements" for options in your game. A good example of what you can do with triggers is the custom [mercenary mode](https://github.com/alwaysintreble/Archipelago-yaml-dump/blob/main/Snippets/Mercenary%20Mode%20Snippet.yaml) that was created using entirely triggers and plando. For more information on plando you can reference [this guide](/tutorial/archipelago/plando/en) or [this guide](/tutorial/zelda3/plando/en).
settings to occur or "trigger" under certain conditions. These are essentially "if, then statements" for options in your game.
A good example of what you can do with triggers is the custom
[mercenary mode](https://github.com/alwaysintreble/Archipelago-yaml-dump/blob/main/Snippets/Mercenary%20Mode%20Snippet.yaml)
that was created using entirely triggers and plando. For more information on plando you can reference
[this guide](/tutorial/archipelago/plando/en) or [this guide](/tutorial/zelda3/plando/en).
## Trigger use ## Trigger use
Triggers have to be defined in the root of the yaml file meaning it must be outside of a game section. Triggers have to be defined in the root of the yaml file meaning it must be outside of a game section.
The best place to do this is the bottom of the yaml. The best place to do this is the bottom of the yaml.
- Triggers comprise of the trigger section and then each trigger must have an `option_category`, `option_name`, and - Triggers comprise of the trigger section and then each trigger must have an `option_category`, `option_name`, and `option_result` from which it will react to and then an `options` section where the definition of what will happen.
`option_result` from which it will react to and then an `options` section where the definition of what will happen.
- `option_category` is the defining section from which the option is defined in. - `option_category` is the defining section from which the option is defined in.
- Example: `A Link to the Past` - Example: `A Link to the Past`
- This is the root category the option is located in. If the option you're triggering off of is in root then you - This is the root category the option is located in. If the option you're triggering off of is in root then you
@ -22,10 +16,8 @@ would use `null`, otherwise this is the game for which you want this option trig
- This can be any option from any category defined in the yaml file in either root or a game section except for `game`. - This can be any option from any category defined in the yaml file in either root or a game section except for `game`.
- `option_result` is the result of this option setting from which you would like to react. - `option_result` is the result of this option setting from which you would like to react.
- Example: `15` - Example: `15`
- Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple - Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple results you would need multiple triggers for this.
results you would need multiple triggers for this. - `options` is where you define what will happen when this is detected. This can be something as simple as ensuring another option also gets selected or placing an item in a certain location.
- `options` is where you define what will happen when this is detected. This can be something as simple as ensuring
another option also gets selected or placing an item in a certain location.
- Example: - Example:
```yaml ```yaml
A Link to the Past: A Link to the Past:
@ -53,8 +45,7 @@ The above examples all together will end up looking like this:
Rupees(300): 2 Rupees(300): 2
``` ```
For this example if the generator happens to roll 15 shuffled in shop item slots for your game you'll be granted 600 rupees at the beginning. For this example if the generator happens to roll 15 shuffled in shop item slots for your game you'll be granted 600 rupees at the beginning. These can also be used to change other options.
These can also be used to change other options.
For example: For example:
```yaml ```yaml