To be short: they can't do that.
As they using SDL library now, which obviously gives some benefits like improved portability/more sound backends/etc. At the same it adds keybinds regressions, also it becomes very hard to add something like raw input or advance window management because now you need to modify SDL not Q3 sources for that. I'm preferring to support less platforms but with 100% features utilization on each one

There already is ;) Its have smooth netcode, unlagged hitscans, Team Elimination (-totally reworked FreezeTag engine), 400+ configurable server parameters, unique superhud, tons of small improvements and bugfixes, will be announced later

take note of what, q3 SDK works, q4 sDK does`nt, q4 renderer needs no work, server downloads etc all work, except menu list filenames, filename will only be shown if you have to download 1 pk4

Q4 engine fx system needs to be set to use gameLocal.mSec()/frametime instead of gameLocal.time, updatingeffect endorigins through runphyics wont work, if you want a active rail, and not use tracepoint endorigin

Q4 input impulse`s need to be cleared every .25ms and not done in the SDK because it doesnt work

anything q3 is a complete waste of time, its only ESR users that would actually use ti, no1 else and all the platinum sells, the graphics is wack, gameplay is wack and outdated

quake arcade on xbox will be dead in a few months when every1 goes back to COD

Q43A does it all if you want it to, gameplay inbetween you and phun, so just make yourself a custom damage set for your server to run on if you can handle clipsize etc

cant bore me with mom shit, the sad bitch im the unwanted son of owes me £17k for the house she lives in, and i could not care if my whole family tree bursts into flames, they are worthless and peasents

most of ESR just talk shit, and never tried Q43A. i could not care for anything you all say about it

code is so clean, carmack would cream his pants if it was part of idtech 5 with all new features of Q43A already done with bug free, and all done without any engine work

I personally would try Q43A If I had a copy of quake 4 but alas I don't and the only place I found that sells it is selling at like 2x the price it is online and I don't want to deal with shipping and customs

lights are synced from the server, and nodoubt rendered on the server instead of just being a active entity with physics, and the probaly the same with skyboxes which is the real cause of MP slowdown on dedicated servers

check for those in the engine and disable them, MP on deds will probaly be fully fixed

you can set renderlight.nodynamicshadows = !gameLocal.isDedicatedServer ? spawnArgs.GetBool() : false;

and on specular etc, and clientside lights will be the same and not set from spawnArgs

you cant have high polys and bumpmap on every texture and expect it to run at 125fps on a laptop

Rendering the gameworld is done purely client side. Try to make a map and launch a server with it, then edit the map on the client and connect to server. The map will be different on the client. If the map was synced from the server it would mean huge CPU usage and network traffic first to determine the shader values of every surface and then sending them to all of the clients. Entities are placed on the map by the server.

the map is still loaded serverside, and processing of flags are still done, the lights are still active with color tints are being synced from server, so its still rendered, just not put on a screen, even if it passes all the screen renderer opengl code, the world is still kind of rendered and processed serverside

As with all multiplayer games in the history of existence, the server has nothing to do with the lighting or anything graphical you may see.

A game server is used to calculate and distribute GAME information - this means everyone's position, everyone's current health, current ammo, weapons picked up, etc.

Anything that you see graphically is purely a representation of this information that you receive from the server. The lighting, texturing, mapping, whatever... It's all client-side...

You seem to have a slight grasp for what it is, but the world is not rendered at all server side.. That makes no sense... The world is loaded, yes.. But only to place the people/objects that are needed... Lighting information is never sent from a server to a client, seeing as lighting has nothing to do with physics or positioning of anything.

If lighting information WERE passed, imagine how much harder your pc would have to work to change the way a map is lit clientside -- you would need to "reskin" everything the server sends you... Blah... food for thought

idtech4 game have lights synced from teh server, it is what writetosnapshot is, the server uses writetosnapshot, the client uses readfromsnapshot

