Stefan Lopuszanski's idea for cards that allies play face down do their commitment to the alliance can be kept secret until everyone has responded has been extremely entertaining to play with.
I created a set of cards that don't require specific colors. Every player invited to ally must play a card (even if they do not intend to ally, they must play a card with zero ships). I've also included a zero card for offense as well as defense, in case players want to indicate the side they are ally with, while keeping the amount of ships secret.
Cards have "Ally with", either "Offense" or "Defense" and from 0-4 ships.
Some additional variants:
* We sometimes do not reveal the alliance cards until the encounter cards are revealed. This creates some tension for the main players, since they do not know how many ships are on each side.
I added a Special Destiny card to my set that requires players to keep their Alliance cards secret until the reveal stage.
* The latest variant involves dealing out 1 Alliance card at random to each player at the start of the game. Each encounter, the Offensive player draws an additional Alliance card for each potential ally. During the alliance phase, the Offensive player must hand an Alliance card to each potential ally before inviting allies.
Players may only ally if invited, and they may only commit per the card they play. Each player has limited options early in the game. To make matters even more interesting, invitations are open ended. That is, the offensive and defensive players can invite any player they like, but the invitation is open to either side. So if Red is the offensive player, and invites Yellow to ally. Yellow can ally with either side (per whatever his or her Alliance card allows).
This gives the offensive player a slight advantage, since he or she knows what cards have been added to the mix, but there's always at least one card that is unknown.
Sometimes this variant calls for turning in and redealing all Alliance cards after each turn, to really shake things up.