Change log/5.19

From Sven Co-op
Jump to navigation Jump to search

Important: Dedicated server operators running on Windows must install the Microsoft Visual C++ 2017 (x86) re-distributable package. This is available for free here: https://support.microsoft.com/en-gb/help/2977003/the-latest-supported-visual-c-downloads

1 Notable changes

  • Implemented Steam P2P (peer-to-peer) based network layer. Allows players to host listen servers without the hassle of port forwarding. (Usage: "connect STEAM_1:1:12345678")
  • The Anomalous Materials Laboratory in Half-Life now follows proper workplace safety regulations.
  • Our version of Hammer has been renamed to Svencraft to ensure the changes from our engine customisations are distinguished from vanilla GoldSrc map editors. (Mainly Hammer.) -- There is a new subsection for this in the SDK section towards the end.

2 Code

2.1 Game library

  • [Sound Engine] File names with spaces are parsed correctly now (Note: Even with this change it's still not recommended to use spaces in file names).
  • Implemented Discord rich presence.
  • Removed cached.wad, no longer needed (only used by the old WON builds for the console background image). The engine now skips this file if referenced by the "wad" key value.

2.2 Engine

  • [Event System] Event directories are now mounted as read only. Fixes BZ2 compression not working for the sound cache file.
  • [FastDL] Added URL encoding. FastDL should now work for files containing spaces and/or special characters.
  • [GameUI] Fixed Options Dialog not displaying all required tabs in some games.
  • [MP3 player] Added new commands "cd list" and "mp3 list" - prints the current track list.
  • [MP3 player] Fixed MP3 music not playing in some games when loading new map (i.e. "c0a0" in Half-Life).
  • [MP3 player] Default sampling rate is 44100 Hz now. (Was 22050 Hz.)
  • [MP3 player] Removed support for audio CD playback. All games that were using the legacy CD audio are now available with MP3 soundtrack, so this feature is no longer needed. Fixes an issue where the game would start playing audio CD, if there was one present in user's optical drive.
  • [MP3 player] The player now supports custom track lists (media/tracklist.txt). The default track list is still hard-coded in the engine and will be used as a fallback, if custom track list file doesn't exist.
  • [VGUI2] RichText: Fixed text selection starting with a new line character even when it shouldn't. Fixes a common problem where text copied from the developer console wasn't accepted by the console input line.
  • [VGUI2] TextEntry: The copy-paste feature no longer skips the last character for multi-line TextEntry components.
  • Added disconnect countdown to the "WARNING: Connection Problem" message. (Similar to Source.)
  • All "gfx.wad" related errors are non-critical now. (Worst case scenario, the "PAUSED"/"LOADING..." images won't be visible.)
  • "cl_timeout" values less than or equal to 0 now mean "no timeout". Fixes an issue where the client got disconnect immediately after joining a server, if "cl_timeout" met this condition.
  • Dedicated server no longer loads "gfx.wad" as it doesn't need it for anything.
  • Fixed the "heartbeat" console command. Forces heartbeat refresh of master server (Steam).
  • Fixed the "lambert" CVAR. Can be used to tweak studio model lighting (together with the "direct" CVAR). Requires "sv_cheats 255".
  • Fixed the "MAX_GLTEXTURES" client error. Studio and sprite textures are now unloaded after each map change. Added new debug command, "gl_texstats".
  • Implemented Steam P2P (peer-to-peer) based network layer. Supports NAT traversal and Steam relay servers. Ideal for listen servers. Can be disabled by adding "-nop2p" to launch options.
  • Improved OpenGL state consistency between the various draw methods. Fixes UI transparency not working correctly in some cases (i.e. VGUI2 text selection).
  • Map WAD loader now ignores following special WADs: gfx.wad, cached.wad, and fonts.wad, in addition to already ignored pldecal.wad/tempdecal.wad files.
  • Map WADs are now checked for correct lump type. Only lump type 67 (0x43, mipmapped picture) is allowed, other lumps are ignored. (Loading them could cause access violation.)
  • Migrated the engine to C++ and the latest Visual C++ toolset. Requires Visual C++ Re-distributable for Visual Studio 2017 (x86).
  • Removed support for 16- and 24-bit color depths (including the "-16bpp", "-24bpp", and "-32bpp" launch parameters). This is no longer useful as all relevant video adapters/drivers support 32-bit colors without any performance or compatibility issues. (The feature was broken anyway since the SteamPipe GoldSrc update.)
  • The engine now checks if there is room for another map WAD before loading it. (max. 128 map WADs)
  • Updated Steam API and libraries to version shipped with the latest Steamworks SDK (v1.43, 20th February 2019).
  • When joining a password protected server the user is prompted to (re)enter the password, if the "password" CVAR is empty or invalid.

3 Maps

3.1 Half-Life Campaign

  • Implemented workplace safety level alterations.

3.2 Half-Life Single Player Portal

  • Implemented workplace safety level alterations.

3.3 They Hunger

  • Implemented high-quality radio station music loops and ending credits music (Loungemeat - You Are What I Eat).
  • [TH_EP2_04] Removed the seamless teleport in the stairwell and merged both halves of the map together. Reworked some rooms so that they would fit. Optimized clip nodes.

4 Sounds

4.1 Weapons/Items

  • [They Hunger Weapons] Monofied all sound effects and increased volume for tesla gun effects.

5 SDK

5.1 Svencraft

Our version of Hammer has been renamed to Svencraft to ensure the changes from our engine customisations are distinguished from vanilla GoldSrc map editors. (Mainly Hammer.)

  • 2D views now show angle/size for brush transformations.
  • 3D view clear color can be changed from the "Options" dialog now. Defaults to teal.
  • Active 3D views are now refreshed by a timer - results in more stable frame rates.
  • Added new file filter option that displays both RMF and MAP files.
  • Added support for animated textures.
  • Added support for masked textures.
  • Added support for NPOT textures.
  • Added support for "sequence", "skin" and "body" key values.
  • Added support for transparent objects.
  • Default texture name is now saved per-game.
  • Enabled anisotropic texture filtering.
  • Face texture edit:
    • Larger texture preview to fit the widened dialogue.
    • Scales, shifts, and rotation will now be normalised up to 6 point precision instead of 2 point. (This fixes very precisely fitted textures being wrongly rounded when revisiting that face in the tool.)
    • Scales, shifts, and rotation will now have trailing zeros (and a subsequent trailing dot for whole numbers) trimmed. -- Expect nice and precise numbers like 1, 2.25, 1.325, 2.62421, etc. (No more 1.00, 2.50, etc.)
    • Using the justify options will no longer produce negative numbers or numbers equal to the texture size in the shift. (You should see zero figures more often when no shifting was really required.)
  • FGD Parser:
    • There is now an error message if the target FGD file does not exist.
    • Strings and tokens can be up to 1024 characters long now (was 128).
    • Fixed a freeze issue when parsing long strings (>128 chars). Error is displayed for strings longer than 1024 chars.
    • Fixed an issue where long comments (>512 chars) could cause parsing errors. Comment length is now unlimited.
  • File paths can now be up to 260 (MAX_PATH) characters long (was 128).
  • Fixed a potential crash issue caused by long status/error messages. Unified size of all message buffers.
  • Fixed studio models animating too fast, if there is more than one instance of the same model.
  • Game configs are now saved as XML. -- The editor can still load old binary WC game configs, but it can't save in that format any more.
  • Message window supports text selection and clipboard operations.
  • Messages generated early during the startup process are buffered (instead of being thrown away) and copied to the Message window once it's available.
  • Object properties:
    • Implemented angle dials for pitch and roll.
    • Implemented angle drop downs containing commonly used angles. (Can be disabled in the options.)
    • Interface tweaks to improve usability.
    • Key value changes are now applied immediately. It's no longer necessary to de-select the entity for the changes to take effect.
    • Smart Edit mode setting no longer resets when switching between entities.
  • Studio model animations now reset back to frame 0 when animations are disabled by the user.
  • Texture browser:
    • Added new scale/size modes: 400%, 200%, 100%, 50%, 25%, 32x32, 48x48, 64x64, 96x96, 128x128, 192x192, 256x256, 384x384, and 512x512.
    • Added option that will stretch small textures when in tile mode.
    • Fixed a problem where it wasn't always possible to scroll to the very top when using mouse wheel.
    • Fixed horizontal scrollbar being always visible even when not needed.
    • Polished the UI.
    • Set the filter combo-box to always have focus when opening the texture browser.
    • Texture group (WAD name) is now displayed for the selected texture.
    • Texture names are properly clipped now.
    • Texture previews maintain aspect ratio of the displayed texture (optional).
    • Window now has proper icon.
  • Texture filtering modes can be changed on-the-fly now. Multiple modes available: None, Bilinear, Trilinear, and Anisotropic 2x - 16x.
  • Texture lists are now saved per-game.
  • The crosshair in 3D views is now perfectly symmetrical.
  • Up to 100 WAD files may be loaded at once when adding WADs to a game configuration.
  • User Interface:
    • Added controls for the new rendering features to "Options->3D Views" (animated textures, NPOT textures, texture filtering modes, alpha blending, masked textures).
    • Added "Rename" button to the "Game Config" dialog. Added confirmation dialog for the "Delete config" operation.
    • Added "Reset" button to the texture dialog.
    • All dockable windows are resizeable now.
    • Cleaned up toolbar bitmaps. Fixed transparency.
    • "Editor options" and "Game configurations" are two separate windows now.
    • Message window is now dockable.
    • New "About" dialog.
    • New splash screen and program icons (courtesy of DGF).
    • New toolbar for file operations (New, Open, Save).
    • New toolbar and menu for rendering options (Masked textures, Animated textures, Blending, Studio model rendering, Studio model anims).
    • Replaced the old "MS Sans Serif" UI font with "MS Shell Dlg" (TrueType font).
    • Tweaked many dialogs for better user experience (bigger texture previews, more space for file lists, horizontal scrollbars for overflowing fields, etc.)
    • Updated the application to use MFC Feature Pack (better look and feel).
    • Updated the "Web Resources" menu.
  • Visgroups are no longer displayed after a map is closed.
  • When adding new WADs the list is checked for duplicates. Files that are already present on the list are skipped and the user is informed about what happened.
  • World size can be changed per-game.