eumario / godot-manager

A Project, Version and Addons/Plugins manager for Godot Game Engine.
MIT License
332 stars 19 forks source link

Add support for network proxy in future #11

Closed rambda closed 2 years ago

rambda commented 2 years ago

Is your feature request related to a problem? Please describe. Slow download in China, both GitHub or TuxFamily.org. (I know download mirror is not implemented yet, TuxFamily.org is slow via browser download. It shouldn't be any faster in godot-manager either.)

Describe the solution you'd like Add support for http proxy or even SOCKS5, after https://github.com/godotengine/godot/pull/55988 gets merged. Or if you end up porting godot-manager to 4.0, as 4.0 already has proxy support https://github.com/godotengine/godot/pull/55747

Describe alternatives you've considered Add another mirror, maybe SourceForge (https://sourceforge.net/projects/godot-engine.mirror/files/), which is extremely fast in China. But it's not a matter of course to do so, as SourceForge had injected ads into the download file back in 2013, caused GIMP to stop using it. Now it seems good though, after it got acquired by another company https://www.reddit.com/r/sysadmin/comments/4n3e1s/the_state_of_sourceforge_since_its_acquisition_in/. Actually it seems to be the only mirror, besides itch.io, which only has the latest version.

Or just don't implement it. Browser/steam download is fine.

Additional context Maybe "Tuxfamily not available" tooltip needs be more obvious. For example, making the Tuxmaily.org button Tuxmaily.org (unavailable), because I was all set to raise an issue that mirror switching is broken, until I cloned the repo and looked at the source code to find it's unavailable.

eumario commented 2 years ago

Hey Rambda,

Yeah, I was hoping to have Tuxfamily available for v0.1.0, but had to push it off, due to needing to setup a way to reliably scrape Tuxfamily's downloads, as well as create a possible system for allowing other developers that modify the Godot Engine, the ability to provide mirrors for their versions of Godot for users to be able to download custom versions of the Engine/Editor with Godot Manager. Hence why I pushed it off to v0.2.0.

As for SOCKS5, I have no problems with implementing Proxy / SOCKS5 communication for Godot to do Downloads through, for all download aspects that Godot Manager will do. It may not make it into the v0.1 branch, but I definitely added it as a Milestone for v0.2.0 to have that fully implemented for use, as I have had to do the Proxy setup in the past.

My plan is to eventually migrate to Godot 4.0, but their Mono/C# support is not quite there yet, and as you can tell from the code, I am using C# as the basis for code in the Godot Manager itself. So until they support it, I will continue to work with the 3.x branch of Godot, while still supporting Godot 4 for launching, and project file handling.

Currently, I'm working on bug #9 that introduced an incompatibility in the Project File format, with the use of PackedStringArray() in Godot 4, which is not available in Godot 3. So, I'm hopeful to get a few more things tied up in the 0.1 release in regards to bugs, and will then focus my attention to features for 0.2.

eumario commented 2 years ago

After reviewing godotengine/godot#55988, it looks like they have added support for HTTP Proxy, but will not be available in 3.4.x release, instead is available in 3.5. Once 3.5 reaches stable, I will add Proxy support to all aspects of Godot's Network communication, at which point you should have no issues with setting up Proxy support for Godot Manager. Still with the progress of 3.5 betas, it will more then likely become stable in time for 0.2.0, so the plan to add proxy support will still be targeting said release.