[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Quake2 engines

Quake2 engines

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Quake2 engines

Postby JasonX » Sat Feb 26, 2011 7:06 pm

JasonX
 
Posts: 422
Joined: Tue Apr 21, 2009 2:08 pm

Postby JasonX » Sat Feb 26, 2011 7:10 pm

JasonX
 
Posts: 422
Joined: Tue Apr 21, 2009 2:08 pm

Postby revelator » Sat Feb 26, 2011 11:47 pm

its a stepup from quake1 but had some trouble itself most of that where fixed in later ports though (viewport bug etc).

most polished engine would probably be quake2 evolved allthough later incarnations wasnt 100% comatible with a stock quake2 install
it was easily one of the best looking.

more recent ports include quake2xp which has more or less all of graphic goodness of quake2 evolved (and then some) but with a more standard menu (no mouse support) and it runs out of the box with unmodified quake2 installs if you start the game with -set-net-compatbility 1.

other ports like kmquake2 focussed on other parts like huge monster loads coupled with a bit of eyecandy but nowhere near the eyecandy the two above are capable of. newer the less its a hugely fun engine to play some of "mark shans" maps in (if you survive long enough ;) )

qfusion is actually not for quake2 but was a quake2 engine modded to support quake3 bsp etc. as far as i know you cant even play quake 2 with it :)

as for the bad aura with dll's several of the above engines have had the rendering dll's removed and compiled directly in quake2xp uses the devil dll's though for dds image support.

most of the hype about the evilness of dll's have disipated over the years i think as frankly even if you compile your quake2 engine statically it still relies on windows dll's (if on windows ofc).

as for what port is the best ? well the one you have most fun with id say :) i use several since they all have there good points.

player animation in Q2 i assume is controlled from the client dll's but havent delved into it a lot so i might be wrong.
User avatar
revelator
 
Posts: 2605
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Postby qbism » Sat Feb 26, 2011 11:53 pm

qfusion is a hybrid with many q3+ features, powers Warsow.

Alien Arena is based on q2.

Berserker Q2 has many graphical improvements.

q2 evolved is still out there somewhere.

If you want portability start with jake2, it's java!

Don't forget quake2world.
User avatar
qbism
 
Posts: 1236
Joined: Thu Nov 04, 2004 5:51 am

Postby leileilol » Sun Feb 27, 2011 12:00 am

I made a Q2 engine I never released due to critical gamestopping bugs. It was purely done to fix the crappy habits in the ref_gl.dll (and only that) and oddly, no other 'pretty' quake2 engine even bothers to remove 'intensity', provide actual gamma support, overbrights, npo2 texturing, and allow mono lightmaps - all I ever really ask for in a Q2 engine. I did it because all the Q2 ports suck and don't get me what I want. I don't give a shit about 'coolparticlesq2'

There is no Quake2 engine that ever does something about the '10hz problem'
Last edited by leileilol on Sun Feb 27, 2011 12:08 am, edited 1 time in total.
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Postby mh » Sun Feb 27, 2011 12:06 am

I've played around with the Q2 source a little; it's kinda fun to work with (in the sense that it fixes a lot of what's wrong with Q1 so you don't have to, but it does introduce some new problems of it's own) but I wouldn't undertake a serious project on it, because it doesn't have much long-term interest for me.

I'll second what Reckless said about DLLs; they're certainly not evil, and if you've ever run a Quake engine in the debugger under MSVC (which you really should; everyone should use debuggers regularly, and MSVC has the best one by a long mile) you'll see all the DLLs that get loaded anyway - including one called "opengl32.dll"... ;)

At the same time I don't think they were a good architecture to choose for a game engine, although I do understand the reasons why ID chose them at the time.
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby mh » Sun Feb 27, 2011 12:13 am

User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Spike » Sun Feb 27, 2011 1:45 am

.
Spike
 
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby andrewj » Sun Feb 27, 2011 8:40 am

andrewj
 
Posts: 133
Joined: Mon Aug 30, 2010 3:29 pm
Location: Australia

Postby szo » Sun Feb 27, 2011 10:40 am

Also see the yamagi port at
szo
 
Posts: 132
Joined: Mon Dec 06, 2010 4:42 pm

Postby xaGe » Sun Feb 27, 2011 3:09 pm

User avatar
xaGe
 
Posts: 462
Joined: Wed Mar 01, 2006 8:29 am
Location: Upstate, New York