ambient lights are not synced, maps with fog cannot run and have a fog material on clients, because they are synced from server, you can piss around with the idlight class all you want, clients cannot have fog lights, even if you disable all the code in the idlight class, the entities are still synced through identityPtr<> when game_network.cpp writes the snapshot to send to clients

realtime lighting and bullshit is why the world sucks on carmacks cock if you into rendering, bump is not realtime and prerendered on textures, if a light cannot fade 1 from color to another in a map the engine would get laughed at and sent back to the 90s pre quake

the light code in quake 4 is crap and probaly a main reason to massive FPS drop, and the same applies to the skybox

id Tech 4 does more on the server than you would expect. Some for good reasons, some for not so good reasons. That is what p0rt is trying to say, and he is kind-of right. He is just wrong to have picked "rendering" as the thing to talk about.

For example, q4 does load, parse, and reference all .gui's, such as the scoreboard, ingame menu etc, on the server. It even manages to leak them and causes servers to run out of memory eventually (fixed in q4max). There is no good reason for this, other than no clear separation between client + server processing (game vs cgame in q3).

It also does a lot more with respect to animating models, blending the animations etc than you would expect. This is because of the per-polygon hit detection used in D3, and the design decision to try and keep everything in step between server + client. Rockets truely come from the end of the RL based upon the position of the model, including viewbob, step up animation smoothing etc.

This fugly design probably dates back to when D3 wasn't going to have a server at all and they were going to lock all clients to predicting the same thing in step with each other (see early D3 info). They didn't reverse this decision early enough to stop this getting into the code, although some of this has been unpicked.

yup, you cant trace a vector point in binary and return a material flag for physics to work, and write to new var to snapshot and send it to clients

partial rendering still happens serverside, models are loaded serverside, skins are set serverside, lights are serverside

the renderer might not be called and openGL functions used to render the frame to screen through GFX card etc, some form of rendering still happens even if the engine has some basic functions of its own

yup, the map is load without rendered textures, the renderer code and opengl is skipped because it is not needed, serverside you are running around the map just like on a localclient but without any detailed textures

As you realised later on in the chain, the definition of something being rendered is not it loading some data or having some maths functions like the ability to trace a point, or even having the material definitions available.

It is, unsurprisingly, that it is rendered by the renderer, and Q4 doesn't use the renderer at all on a dedicated server. You can verify this by placing a breakpoint in idGameLocal::Draw - you will of course find this is never called, and this is the entrypoint into the renderer.

If you wish to go even further on proving this to yourself, you could add a call to gameRenderWorld->RenderScene() (normally called from the context of idGameLocal::Draw) and step into it when running quake4ded.exe. You will notice that this function is entirely stubbed out in the dedicated server binary.

Since you seem to mention lights a lot and think they're busy consuming server resources because they're only in game.... well the key is the renderEntity inside the entity, and this wont be used in any significant way outside of the renderer - which as just proved isn't used, so there is no significant overhead on the server from having lots of light entities.

Same goes for the skybox - which doesn't really add *that* much of an overhead on clients, but adds basically nothing to servers.

The one thing you are right about is that there is a lot of gamecode (and a lot of other things too) that is needlessly done on both the server and on the client - but rendering is not one of them.

Converting large integer numbers to 32bit floats causing few different integers to be converted into the same float value (because of 23bit significand) - in game it looks like when you start loosing frames in animations etc while having stable 999+ fps for example. In QL it can be observed as delayed/ugly rocket splash

or that could be the effect is broadcasted from the server with effect origin and axis

id animator always looks choppy, blendframes is rubbish, in rage preview youtube vid, the animation is choppy, its in every game, blendframes when a new state is posted, only tends too look good if frames is more then 12

its not the renderers fault, SP would have some serious FPS drops like you get when your on a dedicated server or clientside to a listen server

SP FPS drops are todo with system spec and bottle necking cpu/gpu

if you run http://www.moddb.com/mods/q43a/addons/q43a-q4dm8 on a server, clients will have 20-40FPS drop when looking over the map on a top platform, make the skybox a normal brush with a normal texture and the FPS drop disappears, and probaly fixed on ETQWs

