Page 1 of 3

Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:05 pm
by Torr Samaho
I'm happy to announce the first official 1.3 beta build. If all goes well, this could also be the last beta build before the final release of 1.3.

Since this is the first official 1.3 build, here is the full list of changes compared to Zandronum 1.2.2:

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). The new ACS functions
        void SetDBEntry ( string Namespace, string EntryName, int EntryValue )
        int GetDBEntry ( string Namespace, string EntryName ),
        void SetDBEntryString ( string Namespace, string EntryName, string EntryValue )
        string GetDBEntryString (string Namespace, string EntryName )
        void IncrementDBEntry ( string Namespace, string EntryName, int Increment )
      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]
-	- 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]
!	- 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]
!	- Calling a server-side NET script from the client-side will now request the server to puke the script. This mechanism cannot retrieve the return value of the script and non-NET scripts cannot be run at all. However, defering client-to-server scripts is possible. The old behavior can be restored with a new compatflag: compat_clientacsexecute. [Dusk]
!	- Renamed compat_123b33jumpphysics to compat_oldzdoomzmovement, which is a more accurate description of what the flag actually does. [AlexMax] 
If you'd like to start tinkering with the new ACS functions, you'll need to add the following to your zspecial.acs:

Code: Select all

	-106:KickFromGame(2),
	-107:GetGamemodeState(0),
	-108:SetDBEntry(3),
	-109:GetDBEntry(2),
	-110:SetDBEntryString(3),
	-111:GetDBEntryString(2),
	-112:IncrementDBEntry(3),
	-113:PlayerIsLoggedIn(1),
	-114:GetPlayerAccountName(1),
Using EVENT scripts also requires a special version of acc.

To get started with the account system, you can use AlexMax's charonauth to run an account server locally. Note: The account protocol is not fully finalized, so this beta may be incompatible with future versions of the account server.

Downloads:

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:39 pm
by Slim
Well, so much for waiting for 2.0 to fix stuff and get a better ZDoom build.. This'll do momentarily I guess, since the account system is finally live and couple new ACS functions (finally).

Also, MDK works online now... After how long? Three years? Prepare your keyboards because, I personally forgot it existed. :/

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:43 pm
by Frits
awesome!

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:44 pm
by Torr Samaho
Suicide Slim wrote: Well, so much for waiting for 2.0 to fix stuff and get a better ZDoom build.. This'll do momentarily I guess, since the account system is finally live and couple new ACS functions (finally).
I also plan to release a new 2.0 beta build soon that has everything 1.3 has plus the ZDoom updates. 2.0 is not mature enough yet to release it as stable soon, that's why we are preparing the release of 1.3.
Suicide Slim wrote: Also, MDK works online now... After how long? Three years? Prepare your keyboards because, I personally forgot it existed. :/
And your point is? We should not fix old bugs?

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:48 pm
by Slim
Torr Samaho wrote:
Suicide Slim wrote: Also, MDK works online now... After how long? Three years? Prepare your keyboards because, I personally forgot it existed. :/
And your point is? We should not fix old bugs?
My point was, that it just took awhile to get around to, and that some people might've forgotten it as a console cheat. Shouldn't most commands that run fine in singleplayer work online as well? Besides saving and etc of course.

Edit: Yes I do understand 2.0's on the way, It's just got a little more time then.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 7:57 pm
by Torr Samaho
Suicide Slim wrote: Shouldn't most commands that run fine in singleplayer work online as well? Besides saving and etc of course.
Surely, they should. But problems with cheats not working online are usually treated with very low priority.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 8:02 pm
by Slim
Torr Samaho wrote:
Surely, they should. But problems with cheats not working online are usually treated with very low priority.
I was just saying, regardless of whether it was a cheat or not, it was a command that failed to work online, and just got fixed late. Not bashing or anything it's just that after awhile of Zandronum, we should have the Singleplayer elements in Multiplayer retain functionality.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 8:21 pm
by Hypnotoad
Why aren't the sorting functions in this version?

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 8:25 pm
by Catastrophe
So how would I set up an account?

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 8:40 pm
by Torr Samaho
Hypnotoad wrote: Why aren't the sorting functions in this version?
I didn't have a chance yet to make the ACS interface changes discussed in the tracker ticket and neither want to delay the 1.3 build nor include ACS functions for which I know that their interface is not final.
Catastrophe wrote: So how would I set up an account?
Run charonauth locally, open its web front and create a user. Setting up charonauth is still a bit involved. I'll ask AlexMax if I can copy and paste the instructions he wrote for me here.

EDIT: AlexMax will post instructions on how to use charonauth here later.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 9:03 pm
by Hypnotoad
Torr Samaho wrote: I didn't have a chance yet to make the ACS interface changes discussed in the tracker ticket and neither want to delay the 1.3 build nor include ACS functions for which I know that their interface is not final.
Any ETA on when a public beta with these functions will be available? Unfortunately I personally can't make much use of this current build without these functions.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 9:05 pm
by Catastrophe
Torr Samaho wrote:
Catastrophe wrote: So how would I set up an account?
Run charonauth locally, open its web front and create a user. Setting up charonauth is still a bit involved. I'll ask AlexMax if I can copy and paste the instructions he wrote for me here.

