Chris wrote: ↑30 Apr 2019, 08:05
Someone who doesn't know OpenGL well, though, is going to make unoptimal and error-prone OpenGL code because they're unfamiliar with how to use it correctly.
True you don't have to learn about culling and sorting, but you still have to know about transforms, shaders, the fixed-function pipeline, the renderTraversals system, the node hierarchy, and any number of OSG's OOP architecture quirks. Someone trying to write efficient code effectively still needs to know what the video card is going to do, and OSG is simply a different API to interact with. Realistically it ends up being the same risk, because you still have to have knowledge of underlying concepts
and you need to know how OSG expects you to implement it, or else you'll also end up writing bad code, you'll just have a different API to blame it on.
Chris wrote: ↑30 Apr 2019, 08:05
It's not just total line count, but also compartmentalization and maintainability.
Those elements are not diametrically opposed, and it's possible to have compartmentalization and maintainability expressed in a small number of lines just as well, with the added benefit of there being less to compartmentalize out in the first place.
Chris wrote: ↑30 Apr 2019, 08:05
But after we have the code, what then? Can you guarantee you'll always be available to deal with issues as they arise, or add new features as they become desirable? If someone wants to contribute, will you be there to help them learn what they need to know about your code? If you leave, is someone else going to be able to pick up where you left off?
Well my pledge to you is that you won't need me to explain how it works because it will either be simple enough, or sufficiently well commented, that a person could understand just by reading it. I mean you guys already lost your rockstar Scrawl and you've been managing just fine, just because the engine links OSG doesn't mean the code using it doesn't have to be legible. It's not a new problem, it's an inherent part of working in a group project.