Multiplayer: Gameplay modes

Started by geoo, September 11, 2016, 08:32:32 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

geoo

In the past, a variety of gameplay mode ideas have come up for multiplayer, and Simon recently brought up the issue again now that the coding for multiplayer in D Lix commences.

In this post I'll try to list and discuss most feature ideas that have popped up in the past. The main considerations are how much complexity they'd add to the game (and the UI), and how much gameplay value they add.


Survival mode. There there are no exits, and it times the death of your last lix. The objective is to outlive all opponents. I think this always boils down to the same gameplay at the end, a 1 vs 1 fight/dexterity fest, possibly with some strategies such as bunkering. Clones had it and it was called Quantum Quarrel, and I think it didn't see much use (and wasn't particularly fun).
I don't think it warrants a special game mode as it will probably not spark many new level ideas. And it's possible to kinda make it work anyway as in "Last Man Standing".

NaOH's Ark-like mode. You play an asymmetric level twice, with the player positions swapped. Whoever saves more cumulatively wins.
I think this can be done by consensus and doesn't warrant a special game mode, especially if it's possible to pre-assign hatches to colors in the lobby.

Race mode. The game times your first save, or maybe your n-th save. The objective is to be fastest. There are two questions here.
(1) How interesting is "first to save n wins" where n > 1. My hunch is that it'd only particularly be used in levels with little interaction, where the goal is to be the fasted to solve the level (basically each player plays a singleplayer level at the same time).
(2) Are we also interested in 2nd, 3rd, ... place and their times?
If the answer is yes to both questions, a game mode where in the final standing players are listed with their time might be warranted. If the answer is no, and only first to the finish is of interest level-design wise, then just having a nuke that finishes the game instantly if you've saved at least one lix and the overtime is set to 0:00 seems simpler and would just do the job.

