NVIDIA / Q2RTX

NVIDIA’s implementation of RTX ray-tracing in Quake II
Other
1.22k stars 184 forks source link

Support for Quake 2 remaster, please ? #300

Open motorsep opened 1 year ago

motorsep commented 1 year ago

Is there a chance Q2RTX will support game DLL and assets of the Quake 2 remaster (was announced/released today at QuakeCon) ? Pleeeeaaaase :)

tristanhoy commented 1 year ago

Keep scrolling, I misheard a youtube review

I would love this but this is a massive project: - Different engine - Different lighting system - All the new remastered textures may not have material definitions - Map files may not be compatible

It seems like this would almost be starting from zero.

What I suspect (hope?) will happen is that someone from the community will create a mod that imports the new assets, but even this is a huge task if it requires new material definitions.

I remember that this was already happening with the 4K texture pack and that didn’t get finished either.

res2k commented 1 year ago

It's not like that at all. The engine is not different (it's still idtech 2, just spruced up a little), and in consequence the lighting system is also the same - not that it matters, since Q2RTX replaces that wholesale anyway. The level of technical compatibility is quite high - with very few changes (#298) maps from the remaster can be played fine with an "original" game DLL.

The most complicated part would probably be support for the "new" game DLL; that would enabled some technical as well as gameplay improvements, but it's not necessary to play the rerelease maps (though any maps not in baseq2 originally may not work). MD5 support is also desirable, since that allows using the improved enemy models, but that might be something that could be obtained from some other source port.

It's certainly not "starting from zero". As usual, it merely needs someone to do the work.

flukejones commented 1 year ago

@res2k my understanding was that Nightdive typically uses their Kex engine for these remasters (and the Kex copyright is mentioned in the copyright notice). But they bolt on the gameplay code (as such).

A good overview of what Bethesda and Nightdive have done is here https://bethesda.net/en/article/6NIyBxapXOurTKtF4aPiF4/enhancing-quake-ii

I think the key items are:

flukejones commented 1 year ago

There is also this available https://github.com/id-Software/quake2-rerelease-dll

res2k commented 1 year ago
  • The maps have been tweaked in some cases, and all have been recompiled with new/updated BSP tools

Yes, but they're in a format used by other source ports as well, and Q2RTX can already read that.

  • The models have been re-exported as skeletal animation to avoid the vertex wobble.

That'd be the mentioned MD5 support.

flukejones commented 1 year ago

Yes, but they're in a format used by other source ports as well, and Q2RTX can already read that.

Sorry yeah, I was trying to say the format likely hadn't changed.

For MD5 format, I haven't looked at the models yet - I sort of assumed they were still in md2 format (and it's been over a decade since I explored that).

res2k commented 1 year ago

For MD5 format, I haven't looked at the models yet - I sort of assumed they were still in md2 format (and it's been over a decade since I explored that).

They actually still ship the old MD2 models, in addition to the new MD5 models - they really try to stay compatible with existing source ports as much as possible.

QuakeMM commented 1 year ago

Edit for clarity - These screenshots are taken from loading the Remaster maps directly into Q2RTX purely for the architecture and mapping visuals. It doesn't use the Remaster DLL so alot of maps either don't load or have unplayable bugs - I was taking these shots purely as a beauty and wow factor 😁 I extracted the MAPS/ENV/TEXTURES folders out and dropped them into a new subfolder in Q2RTX and launched it like a mod. When I have more time i'll screenshot a few more and put a table on what maps work/don't - hope this helps 😅

quake003 quake004 quake006 quake012

BoostAddicted commented 1 year ago

I deleted my comment as the source code for the new release was already linked above.

It's certainly not "starting from zero". As usual, it merely needs someone to do the work.

How likely is it that folks here will do that work? :D I'm still hoping for the expansions to also receive the RTX treatment.

Paril commented 1 year ago

For what it's worth, the game DLL will absolutely need to be ported if you want to use our BSPs to actually play the game. We had to break compatibility in that area, and ended up using a lot of the new tech on the remastered baseq2/xatrix/rogue maps too.

