Hacker News new | ask | show | jobs
by miiiiiike 18 days ago
> engineering in video gaming is generally more complex than the engineering I've done working in big tech.

I always roll my eyes when I hear this from game developers. And my eyes hurt from rolling I've heard it so many times.

I've done game dev, systems, backend, frontend, all of it. It's all the same. Maybe you developed low complexity "big tech" projects but, c'mon, you're really going to argue that games are categorically MORE complex than what Google, Apple, etc develop?

They're not. It's all the same. Same complexity ceiling, same prerequisite levels of creativity.

Most frontends that I develop use the same patterns as games and the backends that I've developed recently look like game servers. Same patterns, same techniques, same level of complexity.

Game development is just development.

4 comments

It certainly depends on what you're working on in games. Not every game pushes the envelope, but the ones that do are seriously complex. They are essentially realtime embedded systems, which push the hardware to the max.

Sometimes you get similar demands at the big companies like Google and Meta, but often you have the opportunity to throw more compute at the problem. That is rarely possible in games.

Having been a game dev before getting my PhD focused on NLP, I can definitely say some of the challenges I ran into developing a first of its kind MMORTS, was seriously challenging. When I took the mandatory grad classes in distributed systems and low level architecture design, I already had first hand experience and aced those classes without any effort. I was familiar with many of the problems and their solutions because I needed to for my work. In addition to working at the lowest level debugging the memory allocators, full networking stack, database layer, you name it all in C++. Being a lead developer on a project of that scope was much more complicated than any work I did later.

My first semester of my PhD I wrote a Transformer from scratch referencing only the original paper (it was soon after the paper came out, there were few resources then). I was the only person who got an implementation that matched the results from the original Transformer (most got much worse performance). I credit the skills and abilities I gained in the game dev industry.

That isn't me throwing shade at others; as I said there are hard problems in industries other than game dev, but the skills required are not compensated at the level you'd expect given the difficulty of the work.

No the insight here is that you went _back_ and got your PhD with years of experience building professional software.

Expecting a 20-year old undergrad or a 23-year old postgrad to do as well as someone who left and came back to uni to finish their degree(s) is... uncharitable.

I became lead of that MMORTS within 4yrs of starting my career. I've worked with lots of PhD students who came back after more than 5 years working in big tech; not one had the experience and abilities I did. I've also worked with fresh grads in games who were miles ahead of 99% of the software engineers and PhDs I've encountered in my time.

Again, I've also run into equally talented fresh grads in big tech, but they were much more rare.

Take my anecdotes as you will.

> the skills required are not compensated at the level you'd expect given the difficulty of the work.

There it is! This is the core argument that I feel like most people here are actually making. Well said, I completely agree.

I agree that game devs are/feel undervalued and underappreciated by game studios. But I don't think that game dev is inherently more complex than other forms of development or that it requires more creativity.

Two different issues.

Instead of arguing that game devs are special I'd argue that game devs should be told that there are jobs outside of the games industry with work that's just as interesting, complex, creative, and fulfilling as game development. Jobs where you'll use the same kinds of skills but may get paid much more.

You find a lot of miserable game devs who refuse to work in any other industry because non-game dev work is akin to mindlessly producing producing grey, soot covered, widgets in some dystopian factory.

If you need to be a game dev, go for it. I hope you get paid what you're worth. But, if you're and if you're miserable doing game dev, you have options outside of game dev.

In summary: If you can do game dev you can do other types of dev work. Similarly, if you can do other types of dev work you can do game dev.

The question is, whichever side you start on, can cross that divide and still be happy?

Not a game dev but I used to dabble in it. Quite surprised by this take honestly. Sure, each domain has its own complex things to solve. But on average, I think it's quite safe to say that game development consistently demands more creative solutions to problems compared to many other fields.
All development requires creativity. Different types of creativity for different types of problems.

Creativity isn’t narrowly defined to exclude everything but art, game mechanisms, and narrative.

You think the creation of GMail didn’t take creativity?

I’m suspicious of anyone who tries to lay a special claim to creativity for their class or type of work. Creates a false creative vs cog narrative that always seems to benefit the speaker.

I work in big tech but dabbled in games. Games are much harder. Lots of math and you have to process 8 million pixels in 16 milliseconds, in addition to running your physics and NPC AIs. Big tech is 90% CRUD and 90% squabbling over variable names and we somehow think pushing a bit of HTML in 500ms is both hard and acceptable performance.
Is it harder because you’re less experienced with games. Your big tech job really requires no creativity?

