PHost - Alliances
If two players want to co-operate in a game they need to share information and to co-ordinate their actions so that their ships and planets work with each other. PHost implements several features to support co-operative play.
PHost supports formal alliances between players by modifying its behavior as necessary in order to enable the allies to easily co-operate. Thus, allies can fly through each other's minefields (without matching friendly codes), allies can avoid fighting each other in combat (without matching friendly codes), allies can see each other's ships, and so on. Moreover, each of these alliance features can be tailored for each alliance so that different levels of trust and co-operation can be established. Team games especially benefit from PHost's implementation of alliances.
PHost also offers a number of features for players to co-operate without explicitly forming an alliance.
Forming an alliance is a two-step process in PHost:
You can perform both steps at once. You can offer privileges without waiting for your partner to confirm it. If you do that, your partner will see what you offer, and will benefit from it as soon as he offers back.
Alliance levels can be offered conditional or unconditional. If you offer an alliance conditionally, the ally can only use it when he also offers you the same level back, conditional or unconditional. If you offer it unconditionally, he can benefit from it even if he doesn't offer back. Once it has been determined that an alliance level is effective, there is no longer difference between a conditional and an unconditional offer. A bidirectional conditional ship-level alliance is perfectly identical to a bidirectional unconditional ship-level alliance.
Depending on the DelayAllianceCommands option, alliances take effect at the beginning or end of the host run. Normally, alliance changes take effect immediately. If you decide to drop an alliance and invade your ex-ally's territory, you can do that. With DelayAllianceCommands=Yes, alliance commands are processed at the end of the turn. Your ex-ally will have one turn to react on your withdrawal of the alliance.
You form an alliance by sending an allies add command. For example, to offer an alliance to the Privateers (player 5), write a message to yourself with this command:
To confirm the alliance, the Privateers must send the same command, with your race number. If you are Birds (player 3), he has to write
To revoke an alliance, or take back an offer, you send an allies drop command:
To offer or revoke privileges, you use the allies config command, like this:
The number is again the ally's player number. The following parameters specify the levels to offer:
The privilege codes can abbreviated up to their first letter, as has been shown in the example command. The example command would offer mine level unconditionally, combat conditionally, and not offer ship level.
The alliance levels are described in detail below.
Let's assume you have started a new game as Birds, and want to offer an alliance to the Privateers. You could send the following commands (the same as above):
The first command would offer the alliance, the second one defines that you want to offer mine level (unconditionally) and combat level (conditionally).
PHost would confirm that by sending you the following alliance status report:
The alliance is now in status offered until the Privateers offer it back. Until they do that, they cannot use your friendly mine level offer. As you see, the default value for alliance levels is "not offered" ("-").
The Privateers will be notified by your offer, they receive the following message:
They could now send the following commands:
This would complete the alliance. Your alliance report would now look like this:
Since you have offered +m to the Privateers, they'll be immune to your minefields. Since they have not offered mine level in return, their minefields still are a danger to you.
You have offered ~c, and they have offered ~c, too. Your ships will no longer attack each other. The Privateers could also have offered that level unconditionally, +c, so they would not have attacked you even if you drop your ~c. If they had not offered you combat level at all (-c), your ships would still fight Privateers.
The DOS Planets client (planets.exe), shareware Winplan, and their unpack tools have a limit of 50 scanned foreign ships each turn. Even if you see many more ships by means of an alliance, PHost will suppress the excess ships, and send them via util.dat. See also the relevant FAQ entry.
If you use third-party software only, you can use the bigtargets command to turn off this limitation. However, most current third-party software does not need that (VPA, EchoView and PCC can read ships from either place, other programs most likely can do that, too).
Registered Winplan users will always see all targets. When PHost detects a registered Winplan client, it will encode the "excess" targets in a format Winplan can read.
There is no configuration option to disable alliances in PHost. Alliances are always allowed. However, there is an option to control players' access to the alliance configuration commands: CPEnableAllies. If that switch is off, players cannot form or break alliances.
If you wish to configure a game without alliances, you would disable CPEnableAllies, and then create a universe where no players are allied. This is the default in major universe creation programs.
Disabling CPEnableAllies also allows to configure games with fixed, predefined teams: create your universe as usual, and then set up the team alliances. Players will not be able to break these alliances. See Executing Commands from the Host-Side for an example.
Alliances always involve two race. The following paragraphs have been written with you meaning the player who offers an alliance, and them the race who receives the offer.
An alliance is formed when you and they both have offered it (allies add command). Even when no privileges (levels) have been offered yet, this has the following effects:
These rules are intended to prevent people from teaming up to generate build points by "trading" ships or planets back and forth.
Some configuration restrictions also depend on the presence of an alliance. For example, with CPEnableGive set to Allies, players can only give ships and planets to their allies.
When you offer ship level, they will have the following benefits:
When you offer planet level, they will have the following benefits:
When you offer minefield level, they will have the following benefits:
When you offer combat level, they will have the following benefits:
When you offer vision level, they will have the following benefits:
Note that, as usual, there is no double-forwarding. Messages you receive from someone are not automatically forwarded to your vision allies.
HOST 3.22.007 implements a different alliance system ("locking alliance friendly codes"). PHost does not implement this system, because PHost's system is older and we believe it's more flexible.
When you offer an alliance to another player in HOST, this has the following effects:
HOST 3.22.036 adds a second level of alliance, named "FF allies". When you offer this level, they will get all the above benefits, plus they will see all the ships you see. This roughly equals offering the Vision Level in PHost. There is no equivalent to PHost's Ship Level in HOST.
Sometimes, you want to work together with someone without making a formal alliance. The VGA Planets game has offered quite a number of ways to achieve that, and PHost supports and improves these.
Friendly Code Matching: When two objects have the same friendly code, they behave (roughly) as if they were allied. See Friendly Code Matching for details. The Universal Minefield Friendly Code helps you to coordinate movement of a large allied fleet through your minefields.
Giving away things: You can transfer cargo to foreign ships and planets. Some such cargo transfers can be done directly, some need a mission (Beam down credits, Transfer torpedoes, Transfer fighters, Transfer money) or friendly codes (bdm, btX, bum). You can give away ships using the gsX friendly code or the give command, the command also works for planets. More details can be found in the respective descriptions.
Sharing Information: No-one prevents you from telling others where your weak spots are (unless AllowPlayerMessages is off, of course). Some client programs include functions to transmit data to other players in a way that the receiver sees the information in his starchart.
If you send someone else your Result file, so he can see everything you see, you should probably better make a formal alliance.
There's nothing immoral in this sort of information sharing. However, PHost will not know about it. If your friend attempts to intercept one of your cloaked ships, for example, PHost will reject his Turn for intercepting a ship he doesn't see. If you have offered him ship level, PHost will know that they see your ships, and this problem does not occur.
Even if you have a full alliance, sending the Result file is not superfluous. It will contain even more information than PHost-generated alliance data.
Last updated 31 May 2015.
|firstname.lastname@example.org for support, ideas, bug reports, questions. Contact DetailsMail