EDIT: AlexMax will post instructions on how to use charonauth here later.
Thank you :smile:

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 9:06 pm
by Cruduxy
Does the blood fix also apply to hexen -Hubs-? Custom blood decals cause object errors when returning to a level and crash the game.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 10:52 pm
by TerminusEst13
Magnificent.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 11:01 pm
by fr blood
Finally, if decorate's option are updated close to a recent zdoom version, that could be very interesting, for some new projects.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Thu Jul 03, 2014 11:36 pm
by ibm5155
list music will list all musics defined on maplist or even that musics loaded by acs will be listed? :S

RE: Zandronum 1.3-alpha-140703-1806

Posted: Fri Jul 04, 2014 2:56 am
by AlexMax
HOW TO USE THE AUTHENTICATION SERVER FOR AUTHENTICATION TESTING FOR GREAT GOOD

This application is
  1. Not finished. There's stuff that's still kinda broken, and I cannot even guarantee that the database schema won't change between now and the 1.0 release of charonauth.
  2. Not really designed to be easy for end users to run on their own. It's aimed at server administrators who can do the legwork of deploying it.
That said, if you're serious about toying around with it locally, maybe so you can work on a modification that relies on accounts, here's how you do it. Note that installing this on windows is a pain in the butt and should not be used for production systems - I only support it because I like working on my desktop PC with Windows installed.

You need to install:
  • git.
  • Python 2.x.
  • A recent version of Node.js. You want a version of node.js that's 0.10.something. If you're on debian, backports has it. If you're on CentOS, EPEL has it.
  • A C++ compiler, either gcc on linux, clang on OSX or Visual C++ Express for Desktop on Windows.
  • OpenSSL development packages. If you're on linux, install openssl-dev or whatever it's called. If you're on OSX, install a recent OpenSSL via homebrew. If you're on Windows, you need one of these packages. Get the non-lite version, and get the version that is the same architecture (32/64) as your Node.js installation. If you try and install it and it gives you a warning about missing a Visual C++ redistributable, heed the warning and download the Visual C++ 2008 redistributable for the same architecture (32/64). See, I told you that Windows was a pain in the butt.
Once you have everything installed, this is how you install the login server itself.
  • Create an empty directory
  • Either git clone or download my repository as a ZIP file and extract to the directory. Here is my repository.
  • Open a command prompt in the charonauth directory and npm install
  • Next, npm install sqlite3. I haven't tested it with other databases, and since you're only testing it locally it should be more than adequate.
  • Copy the charonauth-default.ini file to charonauth.ini and fill it out.
  • Run npm test at the command prompt. All of the tests should pass. If they don't, you're probably using an incompatible version of Node.js or OpenSSL.
  • Finally, at the command prompt, ./bin/charonauth on Linux/OSX or node .\bin\charonauth on Windows.
If all goes well, the server should be up and running. You should see something like:

Code: Select all

PS C:\Users\Alex\Workspace\charonauth> node .\bin\charonauth
info: Starting up...
info: Forking 1 web worker processes.
warn: Authentication forced to single process due to nodejs limitation.
info: Authentication worker 6340 starting...
info: Web worker 6212 starting...
info: Authentication worker 6340 started.
info: Web worker 6212 started.
The warning only appears on Windows and it simply says that the authentication subprocess must run by itself, without splitting work among multiple workers.

Open a web browser and hit localhost:<web_port_you_configured> and you should see a web interface. Some of the links don't work, but Register and Login should, so you can add an account.

All you have to do now is configure the Zandronum server to point at your login server. The cvar should be authhostname and should take an ip:port representation.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Fri Jul 04, 2014 3:11 am
by mifu
I gota play around with this. Might set that up on my server box this weekend.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Fri Jul 04, 2014 6:16 am
by Torr Samaho
Hypnotoad wrote: Any ETA on when a public beta with these functions will be available? Unfortunately I personally can't make much use of this current build without these functions.
They should either be in the final of 1.3 or the next 1.3 beta, in case we have to make another beta before the final.
Cruduxy wrote: Does the blood fix also apply to hexen -Hubs-? Custom blood decals cause object errors when returning to a level and crash the game.
It should, but please test to verify this.
fr blood wrote: Finally, if decorate's option are updated close to a recent zdoom version, that could be very interesting, for some new projects.
Following our version scheme, Zandronum 1.3 doesn't have any ZDoom updates. ZDoom updates bump the major version, so the next round of ZDoom updates is in Zandronum 2.0.
ibm5155 wrote: list music will list all musics defined on maplist or even that musics loaded by acs will be listed? :S
Only music referenced in the level info.

RE: Zandronum 1.3-alpha-140703-1806

Posted: Fri Jul 04, 2014 9:15 am
by Cruduxy
Torr Samaho wrote:
Cruduxy wrote: Does the blood fix also apply to hexen -Hubs-? Custom blood decals cause object errors when returning to a level and crash the game.
It should, but please test to verify this.
Tested it on Hexen deathkings and a wad with both custom blood and monster randomizers. One of two things happen :
A)Level ends with object code error (0) and am returned to console and title screen.
B) Game crashes and generates an error report.
One of the error reports : https://www.sendspace.com/file/8bvy68

Tested it on GZdoom and zdoom, neither crashed.

note : the wad I tested with "hexen-monspeed0.2" has an identical version on bestever although labelled 0.1.

To reproduce the crash :
1)load the wads.
2)Go to map42.
3)Kill some of the monsters.
4)Take any of the portals to a sub-level.
5)Use that level's portal at start to return to hub.
6)Zandronum crashes.