pvpgn-server/NEWS

113 lines
4.7 KiB
Text
Raw Normal View History

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.