fishfolk / jumpy

Tactical 2D shooter in fishy pixels style. Made with Rust-lang 🦀 and Bevy 🪶
https://fishfolk.org/games/jumpy/
Other
1.64k stars 117 forks source link

Map Rotation Flow #488

Open erlend-sh opened 1 year ago

erlend-sh commented 1 year ago

After one fish is left standing, move on to another pseudo-randomly selected level.


Partially outdated notes:

After one of the default maps have been played 3 times, go to one of the next maps. Next map is pseudo-randomly selected; if a map hasn't been selected in a while we'll start prioritizing it.

Some of the hardcoded behavior herein will be replaced by player-determined selection of some hand-picked or randomized levels bundle.

zicklag commented 1 year ago

What is the game finish criteria?

We don't currently have a score or anything. Will that eventually be something that we put in the match setup menu in a settings section or something like that. Like a "points to win"?

erlend-sh commented 1 year ago

A single 'map' or 'round' concludes when one (sometimes zero, meaning a draw) player is left standing.

I'll throw in an additional mini-spec here, adopted from Duck Game: As soon as only 1 player remains, start a 3-second countdown. If the remaining player is still alive after the countdown, they win the round.

Yeah, we will have a basic tournament and points system in place for v1.0.

erlend-sh commented 5 months ago

Probably best to simply mimic the DG scoring system, starting with hardcoded default off ‘first to 15 points, breaks every 7 points’ (a saner default would be longer, but best to keep it shorter while we’re light on content).

We’ll need some aquatic themed score board art assets, but we could start with a simple GUI screen.

MaxCWhitehead commented 5 months ago

Gonna add some feature tracking here for my own reference / review from others. Using term "Match" for collection of rounds / whole game flow, and "Round" for single death-match until all players die.

Score Tracking

Round Transitions

Match End

Polish tasks (2nd pass polish / future features)

Long Term Multiplayer Stuff (Hook into online backend)

MaxCWhitehead commented 4 months ago

One thing will need to sort out is handling a tie.

I think duck game does a tie breaking round with only tied players contending for the win. Single round breaks tie, and repeats if both players die and neither win the round. We may also consider having special tie breaker map(s), but is not required.

For first pass I am going to just have the game continue on tie. One of the requirements for implementing this will be allowing next round to have the players not competing in tie be spectators. This is not something we currently support, but is a feature in GGRS and hopefully will not be too bad to get setup.

erlend-sh commented 4 months ago

The default tie-breaker in DG is a best-of-one. I never enjoyed this, because getting a tie Is an exceedingly rare event (like 1/100) and it feels very anticlimactic to settle a session of 50++ matches with a single decider match.

Better to add a whole round more. Players could also make draws happen more frequently by playing with ping pong style rules of having to win with more than 1 point.

MaxCWhitehead commented 4 months ago

The next set of rounds should include all players? (losers can make come back) or just the ones tied? I kind of like having everyone included, and that is that is how it currently is setup.

erlend-sh commented 4 months ago

Yeah include everyone 👍