Neutrals. A post above mentions the capture-the-clone mode from clones. There is one or a few designated clones that nobody controls, and you win if you get one of them. I'd propose the following generalization which I believe has a lot of gameplay potential: Neutral lixes. They could be pre-placed in the level, or come out of neutral hatches. Nobody can control them, they just wander around. One caveat is that all neutral hatches should release lixes simultaneously rather than sequentially, to be able to achieve perfect symmetry in 2P levels. These could even be an interesting addition to singleplayer. Either way, they could be a game-mode flag "only neutral lixes count", or this counting could be implicit whenever neutral lixes are present. I don't consider the latter simplifying gameplay though, as the player would still have to check which mode is in effect; a flag instead would also allow to have everyone count which I believe (but I'm not as convinced) is also interesting. Note that with an instant nuke (see below) this also implements the capture the clone mode.

Nuke modes. I think a lot of options have been floating around here. Cuber nuke, burner nuke, stunner nuke... Note that the idea is always that nuke triggers overtime if at least 1 lix has been saved by the player. Let me discuss 4 of the nuke ideas here:

  • Regular nuke: It's a bit disruptive, and you can badly mess up other players' routes. While this could be a strategic element, a lot of the effect is quite random. Maybe we just like it because we're used it, and it's gimmicky because "fun! flinging!".
  • Cuber nuke: Just as gimmicky but not as cool. Don't see much use in it.
  • Burner nuke: Player can set a timer for the game to end, but without disrupting the game. Other players can still finish their routes and nuking with the hope of messing up the other players' paths doesn't work anymore.
  • Concede: Trigger overtime, but your lix keep walking around, you just can't control them anymore. You'll think twice here if you nuke, and also you can't bail-out nuke when your bunch is walking towards someone else's exit. You can even nuke before your lix have entered your exit if you think they are safely walking into it. Could be implemented by turning the lix into neutrals. But at the same time they shouldn't be neutrals for counting purposes in the "only neutrals count" mode.
I think at most two different nuke modes should be implemented, and the last one is my clear favorite here. It could be visualized with white flags on the nuke button instead of the explosion. (Though that might be associated with losing the game, so maybe checkered flags for finishing the game?) I think I almost prefer the burner nuke over the regular one, but it's closer to the concede option while the regular nuke is the polar opposite, and has fun flinging. So I'd propose concede in addition to the nuke that we already have. Concede with overtime of 0:00 could also immediately end the game, thus indirectly implementing the first to the finish mode.
In particular, I feel that 0:00 in the editor being infinite over time is an artefact, and the editor should offer infinity as a time option (now that the cool infinity symbol is in).


In summary, personally I'd propose the following game-mode additions:

  • Concede in addition to regular nuke
  • Neutral lixes, and "only neutrals count" mode
I think this is a rather lean addition without too much extra complexity, but a lot of gameplay potential.

Simon

Thanks, lovely writeup.

Neutrals: Save-the-star-clone was the most exciting mode in Clones. We should learn from that. Neutrals should be great.

Attack & defense: With handicap options that force spawn positions, we can simulate NaOH's ark, a.k.a. attack and defense, over two rounds. I'm willing to add minimal support still: After a game, we could display both the game's results, and the previous game's results.

Concede: Downward Reduction needs this. I'm sure there are other maps for this, too.

Race mode: Overtime == 0 should behave differently in D Lix than in C++, where it meant unlimited overtime. Overtime == 0 can kick in automatically when it's to any player's advantage, no need to nuke. The game terminates instantly. This means that overtime == 0 is a race, either to first lix saved, or to first neutral saved.

From this viewpoint, we can define four goals:

  • Save many lix: No neutrals, nuke or concede, overtime > 0.
  • Save neutrals: Yes neutrals, nuke or concede, overtime > 0.
  • First lix wins: No neutrals, overtime == 0.
  • First neutral wins: Yes neutrals, overtime == 0.
The type of nuke is secondary. Even though we introduce a nuke variant, from the viewpoint of game objectives, nuke and concede don't introduce new objectives. The 2x2 objectives come from neutral lixes and overtime == 0 or > 0. We must clearly announce the goal to the players in the lobby or at game start.

Because overtime == 0 has the special meaning of race mode, and type of nuke is a secondary concern after the game objective, maybe overtime == 0 should produce equal results on nuke and concede?

-- Simon

GigaLem

If i could suggest anything, because i welcome this idea
How about?
Point Capture - You take a point by having enough lix pass by it, when you do that the point is now in your color, if you capture all points or have the more points captured before time is called, you are the winner

Infection - If zombie like were to be a thing, this mode should be it, one player's team is randomly selected to be a zombie team, your goal is to infect all lix before they reach thier exits, the zombie team must prevent them from reaching the save requirement

Simon

QuotePoint Capture - You take a point by having enough lix pass by it, when you do that the point is now in your color, if you capture all points or have the more points captured before time is called, you are the winner

Will keep this in mind -- having several important locations on the map, that's interesting. Can you get a similar effect with neutral hatches already? If you don't pay attention to a neutral hatch, you don't get its lixes.

QuoteInfection - If zombie like were to be a thing, this mode should be it, one player's team is randomly selected to be a zombie team, your goal is to infect all lix before they reach thier exits, the zombie team must prevent them from reaching the save requirement

No. This introduces too many extra rules to multiplayer.

-- Simon

Simon

#4
I discussed this with geoo in mumble. Here's our nuke spec as of 2016-09-13. But they're too complicated and already out of date. See next posts instead.

Outdated nuke spec from 2016-09-13

Rule. (Nuke)
    Nukes are special game events. Some nukes are triggered by players.
    Each player may nuke at most once per game.

Remark.
    There are 3 different types of nuke: Exploder-nuke, concede, and
    end-of-overtime-nuke.  The level decides whether the player nuke
    triggers an exploder-nuke or a concede. The player-triggered nuke comes
    into effect immediately. This can trigger overtime, see overtime.

    Player input is always made between updates n and n+1, and affects update
    n+1. The command to nuke carries information to execute at the beginning
    of update n+1, and the nuke will be in full effect during update n+1:
    A lix may explode, lixes may be unassignable, or unable to enter exits,
    depending on the type of nuke.

Rule. (Exploder-nuke)
    Exploder-nuke may be triggered by the player iff the level allows it.

    The player's number of lix in hatch is set to zero.
    The player's lix explode in spawn order, one lix per physics update.

Remark.
    In general, exits remain open after exploder-nuke, and the player
    remains in control of his lix and may assign skills.

    When the level is set to zero overtime, and the player has saved at
    least one lix, exploder-nuke immediately triggers the end-of-overtime-nuke.
    End-of-overtime-nuke closes the exits. See end-of-overtime-nuke.

Rule. (Concede)
    Concede may be triggered by the player iff the level doesn't allow
    exploder-nuke.

    The player loses control of his lix, i.e., he may not assign any more
    skills. Since skill assignments and nuking are the only methods of
    interaction, and the player has already nuked, this is equivalent to
    setting the player's skills to zero.

Remark.
    In general, exits remain open after concede, lix may continue to spawn
    from the player's hatches, and the player's lix do not explode.
    These will only happen later, when end-of-overtime-nuke kicks in. This
    may be immediately if overtime is zero -- in this case, exits close
    and lix explode immedeately after conceding.

Rule. (Overtime)
    Overtime may be zero, or greater than zero. Overtime starts running if
    there exists a player that satisfies all of these conditions:

    *   The player has saved at least one lix.
    *   The player can't possibly have an effect on the game anymore.
        This may be because he has nuked, and the exploder-nuke
        has killed all his lix, or his concession has removed his control.

Remark.
    Overtime may be zero from the get-go. In this case, whatever triggers
    overtime always triggers the end-of-overtime nuke, because the
    conditions for end-of-overtime are weaker then.

Definition. (End-of-overtime-nuke)
    End-of-overtime-nuke is not triggered by the player, but happens
    automatically to all players if all of these conditions are met:

    *   At least one player has saved at least one lix.
    *   The remaining overtime is zero. This may be because overtime
        has begun earlier and therefore is now used up, or because the
        level has been set to zero overtime.

    At this time, end-of-overtime nuke kicks in. All players' lix in hatch
    are set to zero. All players' lixes explode in spawn order, one from
    each player per physics update. All players lose control of their lix.
    All exits close. It's not possible to save after

Remark.
    Here's a summary of all three nuke types.

                         | Exploder-nuke | Concede      | End-of-overtime-nuke
    ---------------------|----------------------------------------------------
    Triggered by whom?   | player        | player       | end of overtime
    Lix in hatch := 0?   | zero in hatch | no           | zero in hatch
    Lix explode?         | lix explode   | no           | lix explode
    Lose control of lix? | no            | lose control | lose control
    Exits close?         | no            | no           | exits close


Remark.
    Each level must be set either to exploder-nuke or to concede.
    When overtime is set to zero, the level's choice of nuke still matters,
    because players may nuke before any player has saved anything.

Remark.
    For a racing mode, set the overtime to zero. The instant any player
    has saved at least one lix, end-of-overtime-nuke kicks in: No further
    saves are possible, and all lixes explode.

Hunch
    Argh, this is way too complicated. :-/ Where can we simplify?
    Maybe remove exploder-nuke, and keep only concede?
    The nuke button would express a desire to nuke all players,
    the overtime overtime would become a nuke delay.

-- Simon

mobius

I like ideas to deal with the ending. I remember sometimes getting bored while waiting for the timer to run out after a nuke or whatever.

IMO I found 'regular' save as many lixes mode to be pretty complicated from the start.

Although I don't believe I've ever observed this being a problem; perhaps all levels (or some game modes) should have a time limit to prevent the game from running too long. This could lead to an all zero score and like I said; I've never seen a game run on too long but that's a subjective thing.

Some other ideas:

Most ideas that I have are admittedly a bit different, namely they rely on lixes either not dying or re-spawning upon death.

I like GigaLem's point capture idea, I had a similar one. (I'm basically getting these ideas from Team Fortress 2)

