Releases: QW-Group/ezquake-source
Releases · QW-Group/ezquake-source
ezQuake 3.2
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 generationhud_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 expressionf_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 backpacksthunderdome
,smackdown
&qcon
all block hud group-picture changes during the matchthunderdome
,smackdown
&qcon
all block/gl_outline
as it can lead to seeing items & players through wallsr_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 listaliasedit
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
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 barsgroups
no longer spam error messages when specified image can't be loadedscore_enemy
,score_team
HUD elements now respect/teamlock
settingweaponstats
hud element added, same functionality as/scr_weaponstats
itemsclock
hud element has option to display simple item icon instead of 'RA' etcitemsclock
can have item types filtered out (remove GA, for instance)gamesummary
hud element added, flashing/counting total item pickups over matchkeys
hud element can target other players when playing back .qwd filekeys
hud element now works with recent server-side race demosscore_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
setskill
- 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
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
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, allowingcl_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