Urban Terror Forums: Optimized .exe; a build of ioq3 engine to run UrT directly - Urban Terror Forums

Jump to content

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Optimized .exe; a build of ioq3 engine to run UrT directly Rate Topic: ***** 2 Votes

#1 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 04 November 2009 - 09:42 AM

The main point of this is using latest ioq3 source on an optimized build (via latest building tools) for relatively recent processors. UrT is run directly (in a standalone fashion) and generally it is aimed to be easy to use. It has its (relatively minor) differences in operation, mainly due to the new source code.

ioq3-urt.zip 1.2M

How to use:
  • Unzip the .exe and DLLs into UrT's dir (where UrT's .exe is).
  • Run ioq3-urt.exe

Notable new features:
  • Potential of HRTF ("real 3D") and Surround sound with high-end Creative sound cards due to OpenAL
  • Detailed Ping, FPS and Snaps meters
  • Stereoscopic rendering potential, with 3D glasses

Notable differences in detail:
  • cl_drawping, cl_drawfps and cl_drawsnaps are included):
    (/cl_drawping/fps/snaps 1 to enable each)
    Posted Image Posted Image Posted Image
    They show base value, mean, max spike or fps/snaps drop, mean spike/drop and standard deviation for two different intervals. Ping meter can be used to assess stability of ping without having to rely only on graphical indicators or the current ping. A use of it may be to set ut_timenudge based on standard deviation, though further testing or feedback may be required to determine whether that's helpful. FPS meter can be used equivalently with its relation to networking stability in mind. SPS meter is a more 'esoteric' tool, perhaps more needed by developers. The size of ping meter can change with cl_drawpingfontsize and position with cl_drawpingposx/y. cl_drawpingfirstinterval and cl_drawpingsecondtinterval can change the intervals in seconds (2 and 10 by default); equivalent vars for drawfps and drawsnaps. Snaps meter also shows the delayed snaps (throttled by the server through sv_maxrate and rate).
  • OpenAL is a new sound system used by ioq3; s_useopenal 1 to enable it, 0 to disable it (changes to take effect require restart). DLL required by OpenAL is included. It is important to note that because of this, HRTF ("real 3D") sound is possible (like in Ikalizer) if one uses a Creative sound card with HRTF support, usually the 'X-Fi' models (OpenAL is Creative's thing). Relevant vars to OAL are included in the ioq3 Readme: http://svn.icculus.org/*checkout*/quake3/trunk/README.
  • Stereoscopic rendering (with 3D glasses) comes with the latest ioq3 versions; information about its use is here.
  • q3config.cfg and other config files are located in %appdata%\Quake3\q3ut4 to allow for multiple users. The old location should still work for autoexec.cfg but deleting a q3config.cfg there will still have a q3config.cfg in the new location being read. But the change shouldn't be noticeable by anyone having set it up already; autoexec can just be kept in the same place with no issue.
  • cl_drawclockshowseconds can show cl_drawclock's seconds (off by default).
  • Mouse keys for Logitech and potentially other mice may be differently mapped - even on the same filename - because ioq3 uses SDL now.


Other information:
  • It is optimized for any P4+ processor, anything recent (AMD or Intel).
  • The source (earlier ver. linked) is based on latest ioq3 SVN. It has been modified to run UrT directly in a standalone fashion, to have UrT's icon as well as a patch and minor modifications mentioned below. ioUrT is based on an earlier ioq3 version. The main point of this is using a recent ioq3 source base on an optimized build.
  • It's not the same with the old 'technical support' build since that was aimed for problem solving and stability while this is aimed for optimizing performance. Though, of course, several issues may be resolved on the new code base.
  • The optimizations are the several default found in options (that didn't crash it here). It should require Pentium4/Athlon64 or newer since it includes SSE2 instructions use. Using a recent tool base (a beta version of Visual Studio) should be a relatively decent bet.
  • It doesn't include VoIP since it would be a waste of space since it's not utilized UrT-wide.
  • Linux and other platforms' support can theoretically be derived from the source (earlier version linked).
  • The building tools used are the ones included in Visual C++ 2010 Express Beta 2 and those only (well, it required downloading of the SDL lib only). An additional DLL included is required by the VC 2010 tools.
  • There's been some testing on gcc 4, FPS was about 2% lower, hence the decision.
  • Some optimizations that could be done are not included since they were probably illegitimate (e.g. because of increasing server load or screwing graphics).
  • If you have NVIDIA or other settings panel directing to specific settings (such as SLI configuration or mouse key binds) you may have to rename the .exe or add a new entry for those settings.
  • SDL DLL reverted to the most recent version to avoid mouse pointer stuck on screen on in_mouse -1 until it's fixed upstream.
  • Curl's DLL included is required by autodownloading's support
  • It includes a patch from this post (vstr related).
  • A DLL included is SDL's. SDL is required by all recent ioq3 versions.
  • in case console can't be brought down force it with shift+esc.

This post has been edited by mitsubishi: Today, 05:39 PM


#2 User is offline   fateful Icon

  • Group: Members
  • Posts: 93
  • Joined: 03-September 08

Posted 04 November 2009 - 10:19 AM

couldn't run this .exe on Windows 7 x64, neither on ioUrban Terror dir, nor Quake3-UrbanTerrorMOD dir..

"Program can't start becouse MSVCR100.dll is missing from your computer."
Posted Image

#3 User is offline   ObScUrE Icon

  • Group: Members
  • Posts: 511
  • Joined: 27-September 08

Posted 04 November 2009 - 10:39 AM

That build works really good for me but without vstr support it's useless for most players can you add this to your build?

most lag in figthing situations on my system:

1. iKALiZER
2. Original UrT
3. your build

so it works :)

iKALiZER is better for positional hearing but needs more hardware resources so this is actually a nice and meaningful build.
I suggest that the dev-team should use this for the default 4.1 download.

*Thumbs Up*

EDIT1:
@fateful yes you have to download the dll file and place it in your UrT.exe folder or system32 folder. ;)

