Which is your target OpenGL version?
by Alberto Ganesh Barbati · in General Discussion · 06/14/2006 (2:39 pm) · 6 replies
Hi Everybody,
TGE supports a very wide installation base supporting plain old OpenGL 1.2 (maybe even 1.1?) plus several extensions. To provide this support the code is quite complex if not even messy. Raising the minimum requirement to, say, version 1.4 or 1.5 would definitely simplify the code. It might also provide a marginal performance increase, but code maintenance is more important here. Anyway, does it really makes sense to provide a fallback for cards that don't support multitexturing in year 2006? AFAIK, now ATI and Nvidia cards have drivers that supports full OpenGL 2.0. My three-years old ATI 9700 runs GLSL shaders good enough for an indie game.
Which version are YOU targetting? Do you feel that keeping compatibility with pre-1.5 OpenGL is important?
If it were for me, I would jump directly to version 2.0 and forget about any extension, but I would like to know more. Is there some site where I can find information about the drivers installed base?
Thanks in advance,
Alberto
PS: I don't want to switch to DirectX. That's one of the reasons I haven't bought TSE yet. CG might be an option, but I feel more confortable with plain GLSL. And, in case you are wondering: yes, I already have a modified TGE with GLSL shaders. It looks awesome.
TGE supports a very wide installation base supporting plain old OpenGL 1.2 (maybe even 1.1?) plus several extensions. To provide this support the code is quite complex if not even messy. Raising the minimum requirement to, say, version 1.4 or 1.5 would definitely simplify the code. It might also provide a marginal performance increase, but code maintenance is more important here. Anyway, does it really makes sense to provide a fallback for cards that don't support multitexturing in year 2006? AFAIK, now ATI and Nvidia cards have drivers that supports full OpenGL 2.0. My three-years old ATI 9700 runs GLSL shaders good enough for an indie game.
Which version are YOU targetting? Do you feel that keeping compatibility with pre-1.5 OpenGL is important?
If it were for me, I would jump directly to version 2.0 and forget about any extension, but I would like to know more. Is there some site where I can find information about the drivers installed base?
Thanks in advance,
Alberto
PS: I don't want to switch to DirectX. That's one of the reasons I haven't bought TSE yet. CG might be an option, but I feel more confortable with plain GLSL. And, in case you are wondering: yes, I already have a modified TGE with GLSL shaders. It looks awesome.
#2
06/14/2006 (3:50 pm)
Thanks Aaron. AFAIK, all recent Intel cards fully supports OpenGL 1.4, which means you at least have multitexturing, multisampling, texture compression, texture env add/combine, fog coordinate, multidraw arrays among a lot of other stuff. According to http://www.realtech-vr.com/ even low-level fragment and vertex programs are supported. Could you confirm that? That looks more than a reasonable base to start upon. About those other "integrated video cards", do you think pre-1.4 cards holds a significant share of the market out there?
#3
06/14/2006 (4:31 pm)
Extension checking with fallback support is the best way to go. Sure it's complex, but it gives you the widest possible market and allows your rendering pipeline to automatically run at optimal quality and makes it easier to allow the end user to control various graphical effects. I generally assume that OpenGL 1.3 is supported (Radeon/GeForce 2 and up) and provide fallbacks for advanced features such as render to texture and shaders. At the end of the day I've got an engine that can go from running at 30FPS on a Radeon 7000 to squeezing out 10 from a GeForce 7800 and anywhere inbetween.
#4
I started out including "fallback" positions for even older versions of OpenGL, but I've stopped. It just doesn't seem worth the effort. My 8 year old Dell desktop (that my kids still use) with its 4 year old AGP graphics card can run the project the way its supposed to be run (though not quite as snappy as my 1 year old laptop with an X300).
I'm not out to invent tech or even break it in. I just want the tools to be able to do what is I want to do. :)
-David
Joe Indie
06/14/2006 (4:38 pm)
Currently, I'm targeting OpenGL 1.4 as the base. That provides the features to get the look we want (cel shading). And its very widespread. Since the 1.4 spec was finalized back in 2002, it's had a lot of time to propogate.I started out including "fallback" positions for even older versions of OpenGL, but I've stopped. It just doesn't seem worth the effort. My 8 year old Dell desktop (that my kids still use) with its 4 year old AGP graphics card can run the project the way its supposed to be run (though not quite as snappy as my 1 year old laptop with an X300).
I'm not out to invent tech or even break it in. I just want the tools to be able to do what is I want to do. :)
-David
Joe Indie
#5
I think that if you go for a certain degree of photorealism you can no longer make a competitive-looking game with OpenGL 1.2. At least 1.3 is necessary (multitexturing, cubemaps and texenv add/combine are a must, nowadays). To have decent shadows you need 1.4. Non-photorealism might even be more demanding and David requiring 1.4 confirms this opinion of mine. Sure, every game is different. For example, I would be curious to know the minimum requirements of Zap. I bet it might be very low, yet the game is so nice. Of course, you have some degree of freedom only when a graphic feature is not relevant for gameplay... for example you just can't make a stealth game without proper-looking shadows: in that case providing backward compatibility may just not be feasibile.
Just my opinion.
06/15/2006 (12:45 am)
Thanks Alex and David. The point is that there is a quality limit under which it makes little sense to go and you have to decide where it is. Yes, the game might run on low-end machines, but the look would be so crippled that users would just get angry at the developers seeing the screenshots on the website. Those machines probably have a low-end or weak CPU anyway, so even the framerate is not going to be good, which could make the game unplayable. In marketingspeak: an unsatisfactory experience ;) Is having one more unsatisfied customer worth the effort?I think that if you go for a certain degree of photorealism you can no longer make a competitive-looking game with OpenGL 1.2. At least 1.3 is necessary (multitexturing, cubemaps and texenv add/combine are a must, nowadays). To have decent shadows you need 1.4. Non-photorealism might even be more demanding and David requiring 1.4 confirms this opinion of mine. Sure, every game is different. For example, I would be curious to know the minimum requirements of Zap. I bet it might be very low, yet the game is so nice. Of course, you have some degree of freedom only when a graphic feature is not relevant for gameplay... for example you just can't make a stealth game without proper-looking shadows: in that case providing backward compatibility may just not be feasibile.
Just my opinion.
#6
* Target audience - as an indie, the buyers of my game will more than likely be Internet savvy and more than casual gamers with discretionary income. Most will have mid/high end systems.
* Testing requirements - While I do own more systems than some funded game companies (15+), I will not be able to test every video card on the market.
* Code requirements - I am a one main team, and having to cover all possible configurations for fallback does not allow me to release my project in a timely manner.
* Artistic License - While my professional career is Software engineering, I have been an artist most of my life, and you can ask any artist how it feels to force them to compromise their art because an art path doesn't support a feature. E.g., Depth of Field, per-pixel lighting, parallax mapping,
* Game Play - I previously worked for a company doing technology demos for their 3D video card chips. While the company no longer exists, I am still inventing cool tricks to do with 3D. Some of these are integral to the game play and an acceptable fall back isn't possible. E.g., shadows, fog volumes, Frame Buffer effects
There are others, but these were enough to convince me.
06/19/2006 (12:49 pm)
Here is a short list of things that I considered when choosing to require 1.4+ Opengl compatibility.* Target audience - as an indie, the buyers of my game will more than likely be Internet savvy and more than casual gamers with discretionary income. Most will have mid/high end systems.
* Testing requirements - While I do own more systems than some funded game companies (15+), I will not be able to test every video card on the market.
* Code requirements - I am a one main team, and having to cover all possible configurations for fallback does not allow me to release my project in a timely manner.
* Artistic License - While my professional career is Software engineering, I have been an artist most of my life, and you can ask any artist how it feels to force them to compromise their art because an art path doesn't support a feature. E.g., Depth of Field, per-pixel lighting, parallax mapping,
* Game Play - I previously worked for a company doing technology demos for their 3D video card chips. While the company no longer exists, I am still inventing cool tricks to do with 3D. Some of these are integral to the game play and an acceptable fall back isn't possible. E.g., shadows, fog volumes, Frame Buffer effects
There are others, but these were enough to convince me.
Torque Owner Aaron E
Default Studio Name
For my primary project, I'm aiming at the lowest possible hardware setup, which includes integrated video and even Intel graphics adapters. It would be great if everyone had an ATI or nVidia card, but unfortunately, my target audience is not part of the gamer elite.
Future projects, however, may have different audiences and requirements. I won't make a decision on those until I'm ready to start working on them
Aaron E.