Is there a exhaustive explanation of features for QZDoom?

Truecolor ZDoom with extra features and some unofficial/beta GZDoom features.
[Home] [Download] [Git builds (Win)] [Git builds (Mac)] [Libs (Win)] [Repo] [Bugs&Suggestions]

Moderators: Rachael, dpJudas

Locked
Seismos
Posts: 2
Joined: Tue Nov 01, 2016 4:38

Is there a exhaustive explanation of features for QZDoom?

Post by Seismos »

First of all, hello there!

I am quite impressed with some of the technical feats I've witnessed. Great job dpJudas and Eruanna! I've been watching this source port for some time, and once I saw it gaining momentum and it's first release, I decided that I would use QZDoom as the engine for a game that I am designing. As somewhat of a Doom purist, the switch to a more graphically advanced source port has left me with a few questions.

1. Is there a list of features for QZDoom, and if not, can someone explain the important features that differentiate it from GZDoom? Is there anything in particular that QZDoom cannot do that GZDoom can?

2. Is the goal of QZDoom to ultimately allow the software renderer to perform all/most tasks that the OpenGL renderer is capable of? If so, where does the software renderer currently stand, feature-wise?

3. Given a set of recommended computer specifications, how much abuse is possible without slowing down the engine? In particular, dynamic lights, models/voxels, portals, and 3D floors come to mind. Anything I should keep in mind while designing my game?

Thanks!
User avatar
Rachael
Developer
Developer
Posts: 3639
Joined: Sat May 13, 2006 10:30

Re: Is there a exhaustive explanation of features for QZDoom?

Post by Rachael »

1. Right now, QZDoom is just an extension to GZDoom (which itself is an extension to ZDoom), so other than the true-color renderer, and the polygonal renderer for both true-color and paletted software mode, there are no significant features over GZDoom.

2. That is what I wanted with QZDoom, but that itself was not the reason for creating the port. Mainly, I just wanted to expand ZDoom's renderer using a perfectly valid true-color branch that pretty much died at the time of this port's creation. (In other words, I didn't want that work to fade into the dust, as it was fated to do at the time)

3. No matter how you cut it, the CPU is not capable of parallel processing nearly to the same extent as a GPU is. Think of a GPU as a thousand-to-million-core slow CPU. When it comes to raw math a GPU can outperform a CPU very easily, which is why it is the preferred method for rendering modern 3D games.

Something to keep in mind when using QZDoom as a game engine base - the licenses for the code currently in place do not allow commercial exploitation. This is a problem that may be fixed sometime down the line as a separate project fork (which someone has already proposed). Also, there are subtle differences between it and the GZDoom code base (such as vid_renderer defaulting to 0, since there's no significant reason to pick up QZDoom if you're just going to use GZDoom instead :P). That being said, if you are going to fork this for a custom game engine, I would suggest changing that default back to 1, because GZDoom's renderer is still faster, even if less compatible on older hardware, than any software renderer (depending on the processors respective renderers run on, obviously).

That being said - if you are going for commercial development, for now I would recommend giving GZDoom-GPL a try, as it was made for that. If your game is going to be free of charge, though, simply forking QZDoom and changing some of the defaults to suit game distribution should be sufficient, and will allow your users to take full advantage of the renderers that are currently available.
Seismos
Posts: 2
Joined: Tue Nov 01, 2016 4:38

Re: Is there a exhaustive explanation of features for QZDoom?

Post by Seismos »

Huh. I think I'm misunderstanding something fundamental here, probably a result of me being out of the loop for several years.

QZDoom has both a truecolor software renderer and an OpenGL renderer with some advanced features like multisampling, bloom, roll translations, and SSAO. After looking at the most recent GZDoom changelogs, all of the new OpenGL features have been added (with the exception of SSAO, which should be added soonish). I seemed to have missed this. As for the truecolor software renderer, is this being backported to ZDoom and/or GZDoom, or is this what remains exclusive to QZDoom?

I guess what I'm trying to understand is, what would be the purpose to using QZDoom once these features are added to it's parent ports?

Another question: what is the minimum version of OpenGL support required for using the hardware renderer to it's fullest?

An aside: as for commercial endeavors, I did not intend on selling the finished project, although I've given it plenty of thought. I'm still torn on this subject. Thanks for the info/recommendations though.

Thanks for the quick reply, even though mine wasn't. Sorry if my questions seem scatterbrained. Still trying to familiarize myself with the state of everything.
User avatar
Rachael
Developer
Developer
Posts: 3639
Joined: Sat May 13, 2006 10:30

Re: Is there a exhaustive explanation of features for QZDoom?

Post by Rachael »

I guess what I'm trying to understand is, what would be the purpose to using QZDoom once these features are added to it's parent ports?
It's still a development platform for some code submissions for ZDoom, even without the new renderers. If the renderers get upstreamed, it may outlive its purpose, it may not. I'm thinking QZDoom is likely to stick around, really.
Another question: what is the minimum version of OpenGL support required for using the hardware renderer to it's fullest?
Same as it is for GZDoom. Since GZDoom upgraded its renderer, its minimum OpenGL requirement is 2.0. I believe 3.0 is required for all features, but Graf may have to correct me on that. 3.5/4.0 is recommended, though, for Core profile rendering, which is faster.
An aside: as for commercial endeavors, I did not intend on selling the finished project, although I've given it plenty of thought. I'm still torn on this subject. Thanks for the info/recommendations though.
You're welcome.
Thanks for the quick reply, even though mine wasn't. Sorry if my questions seem scatterbrained. Still trying to familiarize myself with the state of everything.
No worries. I am glad you have taken an interest in the project, and hope your development goes smoothly.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: Is there a exhaustive explanation of features for QZDoom?

Post by Graf Zahl »

Eruanna wrote:
Another question: what is the minimum version of OpenGL support required for using the hardware renderer to it's fullest?
Same as it is for GZDoom. Since GZDoom upgraded its renderer, its minimum OpenGL requirement is 2.0. I believe 3.0 is required for all features, but Graf may have to correct me on that. 3.5/4.0 is recommended, though, for Core profile rendering, which is faster.
GL 3.3 is required for full feature support. Lower GL 3 versions have a few limitations if certain extensions are not present, but to my knowledge this only affects first generation Intel chipsets with GL 3 support, most drivers for HD3000 support everything that is needed (although this hardware is clearly too weak to run GZDoom at decent speeds.) OpenGL 4.4 or persistent buffers are required to use all features without any restrictions. Without those some workarounds are necessary, that for example hurt the performance of dynamic lights.
User avatar
Rachael
Developer
Developer
Posts: 3639
Joined: Sat May 13, 2006 10:30

Re: Is there a exhaustive explanation of features for QZDoom?

Post by Rachael »

Yeah, how wrong I was. Thank you, Graf. :)
Locked

Return to “QZDoom”