Anybody else want to make a cpma quake3 revival? I'm feed up with ID and quakelive. I live in Israel and it's becoming more and more obvious that local servers aren't going to be ever made and with QL's shitty netcode, playing with over 70 ping just isn't fun. If anyone is interested, Imsg me.

if you want to run a server on windows or linux, just run the quake4ded. like normal with q43a set as the fs_game

to run Q43A as a client load up quake 4 like normal, in hte bottom of the main menu there is a mods button link, click on it to list available mods, select q43a and click load, or you can make a shortcut to quake4. and set the fs_game to q43a

if you run a dedicated server using Q43A, any client using windows or linux will download the mod when they connect, and beable todo the same

and when you bord, if you have Q43A loaded, you can play the whole revamp and relistic damage SP game, which is like a whole new game, ai has hearing, ai fov works, few worthless and good tweaks to the ai, and all new ai settings, but just like MP, the maps are all shit

"cant bore me with mom shit, the sad bitch im the unwanted son of owes me £17k for the house she lives in, and i could not care if my whole family tree bursts into flames, they are worthless and peasents"

damn right, you get it off drum n bass arena, ush, or you bullshit chatrooms full of middleclass wankers doing the middleclass gayboy thing

your all middleclass wankers who cant live without your family, i could not give a flying fuck about mine, im the god, they are all worthless, they all owe me £17k, they all do nothing for me, i do not need them, bitch never brought me a car and all that middleclass shit, i had to buy her the fucking house i grew up in, she unemployed ran out of money with a mortage to pay with a freeloading husband who thought he was a man, slap him and hes knocked out and stays in bed for a week to recover

Another update:
* removed buggy \r_smp
* improved qvm performance - now up to 30% faster comparing to original 1.32b/c

Also one interesting thing for ATI owners: you may notice that your FPS can be less than with original 1.32b/c soQ: how can it be if you are declaring performance improvements in your client?A: try to rename quake3e.exe to quake3.exe and you will get real FPS boost - means that Catalyst driver is simply cheating i.e. it is applying some specific optimizations according to application name :) And looks like it is an old story http://techreport.com/articles.x/3089/1

Whatsnew since last update:
* new win32 dedicated console and win32 dedicated server binary
* improved QVM JIT-compiler - now much more faster and secure
* win32 multimonitor fixes: now game changes resolution (and runs fullscreen) on current game monitor, not primary

