FreezingMoon / AncientBeast

The Turn Based Strategy Game/eSport. Master your beasts! 🐺
https://AncientBeast.com
GNU Affero General Public License v3.0
1.67k stars 580 forks source link

Open Match lobby [bounty: 666 XTR] #2632

Open DreadKnight opened 5 days ago

DreadKnight commented 5 days ago

In order to have online multiplayer feature back up, we need to remove Nakama, as it was problematic and we only used it in order to match players together via its lobby feature, the rest of gameplay is actually p2p (we'll secure it via #1791).

We should even remove it as project dependency and have lobby feature implemented via Google's Open Match / repo.

Could have this without a user system for the players, having auto-generated unique id's for now, later we'll go for #2032.

Open Match is serverless, so we should be able to host it via our sponsored servers provided by Qoddi.

Note that the current implementation of online multiplayer (using Nakama) is not maintained and broken; it was tested for a while until we bumped into a show-stopping bug that wasn't fixed #2044 since the coder couldn't figure it out and neither did others - so ideally that issue will be fixed or avoided in the process.

This is issue is the first vital step towards having online multiplayer -> https://github.com/orgs/FreezingMoon/projects/11

codemaster321 commented 5 days ago

Hi @DreadKnight, So I wanted to know whether this Nakama issue can be refactored and revamped or will be just removed totally?

DreadKnight commented 5 days ago

@codemaster321 Heya! This issue is first vital step towards having functional online multiplayer feature -> https://github.com/orgs/FreezingMoon/projects/11

Nakama gets removed in the process and replaced with Open Match, as it was bloatware since we only used it for lobbies.

codemaster321 commented 5 days ago

Aight. I will have a look into it

DreadKnight commented 5 days ago

Aight. I will have a look into it

@codemaster321 Cool, if the stuff makes sense and you think you can manage, let me know and I'll assign you to it. No pressure 🐻

RajVerma97 commented 20 hours ago

can you assign me?

DreadKnight commented 20 hours ago

can you assign me?

@RajVerma97 Alright, assigning. Keep me updated. Usually there's 2 weeks soft deadline on issues, thought this one is a bit more complex stuff.

RajVerma97 commented 20 hours ago

sure i am confused about the xtr token price can you tell me how much the bounty would be in terms of usd?

DreadKnight commented 20 hours ago

sure i am confused about the xtr token price can you tell me how much the bounty would be in terms of usd?

Right now is not that much, about $30. Having online multiplayer and giving it some time, the price will rocket 🚀

RajVerma97 commented 19 hours ago

got it

RajVerma97 commented 17 hours ago

@DreadKnight i checked for the open match by google .it actually requires a google console cloud account with some credits but my account has already been over limit ,so i would another google account for settings up the open match with some credits. Do you have any?

DreadKnight commented 17 hours ago

@RajVerma97 Will poke at it soon and figure the best way to approach this. The other 2 important things needed for online multiplayer allow for having a team. I think that might be possible as well for the Google development stuff. Anyway, with this kind of thing, you usually deploy locally (via Kubernets) and develop, then take it to the next step, going online. See docs here https://open-match.dev/site/docs/getting-started/

RajVerma97 commented 10 hours ago
Screenshot 2024-10-23 at 2 35 17 AM

finally after a lot of failed trials ,I was like to run open match locally using minikube

DreadKnight commented 9 hours ago
Screenshot 2024-10-23 at 2 35 17 AM

finally after a lot of failed trials ,I was like to run open match locally using minikube

Yeah, noticed that docs mention minikube for local development. I'm working on making organization on Google in order to be able to add team mates. It was super easy to do on Qoddi.com (which should be sponsoring the project again since next month), but I'm not sure how Open Match would get deployed there, as they seem against Kubernetes somehow, though Docker works there, but Open Match seems to have just one instalation method sigh I couldn't even run Nakama on Qoddi before...

RajVerma97 commented 9 hours ago

oh thats terrible. i have a question though right now i am using the demo matchmaking from the open match ,so do i have to write a custom making or the demo should work by default

DreadKnight commented 9 hours ago

oh thats terrible. i have a question though right now i am using the demo matchmaking from the open match ,so do i have to write a custom making or the demo should work by default

As the name says, it's a demo. I haven't tried it out, so not sure what it offers or how it looks. We need autogenerated id for player name and integrate this replacing the Nakama lobby.

RajVerma97 commented 9 hours ago

got it

DreadKnight commented 7 hours ago

I've managed to create organization in Google Cloud and the project. Can add person to the team and we would have $300 credit for 91 days. This should make it easy to deploy Open Match via Kubernetes, just like in the official docs.

This would give us time to experiment with stuff and hopefully will be able to eventually move to Qoddi.com when they sponsor the project once again, as I've found some info about running Kubernetes inside Docker using KinD -> https://github.com/googleforgames/open-match/blob/main/docs/development.md - kinda wish stuff was way less nerdy tbh; will open new issue for the migration eventually if needed.