Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

increase efficency of the port redirection by avoiding using python to manage all the data #5

Closed
gekigek99 opened this issue Mar 14, 2020 · 8 comments

Comments

@gekigek99
Copy link
Member

gekigek99 commented Mar 14, 2020

I mean, you take 1KB of data and forward it to the other port, however this process is slow and makes the connection between the client and the server be very laggy. If there was another way without involving python doing the job manually (like some builtin function to redirect data) then it may improve the overall performance.

Originally posted by @mariohackandglitch in #4 (comment)

@gekigek99
Copy link
Member Author

also using an other program (in c/c++ which is faster) just to forward traffic from one port to an other (this link could be useful: https://lwn.net/Articles/542629/)

@Wouter0100
Copy link

Wouter0100 commented Mar 16, 2020

You could also look at Golang, which would be pretty good at this job - I'd say. I may write a Golang alternative which would be able to handle multiple servers at a later point.

@gekigek99
Copy link
Member Author

gekigek99 commented Mar 17, 2020

well i know practically 0 of golang so if you say it could increase the speed in handling alla the data back and forward it would be awsome!

are you planning on translate the program from python to golang or write a golang submodule to attach to the main program?

what do you mean "handle multiple servers"? (something like multiple server.jar each one handling a minecraft world on different ports (but still on the same physical machine)?)

@gekigek99
Copy link
Member Author

anyway in the next days i'll try to document myself on golang to be able to keep up with the work!

@Wouter0100
Copy link

Personally I would prefer to fully rebuild it, especially because the logic currently in the Python application isn't so special, and it should be easily build into Go.

I'm currently working on a new concept for game hosting, where this product could be used. But, in this case it should listen for connections and send a HTTP request to start the Minecraft server. I could build-in that there are multiple ways to start a Minecraft server: both by executing a binary (or JAR file) or by sending a HTTP request.

@gekigek99
Copy link
Member Author

Ok I documented myself on golang and right now I might be able to translate the python to golang.

What do you mean by multiple ways to start the Minecraft server?

Are you working on github for this new game hosting concept?

@Wouter0100
Copy link

The idea behind this is that it's able to simulate a Minecraft server and starts a Minecraft sever once a player connects, right? Starting this Minecraft server could be done in different ways, and that's what I'm after :).

No, this is mostly on Gitlab - but currently in private repositories. Could be that I open-source some parts of the infrastructure, but I'm not sure yet. Gotta get it up and running first :)

@gekigek99
Copy link
Member Author

Cool! Good luck with your project!

Reminder: if you use this code please just make sure to respect the gpl-3.0 licence for this code derivatives

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants