googleforgames / agones

Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes
https://agones.dev
Apache License 2.0
6.09k stars 810 forks source link

Not sure how to do nc on windows #1943

Closed jdavid82 closed 3 years ago

jdavid82 commented 3 years ago

installed nmap but the ip and port can't be detected even though it's displayed with State Ready

markmandel commented 3 years ago

Sorry - not sure I understand the question here? Can you please expand further, and outline the steps you took to your issue?

I think the title and description don't seem to match up, but not sure what you are using nmap for?

jdavid82 commented 3 years ago

Hi, sorry I wrote this text after clicking on the feedback button, so it would probably make more sense if I had the link to the page where I clicked on the feedback button, for context.

I don't remember the exact page where I clicked on the feedback button, but I do remember it not having enough documentation for windows users, it was more targeted around linux users. Sorry I can't provide useful info. Feel free to close this issue, maybe it would be good to automatically include the page link as part of the creation of the issue. Thanks.

markmandel commented 3 years ago

Got it - you can install NC with WSL though - but we could build some docs that point to that for sure :+1:

markmandel commented 3 years ago

Added a PR for ya!

jdavid82 commented 3 years ago

Thank you. I appreciate your responsiveness in updating the documentation, I don't mean to criticize and I do this with the best of intentions for helping other developers on the Windows platform get started as quickly as possible.

Please note that I'm a developer, I'm not a dev-ops person, so I don't know the ins and outs of Minikube, Kubernetes and Helm and how they all integrate with each other and why they even need each other (which is precisely why I was looking at Agones and their integration with Google Cloud so that they can manage it for me).

What I wanted to do is have: My headless game instance running Agones Agones running on Minikube which would then be running on kubernettes which would be in my local docker in hyper-v on my Windows 10 pro development machine.

And I couldn't do it. I had the latest Docker (maybe I shouldn't have but I don't know what version I would need), I know there was mention of a specific version of Kubernettes but not of Docker, I tried creating a Minikube cluster for Agones then install Agones using Helm but I couldn't run test on it (because the flag for installing the test package wasn't included in the instructions) so I tried to delete and install again but it got stuck on deleting, then I ended up deleting the whole thing and even uninstalling Docker, then I tried the local development guide but then got stuck looking for documentation on how my headless host game instance can send and receive messages from the clients.

My game is being developed using Defold which uses Lua, so I referred to Agones' REST documentation, but there was no mention of how to do client-host communication, there was plenty of life cycle documentation like initialization, server life cycles, player life cycles, watching server status change and all that, but I needed to get into the specifics of the game.

So I would like to suggest maybe identifying a guide that says These are the steps that you need to follow if you want to run Agones on windows 10 and here's example code on how you keep track of state AND sending and receiving messages between host and clients.

I understand that this all is actually very complex, because the host game has to be initialized with some parameters so that it knows the port of the server infrastructure etc etc, and I feel I'm being unfair in pointing out the problems I had when most of it is probably due to my lack of Kubernettes/Helm expertise, but if you could have a one-stop-shop, one guide, end to end, on how to do what I just mentioned, that would make a huge impact and it would make reconsider (for sure it will help other new developers).

Happy to assist further if you have any questions or if you need me to test any guides.

Thank you.

markmandel commented 3 years ago

Thanks for your write up @jdavid82 - this is where the Prerequisite Knowledge guide is likely very important for you: https://agones.dev/site/docs/prerequisite-knowledge/

Because to use Agones, you do need to know all of the things you outlined above - that's the foundation of the project.

From your write up, unfortunately, I feel like Agones might not be the right project for you. Agones is an orchestration platform for dedicated game servers -- it doesn't handle anything to do with sending data between clients and servers, that's an exercise for the user, based on game type, engine and technical requirements.

But if you are still keen, I highly recommend going through the prereq knowledge guide first - getting a handle on the foundational aspects, and then coming back!

I wish you the best of luck with your game! :+1:

Some quick questions though:

I couldn't run test on it

What tests where you trying to run?

because the flag for installing the test package wasn't included in the instructions

What test packages are you referring to?

tried the local development guide

That's for actually developing features on Agones, not for running games on Agones itself. That would explain some confusion.

jdavid82 commented 3 years ago

Because to use Agones, you do need to know all of the things you outlined above - that's the foundation of the project.

From your write up, unfortunately, I feel like Agones might not be the right project for you. Agones is an orchestration platform for dedicated game servers -- it doesn't handle anything to do with sending data between clients and servers, that's an exercise for the user, based on game type, engine and technical requirements.

I see, fair enough.

I couldn't run test on it

because the flag for installing the test package wasn't included in the instructions

I was referring to this where it says Check the Agones installation by running the following command

That's for actually developing features on Agones, not for running games on Agones itself. That would explain some confusion.

Yep it does explain my confusion :)

I wish you the best of luck with your game! 👍

Thank you! And thanks for your reply!

jdavid82 commented 3 years ago

Last two things:

markmandel commented 3 years ago

I don't know enough about Colyseus to say definitively - it's possible you could host it on Agones? Does it run a single authoritative, dedicated server?

jdavid82 commented 3 years ago

It's a Node.js-based game server which can scale horizontally through something they call "RedisPresence", here. I've managed to make progress on the game by also running Colyseus on my dev machine. But I still have that go-live concern at the back of my mind because I'm only familiar with IIS+asp.net tech but not with Node.js.

I've decided to make it so that one of the clients hosts the game logic and the "Room" is mostly used for "relay" and for keeping track of small state such as score and players' health.

I will do more research about what kind of hosting I can implement but if you think my tech stack fits somewhere in the picture with Agones please let me know and I'll look further into it.

Thanks

jdavid82 commented 3 years ago

I mean, it can scale but it doesn't have to if it's sitting on Agones in Google Cloud 🤔 But in my limited understanding (and I could be wrong) it looks like Agones is more geared towards headless game instances that can work as websocket servers (for example). If my game had the ability to work as a websocket server (it can only be a client unless I write a websocket server component to it, but I don't know how). If it could run as a websocket server then I can see how it could fit into Agones' infrastructure. Anyway I'll stop thinking out loud