Capture the Flag:
for two players or teams, no exits.

Each team has a flag at a location that is there "home". Goal is to capture the oponent's flag and bring it to your own home to win. Flag is picked up like an item. Lix carring a flag should be marked somehow, a lix that dies while carrying a flag; flag is transported back to owner's home.

Push Cart
for two players or teams, no exits.

One team's goal is to push a cart on a track through the course (by simply walking near it) Cart moves at speed of lixes. Push it to the end into a "goal area" wins.
The other team's goal is to stop them. They cannot effect the cart, but can bat away/kill off the opposing team. If the cart is alone for several seconds it begins to roll back slowly.
This game is timed, if time runs out before cart reaches goal; opposing team wins.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


Simon

#6
Nuke vs. concede: I would like to have only one of these. I want concede, but market it as a delayed nuke. When you nuke, you order a nuke strike against all players, this starts overtime. Calling in the nuke is expensive, you forfeit control, everybody else retains control. When overtime reaches zero, exits close, and everybody explodes.

The game orders the delayed nuke automatically when it can't possibly be a disadvantage for a player: When you won the race because overtime was zero from the beginning, or when you don't have any more lix.

I would like to keep the rule that you must have saved at least one lix before your nuke order is heard. Maybe with the exception if everybody wants to nuke, to counter deadlocks.