Postby JasonX » Sun Feb 27, 2011 3:41 pm

JasonX
 
Posts: 422
Joined: Tue Apr 21, 2009 2:08 pm

Postby Irritant » Sun Feb 27, 2011 4:15 pm

I think there are a few Q2 engines out there that are still compatible with Q2 that offer varying degrees of improvement.

Quake2Max - no longer developed, offers a few nice improvements such as particles and scripted shaders, and a few other things, but certainly quite dated by now.

BerzerkerQ2 - one of the more advanced renderers, but a bit on the slow side. Also the code is jammed into one huge single source file for some heinous reason.

Knightmare Q2 - This one is actively developed and has a lot of nice features.

Quake2XP - This one offers up some per-pixel lighting and some other changes and is still developed.

EGL - I don't know a lot about the engine TBH, there doesn't seem to be a good amount of info, but I think that it's implemented quite a bit from R1Q2.

R1Q2 - The last I remember was that the renderer isn't changed much, but a host of other security fixes and other improvements make this a pretty solid engine if you don't care about modern graphical effects.

Q2Evolved - this is probably one of the better choices if you want modern graphical effects. The codebase is for the most part completely rewritten, so don't look at the code and expect it to be easy to follow if you're used to how Q1 and Q2 are written.

MHQ2 - I am not sure if this one is still available, (MH could answer that one). I remember this had some new particles and bumpmapping among other things.

Other Q2 based engines that aren't q2 compatible but nonetheless might be useful for porting features/learning purposes:

Qfusion - very clean, well written, has many features such as per-pixel lighting, shadowmapping, parallax, q3 shader system, and netcode improvements. Uses skeletal model format, and is compatible with all Q3 file formats as well. They also have a built in irc client, a scripting language, and security fixes. The antilag code is excellent, if not the very best.

Quake2World - this is one of the cleanest, most elegant, and is the fastest rendering Quake based engine, hands down, it's not even close. It has per-pixel lighting(normal, parallax, specular) on all map surfaces, lensflares, shaders, materials, etc. I don't think this is compatible with Q2, but it is probably not too hard to port the renderer. ( I believe UFOAI did do this ). Some stuff is incomplete yet, but it's promising to be one of the very best engines, period.

CRX(Alien Arena engine). Since I work on this I can describe some of the improvements over Q2 in more full detail.

The game.dll/game.so(linux, mac) no longer exist outside of the engine as they are statically linked(seperate ones will still work as before for mods). The engine is fully cross platform and uses Autotools for easy compiling outside of windows. For windows we have a msvc2010 project(you can download msvc2010 for free).

Aside from a variety of security fixes and bug fixes, here is a rundown of some features that we improved over the original source:

Built in IRC client
In-game serverbrowser
Built in bots(based off of ACE, but heavily changed/enhanced)
full per-pixel lighting using GLSL
Soft volume shadows/shadowmapping(all objects, including map, cast shadows)
textured particle system, beams, etc(of course, what engine doesn't by now?)
Skeletal model format(interquake model format)
Ragdoll physics using ODE(the only open source quake based engine that has these currently)
Lensflares, light volumes and sun objects
Parallax, normal and specular on all surfaces
Use of Vertex Buffer Objects(optional), vertex arrays, static and dynamic
Overbright bits and texture combine
Scripted shaders(modified rscript system)
Vegetation and weather effects(grass, leaves, fog, snow, rain, falling leaves, etc)
Post process framebuffer effects using GLSL(blurs, distortions, etc).
Use of OpenAL for sound
Antilag(backwards reconciliation method)
ejecting brass shells
true type font support
Most all of the rendering routines rewritten in a more efficient manor for some nice performance gains.
Very scaleable, and settings are automatically detected on first run

I thought about making a Q2 compatible version of this at one point, but just don't have the time really. I think though that because we kept the overall codebase structured similarly to Q2, that it would be pretty easy to port some of the rendering features into other Q2 engines pretty easily. Everything we did is very modularly structured and organized. We also comment quite well in our code.
http://red.planetarena.org - Alien Arena and the CRX engine
Irritant
 
Posts: 250
Joined: Mon May 19, 2008 2:54 pm
Location: Maryland

Postby revelator » Sun Feb 27, 2011 10:48 pm

User avatar
revelator
 
Posts: 2605
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Postby mh » Sun Feb 27, 2011 11:09 pm

User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Next

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest