Well, I got the engine side of things done, but there’s a lot of work to do client side that I haven’t done.
Everything in the q3 engine is drawn on a 640x480 virtual grid, and those coordinates are stretched to higher (or even lower) pixels locations based on your resolution. This makes things very easy in the client since, while programming, you can write code once that will work on all resolutions.
Because of this, most things in the client are drawn at absolute locations on that virtual grid. As an example, half of the screen horizontally is 320 (640/2). But that grid assumes a 4:3 aspect ratio, which 1920x1080 is not (it’s 16:9). So the grid must change. Keeping the height at 480, the width must change to about 854. 320 is no longer the center of that screen.
A better way to draw on the screen is to anchor things in the client to some side of the screen. For example, I could say I want the compass drawn not at x coordinate 500 (that’s a guess), but at the total screen width minus 140. The end result is that the things drawn on the screen will not end up stretched and they will show up on the screen places people would expect. As you can imagine, this is a lot of work.