Personal computing discussed

Moderators: renee, morphine, SecretSquirrel

 
NovusBogus
Graphmaster Gerbil
Topic Author
Posts: 1408
Joined: Sun Jan 06, 2013 12:37 am

Re: Is 3d Graphics the hardest kind of programming ?

Wed Jan 02, 2019 7:19 am

1. No. 'Graphics programming' just like all of those other examples is split into two branches: those who make the libraries, engines, SDKs, and drivers (Microsoft, Nvidia, Unity, etc.) and those who use the libraries to make end-user applications (game developers). Doing DX or OGL/Vulkan work is just a bunch of function calls, and if you're using someone else's engine it's even more abstracted than that. They're all more or less equivalent in terms of complexity, and highly variable across the industry. A couple of guys trying to bolt together something for their crowdfund campaign are going to care about time consuming, magic-prone performance optimization a lot less than a company like Cloud Imperium that hired a bunch of former game-engine gurus to push the envelope.

2. Carmack is not simply 'competent' he's a living god of black magic programming with few equals before or since. His particular type of genius is also one that the typical programmer doesn't even need anymore, due to all the aforementioned libraries that didn't exist in his day. A programmer aspiring to be as good as John Carmack is like a guitarist aspiring to be Joe Satriani: a lofty and worthy goal, to be sure, but your career isn't DOA if you wind up being merely capable. Like other disciplines, it takes about 15 years to be fully qualified to lead a project, 5 years to lead a component or subsystem, and a few months to make meaningful contributions to a project.

3. C++ is still good, and if you don't want the new stuff there's nothing forcing you to use the newer versions. A typical project may also use a combination of C++ and other things, since compiled deliverables have moved away from a single monolithic .exe file toward a collection of libraries and processes that talk to each other.

4. It's no secret that the big studios don't treat their staff very well, but the pay is usually good for that line of work and they'll keep doing it as long as the seats stay filled. Not all game developers are sweat shops, though. This again mirrors the larger industry. The best way to not get treated like a serf is to stay away from places that are saturated with young nerds who'll do anything for their first or second job.

Note that I do mostly embedded C++ with some .NET and HTML/Js on the side, I wrote a very basic DirectX based rendering engine in high school and messed with OpenGL some in college but nothing serious. So I have some experience but I'm not a professional game dev guy.
 
jihadjoe
Gerbil Elite
Posts: 835
Joined: Mon Dec 06, 2010 11:34 am

Re: Is 3d Graphics the hardest kind of programming ?

Wed Jan 02, 2019 9:22 am

Like said 99% of '3D graphics programmers' nowadays will be making use of existing engines with a wealth of libraries.

Carmack is the guy who makes the actual 3D graphics engine from scratch. I guess if you were looking for his modern-day equivalent, it wouldn't be anyone making an actual game, but more a combination of the guys at Epic making Unreal Engine, and someone at driver teams at AMD/Nvidia doing the very low-level optimizations
 
just brew it!
Administrator
Posts: 54500
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Is 3d Graphics the hardest kind of programming ?

Wed Jan 02, 2019 10:04 am

I'll just piggyback my comments on NovusBogus's, since I mostly agree:

NovusBogus wrote:
1. No. 'Graphics programming' just like all of those other examples is split into two branches: those who make the libraries, engines, SDKs, and drivers (Microsoft, Nvidia, Unity, etc.) and those who use the libraries to make end-user applications (game developers). They're all more or less equivalent in terms of complexity, and highly variable across the industry. A couple of guys trying to bolt together something for their crowdfund campaign are going to care about time consuming, magic-prone performance optimization a lot less than a company like Cloud Imperium that hired a bunch of former game-engine gurus to push the envelope.

Yup. If you're making the libraries/engines/drivers, then there's a fair bit of math involved. Depending on your background, that may or may not be "hard".

Coming up with a good interface (so other people can use your library/engine) takes experience.

Multi-threaded development (to leverage the extra cores on a modern CPU) can be hard to get right, but this issue isn't specific to games.

But using a well-designed game engine shouldn't be that hard; that's the point of using someone else's game engine instead of rolling your own.

Coming up with the idea for a game that isn't just a rehash of something that's already been done a dozen times over... now that's hard!

NovusBogus wrote:
2. Carmack is not simply 'competent' he's a living god of black magic programming with few equals before or since. His particular type of genius is also one that the typical programmer doesn't even need anymore, due to all the aforementioned libraries that didn't exist in his day. A programmer aspiring to be as good as John Carmack is like a guitarist aspiring to be Joe Satriani: a lofty and worthy goal, to be sure, but your career isn't DOA if you wind up being merely capable. Like other disciplines, it takes about 15 years to be fully qualified to lead a project, 5 years to lead a component or subsystem, and a few months to make meaningful contributions to a project.

Yeah, Carmack was the rough equivalent of Einstein for the 3D FPS genre. And just as physicists, scientists, and engineers since Einstein have built on what he started, the segment of the games industry that Carmack jump-started has grown and evolved.

NovusBogus wrote:
3. C++ is still good, and if you don't want the new stuff there's nothing forcing you to use the newer versions. A typical project may also use a combination of C++ and other things, since compiled deliverables have moved away from a single monolithic .exe file toward a collection of libraries and processes that talk to each other.

If the project you're working on is using a 3rd party library that relies on newer language features, there may be some learning curve. I was an "old school" C++ developer (going back to the '90s), and TBH familiarizing myself with C++11 and the Boost libraries was challenging.

It is still the language to use if you need the combination of OOP and high performance.

NovusBogus wrote:
4. It's no secret that the big studios don't treat their staff very well, but the pay is usually good for that line of work and they'll keep doing it as long as the seats stay filled. Not all game developers are sweat shops, though. This again mirrors the larger industry. The best way to not get treated like a serf is to stay away from places that are saturated with young nerds who'll do anything for their first or second job.

It's supply and demand. A lot of developers think they want to go into game development. I was no exception, even though I started working well before the PC games industry took off (I wanted to develop arcade games). I ended up bouncing around the telecom, finance, and defense industries for most of my career instead, because that's where the jobs were and I had to pay the bills. Since there are more people than jobs, some studios will pay their people less and/or treat their people worse than the norm for other segments of the tech industry, because they can.

NovusBogus wrote:
Note that I do mostly embedded C++ with some .NET and HTML/Js on the side, I wrote a very basic DirectX based rendering engine in high school and messed with OpenGL some in college but nothing serious. So I have some experience but I'm not a professional game dev guy.

I've done a fair bit of C/C++ and Python development over the years. I've done some OpenGL professionally, but it was not gaming-related.
Nostalgia isn't what it used to be.
 
just brew it!
Administrator
Posts: 54500
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Is 3d Graphics the hardest kind of programming ?

Fri Jan 04, 2019 1:27 am

Thread was started by a (now banned) spammer. Locked...
Nostalgia isn't what it used to be.

Who is online

Users browsing this forum: No registered users and 1 guest
GZIP: On