- In-Game Voice (VoIP) support for servers that support it (/cl_voip 1; ioq3 server: /sv_voip 1). Full instructions are here. Bind a key to +voiprecord to talk, '/voip muteall' to mute all. It requires OpenAL and a high /rate.
- Raw Mouse Motion (High-Definition) and Raw Mouse Keys support: in_rawmouse 1; it also eliminates cases of negative acceleration.
- 'bumpy' renderer, dmaEX 'Surround' audio on all OSes
This project replaces only the .exe of urban terror with a latest version of ioq3 engine, optimized and enriched with several new features and fixes. It does not require q3 and is compatible for online play.
Notable features:
- Raw Mouse Motion (High-Definition) and Raw Mouse Keys support: in_rawmouse 1; it also eliminates cases of negative acceleration.
- "bumpy" renderer with VBOs, Bump mapping, GLSL, Bloom, Depth of Field Blur, Fog, Fancy Water, Improved Decal Code, and more. Faster than vanilla q3 renderer on r_simpleshaders 1 (set by default for performance; 0 to get its effects).
- Several Surround even on Stereo Headphones Systems (Hear audio coming from the back differently):
- dmaEX audio with low CPU consumption (the default; s_useopenal 0, s_useikalizer 0)
- OpenAL with OpenAL-Soft library or a hardware implementation (s_useopenal 1 and appropriate library). It is also required by VoIP.
- iKALiZER: the most fully featured but Win32 only (s_useikalizer 1, s_useopenal 0)
- dmaEX audio with low CPU consumption (the default; s_useopenal 0, s_useikalizer 0)
- Funstuff, Radio Audio and part of other audio are pre-Loaded to avoid potential freezes of FPS (shown with blank gaps on lag meter). This was a q3-wide UrT issue that applied when someone else joins the game or funstuff is set on the fly, or when some audio files are heard for the 1st time. [Bug reports: 1, 2]
- Mumble Positional Audio (hear others in '3D') - 'to use it, start Mumble before you start ioq3, and run the game with +set cl_useMumble 1' [more info at mumble]
- An important issue of dropping audio on auto firing is fixed (it was giving the illusion of lower firing rate); it affected Base and dmaEX audio and it can be tuned with /s_smpRepeat.
- In-Game Voice (VoIP) support for servers that support it (/cl_voip 1; ioq3 server: /sv_voip 1). Full instructions are here. Bind a key to +voiprecord to talk, '/voip muteall' to mute all. It requires OpenAL and a high /rate.
- Meters with stats for Ping, FPS, Snaps and Packets
- Quiet console; avoid seeing the same technical messages over and over when map changes.
- /zoomsensitivity; avoid scripts by using a direct multiplier on your normal sensitivity only when zoomed. e.g. /zoomsensitivity 1.5 means sensitivity x 1.5
- autotimenudge: set timenudge automatically - experimental feature - do not use when spectacting or right after round change - see notes below
- Anaglyph rendering with 3D glasses
- /sysexec, execute an external program (in the path or using full path). This can be used to control external applications via controller utilities.
- /totaltimerun - report the total time the client has run since its internal var was first saved plus the time run for current session.
- Stopwatch of millisecond accuracy
- 'server is full and server is for low pings /reconnect' workaround; plus no need to wait to hit /reconnect on a 'server is full' that may erroneously report 'for low pings'. [Bug report: 1]
- SDL system for accessing input, graphics and audio hardware; this may improve use of mice keys and access to other input, audio and video hardware.
- Alarm mechanism on clock
- Built on recent compilers
- Blank the screen temporarily with +blank (/bind x +blank)
- /rebind: bind a key to a cvar and its current value. Useful for making gear-sets binds on the fly during gaming.
- Win64 binary support first developed for this client [with actual qvm compilation]
Downloads:
at its project page.
Instructions:
- Unzip files into urt's .exe folder
- Run ioq3-urt.exe
(one can rename it to ioUrbanTerror.exe for convenience with other programs, though this is not a version of iourt, it only acts like it partly)
Notable features in detail:
- ConsoleVars added (click 'Show' to view; dmaEX, iKALiZER, Bumpy and new ioquake3's vars are not included):Spoiler
- Raw Mouse Motion (High-Definition) and Raw Mouse Keys: in_rawmouse 1: It utilizes raw input in accordance with a Microsoft advisory. The main advantages are higher resolution support and the the elimination of cases of negative acceleration. With in_mouse -1/in_rawmouse 0, negative acceleration can occur since an internal desktop cursor is utilized which may produce the quirk if it hits the edge of the window before it recenters. Also, since the virtual cursor only sends signals when it moves, it is lower resolution/higher latency in certain cases. On in_mouse 1/in_rawmouse 0 (DirectInput) there's no negative acceleration attributed to software or lower resolution but there are higher latencies involved (also according to microsoft). The functionality is live, meaning in_rawmouse's value takes effect immediately in game. The API is not always stable so in certain systems it might be better to revert to an old system.
- Full info on the "bumpy" Renderer by Peter "TwentySeven" McNeill is in its thread. Porting was greatly helped by QA member undead. r_simpleshaders is 1 by default for performance, set it to 0 for its effects. Features such as fancy water or full bump mapping have to be supported by the map or override a map's shaders. e.g. try ut4_moonbase for fancy water examples. It may require newer GPU hardware or more RAM than before. It is still relatively unstable. BSP processing duration is expected to be increased.
- Surround even on Stereo Headphones Systems (Hear audio coming from the back differently):
- dmaEX audio is developed by p5yc0runn3r and more info on it and its operation is in its thread. It provides a "Surround" Hybrid-HRTF/DPL2 experience on all Operating Systems on stereo. "It [extends the base q3 audio with] 360 degrees sound virtualization, sound interpolation and increases output rate to 44Khz. At 22Khz the mixer is the same speed as the base system while at 44Khz the CPU usage is minimal." s_useopenal and s_useikalizer should be set to 0 to use it. See more info and vars in its thread. Its CPU impact is marginal, hence it's on by default. To revert it to vanilla system set dmaEX_effectsenable to 0 and s_sdlspeed to 22050 and restart game.
- OpenAL is an API with several software and hardware outcomes which is also required by in-game VoIP support. OpenAL-Soft is a software implementation which offers basic Binaural experience. The API also provides a framework for card manufacturers to support their audio features on hardware. Audio cards that have OpenAL support on their drivers (such as Creative, Nvidia, and Realtek's) can provide forms of "Surround Headphone sound" or Surround Speakers setups (via methods such as HRTFs, Dolby 5.1 Simulation, CMSS-3D, 5.1/7.1 Speakers etc.). The system needs an appropriate library (e.g. an OpenAL32.dll) available such as OpenAL-Soft for basic software binaural audio, Creative's basic OpenAL libraries, or a manufacturer's hardware supporting libraries.
- iKALiZER is the most fully featured but it can have the most CPU impact - though mainly on old systems and single core CPUs - hence it has to be enabled manually with s_useikalizer 1. It is developed by Christophe Gossa and more information is in its thread. Headphone HRTF mode is enabled by default (other modes are available (such as 5.1 or holographic headphones, see /ikalizer_channelmode) but this should be the main needed by most gamers). If you need its replacement sounds (nades sound great), download the 20MB file (from its thread) and place only q3ut4\iqs dir in %appdata%\Quake3\q3ut4 (not in .exe dir\q3ut4). If OpenAL was enabled, it has to be disabled with s_useopenal 0 before using this; /s_info should report which sound system is in use.
- dmaEX audio is developed by p5yc0runn3r and more info on it and its operation is in its thread. It provides a "Surround" Hybrid-HRTF/DPL2 experience on all Operating Systems on stereo. "It [extends the base q3 audio with] 360 degrees sound virtualization, sound interpolation and increases output rate to 44Khz. At 22Khz the mixer is the same speed as the base system while at 44Khz the CPU usage is minimal." s_useopenal and s_useikalizer should be set to 0 to use it. See more info and vars in its thread. Its CPU impact is marginal, hence it's on by default. To revert it to vanilla system set dmaEX_effectsenable to 0 and s_sdlspeed to 22050 and restart game.
- A base audio (and by inheritance dmaEX) issue involving dropped sounds when attempting to play them simultaneously, is tackled with tuning it with the /s_smpRepeat client var. It effectively allows a higher limit for simultaneous playback of the same sample. This solves the issue of having dropped sounds e.g. when auto firing a G36 or M4 which was giving the illusion that rate of fire was lowered (while only the audio that was heard was erratic). The issue was apparent on all clients and systems though it is less pronounced on older versions of ioquake3 (such as the one on iourt). The new var's default limit of 16 is 4 times higher than the hardcoded vanilla one. There is a minimum limit of 8 since the previous one (4) was effectively buggy. Examples: in a quiet environment, auto firing a LR300 now can lose sounds only on timescale 3 or 4 when using the minimum allowable of 8. On the default of 16 or higher it's virtually impossible. Notice the limit is internally doubled for sounds originating from the Listener (like the aforementioned firing examples). It doesn't affect CPU load; such a process existed to begin with possibly for avoiding spamming of sounds that fill up all channels due to map or gameplay quirks.
- Concerning VoIP, notice that cl_voip is 0 by default and if it's enabled the console will be slightly spammy about its requirements, i.e. "I need OpenAL" and "I need high /rate" (in bright yellow) if they're not available. If it's initialized reasonably, i.e. it got a recording device on OpenAL, it will print '* VoIP is initialized'.
- /totaltimerun - report the total time the client has run since its internal var was first saved (cl_totaltimerunsave), plus the time run for current session. (up to 136.2 years).

- Anaglyph rendering (with 3D glasses)

It is available in the latest ioq3 versions; detailed information on its use is here (lengthy details on its operation and vars here). Notice that it may need /r_anaglyphMode (e.g. 1) and not r_stereoEnabled which may require special hardware or not be functional yet. I tested it on a common pair of red/cyan glasses but that may not be an ideal mode.
- Stopwatch (millisecond accuracy)

use /cl_stopwatch 1 to show it; bind a key to cl_stopwatchstartpause to start/pause it; cl_stopwatchreset to zero it. Similarly with the meters described below, its position can change with cl_stopwatchposx/y and its size with cl_stopwatchsize. It supports /timescale.
- Auto-timenudge is an experimental feature (do not use when spectacting or right after round change):
It attempts to set timenudge based on the standard deviation of ping, e.g. 5 to 14 standard deviation attempts to set timenudge to 10. /autotimenudge attempts to set it on-demand according to the collected data. A very experimental feature is cl_autotimenudgelive which attempts to do it periodically automatically; it is very quirky since hell may commence after round-change or when spectating since at that time ping data is unreliable or nonsensical (however, it may be bearable on non-round-based gametypes). Another undesireable behavior is that config is updated each time though on the on-demand version this can be considered normal. Other cvars incluce cl_autotimenudgecommand for setting the timenudge command of the game (ut_timenudge on urt), cl_autotimenudgeinterval for the interval it collects data to calculate standard deviation and cl_autotimenudgefloodprotsec for setting flood protection delay in the case of live. cl_drawping described below can be used to observe standard deviation directly according to certain intervals (data are not connected between them).
- Detailed Meters: cl_drawping, cl_drawfps, cl_drawpackets and cl_drawsnaps:
They show base value of Ping, FPS, Snapshots per second (from server to gamer) or Packets per second (from gamer to server); there is also mean value for two intervals (in seconds) set by the user via vars. There is max spike or drop of those values in the intervals set as well as mean spike or drop and most importantly, standard deviation. Standard deviation shows in general 'the common difference of most values from the mean'. This means it's a very good approximation of stability in a single number. A (direct) use of it might be to set ut_timenudge according to the standard deviation of ping but that may be debatable. Their size can change, their position can change too according to vars you can easily find out by typing the vars and hitting tab (to not flood this page unnecessarily). In the case of snaps/sec delayed packets are also shown, referring to those throttled by rate/sv_maxrate and extrapolated ones (which may have a different meaning from extrapolation shown on net meter); the packets/per second meter (client->server) demonstrates how depended is cl_maxpackets on FPS.
- Similarly, /cl_drawmouse (updates/sec, dots/sec, total dots for an interval and max dots; similar cvars with other meters)

- Similarly, /cl_drawmouse (updates/sec, dots/sec, total dots for an interval and max dots; similar cvars with other meters)
- cl_drawclock has an alarm mechanism, it can be a 12h clock on choice and it can be set whether to show seconds.

cl_drawclockshowseconds shows seconds (off by default); cl_drawclock12 makes it become a 12h clock and cl_drawclockalarm24 can set its alarm time in the form of HH:MM (in 24h format). It alarms (by default) by playing the main urt audio theme. The alarm command (what happens when alarm time comes) can change with cl_drawclockalarmcmd (e.g. it can quit the client on alarm if set to 'quit'). It is not in operation when clock isn't shown to save cpu cycles (granted, it has minuscule importance but the principle of optimization stands) and it's not in operation when not in a map. Positional vars are similar to meters'; cl_drawclockcolor alters the main clock's color.
- Recording notification has been modified to only show the first 10 characters of the filename to not flood the screen (similarly to iourt); cl_recordfontsize will change its font size; 0 will disable the notification so be careful.

- config files, demos, screenshots, and videos. are auto-saved in %appdata%\Quake3\q3ut4 to allow for multiple users and to avoid security system issues on Vista/7 (%appdata% is a shortcut to <drive>\Users\<Username>\AppData\Roaming in Vista/7 or <drive>\Documents and Settings\<user name>\Application Data in XP). An autoexec or a demo already in the old location still works fine. The priority is "read %appdata% first, app dir second; if a cfg appears in both, only read the one in %appdata%". The autogenerated q3config is being saved in %appdata%. "You can revert to the old single-user behaviour by setting the fs_homepath cvar to the directory where the game executable is located. For example: ioq3-urt.exe +set fs_homepath "c:\UrT" Note that this cvar MUST be set as a command line parameter [e.g. in the shortcut or qtracker parameters]."
- Mouse keys for Logitech and potentially other mice can be differently mapped here - even on the same filename - because ioq3 uses the SDL library to access input. The good news is that previously disabled keys may now work.
- The mess of technical messages each time a map changes is removed with cl_quiet; On by default. Some messages that are controlled by the game code (and not engine code fully accessed by this) are removed with an ugly hack via ..cl_quietuglyhack.
- /minimize (also on a bind) explicitly minimizes the client, plus alt+tab explicitly directs SDL to minimize it (rather than relying on the windows manager). Use of /minimize can fix a gamma bug that may appear on windows if one minimizes it with alt+tab (since alt+tab's real job is to bring up a list, not to minimize).
- cmd buffer has been increased to support larger config files (of 128KB)
- an interesting support feature from ioq3 is that in case of crash, the game presents the user with a choice to start with safe settings (e.g. video resolution).
- a +vstr bug (involving locking of key-down event in the case of using a second +vstr bind) has been workarounded. [Bug report: 1]
- /rebind can work as follows: If F5 is bound to "rebind F9 gear" then hitting F5 during gaming will set F9 to "gear XXXXX". Useful for setting gear-sets binds on the fly during gaming (when not knowing what sets will be used when making scripts).
- cl_aviMotionJpegQuality can adjust the quality of JPEG when cl_aviMotionJpeg is on. Similarly, r_screenshotJPEGQuality can do the same for /screenshotJPEG.
Additional Features and Information are at its project page
Initial replies below are outdated.
This post has been edited by mitsubishi: Yesterday, 01:41 PM



















MultiQuote
