Page 1 of 4

Zandronum 1.3

Posted: Sun Oct 05, 2014 8:44 pm
by Torr Samaho
We are happy to announce the release of Zandronum 1.3!

Aside from the usual truckload of fixes, this version brings some major new features, most notably, persistent storage based on an SQLite database backend and an optional (and still experimental) account system. Also included are a client-side option for overriding player colors and a server-side dmflag for sharing keys between players.

Note that the account protocol implementation was updated according to the 7/6/2014 version of the protocol and requires an updated version of charonauth. [url=zandroauthtest.oscillicious.com:8080]This[/url] testing server should work.

Here is the full changelog since 1.2.2
[spoiler]

Code: Select all

*+	- Added persistent storage based on an SQLite3 database. The new CVAR databasefile controls where the database is saved (defaults to ":memory:", i.e. volatile in-memory database) and the new CVAR database_maxpagecount (defaults to 32768) controls the maximal allowed size in pages of the database. The new ACS functions
        void SetDBEntry ( string Namespace, string Key, int Value )
        int GetDBEntry ( string Namespace, string Key ),
        void SetDBEntryString ( string Namespace, string Key, string Value )
        string GetDBEntryString (string Namespace, string Key )
        void IncrementDBEntry ( string Namespace, string Key, int Increment )
        int SortDBEntries ( string Namespace, int Limit, int Offset, bool Descending )
        int CountDBResults ( int Handle )
        void FreeDBResults ( int Handle )
        string GetDBResultKeyString ( int Handle, Index )
        string GetDBResultValueString ( int Handle, Index )
        int GetDBResultValue ( int Handle, Index )
        int GetDBEntryRank ( string Namespace, string Key, bool Descending )
        void BeginDBTransaction ( )
        void EndDBTransaction ( )
        int GetDBEntries ( string Namespace )
      allow mods to access the underlying database. [Torr Samaho]
