| 1 |
|
| 2 |
PvPGN 1.7.x Major Changes And New Features
|
| 3 |
==============================================
|
| 4 |
|
| 5 |
|
| 6 |
o WIN32 GUI for d2cs and d2dbs
|
| 7 |
|
| 8 |
d2cs and d2bs now feature a new slick GUI if build under WIN32.
|
| 9 |
|
| 10 |
o Instant startup (partial)
|
| 11 |
|
| 12 |
PvPGN now can startup in a lot lesser time than before, this is due to
|
| 13 |
code changes which make it not load all accounts at startup. This
|
| 14 |
improvement should be mostly noticed on very high number of accounts
|
| 15 |
servers. Note that currently this happens only to SQL storage types
|
| 16 |
(the file based storage types still load all accounts at startup).
|
| 17 |
|
| 18 |
o Optimized account loading/saving codes
|
| 19 |
|
| 20 |
Account loading/saving codes have been rewritten allowing PvPGN to scale
|
| 21 |
a lot better with a high number of online users (ie lower CPU usage).
|
| 22 |
|
| 23 |
o Better game result calculation
|
| 24 |
|
| 25 |
Game result decision has been completly changed to use a democratic
|
| 26 |
ellection scheme (ie it bases the decision on the oppinions of the most
|
| 27 |
results). This should solve problems with game results beeing wrong under
|
| 28 |
some situations (like team games).
|
| 29 |
|
| 30 |
o New WIN32 compiler/enviroment support
|
| 31 |
|
| 32 |
Now you can compile PvPGN under WIN32 using complete GPL/free build tools
|
| 33 |
by using Dev-C++ project and additional tools (mingw, etc).
|
| 34 |
|
| 35 |
o Optimized handling of D2 clients
|
| 36 |
|
| 37 |
Replaced a O(n) search algorithm through the client connection list used
|
| 38 |
mostly by D2 handling functions with a O(1) algorithm.
|
| 39 |
|
| 40 |
o Optimized timers codes
|
| 41 |
|
| 42 |
Timers codes have been rewritten so the most used functions complete a
|
| 43 |
lot faster than before. This improves PvPGN CPU usage a lot because some
|
| 44 |
timers functions are used very often inside PvPGN.
|
| 45 |
|
| 46 |
o Memory management changes and optimizations
|
| 47 |
|
| 48 |
There has been added some memory management wrappers functions which
|
| 49 |
never fail and thus the calling codes were simplified a lot by removing
|
| 50 |
checks to memory allocation failures. If memory allocation fails PvPGN
|
| 51 |
tries to recover by programming an immediate shutdown and cleaning up
|
| 52 |
some safe memory.
|
| 53 |
|
| 54 |
o Changed codes to use logged in username instead of account username
|
| 55 |
|
| 56 |
This change makes PvPGN use the username introduced at login (with the
|
| 57 |
exact case as in login) instead of the account name. This solves some
|
| 58 |
bugs (like could not edit profile in D2 if logged in with different case)
|
| 59 |
and also gets us more close to Battle.Net.
|
| 60 |
|
| 61 |
o Switched from string based tags to integer based tags
|
| 62 |
|
| 63 |
Codes have been dramatically changed to use integers for storing of tags
|
| 64 |
(client tags, architecture tags, etc) and thus when comparing tags we use
|
| 65 |
plain integer comparation instead of string comparation. This should
|
| 66 |
reduce CPU usage a lot.
|
| 67 |
|
| 68 |
o Optimized list handling codes
|
| 69 |
|
| 70 |
The list API has been changed and the codes have been optimized so it
|
| 71 |
will remove elements from the list upon request and not later, thus
|
| 72 |
eliminating a O(n) search and thus making PvPGN a lot faster.
|
| 73 |
|
| 74 |
o Unified and extended address translation system
|
| 75 |
|
| 76 |
We have unified all address translation files and codes to use a single
|
| 77 |
address_translation.conf file for this job. Also the file syntax has
|
| 78 |
been completly changed to be more flexible and allow configuration of
|
| 79 |
almost any thinkable NAT setup.
|
| 80 |
|
| 81 |
o IRC support reworked
|
| 82 |
|
| 83 |
IRC client support has been bugfixed, optimized and made to work with a
|
| 84 |
lot more IRC clients.
|
| 85 |
|
| 86 |
o Unified file based storage
|
| 87 |
|
| 88 |
File based storage (plain and cdb) have been unified into a single storage
|
| 89 |
backend (called "file") and the mode (plain/cdb) is just a parameter.
|
| 90 |
|
| 91 |
o Rewritten low level socket multiplexing codes (fdwatch2)
|
| 92 |
|
| 93 |
The codes which deal with how PvPGN knows which sockets are available for
|
| 94 |
reading/writing have been rewritten with a new interface which does not
|
| 95 |
presume (like the old codes) that the underlying OS allocates socket
|
| 96 |
values "close" (ex. WIN32 systems do not while most Unix based systems do
|
| 97 |
so). The new codes eliminates this presumtion and thus allows WIN32 hosts
|
| 98 |
to support a large number of connections as PvPGN supported Unix based
|
| 99 |
platforms.
|