First place is absolutely certain: Alert or Terminate

Started by Simon, August 22, 2024, 08:13:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Edit Simon: Split off topic: Some ideas.

DanielOakfield wrote:

Visual alert on a match when one of the players has mathematically won, i.e. when the total number of lix still out is not large enough to make win whoever is losing (Team A 100 in, Team B 50 in, and only 49 total lix still out), sometimes we keep playing because we are too focused without realizing the match is actually finished. Maybe it's a matter of changing the color of the winner to green.

Flopsy then wrote:

While it seems like a great idea in games with more than 2 players, I think largely enough we only resign on a map in 2 player mode where it is clear there is not enough Lixes left on the map to overtake the leading team.
I think this feature probably never existed because a lot of the current community are very advanced in Mathematics and we usually know when we are beat and don't need the Lix engine to tell us we are beat.
Usually when we play maps with more than 2 players, we play the map to the end regardless of whether it is clear someone has won. We only leave the match early if someone has disconnected and the overtime timer is too long to wait for the nuke to trigger.


-- Simon

Simon

The usual problem is: We're playing with 6 teams, each a single player, and only 4 or 5 of the teams nuke. The remaining few teams have no stake, but play on.

First hunch: Whenever an un-nuked team cannot improve its place anymore even by saving/stealing all remaining lix from all teams, Lix forces that team to nuke. Downside: This will surprise-cancel 1v1 when both players would like to play it out. Maybe apply this new rule ("Whenever an un-nuked team cannot improve ... Lix forces that team to nuke.") only after at least one team has nuked?

Related: Github #408: Nuke by Majority Vote, which wants the majority of players on the same team to nuke.

-- Simon

Simon

On top of all this, the nuke is already too complicated.

The exact rules in 0.9 and 0.10 are: A team induces the global overtime to start running iff {{ that team has at least one point } and {{ one of the team's players has nuked by doubleclicking/double-hotkeying the nukebutton } or { that team has run out of lix }}. Global overtime runs iff at least one team has induced it to run. Lix start to explode once global overtime has run out, or if { all teams have pressed nuke or have no lix left }.

In short:
Iff exists T such that Score(T) and { Nuke(T) or Done(T) }, then Overtime.
Iff Overtime expired or { all T have Nuke(T) or Done(T) }, then exits shut and lix exploding.

-- Simon

Silken Healer


Silken Healer

iff ( ( that team has at least one point ) AND ( ( one of the team's players has nuked by doubleclicking/double-hotkeying the nukebutton ) OR ( that team has run out of lix )) ) {
   global overtime is induced to run
}

iff ( at least one team has induced it to run) {
   global overtime runs
}

iff (all teams have pressed the nuke button) OR (all teams have no Lix left) OR (global overtime has run out) {
   Lix fireworks time
}





Is this correct?

Simon

Quote from: Silken Healer on August 22, 2024, 10:57:03 PMiff ( ( that team has ...

Replace this first "iff" with "iff there exists at least one team such that", and you have this part correct, yes.

Quoteiff (all teams have pressed the nuke button) OR (all teams have no Lix left) or (global overtime ahs run out) {

No, you must quantify ("for all teams") outside the first "or".

-- Simon

Silken Healer

#6
Simon's edit

iff there exists at least one team such that( ( that team has at least one point ) AND ( ( one of the team's players has nuked by doubleclicking/double-hotkeying the nukebutton ) OR ( that team has run out of lix )) ) {
   global overtime is induced to run
}

iff (global overtime has run out) OR
   for all teams (
      one of its players has pressed the nuke button
      OR the team has no Lix left
   ) {
   Lix fireworks time
}


Original text
iff there exists at least one team such that( ( that team has at least one point ) AND ( ( one of the team's players has nuked by doubleclicking/double-hotkeying the nukebutton ) OR ( that team has run out of lix )) ) {
   global overtime is induced to run
}

iff ( at least one team has induced it to run) {
   global overtime runs
}

iff ( (global overtime has run out) OR ( (all teams have pressed the nuke button) OR (all teams have no Lix left) ) ) {
   Lix fireworks time
}


namida

Perhaps enforce "auto nuke if position cannot be improved" once more than half the players have nuked?
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Simon

Quote from: namida on August 22, 2024, 11:08:35 PM
Perhaps enforce "auto nuke if position cannot be improved" once more than half the players have nuked?

More than half of the teams, yes, that sounds appropriate. I'm wavering between more than half, or at least half, or at least one. Making it more than half will be in line with Icho's wish for nuke by majority vote within the team (github #408), where he also requires strictly more than half.

-- Simon

Dullstar

I'd like to say that I don't think players should be forced to use the nuke when they can no longer improve their standing, particularly in matches with a lot of players. You can still try to lower the amount by which you lose, or cause chaos, and either way it's more fun than just sitting there waiting for everyone else to finish.

Flopsy

I'd also like to say that I think a forced nuke by majority on a normal map (one player per colour) is not a good idea. I think it's never really been an issue especially when people have been disconnected from matches, we usually just "exit to lobby" if the overtime is too long to wait for.

I think that if 2 people are remaining with Lixes in the level and the other players have finished playing, just wait for the overtime to time out and let the 2 players remaining play on if they wish. There's no need for the game engine to decide when we are done, usually if we think the game is done we'd tell people to just nuke and they usually oblige when asked.
Like Dullstar said above as well, it is usually fun to watch and it gives people a chance to lower their losses and increase their score a bit more. Also remaining players might like the breather where there is less enemy Lixes around to sabotage them and they can actually play the level and practice their technique.

On the other hand, when it comes to team maps, I think we do need a system where one person nuking doesn't lock out the entire team from assigning. I think that is a more annoying problem although it rarely happens still, I think that is only because we don't play many team maps. I think at the moment, we play Team maps even less than Race maps and normal maps.

The solution here is we need a majority vote from the entire team to nuke ON A TEAM MAP.

Like if there are 3 people on a team, 2 of them need to nuke before the entire skillset is locked to the whole team and assigning skills is disallowed.
If there are 2 people on a team, both of them need to press nuke to get the majority since only one vote out of two is only 50% and is not a majority.

Silken Healer

Surely, if we're playing on a team, and the teams will practically be no more than four players, it should be a unanimous vote not a majority vote?

Simon

Thanks everybody for reminding me that Dan's original suggestion was not to autonuke, but to to show the nukings more clearly. I too think we should show them more clearly. We can fit this into Lix without changing physics, too, which is handy. (Adding autonuke rules would change physics.)

I have a soft spot for those irrelevant endgames where 4th and 5th place can be the star of the show.

The problem is the UI. I don't like showing things only by color, and it's fairly important information that 4 out of 6 players want the game to end.

-- Simon

Flopsy

I recall there being a visual indicator of people who have nuked on the bar graph in the past, there was a solid square on the left side of the bars. Shown below, the old way the nuker(s) were shown.



I preferred the solid squares on the bars myself, not sure why they were removed.

The current way is the hover over detailed scoreboard tells us who nuked with a Nuke symbol. Shown below



It requires your cursor to be hovered over the bar chart to make it appear though. It's not a bad way to show it by any means, I personally preferred the squares on the bars which were always displayed.

Simon

The black squares were a hack before I made the proper nuke icons in the big graph.

The advantage of the squares was, as you say, that they appeared on both the small graph (always in the panel) and the big graph (that appears only when you hover over the small graph with the mouse cursor).

The downside of the black squares is that they're not self-explanatory. That was why I removed them when I added the nuke icons. I didn't expect the loss that big, but it is. You're not likely to hover over the big graph to reveal the nukes. It's much better if the nukes always sit somewhere visible.

Even showing, e.g., "(nuke icon) 4/6", would be better than showing nothing (like now).

-- Simon