userMM / openhelbreath

Automatically exported from code.google.com/p/openhelbreath
0 stars 0 forks source link

gzip Packet Compression #3

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
A long time ago it was discussed if it would it be better to compress
packets (GZIP) before sending them and then the packets would be
uncompressed when received by client/server.  This could reduce bandwidth
and perhaps result in quicker response time.

Thoughts?

Original issue reported on code.google.com by SirHypnotoad@gmail.com on 9 Oct 2009 at 12:56

GoogleCodeExporter commented 9 years ago
I think this would reduce bandwidth alot and implementation will not be much 
hard. 

Standard HB packet:

Key + DataSize + MsgID + MsgType + ...

GZIPped will be same, but we will read DataSize bytes from buffer and ungzip it.

But I don't think we could reach speed and performance with TCP connection. 
Most of
games (excluding WoW) uses UDP connection which is much faster and no need for 
gzip.
But HB uses TCP and as it is MMORPG game, its network code is pretty fast.
Need to test it when have any framework for Client.

Original comment by Drajwer@gmail.com on 9 Oct 2009 at 3:57

GoogleCodeExporter commented 9 years ago
Bad idea.

Original comment by elim...@gmail.com on 28 Oct 2009 at 9:04

GoogleCodeExporter commented 9 years ago
O_o

good idea.

Original comment by SirHypnotoad@gmail.com on 29 Oct 2009 at 3:26

GoogleCodeExporter commented 9 years ago
You're wasting CPU time for very little bandwidth. It's a real-time 
application...
It's not like it's small packets can be packed to much smaller than they 
already are.
That said, if you still use Nagle's algorithm, I guess gzipping the hundreds of
packets together would save a lot of bandwidth. Yet, that'd only be useful if a 
lot
of packets are sent as a single one, which doesn't happen unless you have a high
latency, which then would render the game pretty much unplayable because of 
Nagle's.

Bad idea.
This is Cleroth, btw.

Original comment by elim...@gmail.com on 29 Oct 2009 at 4:48

GoogleCodeExporter commented 9 years ago
I agree partially with Cleroth and Hypnotoad.

It will be good if we gzip for example player data contents sent from HG to 
Client,
or Character list, or even HG<->ML player data or contents data. But it will 
slow
everything down if we gzip small packets.

Original comment by Drajwer@gmail.com on 5 Nov 2009 at 11:08

GoogleCodeExporter commented 9 years ago
Look, badwith is not a major problem in HB performance as I can see. But if we 
need to 
cut it up someday, I may suggest protobuf, that is the most short information 
packet 
possible. This protocol was created by google by the way.

http://code.google.com/p/protobuf/

Original comment by dnu...@gmail.com on 26 Apr 2010 at 3:22

GoogleCodeExporter commented 9 years ago
I heard about protobuf before, thanks dnuske. But our main goal is to have 100%
compatibility with 3.82. We will surely go for protobuf in the future. Thanks 
for the
info.

Original comment by Drajwer@gmail.com on 26 Apr 2010 at 4:24

GoogleCodeExporter commented 9 years ago
You clearly have never played HB with ~50 players and monsters around. Also, 
just
because Google craeted a protocol for their servers doesn't mean it'll be the 
best
choice for a MMORPG. AFAIK, Google hasn't made a MMORPG as of yet.

Original comment by elim...@gmail.com on 26 Apr 2010 at 4:34

GoogleCodeExporter commented 9 years ago
LMFAO. It seems protobuf encodes its data as strings. It's clearly the shortest
information packet possible!

Original comment by elim...@gmail.com on 27 Apr 2010 at 10:41