No they don't? Most people in tech don't live/work in SV, or even the United States. Even for those that do work in SV, most aren't working for FAANG or elsewhere for comparable comp.
I'd add Rome as perhaps a closer model to the sort of high budget, prestige television we're afforded now. First season had a budget in excess of $100 million dollars, a major increase over anything comparable (compare this to The Wire that was filming contemporaneously).
Speaking from experience, the hardest part about game development isn’t figuring out how to (efficiently) build something, it’s deciding what to build in the first place. The second hardest problem is getting everyone on board with the answer to that. The third is figuring out how to build the content 1000x to support that. Way, way down the list is the runtime performance for a gameplay system.
True ECS systems - and not frameworks that just have things called “entities” which own things called “components” - are hard to work with, almost by definition (ie you have to be very explicit about data layout and dependencies). They add a lot of friction upfront to solving the important and hard problem(s) while purporting to solve something that isn’t actually an issue in most cases (guess what, your N is likely < 10, modern cpus go brrr, etc). If you are working in a domain where you already know something about the performance and input size characteristics - particle systems are the go to example - then maybe ECS makes sense as a framework. Otherwise, I’d advocate for simpler oop approaches with heavy composition.
> just have things called “entities” which own things called “components” - are hard to work with, almost by definition (ie you have to be very explicit about data layout and dependencies).
My experience has been completely the opposite to this. In fact being explicit about data layout and dependencies is a hallmark of a OOP rather than ECS.
In compiled languages the dependencies in object hierarchies are fixed at compile time and can only support tree designs, so you have to plan ahead for all possible combinations to even build relationships with OOP, even with composition (because its static).
With ECS everything is decoupled so you can write a system that does X and it affects nothing else.
This leaves you free to design by isolated processes rather than by code structure, and entities naturally do whatever processes their data supports dynamically.
Makes iterating designs incredibly rapid and offers design options that are convoluted and fragile with OOP such as completely changing what an entity does at run time.
For instance you can move the keyboard input component from a player entity to a monster or even something as random as a building and it just works - you didn't have to design for it, you don't even need to change any code. Remove the health component, now the entity is invincible, remove the gravity component and now it can fly, add a homing component and now it seeks a target. All this is trivial and can be done at run time. Want flying flaming lampposts the player can control? Just combine the appropriate components. Need to drastically pivot the design? Vastly less work than OOP - sometimes just a case of changing the data in components or their combination in entities without touching systems. Don't need this flexibility? Still gives you a more modular and less coupled design.
As a nice bonus this flexibility comes with more cache friendly performance than static hierarchies to boot.
All of what you describe in terms of data driven entity composition is possible without a true ECS framework. That is what I was referring to and more or less what Unreal or Unity (base, not dots) offer.
ECS is one of the better examples of something that sounds good on paper but in practice, and crucially in production, doesn’t provide the sort of benefits that outweigh the friction it imposes.
There seems to be a myopia online around things like ECS, data oriented programming generally, writing games in C (as opposed to that horrible high level monstrosity C++…), optimization, etc. Those are all fine things in and of themselves (though I’ve never understood the opposition to C++ as anything other than nostalgia), but they are often discussed without being ground in the considerations of building a game. If you want to build a tech demo, great! However, the needs of building a game with hundreds of people, most of whom aren’t engineers, and to a quality/production level that even “simple” things become complicated, demand other things take precedence. I lead a team that facilitates a creative project, not to satisfy my technical desire to have optimal cache or thread utilization in every piece of code. The right tool is the one that gets you closer to the creative goal, and for gameplay code most of the time it probably looks like what Epic or Unity are shipping with their entity frameworks.
One reason would be that you have a future (years) ship date and aren't yet in full production (but close). The sooner you adopt the new environment art and lighting workflows, the less sunk cost you'll have in assets/workflows that are now irrelevant.
There are also staffing implications. If you no longer have to create LODs for your environment art, do you reprioritize your environment art outsource budget? Likewise lighting, if we can hit higher quality with 1/3 of the personnel, where does the budget then go to? The earlier you can get a handle on the implications of these new workflows, the better you'll be able to answer those questions.
Political opinions are not protected in the same way, nor should they be, as the protected classes you cite (gender identity, sexual orientation, ethnicity, etc).
Here's the best I could find... I was a little bewildered by this, TBH. I thought, as long as your political beliefs didn't cause a distraction at work to yourself or others, you were safe from being fired. Guess I was wrong. At least on a federal level. Different states have different rules:
There are only a couple of US states that have something along the lines of "or political beliefs" appended to their workplace discrimination laws. In most US states, it's perfectly legal to announce that you're firing all Democrats, effective immediately. In those couple of states you wouldn't want to announce that, though you could still lay them all off and dare them to try to prove it in court (very difficult unless you've explicitly announced).
Why jump to the extreme? There are plenty of people who seemingly behave “normally”, but are internally sympathetic to some abhorrent views. Does that mean they can’t write JavaScript as well as the next person? If I’m privy to their beliefs that I find disagreeable, does that mean I should “out” them, even if their internalized beliefs have no discernible effect on the workplace?
I’m trying to find my place in the conversation as well. More questions bubble up the more I think. Do I really care that my neighbor is racist if I never interact with them?
From the employer's perspective, the definition of "extreme political views" would be the labor rights / pro-union parties (wherever there's not a two-party first-past-the-post system like USA, those often are explicit separate parties) and the communist party, but the working class would very much want that employers don't get to make that decision.
The criteria for too extreme should not be specific to employment. If some organization is considered too bad to exist (e.g. the Nazi party in post-WW2 germany), then it should be dismantled as such, but if the country considers a political movement legitimate enough to participate in elections and gain seats in government, then obviously supporting that organization or membership in it shouldn't be an obstacle for employment as well. I have no idea on what the legal status (if any) of KKK is today in USA, but whatever it is, IMHO it should be the same both for politics and employment.
Please change your belief about the innateness of race and sex, so that I can see the voluntary nature of beliefs in action.
Again, you can choose how you act in light of your beliefs. And beliefs do change, but at most you can choose to be open those experiences that might lead to a change in belief. Changing them is not a direct act of will.
Setting aside the question of whether beliefs are influenced by genetics, there's no dichotomy between 'innate' and 'choice.' My religion or political views may not be 'innate' (whatever that means), but they are also not a choice. Can they change over time? Yes!
But not because I woke up and made the free choice that today, I will believe something else. You cannot simply decide to truly believe something else in the same way I could choose between two appetizers on the menu. You cannot choose to legitimately hold a belief. (You could choose to pretend to hold a belief.) If you don't believe me, try choosing to believe Nazi ideology is right and true.
I would actually say sexual orientation is quite similar. Someone cannot simply choose their sexual orientation. A huge conflux of factors come into play, such that people develop a sexual orientation. It may change as we 'discover' new things about ourselves, but there's no choice involved in how we feel.
People chose to adopt or to leave nazism all the time as well (that said it’s not a particularly common belief).
Sure people changes their beliefs - something I thought was true turns out to be no longer true, I no longer believe in it. I think you’re trying to say that because our beliefs are based upon our judgment they’re somehow not fluid. But we chose to judge and consider ourselves.
As mentioned earlier, sex, race and sexuality are innate and deserve protection. Nobody is arguing otherwise (unless you are).
No, people do not “choose” to adopt or to drop Nazism. They might choose to join the party, or to leave it, or to do something evil that Nazis do. But they don’t choose to believe Nazi ideology or to not believe it.
You cannot change a single one of your sincerely held beliefs by simply choosing to believe otherwise.
I have no idea what you mean by “innate.” Can you explain in what sense a belief is not innate but sexual orientation is? You seem to think fluidity had something to do with it, I think, but clearly people’s sexual orientation is fluid in the same sense: people often believe they’re straight and later believe they’re bi or gay, for example.
Sex and race are externally observable fuzzy characteristics, I don’t really think especially the latter is a useful concept because it’s too fuzzy. But I can at least imagine what you mean by “innate” in this sense, something that you’re born with (sort of) and which other people can determine immediately on sight.
I've stopped being annoyed with what seemed like blanket unsupported statements and written a more patient response:
> But they don’t choose to believe Nazi ideology or to not believe it.
If one gets new information, one decides whether that information is worth changing their beliefs. That is one important distinction between innate qualities and beliefs. And yes choice is involved.
> You cannot change a single one of your sincerely held beliefs by simply choosing to believe otherwise.
I receive new information, I reevaluate my beliefs. Simple.
> people often believe they’re straight and later believe they’re bi or gay, for example.
That's true and a good point - heterosexuality (which is closely tied with the ability to reproduce) is assumed to be the default. But see the next point...
> Sex and race are externally observable fuzzy characteristics
Agreed that 'race' is a funny concept. Americans mainly seem to use it to refer to skin color vs actual ancestry. That's the sense I'm using it here.
Also sexuality is externally observable. If someone is a man and having sex with (gender here) that's externally visible. You can literally watch it.
Political activities and affiliations are a protected for workers in California, where most of the companies in the article are based. However in extreme cases (like if you express your beliefs in a way that creates a hostile working environment) someone can still be fired
Lawful political beliefs, affiliations, and actions are a protected attribute in Australia[0]. I have no idea whether this forces you to hire e.g. actual Nazis, although they'd probably have some unlawful beliefs.
That’s exactly what EA did in response to the “EA Spouse” episode. New grad employees are hired as hourly, non-exempt workers and paid overtime for their first couple years. The financial incentive alone doesn’t eliminate crunch, but it is one of many factors that has improved the culture at EA over the last 15 years.
Second this. Have worked at several AAA studios as an engineer. I am currently hiring for junior and senior engineering positions. The number of candidates for the former is two orders of magnitude greater than the latter. The good senior engineers in the game industry don’t have to worry about work, and the compensation largely accounts that. It isn’t FAANG level for the most part, but closer than it was a decade ago and a lot higher than what you would think from the hashtag.
The margin on digital sales is a lot better than physical sales, and every large publisher has been pushing the transition to digital as fast as possible. A publisher is getting ~70% on every digital sale compared to ~50% for physical.
If your only, or primary, experience building games was scripting systems in blueprints (or analogous visual scripting language), you wouldn't get hired as an engineer at most large studios. There is a role for that on those teams: technical designer. The (gameplay) engineer exists to build large systems that might have hooks that allow designers to script/customize the functionality through a visual scripting system. Engineers provide their value lower in the stack.