The question is whether we can build such a platform with opensource tooling and make it scale down to microcontrollers (KB of RAM), medium sized MCUs (MB of RAM) and SBCs (100s of MBs to 1 GB of RAM). The support burden is very high so whatever distro/RTOS would have to make it possible to run every binary on any architecture without recompilation.
Lots of people say that the JVM is that platform but the garbage collector makes it insufficient in my opinion. We also need the ability to run existing C code to reduce the porting burden. I think WASM could fit the bill.
If someone doesn't call this cool then I don't know. Of course in practice nobody cares and people just dig out ancient C compilers.
A growing portion are using ROS with their linux
Not too many teens choose a career in programming because they want to build a robust framework that allows construction of large-scale analytical queries on unstructured data.
Can you give some examples? How many things does a VG programming have to account for compared to, for examples, a ML programmer, or a programmer in the HFT space?
Sure, video game programming is not a game, but I don't know why it would be "the most difficult" compared to other fields.
Video game programmers often need to be very deep generalists. It's a combination of 1) the reality of small teams working on ambitious games, 2) increased expectations for what a videogame can do by default ("what do you mean I can't join a party with my friends?!"), and 3) video games are deeply, deeply bespoke software, and to implement one feature means you need to know the limitations of many subsystems.
A good friend of mine works on the World of Warcraft gameplay development team. They have ~50 engineers, and they're almost all full-stack to some degree. He said that when he was an intern on the team, to build a feature he needed working knowledge of:
1. Blizzard's battle.net network layer
2. The way textures were rendered onto character models, pixel-by-pixel
3. The intricacies of their in-house Lua engine and parser
4. The way that NPC AI was written
None of these requirements, by themselves, are too crazy; but he was using all of these, every day, as a junior in college!
And that was for a three-sprint project! As an intern!
An average game dev would have much deeper knowledge on the stuff they do than the average dev that build corporate software since the game devs would de bespoke work every time. Sure, they also have assets etc. but in the gaming the originality is much more important since the product itself is meant to be enjoyable, not simply a medium to accomplish something else(like ordering pizza or keep track of payments).
Yep, like NPM and various dependency hells. Maybe that's where the compensation difference comes from?
Large breadth of content with lots of esoteric and domain specific knowledge sprinkled throughout. The higher level abstractions available are very limited in scope in comparison to say GUI toolkits, most of the success has come from people drilling down and putting in a ton of work.
Forza heavily uses ML. You have Network programming, in there. Well I'm sure some specialties exist which are more difficult, it doesn't change the fact of video game programmer can make half as less as a normal business programer.
> I'm sure some specialties exist which are more difficult
OK, so we agree. Video game programming can definitely be very tricky, but it's like any other specialties once you reach a certain threshold of sophistication/scale/whatever.
I've seen video game studios which essentially have a single wunderkind who has to dabble in everything because no one else reaches his or her skill level. No other industry has low pay and crunch
> No other industry has low pay and crunch
I wasn't talking about the workload or low salaries. I was talking about the statement that "video game programming" as a discipline is the most difficult of all.
And plus I started my statement with "I find" , if you happen to program quantum systems and that's 10 times as difficult compared to writing a game engine in CPP, that's cool
I find video game programming to be the most difficult of all, just because you have to account for so many things, yet game programmers make the least.
It's the problem of every dream job, no one dreams of working on software for waste treatment facilities. So the people willing to do that job can do much better than the new grads trying to work on the next battlefield or whatever