EDIT2:
when I connect to a server with the ingame browser the main menu music and the game stands still for some seconds (same problem on the ioQuake3-iKALiZER build).

EDIT3:
it creates a new directory tree
C:\Dokumente und Einstellungen\ObScUrE\Anwendungsdaten\Quake3\q3ut4
for q3config.cfg and q3history

This post has been edited by ObScUrE: 04 November 2009 - 05:32 PM

Posted Image
Posted Image
~In the meantime I'll practice on dishonorable throats~

#4 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 06:21 AM

What is vstr? do you mean the scripting command? it is in.

BTW, this is not an official version that's supposed to be stable so yes, it retains ioquake3's new way of doing things, such as using those new configuration locations.

Also it shouldn't be used - and it most certainly won't anyway - by the official team since they are working on their own specialized builds as far as I know which should be better than this one.

The dll requirement concerns me, it probably comes from the new Visual Studio used, it's probably a requirement for a .net framework update, perhaps 4.0. Well, it can supposed to be 'ok' since I'm trying to use latest tools available.

This post has been edited by mitsubishi: 05 November 2009 - 06:29 AM


#5 User is offline   ObScUrE Icon

  • Group: Members
  • Posts: 511
  • Joined: 27-September 08

Posted 05 November 2009 - 06:42 AM

that is the patch for vstr (scripting)
I get everytime Cbuf_InsertText overflowed when I want load my config.
but I have that problem on all new ioquake3 builds.
Posted Image
Posted Image
~In the meantime I'll practice on dishonorable throats~

#6 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 06:46 AM

Apparently the DLL is redistributable so I just included it in a new zip included in the original post.

PS. It is part of Visual Studio 2010.





^ I will include that patch in a new build (later though since I install a new version of the tools). Is it absolutely needed? I find it hard to believe ioq3 have such a serious mistake. UrT bug perhaps?


I should probably include openal by default in settings since it's in anyway.

I should also probably edit the original post to be more descriptive, like the "technical support" build.

This post has been edited by mitsubishi: 05 November 2009 - 07:13 AM


#7 User is offline   ObScUrE Icon

  • Group: Members
  • Posts: 511
  • Joined: 27-September 08

Posted 05 November 2009 - 07:20 AM

the vstr support works but I think my config is to big there must be a size limitation that's the reason I get the Cbuf_InsertText overflowed message.
Posted Image
Posted Image
~In the meantime I'll practice on dishonorable throats~

