I say "possibly-misguided" because there are some people for whom that is their one and only dream, and if that is their choice, hey, great. Go for it. I just want people to go into it with open eyes. However, I think the bulk of such people are simply misinformed about A: the nature of game programming and B: the nature of non-game programming. For the most part, they're a lot more similar than a lot of young people realize. You don't go into games programming and get to "design games"; you're going to consume tickets and do a lot of repetitive scut work. Frankly your odds of finding a good job where you're self-directed and not entirely doing scut work is better outside of the game industry.
So... do your part... spread the word that the games industry is mostly bad jobs and the non-games industry actually has a lot of good stuff in it, so that by giving young people a better understanding of the real situation they can make better choice, and help starve the games industry of its continuous supply of fresh-faced naive grads to exploit.
There's also a ton of societal pressure to "follow your dreams" or "pursue your passion", and people conflate their passion and enjoyment of playing video games for what it would be like to make the games.
First off, people need to differentiate the enjoyment of something with the making of it. Not the perfect example, but I like to eat meat, yet I know I would hate to be a butcher.
Second, if you really enjoy something it's often better to keep it as a hobby. Most people find all the joy gets sucked out of their passion when it also involves the business of selling, supporting customers, and managing costs.
That's actually a way better analogy than you think.
But I had some great professors in university that steered me away from the game industry. I'm quite happy working as a web dev now and I can do games as a hobby.
According to Stack Overflow [1] the median age of a developer is 33 years old, whereas the median age of a game developer is 31 years old [2]. That's not likely to be a big enough difference to substantiate your position.
[1] https://insights.stackoverflow.com/survey/2020#developer-pro... [2] https://igda.org/resources-archive/diversity-in-the-game-ind...
You can have a bunch of people who jump in at 23, get super exploited, and burn out in two years balance against one single person over the median age, so long as that stream of younger people is serial. The median is unchanged, but a lot more people leave the industry feeling exploited and abused by it than remain.
I am not disputing that the game industry has a lot of churn. I'm disputing that the game industry has substantially more churn among younger people than older people and that the churn is significantly different from the rest of the software development industry.
It's not so much that young people are uniquely exploited and leave after a couple of years, it's that the number of software developers doubles every 5 years so that there is a huge imbalance of young people in the industry in general.
If there is such evidence, by all means produce it.
But it's not just that. Every job has a mixture of tangible and intangible rewards. Game development scores relatively poorly on the tangibles: less pay, fewer benefits, less free time. But for many people, it scores incredibly highly on the intangibles:
- Spending your day writing code that makes insurance rate calculations comply with the latest changes to Iowa tax law versus making an orc explode if you hit it with an axe just right.
- Working in an office that lets you wear chinos on casual Friday versus wearing whatever you like, coming in when you like, and being surrounded by culture and people that resonate with you.
- Working with accountants and lawyers versus artists and sound designers.
- Working on a product used begrudgingly by employees of some giant accounting contractor versus make a game you love to play.
- Sitting next to folks doing the bare minimum just to get a paycheck versus the comradery of being on a team that really believes in what they're doing.
- Writing code that's difficult because it encodes Byzantine legal regulations versus code that's difficult because it uses the latest graphics algorithms to push hardware as much as possible.
- Being at a company no one's heard of making software know one knows versus being at a brand your friends all know working on products they're excited about. (Anecdote: When I flew to Orlando to interview at EA, I ended up mentioning it to a guy sitting next to me at the airport. He looked at me like an absolute celebrity. "Dude, you're gonna be working on Madden?" I still remember that moment.)
So, yeah, the hours and the pay suck. But when you're in your twenties you tend to have a lot of time and not a lot of bills. Working on something that resonates with your peers, your culture, and your passions is really valuable.
I wish big companies exploited that less, sure. But you see low pay and crunch even at small non-exploitive companies which implies to me that much of this is simply people rationally trading off tangible rewards for intangible ones that are more meaningful to them.
I find it really weird how much software engineers criticize taking a pay cut to make games while simultaneously romanticizing leaving tech completely to become a farmer, writer, chef, social worker, etc. (all of which, for the record, have miserable hours and shit pay). Game devs are essentially doing the same thing but at least they get to use their tech skills in the process.
I'm glad I'm not at EA anymore because my values and priorities changed. But I don't regret my time there and it got me my current job at Google. If I'd spent that time chasing some other low-paying dream like writing fiction, it's much less likely I would have been able to make that transition.
> Working in an office that lets you wear chinos on casual Friday versus wearing whatever you like, coming in when you like, and being surrounded by culture and people that resonate with you.
Most dev jobs are the second thing. Most dev shops don't have a dress code. Many have adopted flex time. And further, with covid, a lot are fully remote now. Modern development is nothing like Office Space.
> Working with accountants and lawyers versus artists and sound designers.
You seem to think accountants and lawyers are boring, uninteresting, etc. That's just silly. Just because someone's job is boring, doesn't mean they are. A lot of my co-workers have hobbies in art, music, blowing shit up, etc. Just because they spend their day job combing over the tax code doesn't mean they aren't every bit as fun and interesting as someone who's day job is art.
> Sitting next to folks doing the bare minimum just to get a paycheck versus the comradery of being on a team that really believes in what they're doing.
I find it hard to believe game dev doesn't have the "I'm just here for a paycheck folk" Probably not for long, but again, surprised if that's the case. In anycase, comradery and teamwork exists in a lot of dev shops. Just because you aren't making an orc's head explode doesn't mean you can't get excited about increasing stability, performance, or getting a product that saves a bunch of time and money for the company. There's a lot to celebrate beyond "That looks pretty".
> Writing code that's difficult because it encodes Byzantine legal regulations versus code that's difficult because it uses the latest graphics algorithms to push hardware as much as possible.
Both are puzzles to solve, so why diss the one you don't understand? Further, what makes you think regular dev DOESN'T look to push hardware harder and faster than it previously went? Performance work is universal for development.
This isn't to say there aren't boring dev jobs that pay well. Certainly a large number of jobs are "Make REST API over the database". But even those can have opportunities for growth, learning, and finding coworkers you love to work with.
I think you have a really warped sense of what the average software job is really like.
What about embedded systems designers? What about machine/traffic control systems? What about cutting edge stuff like tik tok's recommendation algorithm (which disregarding the politics, has to be marvelled at for its ability to pair users with content they like)?
There is more out there than just Big 4 corporate paper shuffling to make the suits in head office more money..
> Being at a company no one's heard of making software know one knows versus being at a brand your friends all know working on products they're excited about.
I noticed a dramatic shift in people's reactions when my introduction conversations changed from "I'm a programmer" to "I make iPhone apps".
Also, I'd argue the number one tangible you're missing vs something like, say web dev, is flexibility. Pre-covid, none of my friends in the gaming industry had any flexibility to work in a remote fashion and was very studio based. Whereas remote working has been becoming increasingly popular in the web dev world, and I've been working remotely for years now which was a huge QoL improvement.
I do romanticize about leaving the tech industry in a kinda similar-ish fashion to what you were stating in that example, but really it's more about romanticizing an early / soft retirement for myself, which is only made possible because I took a higher paying path than game development. But yeah, I do have friends in the industry that love it despite the hours and lower pay, because the people they work with are great and they're very passionate about their projects, whereas yeah, I'm not exactly passionate about some of my projects and am doing it purely for financial and career advancement reasons so it contributes to sometimes really extended burnout periods and decreases in my mental health.
So yeah, to each their own with this. I love gaming and have made some of my own games as a hobby, but I just couldn't justify it as the core of my career despite loving it. Kind of a shame in some regards I would say, but it is what it is.
If you're AAA, the obvious problem is one of agency - just like being "guy #4968 who worked on Michael Bay's Transformers 5", you … basically have no influence on anything meaningful about the work - you generally have no voting rights to affect the gameplay, or the storytelling or the balance, or just about anything you'd care about as a gamer looking in from the outside. You're just a machine that produces assets (the vast bulk of coders working on those games tend to be scripting together content, whether it's shaders or level scripting).
But if you're not AAA, and it's your job, there's an equally bitter compromise: you have to make a living. There is a significant overlap between the venn diagram of "doing truly excellent work" and "making a decent ROI", but there's a reasonably significant area where they don't overlap. More importantly - I think the most meaningful questions lie smack dab in that area that doesn't overlap, because that's always the part that gets axed in the interests of expedience.
In order to even approach most of the interesting questions in gamedev (whether they're questions of gameplay design, storytelling, balance, etc, etc), you have to essentially start with a full, finished game, and iterate on what's flawed about that title to try and push it from mediocrity into excellence. Many devs do this by making spiritual successors to games they love; some do it by making their own game, and then iterating from there. RAD/Prototyping can "short circuit" an answer to some questions, but we're at a point in the industry where most of that low-hanging fruit has been harvested, and if you really want to make any progress, then the point at which you've finished a 1.0 of a game isn't the "finish line", but rather, is just when you're really getting started. Even if you're making a "spiritual successor" that tries to make something better by tweaking the recipe, that's still your first experiment - now it's time to drive the car you just built around, and learn what works and what doesn't.
But this absolutely trainwrecks right into the typical economic model for a "we're actually making a living off this" gamedev - except in rare cases with new revenue models, that point right there is precisely the point at which you've got to tie off that existing game, call it done, and move on to a new one. If you quit right there, you don't really learn anything - you just make a series of mediocre games (or occasionally, a lucky good one), but you never really understand why they're good or bad, because you're too busy churning out new ones every couple of years to experiment with reworks.
Almost all of the truly great games we've got going right now are cases where there's been such incestuous cross-pollination that multiple studios have essentially done this to each other (major genre titles like FPSes, fighting games, etc), or are small indie developers who've just knuckled down on one "crazy idea" and churned on it for like 10-15 years (minecraft, dwarf fortress, etc). There are other examples like the Civ series, where the devs have essentially made "the same" game 6 times in a row, letting them iterate massively on the formula.
Furthermore, the brutality of having to make a living off of it really hurts friendships - game development is an absolutely savage industry, financially, and chances are perhaps 90% that you're just not going to stay above water as a business. It takes some extraordinary friends to hang together in the face of that. If you're at all human, people will get scared and lash out at each other for not putting their backs into the oars, at least, once it's pretty clear you're not going to make it. Losing the friends who you went into the thing, with, is bitter as hell (I narrowly dodged it, but it scared the daylights out of me).
The main reason is that there isn't enough competition. Video Game Companies are pretty much in a monopoly. No one is making a game like GTA. No one else is making a football game (You need the license), No one else is making doom. No one else is making Counter Strike.
Games became brands. The only thing that drives you out of business is your own greed of recycling your franchises/ideas.
Oh and also many of those companies do not need that many of the "expensive" devs because many of those video game companies are using middlewares like unity or unreal engine.
With more competitions better video game companies would hire better engineer at better salaries. that will lift everyone else.
I'm sorry, but this is completely wrong.
First, there is immense amounts of competition in video games; the industry is bigger than ever but there are so many companies and even small fry indie shops can make it big with talent and a bit of luck.
Second, there are tons of GTA/Doom/CSGO/sports games clones, licensing notwithstanding, that fail for various reasons that usually boil down to "bad game." Brand popularity matters, sure, but many studios blasted their way to huge sales and fame through having a damn good game, like Minecraft, Terraria, and Rocket League, to name a few.
There's so little barrier to entry in the gaming industry at the moment. If you make a good game, you will generally get tons of sales.
I wouldn't necessarily say "make good game get sales", just because there are a fair amount of devs who don't get marketing right, but the point stands.
Monopoly doesn’t just mean “this company is bigger than I’d like.”
As evidence of what I'm talking about I also cite the absolutely huge number of "indie" developers, the vast majority of them not being the ones you've heard of, because most of them aren't famous and face sales figures in the hundreds, if not dozens. Many of them are actively taking a negative salary (that is, burning somebody's savings) to work in the game industry.
People make weird career choices for the perception of prestige or being able to call themselves part of a team. I got a friend who is an Agricultural Mechanic who works for some local owned companies. A few years ago John Deere built a facility nearby and you'd be surprised how many mechanics, who by all accounts liked their jobs, moved to work for John Deere for less pay, less benefits.
Video games aren't that much different. People will harm their own career goals thinking they can work for a brand name when an unknown company might have a better fit. I'm sure they have valid reasons for making the decisions they do, but from the outside looking in, it just looks like fanboyisms.
Successful games tend to get purchased by larger companies, but there are a lot of large game companies. Valve, Epic, EA, Nintendo, Sony, Rockstar, Activision Blizzard, Ubisoft, Bioware, etc. And that's not even getting into mobile/Facebook games, which are easy to speak derisively about, but are still major players in the game space.
Game companies are about the most-diverse and least-monopolistic of all media we consume.
“A lot of people just felt that there was value in being able to work on anime that they loved,” Mr. Hirakimoto said. “No matter how little they got paid, they were willing to do the work.”
Looking back at his departure, he said, “I don’t regret the decision at all.”
And the same story is in the video game industry. Take Blizzard for example. When I moved to SoCal I applied for lots of tech companies including Blizzard, and got several offers. Blizzard was by far the lowest offer. And I noticed during the interview process, everyone I talked to kept asking what I thought about Blizzard, and it wasn't the standard "why do you want to work here?" I got the impression they were testing how much of a fanboy I was. And from others I've talked to afterwards, that is exactly what they were doing.([1] "And don't try to bypass it by building in another country and then come to sell your wares here")
If not, then it seems like someone else is taking all the risk but the employees are reaping all the rewards.
It would be great for me personally if my employer was forced to share his profits with me during the good times. But the reality is that during the hard times - when there's a global pandemic for example - he's the one who has to remortgage his house and max out his credit cards to make payroll, whereas I'm just a guy who can walk away with a month's notice.
What, you mean, like, bailouts? Because we do bailouts. Only difference is that, while the taxpayers pay, they see no return.
Artificially supporting failing businesses has negative consequences upon society, supporting a struggling individual has positive benefits to society.
At the moment, the risk/reward equation is unbalanced. For owners, it goes from outsized risk at startup to outsized reward at success; for employees, it goes from outsized risk at startup to moderate risk at success
If a startup fails:
Founder loses two years, his life savings, and gets paid nothing.
Employee loses two years, keeps his life savings, and gets paid salary for that time.
Completely different risk propositions.
look in the mirror.
most businesses aren't giant megacorps owned by folks with yachts.
and, hell, the megacorps? large chunks of them are owned by folks without yachts, too.
https://finance.yahoo.com/quote/AAPL/holders?p=AAPL
this sort of hyperbolic rage only makes understanding and improving things harder.
I know there are a lot of wantrepeneurs here, but let's not pretend we're all not mostly still...workers.
Hollywood is already one step ahead of you [1]. No reason game studios wouldn’t follow suit, given a law like that to incentivize them.
In part, this is because so many people were burned in the past that it's now standard for contracts to include provisions specifying which profits the talents/investors are getting a % of. There's also many A-list talent that simply refuse to work for a studio which uses Hollywood accounting. And finally, the public-trading status of so many studios today basically renders Hollywood accounting impossible at a legal and financial level.
But the primary killer of the Hollywood accounting system is the big switch to streaming, in which royalties/etc are paid upfront (at a time-value discount) rather than over time, which essentially eliminates all of the opportunity to include "costs" (like usurious interest or marketing expenses) that had been used to generate paper losses on otherwise successful films.
And more importantly, unlike Hollywood talent, game developers and anime animators as a group have never been entitled to a share of the profits of the products they helped create.
On the one hand we want to incentivize risk-taking and entrepreneurship. On the other, we recognize that it takes a village to launch a successful company, and we want to share the wealth.
On the one hand we recognize that all work is not equally valuable. On the other, we we value people beyond their work.
Abstract discussion of this is always disappointing and policy based on abstract discussion is always disastrous. I really wish we could be more precise in our language, because then we would at least recognize the tremendous difficulty at hand.
That's because corporate limited liability shields stakeholders from losses beyond their sunk costs.
As an employee, you probably are close to last in line behind most of the other creditors, and may have to just write off that last (missed) paycheck. But that paycheck you are never going to get is the full extent of your liability for the company's losses, even theoretically.
Not that it encompasses all the risks you're exposed to (time not working, looking for a new job, etc.) But those are the same regardless.
you're simply making things up. stop it.
you can look up the hierarchy of creditors, and see where employee compensation lands. they're fourth priority, after domestic support obligations (probably not relevant to a business), administrative expenses (gotta pay the courts and court-appointed bankruptcy trustee), and claims from involuntary bankruptcy.
employee benefits are in the fifth priority. there are four more priority levels (6 through 10), and then all of the unsecured creditors.
Sure, technically employees are near the top, but that doesn't help if all the cash and assets are long gone.
There's no reason that an employee who just happens to work at a firm that becomes successful should get profits from that, while a similar employee doing the same work who just happens to work at a failing company should get nothing. How could you justify that?
Putting business profit taxes in a big pot and spending them on everyone evens this out.
Fundamentally all you're really saying is you want corporate taxes to be higher. Which is arguable given the well-understood negative consequences of that which hurt everyone (e.g. taxes dissuade business formation, which means no jobs at all).
There is a reason this is not what laws look like.
Maybe an easier incentive would be to give tax breaks to cooperatives?
That sounds like every startup job pitch.
It never really pays off later for game programmers.
A $2M exit sounds great until you factor in the extra taxes and 5 to 10 years to realize that. Many software developers could make a substantial amount of that, without the risk, simply by aggressively working career changes.
A friend is on the Call of Duty team, and Medal of Honor before that. The way MoH turned into CoD is the owner of the studio that made MoH was unwilling to sufficiently share the profits, so basically the entire team walked out in mass, got their own publishing deal and made CoD.
But only the people who've made a runaway hit have that kind of bargaining power. The other 90% of the industry is pretty grim.
Things are a lot better on the indie/casual/mobile side, as those tend to be smaller studios with close friendships/partnerships.
For a developer, the skills learned for working in the videogame industry are highly transferable to better paying jobs outside of video games. Skills learned on the job are also equally valuable outside of industry. When a developer is ready to leave the videogame industry, they have skills that are in demand and are able to get positions equal to their experience.
For a 2D animator, keyframing and tweening are not well-payed skills outside of the anime industry. Skills learned on the job are equally not well payed. When an animator is ready to leave the anime industry, they have to start at the entry level of whatever new industry they're entering.
To find that the last few years of your life are deemed meaningless by the job market after working your ass off day and night... That is a real gut punch.
On a serious note, there's a slew of skills an animator has on their Talent Stack (https://personalexcellence.co/blog/talent-stack/). Mere fluency of Photoshop, Illustrator, being able to DRAW period, work ethic, are no mere skills at all.
One of the biggest barriers to me is getting over my need to make code that I think is clean. And every time I try to read about best practices in game code I come across the same mentality: Who cares, write code quick and dirty, as long as it works it's fine.
And that's fine, it's just intimidating for me to write code like that. Too much perfectionism or something. Maybe too much "What if I do it wrong and introduce a bug so entangled in everything that I can't unravel it".
I wish there were even some bare minimum best practices suggestions for game code.
If Google cared at all about the targets that game developers cared about, my Gmail wouldn't take 10 seconds to load and run at 2FPS once the page is there.
I've read some of the best code I've ever seen, written by programmers in the games space. Code with very few tests, heavy intertwined behavior, wide-reaching global effects, and lots and lots of state.
Ultimately, treat the code as an artifact of the project: make it as clean as you need to get the game done, but any extra scaffolding you add will only come back to bite you later once you want to change how something is wired. From that end, all the usual suspects apply: make code easy to delete, make it have clearly-defined boundaries, and depend on other code as little as possible. Push yourself to use copy/paste more than you think you should, you'll be surprised how easy it is to delete wild experiments if you don't have to untangle the web of dependencies.
You're correct that optimized code is generally harder to maintain. Optimization often requires punching through abstraction layers or calcifying certain constraints or assumptions in the code.
FYI, about a dozen years ago I comfortably used GMail on a 450 MHz PowerPC with 512 MiB of RAM. The javascript ran without a JIT, completely interpreted. It all ran just fine. Now here I am, on a multi-GHz multi-core box with gigabytes of RAM and a JIT, and I have to keep GMail in HTML-only mode. I simply can't run the javascript and still operate my computer. Mail is piling up because I can no longer select lots of email for deletion; it isn't practical to click every single item.
This is definitely speculation on my part but maybe he didn't become a coder focused on his craft because of the finances afforded to him from Braid, maybe he created Braid a quality game because he was a coder focused on his craft?
I've never been in the gaming industry, but what I've heard from some developers is that writing very dirty throwaway code is the norm, since most of it is thrown away anyway when the game is done. Which leads to the buggy mess we get even from many triple A games, and a never ending cycle of re-writing the same things for each game, even within the same studio.
Simple, contrived example: if I create an open-world game with open-world design, I can complete quests in any order. Maybe I can start doing a quest, and then decide to stop doing it halfway through, or maybe I can switch quests halfway through.
The test case matrix for this is now: every quest x every other quest. If some quest spawns a timer that will do something in 3 minutes, and something else forgets to stop it when I switch quests, that's a bug. Maybe the timer spawns some NPC, and it should stop when I switch quests. Or maybe the timer will reset some world state, and should fire immediately once I switch quests. But maybe not always -- if I complete the quest but the game internally 'switches quests' to the next one in the cycle, I don't want to despawn the NPC.
Is this code? Not really engine code, it's more like data, or scripting? It's not really the code that's reusable between games, and between engines; it's custom-built for the game's flow itself. That's where, in my experience, a good majority of "AAA bugginess" happens.
Every engineer knows interacting mutable state tends to make code buggier. Well, a game simulating a virtual world is essentially a huge ball of deeply interacting mutable state by design.
The real hell comes when you think you're working on one and it's actually the other; you either burn time on an overcomplicated solution or invent a maintenance nightmare.
Just like any other development, you need to make guesses about what will change and what will stay the same and your efficiency depends on the accuracy of those guesses.
This is the way it's "always been" for game development. When I was in college 15 years ago, it was the same environment. It turned me off from pursuing a career in game development (among other factors). I'm sure more senior people than me have similar anecdotes.
Now all those things are much easier to do and understand. There are thousands of tutorials on the internet. So making games is becoming more like writing books, putting on plays, making a low budget movie. More people can do it than there is an audience.
The best are still very valuable, in every discipline. But the supply of average people is almost limitless.
Physicians at "renown" institutions actually tend to make less (on average) than the average physician. They can do it because so many physicians are willing to move to a high CoL location, work more, and take a pay cut.
The best jobs actually tend to be in rural states and areas. Pay is better and work/life balance tends to be better.
CNN article: https://money.cnn.com/2016/01/27/pf/jobs/doctors-pay/index.h...
Seriously, just do it. Do your passion and earn a decent living.
That industry is arguably booming too, making more than it ever has in the past and growing wildly year over year.
And yet game programmers make some of the lowest salaries among all devs, last I checked. Especially at entry level.
To me, that entire industry seems geared towards grabbing fresh faced grads who are loaded up on dreams of making games, putting them in infinite crunch, and discarding them later when they are burned out.