Sauerbraten SDL2 Client
Sauerbraten SDL2 Client client for windows and linux. It also has some additional features and HUD customisations, that have been missing for years (all of them are disabled by default and separate configuration files are used). All configuration options are now integrated into the built-in main menu. You can get latest stable binary builds for windows and linux through the download button. Installation is simple, just put files in the game installation directory. No game data modifications are required.
It is an open source project and code is hosted on GitHub.
Features
- New HUD with highly customisable elements and several predefined HUDs
- All HUD customisations can be done via GUI
- New HUD elements: clock, scores, ammobar and lagometer [1]
- List of all players currently playing on registered servers
- Persistent player searches across all servers aka friend lists
- Server scoreboard previews [2]
- Options to show more statistics on scoreboard, like damage and accuracy
- Options to remove or customise particle effects and trails
- Options to customise chat and team text colors
- Per-weapon player's accuracy and damage statistics board [3]
- Use following player team in a spectator mode
- Spectator auto following flag carrier, killer and maxHP player modes
- New variable
positionpacketdelay
that decreases client's packet delay [4] - Command
/ignoreserver host [port]
to permanently ignore server on the list - Command
/demoseek min sec
to make a fast rewind to any position in a demo - Auto downloading demos from servers [5]
- Demobrowser to play demo files from the game GUI
- Option to play frag beep sound
- Command
/writeextendedcfg filename
to save only new variables in a file - Integrated main menu with all new submenus [6]
- New Alt+Enter shortcut for window minimisation
- Native build-in gamepad support
- Support of haptic force feedback(rumbling) devices
Screenshots
Better networking
By default Sauerbraten client sends around 30 player position packets per second. Server retranslates these packets to other clients with the same rate of 30 packets per second. Time between two received position packets from a server is also know as pj. Such low rates were used back in 90s for modem connection rates and are obsolete nowadays, only causing huge artificial network lags.
So position handing is working this way. The first step is when a client sends position packet with a delay of sender packet rate (33ms), then it takes a sender network delay before a packet reaches the server. Then server packet rate delay that varies from 0ms to 33ms occurs. And then the final receiver network delay takes place.
This results in artificial delays form 33ms up to 66ms. The first problem is that such values are significant compared to networks delays which are about half of a ping value. The second problem is that the delay varies about twice it's minimum value. Client side interpolation and (Sauerbraten uses client side hit detection) will have significant position errors because a time interval between two received position packets can be two times wider than the original one. Furthermore colliding frequencies of server's and client's packet rates are causing delays on a receiver side. When sender's network delay slightly increases, the time interval between two packets will be more than a server packet rate. So that packet may miss a server time slice. This could often happen even on a very good connection. It also could be seen on a lagometer, client pj will jump up to 66ms, twice the server packet delay time.
The sender packet rate of 125 packets per second with even the default server rate could improve position precision. Several client packets are send to a server per time slice, so additional delay will vary from 33ms to 41ms without any slice misses. And for a server with a lower packets delays of 10ms that value will be even much lower from 10ms to 18ms and position interpolation will be made with 100 packet per second (instead of 30).
In conclusion, client 8ms position packet delay and 10-20ms server one will give much better results. It will increase server traffic around 3 times, but that should not be a problem today. Also these changes are fully compatible with the Sauerbraten default client and server.
Servers with support of lower position delay: Remod
2. ^ To disable server previews use
showserverpreviews 0
option 3. ^ Due to current network protocol limitations statistics are gathered only after connecting to a server
4. ^ See Better networking section for a detailed explanation
5. ^ Demo downloading may be not allowed by server settings or modifications
6. ^ To use the default menu set
usenewmainmenu 0
and restart the
game