The N64 campaign also requires game DLL changes.

The source is all there though and I also documented all the API changes in the repo. It should be enough for anybody to port them all over with enough time/effort.

jkerman2000 commented 1 year ago

quake003 quake004

WOAH.

How? Seriously, how'd you do this?

res2k commented 1 year ago

For what it's worth, the game DLL will absolutely need to be ported if you want to use our BSPs to actually play the game.

Anything that jumps to your mind?

There's "try to use the new game DLL", which looks mostly doable (well, pathfinding/bot navigation seems kinda complicated, at least to me atm), but there's also "make the existing old game DLL work", which may be viable for a subset of the maps, eg base campaign... for the latter, some hints could be useful - eg anything in the base campaign maps where you'd say "that could be troublesome"?

Paril commented 1 year ago

I'm not sure exactly what you mean - use the old game DLL for supporting remaster maps? There's a lot of new entities that do weird things that will need a lot of the logic ported over, and nearly every entity was touched in one way or another. N64 maps use a lot of strange "hackflags" to control specific behaviors. It's not impossible but you'd spend less time trying to do it the other way around. COTM also uses a lot of new behaviors.

One example is that there's a new entry point in the game DLL called clip, which can be used to clip a specific entity against a box - we use this to allow triggers to use their proper bounds instead of only being tripped by their bbox, so you can do angled triggers and weird shapes. The CotM hub map uses this for a trigger_gravity in the main area where the spinning portal is. You only get affected by the trigger inside of the middle area (it's like a hexagon shape). In vanilla, you'd be affected in a cuboid shape, so the gravity trigger would apply on its corners.

This might break any trigger_once/multiple's that are using this feature.

Paril commented 1 year ago

Q2RTX has supported the QBSP format for a while now. Nothing special here :)

Artanisx commented 1 year ago

+1, please support Quake 2 Remaster :)

Djam808 commented 1 year ago

Q2RTX has supported the QBSP format for a while now. Nothing special here :)

well I am new to this so I have no idea what you just said.

erickzmx commented 1 year ago

This is Quake 2 Lost Marine running on Rbdoom3 by Robert Beckebans I don't have the budget for an RTX card but I did my tests of community mods to the latest open source engine by iD. I'm more enthusiastic about this stuff than actual remasters, I don't know why. Idtech4 vs Q2RTX. I still loving how Doom 3 engine looks like after almost 20 years.

Captura_de_pantalla_-2021-05-28_00-14-39

Captura_de_pantalla_-2021-05-28_00-17-48 c82f7-4948-4140-80f2-c015b53c1ccb) Captura_de_pantalla_-2021-05-28_00-16-04

SonicBoomin commented 1 year ago

*1 +1 ×1000.....Please do this! This is what the community needs for the resurgence. #RTXOn #LetsGoooooo

Djam808 commented 1 year ago

it would run and look better then Reshade RTGI. having said that though a Reshade over the Remaster makes it look alot better.

BoostAddicted commented 1 year ago

Christmas present @res2k? :)

RandomDude4 commented 12 months ago

I found that @mstewart248 has already implemented many fixes to the Nvidia RTX version in order to make it work with the remastered maps: https://github.com/mstewart248/Q2RTX-MOD

At first I had problems compiling it, when I realized that he also implemented DLSS with ray reconstruction, for which the SDK is not publicly released yet! Making me think that he may be working at/with Nvidia in some way in order to have access to the non-public SDK. But then I found this thread where he explains how he "hacked" the newer DLSS dll's in order to extract the ray reconstruction features, before they have been publicly released: https://forums.developer.nvidia.com/t/dlss-motion-vector-question/266414/5

I have yet to try the same hack, but here is the code he extracted from the Ray Reconstruction DLL, which you need to manually add to the publicly available DLSS SDK in order to compile the code: https://www.reddit.com/r/quake/comments/16fg1by/comment/k4kbeoy/?utm_source=share&utm_medium=web2x&context=3