UltraStar-Deluxe / Play

Free and open source singing game with song editor for desktop, mobile, and smart TV
https://ultrastar-play.com
MIT License
381 stars 72 forks source link

Party modes #243

Closed achimmihca closed 2 months ago

achimmihca commented 3 years ago

UltraStar Play does not yet support party modes.

I took a look at UltraStar Deluxe for the basics: N teams play R rounds, each round with different game modifiers.

Teams

Rounds

Modifiers

Some party modes modify the game by hiding some elements. These are pretty simple to implement:

Then there are different "win" conditions:

And there are other modifications to the normal game

Implementation

USDX named some combinations of above modifiers (e.g. "Blind 5000", "Hardcore"). Then users choose for each round one of these named configurations.

Instead, I suggest to

I think this is a better approach because

Note that these modifiers could just as well be available for the normal game, not only for party mode.

For some controls, I suggested drag'n'drop but when designing the UI, one also has to keep controller and keyboard input in mind. How these should work probably depends on the concrete UI.

Do you have more ideas for fun modifiers in party modes? What do other games offer (Vocaluxe, SingStar, Rockband, Performous, etc.)?

bohning commented 3 years ago

What I really liked with regard to party modes was the possibility to "cheat" when both singers agreed to not sing a computer-proposed song, not using a veto/joker. I think "1" used a joker for team 1, "2" for team 2, and holding ALT while pressing either proposed a new song without using a joker.

achimmihca commented 3 years ago

Actually, I wonder if the jokers are needed. I would also allow this option always. Why sing a song that you don't want to sing?

bohning commented 3 years ago

Well, I guess that’s a matter of taste. For me, it is one reason for the party modes - that you sometimes have to sing a sing that you wouldn’t normally, depending on how many jokers there are left. That’s part of the fun. However, as described above, when both players don’t want to sing the proposed song or don’t even know it, they can skip the proposed song without sacrificing a joker.

daggeg commented 3 years ago

Actually, I wonder if the jokers are needed. I would also allow this option always. Why sing a song that you don't want to sing?

If your on your own that makes sense. But if you sing with friends and family it's not that easy. I seldom want to sing the same songs as my kids or (some of) my friends. Even my wife and I don't get along as to which songs to sing sometimes . To me the challenge loses its' nerve without jokers, its' USP. But with jokers you get bring a strategic element to the mix which makes it so much more fun when competing .

basisbit commented 3 years ago

Afaik, touch UI / mobile devices is still the main target of UltraStar Play, so just doing this over keyboard presses won't work when people use a tablet + screen sharing to play the game on their TV (or they use an android TV or similar which supports android apps)

jean-moreno commented 1 year ago

Hello, I've started a branch with work on the Party Mode. You can read an overview of the current design/flow in this commit: https://github.com/UltraStar-Deluxe/Play/commit/458404afb0325c640800d4755e30e5f1c67db87d

Additional notes:

Game Modifier design: a game modifier has one or multiple actions, and is triggered by one trigger condition. Possible Actions:

For the score-based triggers, there is an option to trigger the action only for the player who has fulfilled this score condition, for actions that are relevant to the player (hide notes, hide score). For example: Hide notes when a score of 2000 is reached => notes for each players will be hidden when they reach 2000 points. If that option is disabled, the notes will be hidden whenever a player reaches 2000 points.

Time-based triggers are in percentage of the total song duration.

More notes:

In its current state, in the "Free for All" mode, you should be able to add a number of users, and have them play against each other successively with randomly chosen songs (or not).

achimmihca commented 1 year ago

Another win condition could be a "last one standing", i.e., after a certain percentage of the song, the player with lowest points is out. This is a common game mode for racing games.

The opposite would also be possible: after a certain percentage of the song, the player with highest points claims the current best place while the others continue to sing for the remaining places.

A possible downside of this approach is that players are finished earlier, which can be frustating or boring.

achimmihca commented 1 year ago

I implemeted the UI for party mode configuration:

party-mode-config

I think it covers most important requirements from this issue.

I want to include these party modes in the upcoming Steam release. For now, I did the implementation in a private repository.

achimmihca commented 1 year ago

I was thinking about the party mode, what is it really about?

In the first planned implementation

So, what is left in the "party mode" is

Looking at these features, I think it makes sense to

Modifiers and configuration of multiple rounds can work the same way in the normal game, which harmonizes the features. This might event reduce complexity.