Are there any levels that rely on the C++ multiplayer nuke -- where only your lixes explode instantly, and everybody else nukes after overtime?

Second time limit that counts from the beginning: Let's see if we need this in the first place. I don't think we need it.

Capture the flag: Try this with neutrals first, with only a few neutrals in the level. If you can't get that to work like you want, tell me.

Push cart: Sounds too far away from the core principle. Lix can't affect the world merely by existing somewhere in particular.

-- Simon

Simon

#7
High-level report 9 months after previous post. I have multiplayer in D Lix, but no overtime yet.

Nuke/concede: I want to implement exactly what I wrote in the previous post.

Summary of previous post: Instead of nuking your own tribe immediately, the nuke button forfeits control and starts overtime. At end of overtime, exits close and everybody nukes. If the level gives zero overtime, saving a lix triggers the nuke. You can't start overtime while your score is zero; only if all players agree to start overtime with everybody's score at zero, overtime starts.

Neutrals: I'm considering to add neutral lixes both to singleplayer and multiplayer.

Have another type of hatch that spawns neutrals. All neutral-spawning hatches produce at the same time, not round-robin. With at least one neutral hatch, player lixes don't score, only neutrals are worth any points.

Have a different-looking exit for neutrals?

When only neutrals score, should player lixes enter exits still? No, because that's confusing? Or yes, because otherwise it's too easy to camp at the opponent's exit? Maybe implement "no" and playtest. :lix-grin:

-- Simon

Ryemanni

I like the idea of a mode where you have to save the neutral lix! I can already imagine the tactics one could use to hog all of them. :lix-tongue:

I feel like the player's lixes should enter the neutral exit.

Simon

Quote from: Raymanni on June 13, 2017, 02:48:02 PM
I feel like the player's lixes should enter the neutral exit.

Yeah, I feel that every lix should enter every exit. I wouldn't make a neutral exit, but rather have players' exits eat players' lixes and neutral lixes. Game modes should differ as little as possible. Ideally, a match without neutral lixes is a special case of a match with neutral lixes. That leads to this idea:

(A) The winner is the player who has saved most neutral lixes. When several players have saved the same number of neutrals, these players compare by number of players' lixes saved.

The downside of (A) is: In a match with 0 overtime, with neturals, saving a player lix puts you ahead, ending the game. To fix that, I hope the following special casing is OK:

(B) If there are neutral lixes, only neutral lixes count. Otherwise, only player lixes count.

With (B), player lixes entering player exits don't score at all. Maybe they should play the wrong-exit sound, or no sound at all, or the good-exit sound more quietly. They shouldn't play the good-exit sound loudly like in normal play. The loud good-exit sound would be reserved for saving neutrals.

-- Simon

-- Simon

Simon

#10
I've released Lix 0.8.0 stable. Overtime is implemented as described:

Quote from: Simon on September 17, 2016, 11:13:07 AM
When you nuke, you order a nuke strike against all players, this starts overtime. Nuking is expensive, you forfeit control, everybody else retains control. When overtime reaches zero, exits close, and everybody explodes.

I haven't implemented neutral lixes yet. The idea is great, but it needs a lot of planning. The file format must understand neutral hatches or player-assigned hatches.

Handicap: I have a first draft in my mind. Your handicap is a number > 0 and ≤ 1, equivalently > 0 % and ≤ 100 %, configurable before each game in the networking lobby. Your number of initial lix, and the available number of uses per skill, are multiplied at the start of the game with your handicap. Fractions will always be rounded up. Smaller numbers make the game harder for you. The standard setting is 100 % for everybody.

I like restricting the strong player far more than giving bonuses to the weak player. A strong player with 50 lix can beat a novice with 500, but a strong player with 5 lix must play enourmously well to beat a novice with 50 on a map with batters.

Starting positions in the map should be sorted by handicap. Only among palyers with equal handicap, starting positions are shuffled. This allows unbalanced maps.

See also:
github issue #391: Handicaps in Multiplayer.
2022 LF thread: Handicaps in Multiplayer

-- Simon

Forestidia86

Since this came up recently, but the possibility to set handicaps would be a good feature for multiplayer. It could enable a meaningful game between beginners and experts and could lead to interesting challenges.