Skip to content

[WIP] Sauerbraten source port for the 2020 edition

License

Notifications You must be signed in to change notification settings

Calinou/sauerbraten-source-port

Repository files navigation

Cube 2: Sauerbraten source port

A client mod for Cube 2: Sauerbraten. Aims for a vanilla-like experience, but more polished.

This mod can also be used as a server mod, although there are currently no changes to speak of when running as a server.

Currently based on Sauerbraten SVN revision 6217. Work is in progress to rebase on the 2020 edition and include the latest official fixes and improvements.

Features

  • Improved coloring for player numbers in the server browser (gray = empty, yellow = almost full, red = full).
  • Colored pings in the server browser and scoreboard (greener = better).
  • Improved coloring and capitalization for console messages.
  • New ^f9 console color code (light gray).
  • Automatic FOV adjustment for widescreen aspect ratios. Specify a 4:3 horizontal FOV and it will be adjusted automatically to any aspect ratio.
  • Strafe movement animation is now used when moving diagonally forwards.
  • Improved animation and zoom FOV interpolation using in-out easing.
  • Tweaked default color for bot waypoints to make them more visible.
  • Quad damage attack sound now plays continuously when firing the chaingun.
  • Customizable color for bot waypoints (e.g. /showwaypointscolour 0xffffff).
  • Customizable weapon trail colours (/rockettrailcolour, /rifletrailcolour, /grenadetrailcolour).
  • positionpacketdelay and disableenetlimits variables ported from sauer-sdl2. Both are set to values optimized for responsive, jitter-free gameplay by default.
  • Blob shadows are now displayed when shadow maps are enabled to fake ambient occlusion.
  • Tweaked blob shadows to be more subtle and fade more progressively when jumping.
  • Made the /ragdolleyesmooth and /ragdolleyesmoothmillis variables persistent across restarts.
  • Made the hudgun FOV variables (/avatarfov and /avatarzoomfov) persistent across restarts.
  • Exposed /dbgspawns 1 to debug playerstart spawn probability in local games and coop edit mode.
    • This feature is present in the vanilla codebase, but is commented out.
  • Improved hudgun swaying:
    • Slightly decreased overall swaying speed.
    • Increased swaying speed when moving forward/backward to compensate.
    • Subtle swaying is now applied when not moving to make the player feel more alive.
    • The /swayside, /swaystep and /swayup variables are now persistent.
  • Improved particle effects:
    • Players landing from a high jump now create a smoke puff (/landingvfx 0 to disable).
    • Entering and leaving water/lava now creates splash particles (/liquidvfx 0 to disable).
    • Teleports and teledests now emit blue sparks when used (/teleportvfx 0 to disable).
    • Jumppads now emit green sparks when used (/jumppadvfx 0 to disable).
  • Improved dynamic light effects:
    • Teleports and teledests now emit a blue dynamic light when used (/teleportvfx 0 to disable).
    • Jumppads now emit a green dynamic light when used (/jumppadvfx 0 to disable).
    • Hitscan shots now emit a dynamic light at the point of impact (/hitscanlight 0 to disable).
  • HUD improvements:
    • /hudicons 0 variable to hide icons on the HUD (defaults to 1).
    • /radardeadplayers 0 to hide dead player icons ("×") on the minimap.
    • /crosshairforceadditive 1 variable to force additive blending for crosshairs that contain an alpha channel (defaults to 0). If 0, "mix" blending is used as in the vanilla game.
    • /crosshairwaitalpha 0.0..1.0 to control the opacity of the crosshair while the weapon is reloading (1.0 is fully opaque, defaults to 0.5).
    • Crosshair health is now a smooth gradient (red-yellow-white). The crosshair will also progressively become greener if your health goes above 100.
    • Teammate crosshair is now displayed on top of the main crosshair so that you can still know your health status.
    • Tweaked the teammate crosshair color to be more visible.
    • Armor count is now colored depending on the current armor type.
    • Health and ammo are now hidden in instagib modes.
    • Health is now hidden while dead.
    • FPS counter is now colored depending on the framerate.
    • The respawn counter on the minimap now turns green when it reaches 0.
    • Blips on the minimap (flags, capture bases, in-game hold flag) now blink faster for easier recognition and following.
    • Game clock now becomes red (instead of yellow) when there is less than 1 minute left, and yellow when there are less than 3 minutes left.
    • Own chat messages (standard and team) are now displayed in light gray to be easier to distinguish from other players' messages.
    • Chat messages containing your name (case-insensitive) are now displayed in orange ("highlight" messages).
      • If your name contains clan tags or is frequently shortened by other players, define /chathighlightname to use an additional highlight word (in addition to your player name). This word is also case-insensitive.
  • Tweaked variable defaults:
    • aniso (016) – 16× anisotropic filtering to make textures look better when viewed at oblique angles.
    • conscale (0.330.42) – Larger console text.
    • consize (57) – More console messages on screen.
    • depthbits (024) – Fixes Z-fighting in large maps on Intel IGPs.
    • fov (10090) – Hor+ FOV is now used (the new value is equivalent to /fov 90 on 4:3).
    • zoomfov (3545) – Wider zoom FOV to be more useful in common situations (also using Hor+ now).
    • avatarzoomfov (25 -> 30) - Wider hudgun zoom FOV to match the new default zoom FOV.
    • fsaa (-14) – 4× MSAA to combat aliasing on polygon edges.
    • fullconsize (7585) – Taller full console (saycommand line is still visible just below).
    • guiclicktab (01) – Click to switch GUI tabs (instead of merely hovering them).
    • hidefrags (10) – Always display frags in the scoreboard, even in capture and CTF modes.
    • miniconsize (58) – More chat messages on screen.
    • minimapsize (810) – Sharper minimap.
    • showdeaths (01) – Display the number of deaths for each player in the scoreboard.
    • showwaypointsradius (200500) – See waypoints from further away.
    • soundbufferlen (1024768) – Lower sound latency.
    • soundfreq (2205048000) – Improved sound quality.
    • animationinterpolationtime (150220) – Smoother animation interpolation (visible on players).
    • zoominvel (250220) - More reactive FOV change when zooming.
    • zoominvel (100160) - Smoother FOV change when unzooming.
  • Tweaked variable limits:
    • conscale (0.001..1000.00.3..2.0) – Prevents the console from becoming unusable due to extremely low or high values.
    • minimapsize (7..107..11) – Even sharper minimap.
    • shadowmapsize (7..117..12) – Sharper/better-looking shadowmaps.
    • zoomfov (10..6010..150) – Allows for more subtle zoom FOV.

Installation

No binaries are provided yet. Therefore, you must build this project from sources to run it.

  • Clone this repository or download a ZIP archive.
  • Copy or symlink the packages/ folder from your Cube 2: Sauerbraten installation. (This must done because packages/ can't legally be redistributed in modified versions of the game.)
  • Compile a client and server binary. On Linux, enter make -C src install in a terminal while in the root folder of the cloned repository.
  • Run the game by entering ./sauerbraten_unix in the root folder.

License

Copyright © 2001-2020 Wouter van Oortmerssen, Lee Salzman, Mike Dysart, Robert Pointon, and Quinton Reeves

Mod changes © 2020-2022 Hugo Locurcio (see Git history)

Licensed under the Zlib license, see LICENSE.txt for details.