Wondering; porting Quake 2 to Quake 3?

So there’s something I think about form time to time, and I don’t really know where to get a good answer, and I’m kinda hoping some folks here know the Quake engines well enough to give a good answer.

Basically, how feasible would it be to port Quake 2 to the Quake 3 engine?

Of course with enough effort it will be possible, but I’m wondering how much effort it would take. Clearly it’s not that easy to do or else someone would have already done it.
So what would be involved? How much of the game could be ported over with little effort, and what would require fundamentally rebuilding the content?

As a layman, I see two significant areas: One is the level geometry, lighting, visibility and such. The other is all the gameplay, behavior, and other program stuff not related to rendering. I’m a bit more interested in the latter, but still generally curious about both. (The change in formats for textures and models and such seems to be practically a non-issue, but correct me if I’m wrong.)
I know enough about game engines to know that in both cases, elements could have had complete re-writes in the base logic of how they work. Maybe I could cut-and-paste some of the enemy AI behaviors or other gameplay mechanics, or maybe the way the engine addresses actors in a scene is completely backwards from what it used to be, and it is more reasonable to build completely new code. Maybe the engine could read old map formats with a simple if statement and a paste of code from the old engine. Or maybe the render pipeline is going to get garbaged up if I try that and all the map scales and wrong to boot.

So what factors are going to necessitate re-writing code? What changes did the engine make that pose the greatest roadblocks to this kind of project?

I’m also kinda curious about porting Quake 1 to the Quake 3 engine, but mostly curious about Quake 2.

Oh, and for all those who are going to ask why: Because Quake 3 has worlds better network code, and it would be nice to play Quake 2 multiplayer with the speed and reliability of Quake 3. Quake 2 also has a single player campaign, and it would be nice to make Q3 single player mods (or co-op mods) using that code as a start.

there are a few ways to go about this, famously there was “Generations Quake 3” if I remember the name correctly. That was a mod for Quake 3 multiplayer that let players choose a character from previous id games and then you would get those games’ gameplay in multiplayer.
I believe id or activision or somebody got legally upset about this and this effort was shut down, this was back way before the quake 3 source code was available and so it was a mod.

For the other way, you’d probably want to check out the RQ3/Reaction Quake 3 work. That is the Action Quake 2 game ported to Quake 3 including various levels made for the quake 2 engine. I don’t know if they used a converter for the levels, but I believe there is software out there that will just convert a Quake 2 level to a Quake 3 compatible format.

That is pretty nice history lesson! I guess the fans wanted Quake Champions far sooner than Id did! According to the Quake Wiki page I just found, it was actually a Quake 2 predecessor that got shut down; or at least the wiki page says Generations Quake 3 is “legal,” unlike its Quake 2 predecessor.

As l look at Reaction Quake 3, it looks to me like they just ported their mod, not any code from Quake 2. Porting their maps was probably an easy process since they had the original map data instead of just the compiled BSPs. And there does not appear to be any kind of single-player campaign. So altogether there doesn’t appear to be too much there that would help me.

What kind of changes did they make to the source code between Quake 2 and Quake 3 that would make it difficult to copy the enemy AI and gameplay logic from Quake 2? Do they use a similar system or did they have to completely redesign things as part of making them work with the new netcode?