Skip to content

Releases: QW-Group/ezquake-source

ezQuake 3.2

19 Apr 07:46
Compare
Choose a tag to compare

Changelist from 3.1 > 3.2

Most development effort in the past few years has centred on the renderer update (3.5) so 3.2's changes are relatively small and mainly focused on bugfixes & demo playback.

Improvements

  • Windows static libary: SDL upgraded from 2.0.5 => SDL 2.0.8 (WASAPI sound by default)
  • Windows static libary: zlib upgraded from 1.2.8 => 1.2.11
  • Windows static libary: libcurl upgraded from 7.37.1 => 7.61.0
  • Windows static libary: expat upgraded from 2.1.0 => 2.2.6
  • Windows static libary: jansson upgraded from 2.7.0 => 2.11
  • mvd_moreinfo improvements (older servers/demos, still does a lot of guesswork)
    • only print location name on pickup announcements when more than one item on the map
    • list location of items if > 1 of that item on the map
    • if raw item name is in location name, only print location name when announcing item pickups
    • announces when the pickup is from a pack, rather than the item
    • location of item is stored when simple clock entries are added
    • store location of megas as players pick them up (maximum 4 megas)
  • itemsclock improvements (requires server to be running KTX 1.38+)
    • if KTX pickup/drop/spawn notifications are available they will be used (accurate, no .mvd guessing)
    • items-clock can have fixed entries for each major item on the map
    • items-clock can be filled with entries as match starts (/mvd_autoadd)
    • user can assign name major items on the map or remove (/mvd_name_item, /mvd_remove_item)
    • trigger f_demomatchstart fired at match start
    • /mvd_list_items will generate example list of items for config file generation
    • hud_itemsclock_style 5: lists backpacks, a space then items, in format "itemname : info"
    • backpacks can be added to the items list (/hud_itemsclock_backpacks), will be listed with the person who dropped the pack and who picked it up before disappearing
  • In-game backpacks can be colored according to their contents (/gl_custom_rlpack_color, /gl_custom_lgpack_color) (QTV/MVD only, KTX 1.38+ only)
  • Failed [ServeMe] connections will be removed from the playerlist (caused by nospecs)
  • Teaminfo hud element can include frags (%f/%F)
  • In KTX race mode, other players can be silenced with /s_silent_racing cvar
  • Added macros $team1 & $team2 to access the first two teams on the server (#256)
  • Demo capture can produce animated .png files (/sshot_format apng)
  • /ignore can now contain a regular expression
  • f_qtvfinalscores trigger fired when //finalscores notification detected in qtv stream
  • /cl_mvinset position & size can be set by user (/cl_mvinset_size_x sets relative size compared to screen)
  • /r_lerpframes is no longer disabled when using multiview
  • Team fortress grenade models should be flagged as grenades now (/gl_custom_grenade_color etc should work)

Ruleset changes

  • thunderdome allows simple-item backpacks & texture replacements for backpacks
  • thunderdome, smackdown & qcon all block hud group-picture changes during the match
  • thunderdome, smackdown & qcon all block /gl_outline as it can lead to seeing items & players through walls
  • r_skincolormode, r_enemyskincolor, r_teamskincolor blocked in TF games or if server blocks skin/color forcing
  • Team Fortress: scoreboard always color players by their teamname

Bugfixes

  • Loading a single player save file on 64-bit systems may cause crash shortly after resuming play (#297)
  • Dynamic lights correctly set during .dem playback (#298)
  • When viewing pre-selected weapon, the weapon only switches once the animation frame goes back to non-firing (#182)
  • /r_viewmodellastfired no longer shows last-fired weapon when starting match, moving to a new map or dying while not firing
  • QTV URLs can now include the QTV password (must have '/' separating command and password) (#295)
  • Gamma on screenshots was incorrect when system had more than 256 gamma ramps (linux) (#296)
  • BSP2 maps: fix crash when turb surfaces outside -9999/+9999 bounds (#323)
  • /ignore $name (allow the player to ignore their own messages) produced output during certain teamplay messages (#257)
  • /in_raw 0 - mouse input fixed (#308)
  • /scr_cursor_sensitivity is now functional again
  • Toggling multiview with inset window should alway keeps the current player in the primary view
  • Multiview was trying to cause increase in frames rendered (/cl_maxfps multiplied for each extra view)
  • Multiview inset window border now correctly set regardless of console:screen ratio
  • /mvd_moreinfo - multiple bugfixes
    • fix incorrect location name when reporting item pickups
    • pack drops are announced when the player dies, not when they respawn
    • weapon dropped now based on active weapon when dying, not last weapon fired
    • {} white-text wasn't stripped from item name cvars
  • Halflife maps had wrong bounding box sizes
  • hud_sortrules_includeself 0 could lead to player not being included in visible list
  • aliasedit could result in the end of previously entered text to appear at end of line

Removed

  • Removed functionality to control external MP3 player through ezQuake

Build/meta changes

  • OSX: Dialog to find .pak files on initial installation could point to 'my computer' location on Mojave
  • Added azure-pipelines.yml
  • Server: can now be built without USE_PR2 defined
  • .exe exports fields that AMD/nvidia drivers can use to always use accelerated graphics

ezQuake v3.1

27 Aug 22:26
Compare
Choose a tag to compare

Changelist from 3.0.1 > 3.1

Highlights

  • Internal server updated to mvdsv 0.32 (can run KTX again)
  • Support for large map formats (BSP29a and BSP2) and corresponding FTE extensions added
  • Server browser in OSX: URL sources fixed
  • Client-crash during /vid_restart due to console background settings fixed
  • FTE's VOIP support re-introduced (removed in 3.0). Must have SDL 2.0.5 or higher for microphone support.
  • Support for MVDSV protocol extension, improved coord accuracy for players & entity locations only (smoother gameplay on high ping)
  • Support for MVDSV protocol extension to help with movement through teleports on high ping (/cl_pext_lagteleport 1 to enable)

Demo playback

  • Various bugs fixed with /cl_multiview, particularly when using /cl_mvinset 1
  • Matchless .mvd files should now play back correctly
  • Trying to spectate a ghost/invalid-player now moves on to the next player, rather than 'sticking' on the current
  • /mvd_autotrack_team no longer sometimes switches back to generic autotrack selection
  • Item timer wasn't spawned for 2nd mega when player holds 2 megas and health falls under 100h
  • Item timer not spawned if player with mega fell under 100h but immediately picked up standard health
  • Item timer not spawned if player picked up armor after previously dying with armor left over
  • Item timers/game-clock could be incorrect on long server uptimes or long QTV connections
  • Connecting to a game in progress broadcast by QTV 1.11 should immediately set correct gametime
  • Connecting to server with protocol extensions doesn't break subsequent .dem playback
  • Added $demoname and $demolength (expected length of demo in seconds) macros to help with demo capture
  • /cl_demospeed now ignored during timedemo (some logic would think the game was paused)
  • /demo_capture in image mode will now also produce a .wav file of the corresponding audio
  • /demo_capture_background_threads allows background writing of screenshots
  • Can now playback demo files from within .zip files on linux systems
  • Client disconnections in .qwd with no explanation (client kicked in KTPRO?) doesn't end playback
  • /demo_jump_mark now detects marked points by any player/spec, not just the one currently tracked
  • /demo_jump_rewind added, when demo mark detected the client will play this many seconds prior to the mark being inserted

HUD

  • New Hud changes
    • all hud elements should now support the 'scale' property
    • frags hud element has extra fliptext options, and can display fighting-game-style power bars
    • groups no longer spam error messages when specified image can't be loaded
    • score_enemy, score_team HUD elements now respect /teamlock setting
    • weaponstats hud element added, same functionality as /scr_weaponstats
    • itemsclock hud element has option to display simple item icon instead of 'RA' etc
    • itemsclock can have item types filtered out (remove GA, for instance)
    • gamesummary hud element added, flashing/counting total item pickups over match
    • keys hud element can target other players when playing back .qwd file
    • keys hud element now works with recent server-side race demos
    • score_team/score_enemy should match +showteamscores when Team Fortress team scoring detected
    • Radar can use simpleitems for icons, show arc of fov, highlighting name fixed
  • Old Hud changes
    • /scr_sbar_lowammo option added, to control low ammo warning when using oldhud
    • New 'compact' mode added (/scr_compactHud 4)
  • Improved menu scaling on high resolutions

Renderer

  • dynamic lighting performance improved (ported from fodquake)
  • Can specify color of projectiles/shaft without creating custom textures (/gl_custom_*_color, /gl_custom_*_fullbright)
  • /r_shaftalpha now works when custom lg color set
  • /r_rocketlightcolor can now have an alpha element specified to control the strength of the effect
  • /cl_gibfilter will now filter gibbed heads even before the player respawns
  • /gl_outline 2 option for visualising geometry (cheats-enabled only, for map developers)
  • /crosshairscale allows larger built-in crosshairs to be built (rather than just making small images bigger)
  • /crosshairscalemode controls crosshair coordinates/sizes for pixel-to-pixel accuracy.
  • /r_skincolormodedead added, /r_skincolormode for corpses (-1 to use same)
  • /r_lerpframes caused all statics to use frame 0 of the model file (aka: large torches renderered as small on start.bsp)
  • /r_lightdecayrate controls how fast dynamic lights decay (1 = Quake default, 2 = ezQuake standard)
  • Support for translucent players in KTX's multi-race mode
  • Support for alpha-tested textures in standard Quake maps, not just halflife BSPs

Networking/server-browser

  • Support for MVDSV protocol extension, improved coord accuracy for players & entity locations only
  • Support for MVDSV protocol extension to help with movement through teleports on high ping (cl_pext_lagteleport to enable)
  • Added /cl_delay_packet_deviation to create random variation in ping
  • Fix issues with /cl_delay_packet (packet loss and jerky movement) when using the internal server
  • Server browser no longer corrupts sources.txt when saving
  • Server browser will now display searchstring when no servers match filter
  • Server browser no longer requires write access to folder when using URL sources
  • URL sources working in OSX again

Input

  • /weapon 10 and /weapon 12 implement client-side weapon cycling
  • /m_accel values less than zero now ignored
  • /vid_grab_keyboard stops window manager keybinds from interfering with the client (or vice versa)
  • /vid_minimise_on_focus_loss allows out of focus window to run fullscreen
  • Caps-lock keyboard status doesn't toggle when using it as a bindable key (Windows only)

Sound

  • Rulesets that block message triggers now also block sound triggers
  • Custom chat-sound selection is now only valid when spectating or watching demos
  • /s_chat_custom 0 now disables chat noises again
  • /s_show 2 now functions in non-debug builds, if map is in standby

System

  • Gamma: support ramp sizes other than 256
  • Mod trying to open directory on linux now fails correctly
  • Desktop resolution scaling now handled correctly on Windows
  • /vid_gamma_workaround - runtime toggle of workaround to set hardware gamma on Linux
  • /gl_gamma 0 is not treated as /gl_gamma 1 on startup
  • /cfg_load now respects /con_bindphysical setting
  • Heapsize defaults to using 128MB rather than 32MB (some newer TF maps require this)
  • Standard connection qw:// URLs now set /spectator 0

Other/misc

  • Single player games saved on non-normal difficulty should load correctly even if <gamedir>/server.cfg set skill
  • Menu: left/right now changes values, rather than changing tab
  • /tp_msg... commands can be used in teamplay macros
  • /fov set by the user updates /default_fov
  • 'flashed' state (blocking tp_msgpoint from working) wouldn't clear unless using MTFL ruleset (Team Fortress)
  • /dir command can take parameters to change output format (hide extensions/folders/filesize) - requested for nquake
  • /alias without arguments displays the contents of the alias
  • /con_timestamps 2 is restricted for players during the game
  • /scr_scoreboard_drawfps removed
  • /ruleset qcon (or any future ruleset that restricts sounds from server) now also restricts ktsound events

Internal

  • All thread-handling now uses SDL thread functions
  • Recursive legacy commands are blocked correctly
  • Fix crash when particle time set to 0
  • Fix crash when MSAA not supported
  • Fixed out-by-one bug on demo playlist
  • Buffer overflow bug in server browser fixed
  • Buffer overflow bug in regular expression handling fixed
  • Buffer overflow bug when checking if filename is valid

Build system

  • Meson build system added
  • Build no longer relies on xxd utility
  • Simple linux build script (build-linux.sh)

ezQuake 3.0.1

19 Jul 12:53
Compare
Choose a tag to compare

Changes in 3.0.1

Rulesets

  • Allowing alternate player models now determined by ruleset
  • Ruleset qcon reports the new player model (CapNBubs) as modified
  • Changing ruleset or /allow_scripts now releases all protected keys. Blocks /cl_idrive workaround.

Input

  • Added /con_toggle_deadkey cvar as a workaround for SDL2 deadkey-handling. Should stop first character typed at the console being corrupt when using a keyboard layout where the console toggle key is also an operating system deadkey.
  • Bugfix: keyboard operating system layout is used if the program is started and /cl_onload is set to a console command (was previously set to QWERTY until game started).
  • Bugfix: /cl_keypad cvar operational again, if set (default) then keypad & basic number keys can be bound independently. If turned off, keypad keys converted to standard keys, bindable as per QWCL.

Display

  • /gl_loadlitfiles now controls loading of all colored lighting, regardless if from .lit file or stored in the .bsp file. Hidden cvar /gl_noinlinergb removed.
  • Bugfix: horizontal fov was being increased when /viewsize caused effective aspect ratio to change. /scr_fovmode cvar controls how ezquake keeps the fov correct.
    • /scr_fovmode 0 (default) will use the aspect ratio of the monitor and then crop the image vertically. This matches the approach taken in QWCL
    • /scr_fovmode 1 will introduce horizontal letterboxing to keep the aspect ratio constant.

Menu

  • Ruleset qcon now available through menu
  • Sound: desired samples available through menu
  • "Light Mode" renamed to "Darken Map"
  • Bugfix: F2-F12 are now bindable in menu
  • Bugfix: When unbinding through menu, only keys that match the command are unbound (rather than all keys starting with the corresponding command)

Other

  • Various documentation corrections and updates.
  • Bugfix: Various memory leaks patched
  • Bugfix: /playdemo <longfilename> could crash client
  • Bugfix: console background resizes as console width/height changes.
  • Bugfix: ambient sound would not change volume if cl_maxfps was sufficiently high (leads to ambient sounds always playing or never playing)
  • Bugfix: on Linux systems, keyboard input will be grabbed as well as mouse when /in_grab_windowed_mouse set. Should stop window manager shortcuts from firing during game.
  • Bugfix: /connectbr will default to port 27500 if no port specified
  • Bugfix: No longer looks for files in root of the current drive if /userdir is empty

Build environment

  • Windows: can now access https:// server browser sources (libcurl library updated)
  • OSX: binary should now be compatible with OSX 10.9

ezQuake 3.0

04 Jun 15:16
Compare
Choose a tag to compare

Changes in 3.0

General

  • Major overhaul of backend code - now using SDL2 library for all three platforms. Linux & OSX versions in particular are now much improved.
  • Now use 4:3 /fov value and ezQuake will adjust for your resolution
  • Added /ruleset thunderdome, a less restrictive version of smackdown
    • Advanced particle effects are allowed in-game
    • /cl_rollalpha is enabled, allowing cl_rollangle to tilt opponents in the direction they are moving, but not the current player
  • Added /ruleset qcon, a more restrictive version of smackdown for tournament play
    • /play & /playvol commands are disabled
    • MP3 player is disabled
    • /gl_outline is disabled
    • /gl_brush_polygonoffset is disabled
    • A hard limit of 10 sequential wait commands
    • Hud images cannot be changed during the game
  • Added AFK status on scoreboard (see /scr_scoreboard_afk and /scr_scoreboard_afk_style)
  • Added support for 'new' player model by CapnBub (passes f_modified)
  • Added /gender to control gender of player in messages. Requires server support for streak messages to be correct
  • Added /con_fragmessages 2 option to show frag messages in the console, but not in the notification area
  • Added /con_mm2_only option to hide all messages which are not mm2 (/say_team) from the notification area during game
  • Added /lg_color command & /gl_custom_lg_color_enabled to allow lg bolt color to be set without replacing texture
  • Added ability for all mm2 codes to have fixed widths and alignments set. For example /say_team %<10r>l will print the player location, but fixed-width 10 characters, aligned right. Defaults can be set by (e.g.) /set tp_length_l 10; /set tp_align_l r
  • Added /tp_tooktimeout & /tp_pointtimeout to customise time before last taken/pointed item is blanked
  • Added /cl_textencoding to control outgoing formatting of unicode characters. FTE's ^U encoding now supported
  • Added /hud_score_bar options to allow player/team names to stay in the same order, regardless of current tracked player
  • Bugfix: server browser should be more stable
  • Bugfix: scoreboard would not appear in auto-screenshot if console was down at match end
  • Bugfix: /cl_delay_packet could cause packet loss
  • Bugfix: extended uptime led to jerky player prediction
  • Bugfix: starting client direct from qw:// url could lead to viewsize, fakeshaft having incorrect settings
  • Bugfix: where chat icons & player identifications were shown during intermission
  • Bugfix-ish: /setinfo rsnd 0 causing item pickups to not be detected... not fixed, but should happen less often
  • Removed /vid_wideaspect

Input

  • Added /in_raw to enable raw input (enabled by default). Replaces /in_mouse input selection method.
  • Added /sys_inactivesound 2, will play sounds when out of focus but not minimised
  • Added /in_release_mouse_modes, controls when the mouse cursor is released by the application when in windowed mode
  • Added /m_accel_power, /m_accel_senscap, /m_accel_offset - mouse acceleration now uses povohat's method
  • /sys_disableWinKeys now releases its lock on alt-tab, and re-establishes when switching back.
  • Now uses operating system keyboard layout by default. /in_builtinkeymap 1 switches back to Quake/American default
  • Removed /m_showrate

Audio

  • Lower latency audio - audio is now mixed in its own thread
  • Added /s_desired_samples to suggest a buffersize to audio thread
  • Added /s_listdrivers to print supported sound drivers (SDL information)
  • Added /s_audiodevice to choose which audio device to use (/s_audiodevicelist gives list)
  • Removed /s_mixahead

Video settings

  • Added /vid_usedesktopres to tell client to run at desktop resolution (enabled by default).
  • Added /sys_disable_alt_enter to block alt-enter toggling fullscreen (disabled by default)
  • Added /vid_conscale to scale screen resolution by constant if /vid_conwidth or /vid_conheight are zero
  • Added /vid_displaynumber to set which display to run on when fullscreen
  • Added /vid_win_displaynumber, /vid_win_width, /vid_win_height - windowed equivalents of fullscreen settings
  • Added /vid_win_save_pos, /vid_win_save_size to set cvars when window moved/resized by operating system events
  • Added /vid_24bit_depth toggles using 24-bit z-buffer (enabled by default)
  • Removed /vid_mode, /vid_customwidth, /vid_customheight

QTV

  • Added /qtv: /qtv <server> will spectate <server> via QTV (requires that server is listed on QTV website)
  • Added /find: /find <name> will return all players matching <name> (requires that server is listed on QTV website)
  • Added /qtv_fixuser to allows corrupt player userinfo strings from older versions of QTV to be corrected
  • When spectating via QTV, /join command will connect you to the server
  • Bugfix: muzzle flashes no longer appear in incorrect positions
  • Bugfix: stop /cl_demospeed from causing frozen explosion effects (can re-enable with /qtv_allow_pause)

Demo playback

  • New hud element 'static_text'. Enabled only when spectating, allows custom, multi-line text area on screen
  • Added support for playback of .qwd demos from QW 2.1 and up (protocol versions 24/25)
  • Added /cl_demoteamplay to let you view standard QW +showteamscores when watching NQ (.dem) demos. Players with -99 frags will appear as spectators
  • Bugfix: /demo_jump - works on .dem files, doesn't break prediction of players in .qwd files
  • Bugfix: /playdemo x.mvd will not attempt to play x.qwd then x.mvd
  • Bugfix: /demo_capture_max_vid_len allows splitting of .avi into multiple files, rather than producing corrupt .avi file due to limits of the format
  • Bugfix: /cam_pos now stops tracking player.
  • Bugfix: /demo_jump doesn't lose free-floating camera position during a rewind
  • Bugfix: .dem playback - player colors, particle trails, textures, third-person cameras and .lit files should work as normal.
  • Bugfix: .qwd playback - player prediction enabled, should be much smoother
  • Bugfix: scoreboard now obeys /teamlock (current player can have enemy color)

Other

  • Console variables can have "auto" values supplied, so the user can see the value being used by the engine rather than just the default values & currently set
  • Added /con_bindphysical to toggle /bind <key> interpretting <key> as based on operating system or Quake layout. Defaults to 1 at start of every configuration file and is reset at end.
  • Added /f_focusgained trigger
  • Added /batteryinfo command
  • Upper limit of 10 seconds on console notification times.
  • When searching for textures, precedence given to individual files over those found in .pak or .pk3 files
  • Can associate client directly with URLs in browser (i.e. ezquake-gl.exe qw://<serverip>)
  • Command and variable documentation is now compiled into the executable
  • Single makefile to make all platforms
  • Scripts to build using Travis CI and Docker
  • Removed: plugin system, software renderer, assembly code, security module, TCL scripting, FTE2 voice chat