I don't really understand why programmers go into game development?
Is it predominately the ultra low-end of programmers or something? It seems crazy to me that someone would take something like half the pay and way worse treatment/hours just to be in a specific industry.
Having made games for 30 years, I can tell you that a big part of it is a love of making something fun. I get to make something, and then play. Joy comes from playing and I am very joyful.
I'm a part time indie developer. For my last game, Antigen, (http://antigengame.com) I got to do the following:
Work with procedural graphics algorithms. I invented several original techniques which I don't think have been used before. That was immensely satisfying. (for example, check out how I made the sprites: http://richardjdare.com/blog/2013/03/toxin-advanced-sprite-t... Or watch the trailer video to the end and try and figure out how I did the title screen animation!)
I learned a ton of algorithms and mathematical techniques I didn't know about before. AI, collision detection, geometry etc. All of these things being beyond the skills of an ultra low-end programmer I think :)
I learned how to do sound design, how synthesisers work etc. In previous games I used someone else's effects but in Antigen I did every noise myself from scratch.
Now, at my day job writing Java web-apps, the most complicated thing I do is calculate VAT, or figure out in what order I should call the functions of someone else's API! I often feel detached from the work, like I am just doing it as a favour. But when I work on my games I feel like I am doing what I became a programmer for; I am completely in the zone, surfing the edge of my knowledge and creativity. It lets me satisfy my love of the arts and sciences at the same time.
You're absolutely spot on regarding the challenges in game development. The problems you have to solve in game development are one of the kind. Very different and interesting compared to your typical business programming.
I think it is like why people become artists or musicians. Poor pay & very little recognition (except for the 0.1%) but it's fun to create something with your own two hands and see your vision slowly become reality.
For me it's challenge, there arn't many other programming jobs which involve such complex realtime systems, and touch on just about every field of software engineering and computer science. And you have to deal with that as a single programmer or on a team of programmers.
To build a game requires realtime (i.e. do all these things in 16.7 ms, non-stop) graphics, input, deterministic simulation, and networking. It also touches on AI, UI, databases, algorithms (match making), systems programming, file formats (compression, fast loading, etc), procedural generation, SIMD programming (shaders), programming languages, tools development, distributed systems, assembly (in optimizing), etc. And then architecting all of those different parts to fit together.
Programming websites (full stack), enterprise software, and desktop applications all bores the shit out of me, by the time my internships were done with each of those I couldn't wait to stop doing it, even though I was offered cushy high paying salaries to stay on, I wouldn't be able to bare doing that shit day in and day out.
This. I get to think about a bunch of different problems, some of them interesting, some of them difficult or impossible to solve, with a team of malcontents and nutballs. It's like being on a crew of pirates who stress about implementing k-d trees, matchmaking, deploying dedicated servers, build systems, scaling everything appropriately and doing it all as fast as possible. And at the end you ship something which is hopefully magical, possibly something that is shit, either way you have a giant party and tell awesome stories.
Games is a a glamour industry like music, movies and fashion. In all of those industries you see the same dynamic. Legions of very poorly paid people, lots of people making literally nothing. They just want to be part of it and to get their shot at the big time. Meanwhile a tiny percentage "make it" and get massively rich.
For every person in the Beatles there are massive numbers of people in bands who never make a dime. Similarly for every developer who starts a game company like Id that make serious money there are massive numbers who make little or nothing.
>Is it predominately the ultra low-end of programmers or something?
Actually the opposite is often true. Certainly those who have any amount of success are often exceptionally good programmers. As one boss at a non-game software company once put it after we hired a former game programmer to make software for oil refineries, they are the jet fighter pilots of programming.
Is it predominately the ultra low-end of programmers or something? It seems crazy to me that someone would take something like half the pay and way worse treatment/hours just to be in a specific industry.