I understand their move to DirectX 11. What i don't understand is why they didn't keep the OpenGL rendering part for the PC.
They could have simply switched anyone with an older card to OpenGL and be done with it.
@wayfarerxI imagine it was so they could shave another column off their support / testing matrix. Can you imagine what the JIRA backlog looks like at ZOS? If I was a project manager there I would be cutting anything I could.I understand their move to DirectX 11. What i don't understand is why they didn't keep the OpenGL rendering part for the PC.
They could have simply switched anyone with an older card to OpenGL and be done with it.
@wayfarerxI imagine it was so they could shave another column off their support / testing matrix. Can you imagine what the JIRA backlog looks like at ZOS? If I was a project manager there I would be cutting anything I could.I understand their move to DirectX 11. What i don't understand is why they didn't keep the OpenGL rendering part for the PC.
They could have simply switched anyone with an older card to OpenGL and be done with it.
But they need OpenGL anyways to run ESO on the MAC/Linux.
A good project manger would know that and would also know that maintaining one code-base is much easier than maintaining two or more.
While I agree in theory with "maintaining one code-base is much easier than maintaining two or more," OpenGL on Mac is an entirely different universe than on PC. Apple provides the OpenGL API on Mac and does the heavy lifting when it comes to mapping that API onto the cards that they bundle with their machines and they do so in a pretty consistent fashion. On PC it's up to the graphics card vendor to supply the appropriate OpenGL bindings. So while it may be similar from a code perspective (if you skip all the crazy OpenGL extension stuff), the testing footprint on PC is simply massive.
While I agree in theory with "maintaining one code-base is much easier than maintaining two or more," OpenGL on Mac is an entirely different universe than on PC. Apple provides the OpenGL API on Mac and does the heavy lifting when it comes to mapping that API onto the cards that they bundle with their machines and they do so in a pretty consistent fashion. On PC it's up to the graphics card vendor to supply the appropriate OpenGL bindings. So while it may be similar from a code perspective (if you skip all the crazy OpenGL extension stuff), the testing footprint on PC is simply massive.
Err, you haven't done much OpenGL programming, have you? The comment about the different vendors for the PC shows your lack of real work programming experience.
I've worked on several projects that had one code-base that compiled and ran on PC/Mac/Linux using OpenGL for rendering. The differences in initializing the OpenGL context and assigning it to a rendering window literally fit into 5 lines of code for each platform.
After that, it's all the same, regardless of what platform you're running on.
If a project manager told me i had to support 3 separate code-bases because of 15 lines of code that differ, i'd be seriously questioning their experience.
Let me give you some real world commercial development experience here:PC is entirely different. You have many different chips on many different cards with different drivers of varying quality across multiple versions of Windows all crammed together with lots of other intermingled hardware components. The support / testing matrix is an order of magnitude larger than on Mac. Then add the fact that most PC hardware manufactures put more effort into supporting DirectX than OpenGL and you're left with quite a quagmire when it comes to supporting OpenGL on PC.
If a project manager told me that supporting OpenGL on PC, in addition to DirectX, would not seriously impact testing and QA timelines I would be just as suspicious of their competence.
Let me give you some real world commercial development experience here:PC is entirely different. You have many different chips on many different cards with different drivers of varying quality across multiple versions of Windows all crammed together with lots of other intermingled hardware components. The support / testing matrix is an order of magnitude larger than on Mac. Then add the fact that most PC hardware manufactures put more effort into supporting DirectX than OpenGL and you're left with quite a quagmire when it comes to supporting OpenGL on PC.
If a project manager told me that supporting OpenGL on PC, in addition to DirectX, would not seriously impact testing and QA timelines I would be just as suspicious of their competence.
- OpenGL is very well supported across hardware manufactures. The DirectX > OpenGL argument simply does not hold up once you actually start digging into implementing both.
- You already have a larger testing matrix since everything you attributed to OpenGL is also true for DirectX when it comes to PC GPUs, drivers and OS versions.
- In reality, implementation differences for the same OpenGL function on different hardware are rare. You are much more likely to run into issues if you are using extensions that aren't widely supported, but if you do, you probably know that anyways in which case you already implement a fallback to a function/extension/workaround that does not require said extension.
While I agree in theory with "maintaining one code-base is much easier than maintaining two or more," OpenGL on Mac is an entirely different universe than on PC. Apple provides the OpenGL API on Mac and does the heavy lifting when it comes to mapping that API onto the cards that they bundle with their machines and they do so in a pretty consistent fashion. On PC it's up to the graphics card vendor to supply the appropriate OpenGL bindings. So while it may be similar from a code perspective (if you skip all the crazy OpenGL extension stuff), the testing footprint on PC is simply massive.
Err, you haven't done much OpenGL programming, have you? The comment about the different vendors for the PC shows your lack of real work programming experience.
I've worked on several projects that had one code-base that compiled and ran on PC/Mac/Linux using OpenGL for rendering. The differences in initializing the OpenGL context and assigning it to a rendering window literally fit into 5 lines of code for each platform.
After that, it's all the same, regardless of what platform you're running on.
If a project manager told me i had to support 3 separate code-bases because of 15 lines of code that differ, i'd be seriously questioning their experience.
First off, I'll admit to not being an expert at graphics programming. It's been a few years and most of my experience was in a non-professional, hobbyist setting. So I may be a bit behind the times.
However, I'm not at all referring to the boilerplate to set up a graphics context. Of course that's like 5-15 lines of platform-specific code covered on page 1 of every "Learn to Make Video Games!" tutorial out there, no biggie. What I'm referring to is the support matrix implied by supporting OpenGL on PC.
Apple comes out with maybe 8-10 different models of laptop/desktop a year. Not only do all of those models have very specific hardware profiles, but Apple acts as a single gatekeeper to how OpenGL is implemented and supported on those machines. This makes for a very slim support / testing matrix for OpenGL on Mac.
PC is entirely different. You have many different chips on many different cards with different drivers of varying quality across multiple versions of Windows all crammed together with lots of other intermingled hardware components. The support / testing matrix is an order of magnitude larger than on Mac. Then add the fact that most PC hardware manufactures put more effort into supporting DirectX than OpenGL and you're left with quite a quagmire when it comes to supporting OpenGL on PC.
If a project manager told me that supporting OpenGL on PC, in addition to DirectX, would not seriously impact testing and QA timelines I would be just as suspicious of their competence.