people that played vq3 in quake 3 were just a part of the whole quake 3 universe. vq3`ers mostly moved to quakelive but the majority of people playing quake3 werent vq3ers and are still playing their mods in quake3.

its definitely not a waste of time, as many people still in the game are switching to these kind of engines like ioq3, dfengine...

so pleaseeee, be gone with your quake 3 ignorance, you are new to this story and there are numerous vistas waiting to open for you to explore

New engine performs much more security/consistency checks for running mods so its even detected bug in edawn-1.2.0 :) Make sure you have latest mod version (1.2.1) or re-download q3asm-v8 (if you using it) and recompile qvms

I tried the normal q3 (1.32c), dfengine, cnq3, ioq3 and q3e and i can happily say i feel the most comfortable with quake3e, i particularly like the bloom and greyscale adjustments that the other executables don't have (yet).

This is an excellent client, thank you. One issue I am experiencing, and several other ppl reported the same to me, is hiss/crackle/distortion to the sound. I am running this on windows, cpma mod. Please let me know if there is something I can change via cvars/etc. or if u are aware of any potential fixes. Happy to provide any other info that may help.

* First of all, make sure that you have recent version as there was few bugs in sound mixing code prior to 02-Jul-2011
* Turn off s_doppler
* Try to reproduce bug in another mod
* Try to record corrupted sound and post it somewhere

-I have been using quake3-1.32e-20120724.
-I have been able to reproduce this in cpma 1.48 and defrag 1.91.20
-I was not able to reproduce it in baseq3
-the cvars that seemed to have the most effect on the distorted sound are s_khz 44 --> 22, com_soundmegs 16 -> 8, and some others I am unable to pinpoint, although s_doppler seems to have no effect,
-I was able to get undistorted sound, but only by resorting to a completely fresh config in each of those mods - since my baseq3 didnt have a config whatever conflict was there with the other mods was not present. I have used a number of clients so there were probably a number of out of place vars in my configs.
-I have tried to record ingame sound with xsplit, the sound encoding wasnt particularly good though. I will try fraps, or loopback into my soundcards input later when I have some more time.

Most of the in-game sounds is 22KHz so 22->44KHz-interpolation adds some distortion by design, try to use 22KHz
Also check these cvars:\s_mixPrestep - default is 0.05\s_mixAhead - default is 0.2, I'm using 0.5 (reduces sound lags in case of FPS lags but uses more CPU)
Also here is test binary with some additional cvars:\s_maxDuplicated - max. allowed duplicated sounds to play at the time, try 6-8, 1.32e default is 8, 1.32b - 4\s_duplicateThreshold - duplicate detection threshold, in ms, try 40-20, 1.32e default is 20, 1.32b - 50

I have been enjoying the latest release, and having the most luck with the x64 client, but still I am bothered by some sound issues. I find that the sound seems to be lower in quality compared to dfengine 1.08 and CNQ3 1.46. Specifically distortion, inability to use s_khz 44, and for lack of better understanding, shall I say a 'reduced number of voices'. I find using the quake3e client, in situations where there are many players in an area, often sounds seem to be omitted compared to dfengine and CNQ3.

The 64bit client seems to have better sound, imho, than the x86, but other clients seem to benefit from s_khz 44, where quake3e only becomes distorted. I was able to record a few short clips with quake3e 30-Nov-2012 version, x86 and x64, dfengine 1.08f, and CNQ3 1.46 using Open Broadcasting Software 0.466a (64bit for q3e x64, 32bit else). Using AAC 128 kbs sound setting the distortion is clearly discernible in q3e only.

I will see if I can find a demo that I can record using various clients to illustrate the voices effect if that would be useful, also I will check out the newer quake3e client.

The quake3e client is extremely good imho, if sound could be brought up to par with CNQ3, it would be stellar 10/10. Thanks for your excellent work.

About s_khz (if you using windows client): can't say anything about dfe-1.08 but cnq3-1.46 completely ignores this setting. Most of the game sounds are 22khz, hitsounds are 8khz, so IMO distortion is a result of rate conversion. Also, versions older than 14-Nov-2012 has SIMD-assembly errors :P

About reduced number of voices: there is 'max. duplicated sounds during some time' limit in vanilla/1.32e and no such limit in cnq3-1.46. I will look deeper in cnq3 sources anyway.

Cannot upgrade the library if a security vulnerability/problem is found

Relative to dll/so its not about linking code - its about placing symbols in executable' import section instead of dynamic resolving (via dlsym/GetProcAddress) and redundant funcion pointer dereferencing at each call

Its easy to add support for dll-based mods because you just compile 64-bit engine + 64 bit mod as native binaries (if you have mod sources) and it will run. But most of the mods are qvm-based (without source code) which means that they distributed in some platform-independent pseudo-code which later compiled by engine into native platform code - i.e. you don't need to have sources or make dlls for every possible platform but just once implement pseudo-code compiler for that platform and play any mod with it

* Implemented \dlmap and \download commands: first command will check map existence & download, second one will unconditionally download any pk3 you need, everything is non-blocking and works in background (i.e. during disconnects etc.), read documentation for more details

I am curious how the x64 client interacts with my mouse drivers, win7 x64. I have a 'driverless' mouse, and since I dont understand the standard windows 64bit driver system well, I wonder what the performance of standard 64bit driver is. Is it interpreted from the 32bit mouse driver? or is there some driver I dont see that is on par with the 32bit driver, or some other scheme. my impression is it feels quite good, but what can I detect anyways... lol.

Besides the request I made above for some sound issues, I have a couple smaller, somewhat frivolous requests of the client.
- a transparent or configurable console background
- perhaps something like ctrl+pageup or pagedown to scroll whole pages in console (perhaps end to go to bottom as well)
- any possibility of client-initiated autodownloads? :>

Interesting. I suppose there could be an improvement in performance between say a 32bit game coupled to 64bit drivers and a purely 64bit chain.

Thanks for considering those console features. One other question regarding the console - is there a way to configure how much information the console keeps in memory, and does or can it produce a complete log u can view? You can only scroll up so far when either maps are changed, or a game ends and stats appear in console.

Too bad about the autodownloads, but security is definitely desirable.

Yes, I am also having this problem. I have found I can connect to servers if I remove a number of .pk3's from baseq3 - but all appear to have valid checksums, q3wpak1.pk3 for example. I could give a list of about 30 pk3's but I have a feeling they aren't the problem.

Here is a snipit of a condump taken after failing to load a map (same error when trying to connect):

I also tried the latest quake3e.ded. Regardless of the client used to connect to this server, they get bumped.
broadcast: print "rave ^7Unpure client detected. Invalid .PK3 files referenced!\n"
Maybe the same problem as the client which u seem to have found? Here is some information I was able to pull from the server.

To play edawn with openarena (or any other) media base you should specify its folder in command line via setting fs_basegame cvar, for example:
quake3e.exe +set fs_basegame baseoa
or if you want to play cpma:
quake3e.exe +set fs_basegame baseoa +set fs_game cpma

One feature which would be nice, but not entirely necessary, would be a variable to allow game sound when the client is not in focus. Would be handy when streaming. s_onlywhenfocus 0/1 or some such variable.

Is there a client that lets you bind jump to scroll? this one is nice but I have had no success with that. I tried making a rudimentary script to vstr it with no luck, but maybe there's a trick I don't know.

This doesn't happen with the default CPMA client. I don't get any error message in the console as it crashes instantly. If I join an empty internet game and callvote mode hm, my client crashes and I have to rejoin the server on the default client to vote back to a different mode.

The client is still excellent, definitely preferred. The recent improvements are much appreciated thanks very much :D. I have a couple questions:

1) I seem to be having trouble setting and getting http download redirection working - although I believe I had it working in the past, I can try to verify on an earlier release if needed. From console:

The 2nd issue I would like to mention, minor, running a server with cnq3 1.46, or ioq3 1.36, cpma mod -- the server config specifies sv_fps "40" and this takes. Running quake3e.ded linux server doesn't start the server in sv_fps 40, it can be set through the server console, but any change of map or mode it reverts to sv_fps 30.

So just a couple minor hiccups, I would be very pleased if I could sort them out some how,

sv_dlURL must point to resource containing files exactly how client expects to place it locally, i.e. containing baseq3, cpma, edawn, osp etc. folders with corresponding files in it, also no %1/%m patterns allowed (because "%" will be changed to "." by engine due to security reasons), just direct link to root
So, in order to use ws.q3df.org with sv_dlURL you must contact admins and ask them to implement gamedir (baseq3, cpma, edawn, osp etc.) support

however, http:/xxx/baseq3/pukka3tourney2.pk3 in a browser downloads the map without a problem (verified by additional users)

In this case you just need to set sv_dlURL to http:/xxx

running a server with cnq3 1.46, or ioq3 1.36, cpma mod -- the server config specifies sv_fps "40" and this takes. Running quake3e.ded linux server doesn't start the server in sv_fps 40, it can be set through the server console, but any change of map or mode it reverts to sv_fps 30

I can confirm that it definitely works with cnq3 but doesn't work with (windows versions): original 1.32c, 1.32e, ioq3-1.36 (both dedicated and full client) so it looks like a cpma bug

Cyrax, love your client!
Anyways I got a question about the acceloffset, i use extreme value 38000 and its great but i cant figureout how i could make my QL config about same, it has acceloffset too but it seems like its like 10k times more effective or something, got any knowledge about it?