*+	- Added the Zandronum side of an optional account system based on authentication with the Secure Remote Password (SRP) protocol, AlexMax is working on the login server (https://github.com/AlexMax/charonauth).
		- The login server hostname can be specified with the new CVAR authhostname (masterhostname analog, port can be specified with ":port").
		- The new CCMD login allows a client to authenticate with the auth server the server has selected with its authhostname setting.
		- The new CVAR sv_forcelogintojoin (default false) can prevent unauthenticated players from joining the game (they can still connect as spectators).
		- The new ACS functions "int PlayerIsLoggedIn( int Player )" and "string GetPlayerAccountName ( int Player )" allow mods to obtain information about the account of a player.
	[Torr Samaho]
+	- Added new dmflag sv_sharekeys. When enabled, any keys picked are shared between players. Also, players joining the game get the keys others have as well. [Dusk]
+	- The ACS commands TakeInventory, SetActorProperty (only for speed and gravity) and SetAmmoCapacity don't cause network traffic unless they actually make a change to the affected actor. [Torr Samaho]
+	- The text scaling scaling mechanism (controlled by con_scaletext, con_virtualwidth and con_virtualheight) now can use the aspect ratio of the screen instead of 4:3. The new behavior can be activated using a new option in the text scaling menu or with the new CVAR con_scaletext_usescreenratio. [Torr Samaho]
+	- The authentication mechanism for non-map related lumps now allows Freedoom 0.8/Doom clients to join Doom/Freedoom 0.8 servers. [Torr Samaho] 
+	- Added a client movement buffer. Instead of processing all movement commands of a client immediately, they are stored in this buffer now. Each tic per client up to two commands in this buffer are processed. This way, players with an instable connection shouldn't appear as teleporting instead of moving to players with a stable connection. Note: This only changes how a player perceives the movement of other players. It has not effect on how a player perceives his own movement. [Torr Samaho] 
+	- The mdk cheat command can now be used online in cheat servers. Unlike in ZDoom, it is also allowed in deathmatch modes. [Dusk]
+	- The noclip command for spectators is now client-sided for increased responsivity. [Dusk]
+	- Added new ACS command GetGamemodeState. The return values are GAMESTATE_UNSPECIFIED = -1, GAMESTATE_WAITFORPLAYERS = 0, GAMESTATE_COUNTDOWN = 1, GAMESTATE_INPROGRESS = 2 and GAMESTATE_INRESULTSEQUENCE = 3. [Torr Samaho]
+	- Added new CVAR sv_forcerandomclass. If this is true, all players use the random player class regardless of the class they selected. [Torr Samaho] 
+	- Colored team names in exiting console messages and added extra console messages for CTF and Skulltag (scores, pickups, drops, etc.) (ported from Konar6's kpatch). [Torr Samaho]
+	- Added clientside CVAR cl_overrideplayercolors that overrides players' color translations. Allies will take the color of cl_allycolor and enemies the color of cl_enemycolor. These CVARs are white and black by default, respectively. cl_enemycolor is no-op when there are more than 2 teams, though cl_allycolor will still apply. [Dusk]
+	- Added new script type EVENT. By calling EVENT scripts the engine notifies a mod that a noteworthy event happened and also provides some information about the event using 'arg1' and 'arg2'. So far the following events are supported:
		GAMEEVENT_PLAYERFRAGS (player frags another player)
		GAMEEVENT_MEDALS (player receives a medal)
		GAMEEVENT_CAPTURES (player captures the flag/skull)
		GAMEEVENT_TOUCHES (player touches the flag/skull)
		GAMEEVENT_RETURNS (the flag/skull is returned)
		GAMEEVENT_ROUND_STARTS
		GAMEEVENT_ROUND_ENDS (the current round ends and the win sequence starts, e.g. when the fraglimit is hit)
		GAMEEVENT_ROUND_ABORTED  (the current round is ended prematurely, e.g. if all players leave the game)
	[Torr Samaho, Water] 
+	- Added new CCMD: listmusic, which will list all the currently loaded music. [Water]
-	- Added settings to fine tune the PWO behavior (CVARs pwo_switchonsameweight and pwo_switchonunknown). [Circunei Z]
+	- Added a new cvar: lobby, which applies lobby characteristics to a single map lump. In addition, if a map is set as a lobby map via the cvar, it is returned to after every other map. The lobby map is also returned to if the server is empty for more than 30 seconds. [AlexMax]
+	- Added an alias for the islobby MAPINFO tag: lobby. [AlexMax]
+	- Both types of lobby maps (MAPINFO and cvar) now ignore timelimits. [AlexMax]
+	- Added new ACS function RequestScriptPuke which requests execution of the given script on the server. The function must only be called from CLIENTSIDE scripts the script executed must be NET. [Dusk]
+	- Announcer sounds for pickups now can be disabled with the new CVAR cl_announcepickups (default true) (patch by dark-slayer-201). [Torr Samaho]
+	- Added the new vote type "forcespec" that forces a player to spectate. It can be disabled with the new CVAR sv_noforcespecvote (default false). [Torr Samaho]
+	- Added a connect sound that is played when a player connects to the server as spectator. It can be disabled with the new CVAR cl_connectsound (default true). Kudos to Revilution for creating a sound for this. [Torr Samaho]
-	- Extended the vote kick protection for admins to include players logged into RCON (ported from Konar6's kpatch). [Torr Samaho]
-	- Fixed: The server didn't report when the master server notified the server that it's banned (ported from Konar6's kpatch). [Torr Samaho]
-	- Fixed: Blood actors (or anything else which do not use net IDs) within save games would crash the game upon loading. [Dusk]
-	- Fixed: Clients were not properly informed about the reset of moving non-door polyobjects during map resets. [Torr Samaho]
-	- Fixed: Using SetAmmoCapacity on an ammo type a player didn't have online caused the clients to assume that the player now has a small amount of this ammo type. [Torr Samaho]
-	- Fixed: The view was not centered in demos when the recording player released the mouse look button and lookspring was true. [Torr Samaho]
-	- Fixed: Players sometimes could jump up through solid 3D floors online when unlagged was on. [Torr Samaho]
-	- Fixed: A_CrusaderRefire did not work properly online, causing the Crusader to desync. [Dusk]
-	- Fixed: Strife's Flamethrower did not shake the player's view online. [Dusk]
-	- Fixed: The server would crash with join passwords longer than 64 characters. [Dusk]
-	- Fixed: Skins defined with SKININFO didn't work properly if the sprite entry was not set explicitly. [Torr Samaho]
- 	- Fixed: Tampered clients could insert ASCII control characters into chat messages (e.g. line breaks) (ported from Konar6's kpatch). [Torr Samaho]
-	- Fixed: Strife's crossbow did not appear to use ammo on clients online. [Dusk]
-	- Fixed: Clients using endgame while attempting to connect would not terminate the connection attempt. [Dusk]
-	- Fixed: Telefregging shouldn't count towards awarding the Fisting and Spam medals (ported from Konar6's kpatch). [Torr Samaho]
-	- Fixed: Toggle crouch shouldn't reset when menu is activated during a netgame. [Jam]
-	- Fixed: Monsters would become "blind" if the player who awoke them by sound became a spectator. [Dusk]
-	- Fixed: When spawning more than 2 hellstaff rains in Heretic, the old ones would linger around on the client instead of disappearing. [Dusk]
-	- Fixed: The linetarget cheat now prints the actor's actual health value. [Dusk]
-	- Fixed: When a player turned into spectator the dynamic lights associated to the player's body were not removed. [Torr Samaho]
-	- Fixed: A_PoisonBagInit desyncs between the client and server. [Water]
-	- Fixed: Medals now show for who you are spectating instead of always your own. [Water]
-	- Fixed: The server possibly announced player disconnects for players that didn't fully connect. [Torr Samaho]
-	- Fixed: When a player is damaged, don't send useless inconsistent values of HP and Armor (100/100) to the clients if they're not allowed to see the real HP/Armor. [Edward-san]
-	- Fixed: Line_SetBlocking didn't work properly online. [Dusk]
-	- Fixed: A_GiveInventory and A_GiveToTarget didn't work on CLIENTSIDEONLY actors. [Torr Samaho]
-	- Fixed: "botdebug_walktest 1" caused the game to crash when the player was looking through the eyes of a non-player actor. [Torr Samaho]
-	- Fixed: turn180 did not work as a spectator. [Dusk]
-	- Fixed: Gravity was applied twice in one tic when running off a cliff with compat_123b33jumpphysics enabled when it shouldn't be. [AlexMax]
-	- Fixed: Some ordinals weren't written correctly in the spectator queue message. [Esum]
-	- Fixed: Non-interacting actors like map spots would have their TIDs reset to 0 on map resets. [Dusk]
-	- Fixed: The server didn't load the archived value of SERVERINFO CVARs (e.g. sv_smartaim). [Torr Samaho]
-	- Fixed: The chat length limit of 128s was not enforced online. [Dusk]
-	- Fixed: The server could erroneously show "FindStateLabelAndOffset" warnings. [Torr Samaho]
-	- Fixed: an opportune string could cause a buffer overflow while getting the address from a hostname. Thanks to kazzmir for reporting the vulnerability. [Edward-san]
-	- Fixed: +WEAPON.NOAUTOAIM did not disable horizontal autoaim with projectile weapons. [Dusk]
-	- Fixed: Monsters near the bottom of a ledge or fence sometimes appeared as teleporting up on clients online. [Torr Samaho]
!	- Changed huffman code from Hexen II's to that provided by Vortex Cortex. [Blzut3, Vortex Cortex]
!	- Changed the Offline Skirmish frag slider bar to go in intervals of 1 instead of 5. [Water]
!	- The CCMD playerinfo now distinguishes true spectators from in game players (ported from Konar6's kpatch). [Torr Samaho]
!	- Botscript rand() renamed to random() and now returns a value between min and max inclusive instead of leaving max out of the possibilities. Now is actually random and now swaps min and max if min is greater than max instead of throwing a runtime error. [Dusk]
!	- Medals are only awarded when the game has started (is not in countdown). [Water]
!	- If the map rotation is not empty, the server now prevents map/changemap votes to maps that are not in the rotation, regardless of whether of sv_maprotation is true. This allows the server to restrict these votes without enforcing the rotation itself, which would also enforce the order in which the maps are played (adapted from an old patch of TIHan). [Torr Samaho]
!	- Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax]
!	- The server now ignores client ping packets that don't make sense. [Torr Samaho]
!	- The team selection menu now is kept in sync with the local player's team, unless it was set to random. [Dusk]
!	- Changed the chat muting report: the server will inform the muted client how much time is left also in seconds. [Edward-san]
[/spoiler]

Binaries are available from our downloads page, as per usual.

Please remember that minor version bumps do not include major changes to the ZDoom base.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 8:56 pm
by Dusk
Another great release out, thanks to everyone involved!

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 8:59 pm
by Watermelon
The dream of the database system...
If the skulltag forums were still around, I could find my post begging for it way-back-when.

Wooo @ 1.3

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:18 pm
by Cruduxy
Great work for a greater changelog :P. Thanks to everyone working on zan.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:35 pm
by SlowSheep
Good release :)
I've seen some interesting new features too

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:40 pm
by fr blood
Good job to all the team.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:42 pm
by Zeberpal
oh wow, EVENT script types!

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:42 pm
by Kara Kurt
Excellent work guys !

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:44 pm
by MrSetharoo
Keep it up guys. Can't wait for the next version .

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:46 pm
by TerminusEst13
Torr Samaho wrote:+ - The ACS commands TakeInventory, SetActorProperty (only for speed and gravity) and SetAmmoCapacity don't cause network traffic unless they actually make a change to the affected actor. [Torr Samaho][/code]
Oh my goodness yes.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 9:49 pm
by Zanieon
LOL didn't expected this to release so soon, but yay, another version.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 11:24 pm
by Espio
Finally, no more getting stuck in key rooms that other players opened while not having the specific key yourself to get out.

RE: Zandronum 1.3

Posted: Sun Oct 05, 2014 11:33 pm
by Jenova
Good work, but unless I am missing something, logging in to the auth server doesn't actually seem to do anything (from in-game).

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 12:07 am
by AlexMax
Jenova wrote: Good work, but unless I am missing something, logging in to the auth server doesn't actually seem to do anything (from in-game).
There's something amiss with the port number interpretation of the cvar. Until a serverside fix is released, if you omit the port number completely and change the port of charonauth to 15301, it should work.

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 1:23 am
by Tsukiyomaru0
Nice.... Sadly, still crashes with nvoglnt.dll on my computer when I try to use OpenGL, unlike Zandronum 2.0

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 6:03 am
by Torr Samaho
Jenova wrote: Good work, but unless I am missing something, logging in to the auth server doesn't actually seem to do anything (from in-game).
Are you sure that you're using an auth server compatible with the 7/6/2014 version of the protocol? Try "authhostname zandroauthtest.oscillicious.com:16666". This one works fine for me. You can create an account with the link in the first post.
AlexMax wrote: There's something amiss with the port number interpretation of the cvar. Until a serverside fix is released, if you omit the port number completely and change the port of charonauth to 15301, it should work.
Strange. Switching to 16666 works fine for me, see above.
Tsukiyomaru0 wrote: Nice.... Sadly, still crashes with nvoglnt.dll on my computer when I try to use OpenGL, unlike Zandronum 2.0
Zandronum 2.0 contains the updated GZDoom renderer, which fixes your problem. Which GPU do you have? Usually NVIDIA GPUs already work fine with the old GZDoom renderer.

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 7:42 am
by Frits
oh boy, forcing enemy colors finally.
Amazing work as always :)

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 12:41 pm
by Monsterovich
SUDDENLY AND FINALLY.
Good job! :smile: Yeah, these sqlite databases (!) and new ACS commands would be useful, but...

[spoiler]
- The new CVAR sv_forcelogintojoin (default false) can prevent unauthenticated players from joining the game (they can still connect as spectators).
I know that some servers will force you to register. Since this day... Welcome to Zdaenum!

And as a result you'll get something like this...
REGISTER OR GTFO
Image
REGISTER OR GTFO
Enjoy![/spoiler]

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 1:54 pm
by mard
I see some really nice entries on the changelog. Great work.
Also, a FreeBSD build would be greatly appreciated.

RE: Zandronum 1.3

Posted: Mon Oct 06, 2014 2:26 pm
by Klofkac
mard wrote: I see some really nice entries on the changelog. Great work.
Also, a FreeBSD build would be greatly appreciated.
FreeBSD should be binary compatibile with Linux binaries. You can try running the Linux version.