Gproxy by h3rmit
Moderator: LIHL Staff
- h3rmit
- Resource Storage
- Posts: 19
- Joined: Sat Aug 27, 2016 12:15 am
- Has thanked: 1 time
- Been thanked: 16 times
Re: Gproxy by h3rmit
@Diablo_
Actually, Varlock, the original author of GProxy, describes it very clearly in his original post:
So, when you set a reconnection limit of 3 minutes, it means that for every click that a player makes, every player will get 3 actions instead of one:
Despite their name, "empty actions" are actual packets of comparable size to the other actions.
More data to transfer, more data to process. It is only logical that the delay increases.
I found Varlock's solution to be inelegant and inefficient (especially when setting large reconnection limits), so I devised a better solution. GProxy DLL deals with the core of the problem:
Well, not anymore. GProxy DLL, when using the Extended protocol, forces Warcraft III to keep the connection alive for as much as we want, without sending any empty actions. During a test, I even managed to reconnect to a game after 2 hours.
GProxy DLL can fully replace any other version of GProxy, and can potentially provide unlimited reconnection time at no cost. I would suggest that every player who wants to have the ability to reconnect should use GProxy DLL.
Of course, compatibility can be kept for players still using, for whatever reason, the classic version of GProxy. But I think that they should at least not cause a negative impact to the other players. This can be achieved by keeping the classic GProxy reconnection limit to 1 minute (no extra empty actions).
GProxy DLL's extended reconnection limit can be as much as you want, without having any negative impact in the delay.
Your bots currently have 2 separate settings:
I would suggest setting the classic reconnection time to 1 minute and encourage players to switch to GProxy DLL.
Diablo_ wrote:Reconnection time should definitely have priority, so yes, set it to 3 minutes please.
Are you sure it even increases delay? Doesn't sound very logical to me ^.^
Actually, Varlock, the original author of GProxy, describes it very clearly in his original post:
Varlock wrote:Unfortunately there is a quirk in Warcraft III that complicates the reconnection process.
Warcraft III will disconnect from GProxy++ if it doesn't receive a W3GS action at least every 65 seconds or so.
This puts a hard limit on the time we can take to reconnect to the server if the connection is broken.
I decided that 65 seconds was too short so I needed some way to send additional W3GS actions to extend the reconnect time.
However, W3GS actions (even empty ones) are "desyncable" which means we must ensure that every player receives the same actions in the same order.
We can't just have GProxy++ start sending empty actions to the disconnected player because the other players didn't receive those same actions.
And since the broken connection will be detected at different points, we can't go back in time to send empty actions to the connected players after someone disconnects.
The solution, while inelegant, is to send a defined number of empty actions between every single real action.
GProxy++ holds these empty actions in reserve, only sending them to the client when a subsequent real action is received.
So, when you set a reconnection limit of 3 minutes, it means that for every click that a player makes, every player will get 3 actions instead of one:
- Real Action
- Empty action
- Empty action
- Real Action
- Empty action
- Empty action
- ...
Despite their name, "empty actions" are actual packets of comparable size to the other actions.
More data to transfer, more data to process. It is only logical that the delay increases.
I found Varlock's solution to be inelegant and inefficient (especially when setting large reconnection limits), so I devised a better solution. GProxy DLL deals with the core of the problem:
Varlock wrote:Warcraft III will disconnect from GProxy++ if it doesn't receive a W3GS action at least every 65 seconds or so.
Well, not anymore. GProxy DLL, when using the Extended protocol, forces Warcraft III to keep the connection alive for as much as we want, without sending any empty actions. During a test, I even managed to reconnect to a game after 2 hours.
GProxy DLL can fully replace any other version of GProxy, and can potentially provide unlimited reconnection time at no cost. I would suggest that every player who wants to have the ability to reconnect should use GProxy DLL.
Of course, compatibility can be kept for players still using, for whatever reason, the classic version of GProxy. But I think that they should at least not cause a negative impact to the other players. This can be achieved by keeping the classic GProxy reconnection limit to 1 minute (no extra empty actions).
GProxy DLL's extended reconnection limit can be as much as you want, without having any negative impact in the delay.
Your bots currently have 2 separate settings:
- GProxy++ (Classic) reconnection time = 3 minutes
- GProxy DLL (Extended) reconnection = 5 minutes
I would suggest setting the classic reconnection time to 1 minute and encourage players to switch to GProxy DLL.
-
- Treant Protector
- Posts: 630
- Joined: Fri May 30, 2014 2:42 am
- Has thanked: 56 times
- Been thanked: 125 times
- h3rmit
- Resource Storage
- Posts: 19
- Joined: Sat Aug 27, 2016 12:15 am
- Has thanked: 1 time
- Been thanked: 16 times
Re: Gproxy by h3rmit
GProxy DLL should work fine with the new patch 1.27.1.7085. No action is normally required from your part.
What problem are you experiencing? Can you provide a screenshot or more details about it?
We can easily determine the problem if you follow these steps:
What problem are you experiencing? Can you provide a screenshot or more details about it?
We can easily determine the problem if you follow these steps:
- Locate gproxy.cfg in your Warcraft III folder and open it with Notepad. If you don't have one, create a new file or download one here.
- Add a new line:
Code: Select all
log = gproxy.log
- Save it and close Notepad.
- Launch Warcraft III and try to connect to Battle.net via the GProxy gateway. If you don't have a GProxy gateway, we'll see in the logs why that happens.
- Exit Battle.net and Warcraft III and show me the contents of your gproxy.log.
Re: Gproxy by h3rmit
@h3rmit
I am now experimenting issues too. It was all working just fine yesterday, and now, when I try to connect to Bnet on GProxy gateway, it tells me something about beeing impossible to validate this version of the game, that I need to reconnect to Bnet or that I need to install a update manually (sorry, my game is in french).
Here is the content of my gproxy.log (I try to add the log = gproxy.log, but it didn't help) :
Thank you,
Kiwi
/edit : It is now working for no apparent reason
I am now experimenting issues too. It was all working just fine yesterday, and now, when I try to connect to Bnet on GProxy gateway, it tells me something about beeing impossible to validate this version of the game, that I need to reconnect to Bnet or that I need to install a update manually (sorry, my game is in french).
Here is the content of my gproxy.log (I try to add the log = gproxy.log, but it didn't help) :
Code: Select all
bnet_hostname = useast.battle.net
log = gproxy.log
Thank you,
Kiwi
/edit : It is now working for no apparent reason
Last edited by KiwiKiller[QQ] on Sun Dec 18, 2016 9:21 pm, edited 2 times in total.
-
- Protector of Nature
- Posts: 3180
- Joined: Sat Apr 06, 2013 10:26 pm
- Has thanked: 55 times
- Been thanked: 145 times
Re: Gproxy by h3rmit
I had the same problem yesterday, about 30 minutes later it worked normally again.
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK
- h3rmit
- Resource Storage
- Posts: 19
- Joined: Sat Aug 27, 2016 12:15 am
- Has thanked: 1 time
- Been thanked: 16 times
Re: Gproxy by h3rmit
@KiwiKiller[QQ] :
That's your gproxy.cfg file. Search and locate another file, called gproxy.log.
There is detailed information in there.
@Diablo_ :
I would also like to see your gproxy.log to see what happens.
KiwiKiller[QQ] wrote:Here is the content of my gproxy.log (I try to add the log = gproxy.log, but it didn't help) :Code: Select all
bnet_hostname = useast.battle.net
log = gproxy.log
That's your gproxy.cfg file. Search and locate another file, called gproxy.log.
There is detailed information in there.
@Diablo_ :
I would also like to see your gproxy.log to see what happens.
Re: Gproxy by h3rmit
@h3rmit
I don't see any gproxy.log file, but there is a file named gproxy, here it is.
/edit : Nevermind, it looks like it's called gproxy.log hahahah it just wasn't called like this in my folder
Thank you,
Kiwi
I don't see any gproxy.log file, but there is a file named gproxy, here it is.
/edit : Nevermind, it looks like it's called gproxy.log hahahah it just wasn't called like this in my folder
Thank you,
Kiwi
- h3rmit
- Resource Storage
- Posts: 19
- Joined: Sat Aug 27, 2016 12:15 am
- Has thanked: 1 time
- Been thanked: 16 times
Re: Gproxy by h3rmit
I see, that's probably a race condition. It seems that sometimes Warcraft III somehow manages to load GProxy DLL before Game.dll is fully loaded.
I can't replicate the problem, but I'll try to fix it soon in the next version.
I can't replicate the problem, but I'll try to fix it soon in the next version.
-
- Protector of Nature
- Posts: 3180
- Joined: Sat Apr 06, 2013 10:26 pm
- Has thanked: 55 times
- Been thanked: 145 times
Re: Gproxy by h3rmit
@h3rmit
Again had the "Unable to validate version." error when trying to log into bnet with your gproxy.
Logfile when it worked:
Logfile when it did not work:
Again had the "Unable to validate version." error when trying to log into bnet with your gproxy.
Logfile when it worked:
Spoiler!
Logfile when it did not work:
Spoiler!
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK
Who is online
Users browsing this forum: No registered users and 10 guests