IntelAgent is a stealth game with asymmetrical cooperative play. There are two player roles (classes) each with almost entirely different mechanics. Because the roles operate in semi-separated game worlds, we have to put care into designing mechanics that actually have noticeable (and satisfying) impact between the players. Obviously, without such mechanics this wouldn’t be a co-op game. It would just be two players playing single player stealth games with voice chat.
In an asymmetrical game, I feel like it may be a bit more difficult to make the co-op mechanics enjoyable for the player executing them. This is somewhat true for any co-op game, but I think there is added difficulty in conveying to each player the significance of that player’s actions when the result of the mechanic in question is that something that happens in another world that doesn’t directly affect the acting player. In other words, is this a gameplay-Schroedinger’s cat? With no way to know whether we’re having fun or not? Ok, that analogy doesn’t really make sense, but it pleases me regardless.
But, thinking about it further, this aspect of design is actually required in many singleplayer games: the player may act on one system, which in-turn interacts with another intermediary system, before a third system finally acts back on the player. For example, in the seminal Far Cry 2, a player might find herself cornered on a cliff side by heavily armoured enemies. If all she has is a single flare, she cannot hope to take them on in a straight fight. However, the cliff side is covered in dry grass, and knowing about the fire propagation system in the game, the player could plan to set the grass ablaze, and escape in the ensuing confusion and noise. She may run through the smoke and see the enemy’s vehicle ahead. Unfortunately, the fire may propagate to around the vehicle just as the player enters it, setting it ablaze and forcing her to immediately ditch it, and scramble away on foot as it explodes behind.
On the other hand, upon attempting this, the player may find that the flare gun simply jams and wont fire. This is a game system pushing directly back on the player. This leaves her with very few options. She may think quickly and jump off the cliff, taking damage, but escaping with her life–and a good player story.
In this example, the player has interacted with a simple intermediary system in order to (try and) see her desired outcome. In the first timeline, that very system come back and bite her in an somewhat farcical way. In the second timeline, the player had an uninvited system push back on her of it’s own accord. Both of these scenarios lead to interesting outcomes for the player that they will likely learn from or at least laugh about. Much deeper orders of internal interaction can often be found in management simulation games like Dwarf Fortress and The Sims.
In co-op games, the intermediary system may be other players of different roles / classes. You do things that benefit them, so they can continue to do things that benefit you. This perhaps still doesn’t fully answer the question of how we can motivate the individual players to actually engage with the cooperative mechanics. I think a part of the answer is a fundamental to most video game mechanics: making it feel pleasing to manipulate the mechanics, via the controls, sounds and visuals associated immediately with the player actions. On top of that we can do things like giving the acting player a partial view on the other world, where they can see the meaningful effects of their actions: this can provide a more immediate “fun” moment to the acting player (like a toy), before the more concrete feedback from the intermediary system (the other player) gets back to them.
So in the end, it seems to me that the way you make asymmetrical cooperative mechanics interesting and enjoyable (“fun” is a vague term, but feel free to apply it) is the same way you design a good single player game with system’s depth.