fishfolk / jumpy

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

Player profiles and match logs #49

Open erlend-sh opened 2 years ago

erlend-sh commented 2 years ago

Use case: After playing with a friend over the course of a month, you’d like to know what your total score is for the entire month.

Who actually won the most matches? Who took the most bo3 series? Which maps do we have the highest/lowest win percentage on?

Requirements:

Longterm this would also be integrated with Nakama or a similar multiplayer cloud. You should be able to log into your cloud profile by simply entering a short pin code, which gives you read-access to your profile and its item stash.

zicklag commented 1 year ago

Just a couple random implementation thoughts:

erlend-sh commented 1 year ago

Hmm, the first service that comes to mind for me is https://supabase.com/

They are already quite game-oriented (see realtime) and full-service, including a free plan to start with.

Also some clear plans for GraphQL: https://github.com/supabase/pg_graphql

zicklag commented 1 year ago

Ah, yeah, that looks like a great option, too. Directus did have a realtime plugin, but not at all as mature as supabase as far as I can tell.

I'll have to try that out sometime and also do some more looking around.

MaxCWhitehead commented 3 months ago

In discussion on Discord it sounds like we are pretty interesting in evaluating Rivet, hopefully provided by their hosting service. Rivet is open source and is a tool for matchmaking + server infra - for this issue their associated project Open Game Backend for user management and auth seems relevant.

Familiarizing with these APIs and looking into how we might use them if we move forward with evaluating this would be good first step, followed by how we can display relevant information in game about players, their profiles, and previous match outcomes.

Rivet does not (yet) have a rust API - but we can use their REST api and send http requests with some http client such as Reqwest.

zicklag commented 3 months ago

RE HTTP client: An increasingly popular small HTTP client is ureq. Might be handy to keep in mind.