[PHost Logo]

Alliances
The Portable Host
Version 4.1a

Index

Introduction

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.

Back to top


Formal Alliances

Alliance Mechanics

Alliances are controlled using the allies command processor command.

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.

Forming an Alliance

You form an alliance by sending an allies add command, like this:

allies add 5

This will offer the Privateers (player 5) an alliance. To confirm the alliance, the Privateers must have to send the same command, with your race number. If you are Birds (player 3), he has to write

allies add 3

To revoke an alliance, or take back an offer, you send an allies drop command:

allies drop 5

Offering Privileges

To offer or revoke privileges, you use the allies config command, like this:

allies config 5 +m ~c -s

The number is again the ally's player number. The following parameters specify the levels to offer:

Parameter Action
+priv Offer privilege unconditionally
~priv Offer privilege conditionally
-priv Withdraw privilege
+/-ships Offer/withdraw ship level
+/-planets Offer/withdraw planet level
+/-mines Offer/withdraw mine level
+/-combat Offer/withdraw combat level
+/-vision Offer/withdraw vision level

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.

Examples

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):

allies add 5
allies config 5 +m ~c -s

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:

(-h0000)<<< Alliance Status Report >>>

Race  Offered to Race  Allowed by Race
----  ---------------  ---------------
  5   -s -p +m ~c -v

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:

(-h0000)<<< Alliance Status Report >>>

Race  Offered to Race  Allowed by Race
----  ---------------  ---------------
  3                    -s -p +m ~c -v

They could now send the following commands:

allies add 3
allies config 3 ~c

This would complete the alliance. Your alliance report would now look like this:

(-h0000)<<< Alliance Status Report >>>

Race  Offered to Race  Allowed by Race
----  ---------------  ---------------
  5   -s -p +m ~c -v   -s -p -m ~c -v

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.

Inevitable Technical Notes

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[Remote], EchoView[Remote] and PCC[Remote] 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.

Alliance Benefits

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.

Presence of Alliance

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 alies.

Ship Level Benefits

When you offer ship level, they will have the following benefits:

Planet Level Benefits

When you offer planet level, they will have the following benefits:

Minefield Level Benefits

When you offer minefield level, they will have the following benefits:

Combat Level Benefits

When you offer combat level, they will have the following benefits:

Vision Level 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.

Comparison to HOST

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 one player ("Alice") offers an alliance to another one ("Bob") in HOST, this has the following effects:

This is approximately the same as offering Mine Level, Combat Level and Planet Level in PHost.

HOST 3.22.036 adds a second level of alliance, named "FF allies". When Alice offers this level to Bob, Bob will get all the above benefits, plus he will see all the ship Alice sees. This roughly equals offering the Vision Level in PHost. There is no equivalent to PHost's Ship Level in HOST.

Back to top


Informal Alliances

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.

On RST Sharing

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 ships, for example, PHost will reject his Turn for intercepting a ship he doesn't see. If you have offered him ship level, 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.

Back to top


This document is maintained by The Portable Host Project[Remote] (support@phost.de).

Last updated 15 July 2007.