113 lines
4.7 KiB
Text
113 lines
4.7 KiB
Text
|
|
||
|
PvPGN 1.7.x Major Changes And New Features
|
||
|
==============================================
|
||
|
|
||
|
o Westwood Online (WOL) support
|
||
|
|
||
|
This is a historic moment in the life of the PvPGN project. For the first
|
||
|
time a different gaming network than Battle.net is supported with PvPGN.
|
||
|
Current supports includes almost complete support for Tiberian Sun (TS)
|
||
|
and basic support for Red Alert 2 (RA2) and Yuri's Revenge (YR).
|
||
|
|
||
|
o WIN32 GUI for d2cs and d2dbs
|
||
|
|
||
|
d2cs and d2bs now feature a new slick GUI if build under WIN32.
|
||
|
|
||
|
o Instant startup (partial)
|
||
|
|
||
|
PvPGN now can startup in a lot lesser time than before, this is due to
|
||
|
code changes which make it not load all accounts at startup. This
|
||
|
improvement should be mostly noticed on very high number of accounts
|
||
|
servers. Note that currently this happens only to SQL storage types
|
||
|
(the file based storage types still load all accounts at startup).
|
||
|
|
||
|
o Optimized account loading/saving codes
|
||
|
|
||
|
Account loading/saving codes have been rewritten allowing PvPGN to scale
|
||
|
a lot better with a high number of online users (ie lower CPU usage).
|
||
|
|
||
|
o Better game result calculation
|
||
|
|
||
|
Game result decision has been completly changed to use a democratic
|
||
|
ellection scheme (ie it bases the decision on the oppinions of the most
|
||
|
results). This should solve problems with game results beeing wrong under
|
||
|
some situations (like team games).
|
||
|
|
||
|
o New WIN32 compiler/enviroment support
|
||
|
|
||
|
Now you can compile PvPGN under WIN32 using complete GPL/free build tools
|
||
|
by using Dev-C++ project and additional tools (mingw, etc).
|
||
|
|
||
|
o Optimized handling of D2 clients
|
||
|
|
||
|
Replaced a O(n) search algorithm through the client connection list used
|
||
|
mostly by D2 handling functions with a O(1) algorithm.
|
||
|
|
||
|
o Optimized timers codes
|
||
|
|
||
|
Timers codes have been rewritten so the most used functions complete a
|
||
|
lot faster than before. This improves PvPGN CPU usage a lot because some
|
||
|
timers functions are used very often inside PvPGN.
|
||
|
|
||
|
o Memory management changes and optimizations
|
||
|
|
||
|
There has been added some memory management wrappers functions which
|
||
|
never fail and thus the calling codes were simplified a lot by removing
|
||
|
checks to memory allocation failures. If memory allocation fails PvPGN
|
||
|
tries to recover by programming an immediate shutdown and cleaning up
|
||
|
some safe memory.
|
||
|
|
||
|
o Changed codes to use logged in username instead of account username
|
||
|
|
||
|
This change makes PvPGN use the username introduced at login (with the
|
||
|
exact case as in login) instead of the account name. This solves some
|
||
|
bugs (like could not edit profile in D2 if logged in with different case)
|
||
|
and also gets us more close to Battle.Net.
|
||
|
|
||
|
o Switched from string based tags to integer based tags
|
||
|
|
||
|
Codes have been dramatically changed to use integers for storing of tags
|
||
|
(client tags, architecture tags, etc) and thus when comparing tags we use
|
||
|
plain integer comparation instead of string comparation. This should
|
||
|
reduce CPU usage a lot.
|
||
|
|
||
|
o Optimized list handling codes
|
||
|
|
||
|
The list API has been changed and the codes have been optimized so it
|
||
|
will remove elements from the list upon request and not later, thus
|
||
|
eliminating a O(n) search and thus making PvPGN a lot faster.
|
||
|
|
||
|
o Unified and extended address translation system
|
||
|
|
||
|
We have unified all address translation files and codes to use a single
|
||
|
address_translation.conf file for this job. Also the file syntax has
|
||
|
been completly changed to be more flexible and allow configuration of
|
||
|
almost any thinkable NAT setup.
|
||
|
|
||
|
o IRC support reworked
|
||
|
|
||
|
IRC client support has been bugfixed, optimized and made to work with a
|
||
|
lot more IRC clients.
|
||
|
|
||
|
o Unified file based storage
|
||
|
|
||
|
File based storage (plain and cdb) have been unified into a single storage
|
||
|
backend (called "file") and the mode (plain/cdb) is just a parameter.
|
||
|
|
||
|
o Rewritten low level socket multiplexing codes (fdwatch2)
|
||
|
|
||
|
The codes which deal with how PvPGN knows which sockets are available for
|
||
|
reading/writing have been rewritten with a new interface which does not
|
||
|
presume (like the old codes) that the underlying OS allocates socket
|
||
|
values "close" (ex. WIN32 systems do not while most Unix based systems do
|
||
|
so). The new codes eliminates this presumtion and thus allows WIN32 hosts
|
||
|
to support a large number of connections as PvPGN supported Unix based
|
||
|
platforms.
|
||
|
|
||
|
o Added more storage types: SQLite3 and ODBC
|
||
|
|
||
|
With 1.7.x PvPGN now supports besides the MySQL/PostgreSQL SQL backends
|
||
|
also SQLite3 (www.sqlite.org) and ... ODBC SQL engine !! This means that
|
||
|
theoretically now you should be able to use PvPGN with almost any SQL
|
||
|
engine as long as an ODBC driver exists for it.
|
||
|
|