#8 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 08:36 AM

ok patch is included, engine is rebuilt, original post is edited (to mainly be more user friendly).

source is included (in a different 7z archive though I suppose it shouldn't be that needed by most).

voip is removed, autodownloading is attempted to be on by default (per an issue in an older build).

This post has been edited by mitsubishi: 05 November 2009 - 09:21 AM


#9 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 09:21 AM

oops, an initial update had SDL's DLL removed, fixed.

#10 User is offline   conker Icon

  • Group: Members
  • Posts: 12
  • Joined: 30-June 09

Posted 05 November 2009 - 09:54 AM

can you compile one version optimized for amd processors?

#11 User is offline   Merky Icon

  • The Merkiest Mercenary
  • Group: Members
  • Posts: 1,206
  • Joined: 04-February 07
  • LocationMerky Headquarters

Posted 05 November 2009 - 10:01 AM

View Postconker, on 05 November 2009 - 10:54 AM, said:

can you compile one version optimized for amd processors?


I could use that as well, that'd be sweet

#12 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 10:05 AM

This is optimized for any P4+ processor, anything recent (AMD or Intel). To go specifically for AMD one could try gcc though to be honest, I don't expect it to be faster than latest MS tools. But of course, it won't be a bad idea. Currently I'd find it difficult to make gcc builds since I'm on a 64bit version of windows, where mingw is a bit of a mess (and mingw-64 more of a mess (in case one wanted 64bit binaries (though those probably need even further hacking into ioq3))). One could probably also research how to go into optimizing for instructions for AMD onto the MS tools if it's possible, it may not be possible though. Another attempt could be going into intel's compilers but that'd need some effort to make it possible to compile ioq3 to begin with. Perhaps through Visual Studio or a Makefile but no idea. A problem there may be that there may not be free versions.

In my opinion, it won't be easy to go faster than this, or at least noticeably faster but a lot can be probably done into (q3 engine specific) detailed in depth research into specific sub-options of optimization; related possibly also on the compiler family used.

And of course, actually changing the engine code, 3D code, compiler-independent, like 27's work, may be a wiser idea.

This post has been edited by mitsubishi: 05 November 2009 - 10:16 AM


#13 User is online   mitsubishi Icon

  • Group: Members
  • Posts: 8,237
  • Joined: 01-January 05

Posted 05 November 2009 - 02:03 PM

oops, certain important optimization option was probably incorrect, reuploaded.

#14 User is offline   ObScUrE Icon

  • Group: Members
  • Posts: 511
  • Joined: 27-September 08

Posted 05 November 2009 - 04:40 PM

ioquake3-urt 1.35-urt win_msvc-x86 Nov  5 2009
----- FS_Startup -----
Current search path:
C:\Dokumente und Einstellungen\ObScUrE\Anwendungsdaten\Quake3/q3ut4
C:\Dokumente und Einstellungen\ObScUrE\Desktop\UrbanTerror\q3ut4\zpak000_assets.pk3 (7933 files)
C:\Dokumente und Einstellungen\ObScUrE\Desktop\UrbanTerror\q3ut4\zpak000.pk3 (99 files)
C:\Dokumente und Einstellungen\ObScUrE\Desktop\UrbanTerror/q3ut4

----------------------
8032 files in pk3 files
execing default.cfg
execing q3config.cfg
execing autoexec.cfg
execing Scripts\ObScUrE.cfg
Cbuf_InsertText overflowed
Hunk_Clear: reset the hunk ok

the problems are still there but it's not your fault.
the new ioquake3 builds are all bugy in many different ways.

gg ObScUrE
Posted Image
Posted Image
~In the meantime I'll practice on dishonorable throats~

#15 User is offline   Ultradie Icon

  • Group: Members
  • Posts: 24
  • Joined: 04-January 09

Posted 05 November 2009 - 05:47 PM

For some odd reason, When I alt-tab out, it freezes my mouse out-of-game (and I have no control over it), Then when I get back ingame, I get an error that spams my console all the way: Com_QueueEvent: overflow

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

2 User(s) are reading this topic
1 members, 1 guests, 0 anonymous users

  1. Cubed

Cethin skin by Eric Colon.
logo