Modern sites are extremely complex. BASH, Docker, Kubernetes, Python, Varnish, NGINX, Postgres, Cassandra, Elastic, Redis, Celery, CSS/Sass, Typescript. Observability, logging, build systems, testing, backups, CI, and a consistent design system. That’s all just to get to HTTP 200 “hello world”.

Sure they're complex but tbh they don't need to be. Sorry to bruise your professional ego but you should understand that there's a lot of decisions in bigtech/corporate that equates to 'buy it don't build it, it'll be cheaper, and (secretly) I can show it off on my resume'. And then when you use it, usually it isn't catered for the business' purposes because the tech is meant to cover a large amount of use cases. At that point they move on and the inefficiencies become the norm.

And these require none of the deep math that the lower levels of gamedev stack require. It's tedious, not hard to string all of these web components.

I'm at a loss when it comes to this comment section. I'm not sure why most people here seem to think that web development is just querying a database and presenting the results.

I'm often doing math when working with ranking (search and otherwise) and throttling/rate-limiting. What about fraud detection and prevention? There isn't an off-the-shelf solution that you can use to build a modern site. It requires hundreds of hours of hard work and an understanding of everything from binary to color theory.

The job of a full-stack developer has a lot of complexity and requires a great deal of creativity. Game dev too.

I'm not sure why my ego would be bruised by anything you said. None of it applies to my work.

>Modern sites are extremely complex. BASH, Docker, Kubernetes, Python, Varnish, NGINX, Postgres, Cassandra, Elastic, Redis, Celery, CSS/Sass, Typescript. Observability, logging, build systems, testing, backups, CI, and a consistent design system. That’s all just to get to HTTP 200 “hello world”.

A lot of fancy keywords, but

1) It's the stack that you decided to put your services on, your HTTP 200 could be also served by nginx + 1 html file

2) You can make empty video multiplayer game which will sound as fancy as that HTTP 200 hello world

Deliberately misunderstanding my point while making my point!

Yes! Games are complex! An empty site with modern infrastructure is just as complex as an empty multiplayer video game, exactly, we agree!

However, NGINX+a file isn't going to get you very far. You know that.

Games often have inherent technical complexity. Big tech has mountains of unnecessary complexity just to get to "hello world", as you said. These are different things in nature.
Complex in the way you're using it (a sea of technologies that looks daunting) doesn't automatically mean "hard". I've worked in big tech on distributed systems, with most of the things in your list, and worked on some difficult problems, but I could absolutely believe that cutting-edge game dev is harder, even significantly so.
I think you're underestimating your own creativity.

My argument is that you can put most good developers into game development and with a little time and experience those devs will find that the work isn't much harder than any other kind of complex development.

Most of the questions in game dev like other forms of development are solved. Building a game is like developing any other kind of complex modern system, integrating disparate solutions into a cohesive whole.

Well yes sure, but those infrastructure questions come with games as well on top of the whole inherent complexity described in this comment family
Could be. I've been using most of the technologies you listed for over 20 years so none of that is really hard for me anymore.
> You think the creation of GMail didn’t take creativity?

Disclaimer: i've barely ever programmed video games

Not the same kind of creativity, for sure. Gmail has no performance constraints (and its performance is horrible), has no UX constraint (and its UX is horrible). It pushed the free tier some time ago and was arguably a decent webmail at the time, but nothing about it was revolutionary.

The hacks required to get a game to react and push pixels in real time on specific hardware are very interesting. That's closer to proper software engineering than many things we find in startups. That said, more and more games use Unity and other all-in-one engines and are not engineering anymore… and as a player, i can certainly feel the difference in the constant stuttering which mostly was not there when playing console games >10 years ago.

In web dev there is little creativity because everything has been done and there is a library / service to solve every problems, none of that exists in major games. Try Claude in your frontend/backend service, then try that in a game client.
Games have engines that provide so much. Unreal, Gadot, Unity.

Have you tried doing modern frontend work? Creativity is required.

I played with Claude recently. It wasn’t able to refactor a CSS one liner into simple sass mixin.

I think the differentiator is the amount of deep Math that goes into it.

A simple card game is on par with standard app development.

But if you're working at lower levels of a world simulation engine that require linear algebra, computer graphics knowledge? Camera and joint manipulation? Animation? Navmeshes? Physics? That's a notch harder than a REST app and microservices infrastructure. Some robotics, ML areas touch on this too.

The only tough topics at these adtechs that might match would be graph manipulation, or currently ML knowledge. I suspect leetcode isn't very applicable in everyday usage.

It probably depends on the level in the stack your at.

At a high level the engines and frameworks don't feel any different.

Work with graphics and models feels more difficult though then most networked application work I've done.