More people want to make games than sell street food.
The food business is brutally hard work, and I have a lot of respect for anyone doing it (well). There's no a priori reason why game programmers should be rewarded more than street food vendors.
You'd need to sell a lot of bread to make even an average US game programmers salary. The reason being that the work is creative and technically skilled. There are fewer people able to do it and that pushes up salaries. Like any industry there are exploitative employers, but it's just a case of finding or making a good place to work. The video game business is constantly changing in terms of the types of games people will pay for and the technology used. There's a never ending demand for new games.
I don't have numbers to back this up, but I strongly suspect your average hotdog cart sells more hotdogs per day than your average indie or solo game developer sells iPhone games per day.
A new street food vendor only competes with other food vendors in the area. A new game developer competes globally, against both established studios and hobbyists happy to work for free because it's fun. You have people who want to make games so badly they'll fight to get in, knowing fully it's low pay and long hours.
Any way you look at it, the reason game developer salaries are relatively low is because supply for the jobs is higher than the demand.
It's a bit silly to compare the two because the economics are so different (local, non-scalable product vs. global product with zero marginal cost), but I stand by my assertion that there's no inherent reason why game developers should earn more, on average, than food vendors.
Inherent reason to me would be that the skills of food vendors are more common and easily acquired than those of game developers. I have a BSc in CS and over 10 years experience. This guy learned to make bread from his girlfriend and opened a stand shortly after. You're probably unfamiliar with the game industry beyond popular articles and headlines, but I can assure you tha demand for qualified engineers is very high. At least in the parts of the industry that are profitable. i.e not the millions of bedroom coders or cheap labour that pump out mediocre games.
I guess we're talking about different things - you're talking about the high end positions, I'm talking about the average case. To get my analogies even further muddled up, you're talking about musicians signed with a major label, I'm talking about all musicians, from rockstars to people busking in subway stations. The expected value is going to be very different if you're only taking the top N percentile.
(not particularly relevant, but I have friends with similar qualifications and experience as you who work / worked in the industry at... shall we say more mediocre studios. I suspect their perspective on this topic is somewhat different from yours.)
Are you implying that cooking is not a creative and technically skilled employ? Because I'm sure there are several people that would be glad to argue that point with you. I mean, sure, a line cook or something? Maybe not. But someone running their own food stand, responsible for everything from the menu to presentation?
There are skills involved, and I wouldn't say they were lesser than those needed for programming. But in the same vein, I'd say spending a few days learning to make bread to sell in a cart does not compare to the years it takes to become a competent programmer.
I would say that speaks more to the formalization of baking than anything else. Software engineering is so far interesting in the sense that it doesn't have a kind of "technical" employee. That is, there is a huge difference between someone who can bake bread from a recipe, and someone who can create that recipe to start with. The former is just being able to follow directions; the latter involves a lot of in-depth knowledge and experience about, for lack of a better term, baking chemistry. In the same line, a lot of traditional (physical) engineering professions can utilize drafters.
I guess the equivalent in software engineering would be someone who can only implement designs and algorithms from other people, and any ambiguities or questions about the design would result in them stopping work until a clarification is received from the "engineer".
Salary distributions in the video game industry are starting to look a lot like salaries in the movie and TV industries. The bottom tends to pay peanuts and demand long hours, because there's an oversupply of willing applicants relative to the demand for low-level talent. (The question "Who wants to make games/movies/TV shows for a living?!" will always be exciting enough to attract entry level applicants by the boatload).
The top tiers of any of these industries, however, pay millions. I'm not talking millions because people started their own businesses and got acquired. I mean millions in salary and/or bonus per year, as employees. This is because, as you put it, the supply of extremely talented and skilled workers at the higher tiers is outpaced by demand. (And also because they're hit-driven businesses -- and, absent any real data as to a causal relationship between Superstar A's presence and Supergame B's performance, Superstar A receives the full benefit of correlation).
So you end up with a sort of pyramid structure to the business: lots of workers at the bottom, slightly fewer at the middle, very few at the top, and the compensation flows disproportionately from the top down.
A lot of industries function this way, but the various entertainment industries have especially interesting distributions because they're so inherently attractive to potential applicants.
People outside the industry make these kind of generalisations all the time but in practise it's nonsense. Sure millions of kids may want to be video programmers, but very few are qualified (i.e: can program well enough and have sufficient CS background to cope with the job.
Where I work we have a good mix of veterans and recent graduates. Typically they are from top North American Universities including Stanford and Waterloo.
> The reason being that the work is creative and technically skilled.
Given how fast I've been going through potential (literal) burger flipper cooks at my restaurant, I'm not sure that's totally the case. Some people are surprisingly _terrible_ at a job that many people consider to be the lowest of the low.
Being a game programmer is a choice taken by people with good choices available to them. They could be working less hard and/or earning more elsewhere. They choose not to. I don't see why that's a travesty.
Sweatshop is working is horrible conditions that no one would choose if they had any decent options.
It's not all bad. Valve compensates its programmers the same as Google and Facebook, sometimes better. I believe their revenue per employee exceeds that even of Apple (but don't quote me on that).
Game programmers are the equivalent of children workers in a sweatshop.