Ask HN: How to move from traditional tech into game dev?
Hey all,
I'm keen to learn how you can move from 'traditional' tech roles into game development. I love games and, while I know there are some issues re: salary & hours worked, still think I'd regret not trying it myself.
What are the usual sideways paths one can take to go that way? My tech stack is almost definitely irrelevant; Python, JS, Rust, Haskell, etc...
Any tips from the game devs out there?
246 comments
[ 2.7 ms ] story [ 283 ms ] threadThe trick's just to accumulate proof you can do the job you want to have, then show people that proof while asking to do things for them.
Another fun trick is to never stop accumulating proof and post it all publicly on some kind of social somethingsomething as you go.
I get dms for consulting gigs through twitter without having to ask now. I haven't updated my resume in years. I just create and publish.
Any thoughts on Unity vs Unreal?
I like the development workflow in Unity more than Unreal. C# > blueprints/C++ for me as a matter of preference.
Unreal has some graphics tech on the high-end that I'm envious of. Real time lighting from emissive materials/volumetric emission/nanite. Metahuman. Unreal also has a lot more/better free 3d assets.
I'm going to make a wild claim that Unity is better for making weird games and hybrid things. Partially because the .net standard library is bananas. (Shameless example ;D https://twitter.com/LeapJosh/status/1552977798452609024 )
Doesn't really matter. There's a kajillion games made in both.
Unity is used by smaller indies and mobile devs. Unity is not conducive to large projects for reasons. Unity programming largely means C#.
Unreal has minimal use on mobile and is mostly used by larger teams. It's popularity over custom engines is increasing. Programming in Unreal largely means C++.
Of course backends could be anything. The above refers to game clients.
Games don't pay as well as big tech for damn sure. But companies like Riot Games pay decent. Big AAAA games that make lots of money know they compete with the broader tech industry for talent. Senior positions will pay north of $200,000. It's not all starving artist land. But big tech would pay 2x to 3x.
Asking how you can get into gamedev is kinda like asking how can you be a professional musician. Sure, you need to know and like music as a base, but becoming a concert pianist, a jazz drummer, a metal guitarist or a hip hop mc are very different paths.
Similarly, there’s a big difference between working on Elden Ring vs a small indie or even one of the millions of match 3 mobile games.
More work, less pay, more irrational management...
After the tens of thousands laid off in SW over the last few months, the sweet spot is in embedded, more than ever...
What’s nice is that embedded swe equals regular swe salaries at these companies! I am an embedded dev at a big tech company and interviewed at most of the FAANGS recently.
Unclear if those are base or TC, if it’s base then you’d definitely be over $300k with RSUs, but even if it’s TC a good year in stocks pushes that over.
(Mobile) game jobs aren't a more work less pay environment in the least, the successful ones make so much money that the companies want to keep the teams who made the game at all costs. The companies also recognise that it's the people who make the games, so the pay and bonuses reflect that.
And because the successes are so big €€€-wise, most companies can afford to spend time making the next big game instead of forcing people to crunch and sleep under their desks.
PC/Console gaming is a whole different world, don't know much about that.
Either nights and weekends, or after a few years as a SWE you could just retire somewhere cheap and go nuts on your game dev passion.
Now that you have unreal and unity etc, you can actually concentrate on game design and gameplay instead of worrying about the engine and tooling.
I agree though writing a game engine and physics engine is very interesting. I used to work for the R&D team of a casino games manufacturer. We created our own in house game engine. It was fun, but adding any new feature would take a very long time. In the end we shifted to unity.
I don't know how to do it and make money but I would recommend playing with the math. It's like magic, you setup the formulas and things just start moving on the screen. It was so much fun.
Fugro, Siemens, et al - Earth visualisation, medical imagery, etc.
The emphasis in these fields is getting visualisations and computations correct rather than convincing.
ie. The math part is interesting.
In remote sensing you might find yourself doing a continous pipelined SVD reduction of 500+ dimensions from a spectrum sensor to some three axis RGB like space to create a viewable image from a non visible part of the EM spectrum.
There's not so much of taht in game dev.
The pipelined SVD reduction mentioned was written while working with a small company with 13 airframes (fixed wing and helicopters) that did full spectrum rad+mag+grav+lidar surveys of small country sized areas (Fiji, Mali, other similar sized regions) and eventually sold to Fugro.
Sometime before that there was something that was aquired and became [1]
[1] https://hexagon.com/company/divisions/safety-infrastructure-...
but that was very pre google earth | maps.
Today there are oppotunities such as [2]
[2] https://www.abc.net.au/news/2023-01-08/space-satellite-image...
If you really want to do it, side projects are the way to go. There's a ton of good engines out there and way more resources than when I was in the industry.
unity and unreal are ubiquitous and easy to use, if impossible to master. having some demonstrable experience with both will open up a lot of options, as well as give you and the interviewer a grounding for questions in interviews.
... and don't be afraid of the maths. you nearly never need calculus and statistics or anything that 'classically hard'. its almost all geometry and mechanics... most of it the kind of stuff you were taught at school, but grounded in heavily grounded in real world problems where your intuition can be helpful.
most gamedevs know nothing about the guts these days so being highly technical isn't as important as it once was - to an embarrassing level. the barrier to entry looks higher than it really is sometimes.... it certainly felt that way for me. the biggest take away from my first role, was how narrow and unpractised everyone's skill sets were - and how thats kind of a necessary feature of large scale game dev... you don't make many games very often, and you usually have very specific responsilbities that go unchanged for years.
My basic understanding of marketing games today is that it's a full time job to stand out in such a saturated market. If you're not posting clips on TikTok, vlogging behind the scenes on YouTube, or putting up your Steam page right now to collect Wish Lists, you're already behind the eight ball. Again, this stress goes away if you're just dabbling in it as a hobby.
Just like anything in life, you start by doing. You can maximize your experience by having the right expectations and goals going in.
As others have mentioned, game jams are a great way to dive in, get experience, and meet some people.
Edited to add: my original answer was colored through the lens of "going indie". If you're looking for a job in the industry, I think that's a much "easier" path. Start building a portfolio of completed projects (not just prototypes!). If you have projects that show your creativity, skill, and grit, that's a lot easier for hiring managers to understand than yet another PDF resume in their inbox.
Another option which I'm using on my current project is to go minimalistic and lean into typography and procedural visuals, so I don't need portraits or specific custom textures. This can work well for games like Wordle, where the game is meant to be front and center and the audience isn't looking for some heavy-weight theme.
- What made you decide on designing a game for mobile vs PC/consoles?
- Did that introduce different challenges?
- Lastly, what engine did you, if any?
Mobile vs PC/Consoles - I have more mobile experience and the path to publish is more straightforward. Getting through Apple and Google takes very little time and is quite easy. To pull off Steam properly you probably want achievements (more art + localized strings), Xbox and Nintendo require them to approve you. Funny enough I'm in the process of porting it to Steam and hopefully Xbox and fingers-crossed even harder hopefully Switch. I do think you can charge more for the same game on PC/Console than on mobile. There are a lot of examples of this, so probably starting on PC and then going to mobile makes the most sense.
Challenges - Some challenges now that I'm porting the game: The game on mobile lets you tap anywhere in a 3d world. For PC/Console, you might have or likely have a gamepad so I had to make a cursor that was aware of what direction you pressed and "focused" the next object that was tappable and hopefully matched your intent. This is handled for you in Unity if everything is UI-space, but I have a mixture of world (3d) and UI (2d). This is the first game I did a full localization pass on, so finding translators, setting up the game for new languages, and making sure fonts had all the necessary characters without increasing the game size by 2-3x was a bit of a challenge. I am very happy with my solutions though and plan to use them on future games.
Engine - Unity. I have the most experience with it. I am tempted by Godot and to a degree Bevy (Rust is nice!), but I haven't seen enough games ship multi-platform on these "newer" engines. Unreal is nice, but beyond my needs right now.
you just did another update?
My path to being able to practice this art is to first reach financial security via a traditional job in tech. The pay in tech is pretty good all things considered, and at the same time you can train your engineering prowess.
You save, invest and move up the corporate ladder (or move jobs often) to ensure your pay is high, and do it for 10-15 yrs. Couple with making sure you don't overspend on consumption (a sacrifice you will have to make for the sake of your art later), you should be able to reach financial security before you're 35-40: a couple million in income-generating investments of various forms (like stocks/bonds/real estate).
Then you basically "retire" from tech, and focus on the game and live off your investment income. Don't expect this game to be commercially viable of course - it's your artistic output, not meant to sustain your livelihood. Then you keep doing it until you get sick of it, or truly retire as you get too old to type.
* Game development is _very_ different from "normal" programming. It's still just programming, and it's not necessarily harder, but _how_ you solve things is radically different.
* You will spend _years_ trying to get the grip on things, combined with your regular day-job to keep the grip on your non-gamedev life.
* You will never succeed, of course, but that's the same for everything. For game development it's harder to accept, because it's so easy to get up and running quickly, you are feeling like Sid Meier the first year.
Other than that, it's a lot of fun. :)
EDIT: About the "very different" part, which it seems like I portray as something negative; that's actually the most interesting part, at least for me. I learned how to appreciate composition this way, and in general learned how to approach problems in a totally different way.
Unreal is undoubtedly a great game engine, but it's not for me. If you feel it's better for _you_, then use it. Always use the tool you are most comfortable with. :)
When I see people fail to transition its because they aren’t willing to put in the work to switch industries:
1. Learn some games relevant skills after hours to show that you are prepared and not expecting us to train you from scratch (unity or unreal are most common). The tools are free for personal and there are tons of free online tutorials. Build a small game — can be very small like a breakout clone. This will show the initiative you took on your own and what skills you’ve developed.
2. Don’t expect us to pay you as much as you’re making in your past industry because your skills may not translate and we will be taking a risk on an unproven gun.
If you go into the interview with those two it’s a no-brainer for us, but we also are a small indie studio so ymmv at a larger place.
Are you evaluating also how much time it took to complete the after hour project? What if I complete a clone game in 2 years? This might be excluding anybody that cannot work after hours, for a reason or another.
Maybe I'm reading into this but I see this type of response a lot on HN.
> A: You need experience. Get some after hours
> B: I don't have any time after hours. It's not fair
Like gees! What do you expect?
B: I wanna be guitar player in a rock band
A: Well, if you don't play guitar, take lessons after hours
B: I don't have any time after hours
A: So what do you expect me to do about it? I'm not about to add someone who's never played guitar and can't demonstrate the skills as a guitarist in my band. It's not my problem that you can't play, don't have the time to learn, and yet want to be in my band.
---
Same for any company: So what do you expect me to do about it? I'm not about to add someone who's never programmed games and can't demonstrate the skills as a game programmer in my team. It's not my problem that you can't code games, don't have the time to learn, and yet want to be in my gamedev company.
Please, please please think about you comment when/if you ever have kids. I guarantee your perspective will have changed a great deal.
They want to hire people who already have some degree of relevant experience. That is a reasonable requirement. If that excludes some parents who don't have time, so be it. Being a parent is one of many lifestyle choices that can limit one's ability to arrive at an interview with sufficient background knowledge. It does not warrant special treatment & exception just because it's parenting.
I work in quantitative trading and the number of people that think they can just throw a script together and make money is... well, if I had a dollar for each...
I don't care how long it took (specially if it's a hobby after work kind of thing) as long as I can see you have a solid understanding and experience of what the work really is.
Not having time after hours it's a hard problem to solve. Gamedev problems are quite different to other software industries so previous experience might not immediately translate, this is specially true for gameplay programmers or things like tools and engine where you need to have experience with working with artists/designers and within the constraints typical of games (memory, performance, platforms, etc). But other fields like, backend, devops, data analysis I've seen often hire from outside the industry
I don’t care how long it took. Longer would demonstrate a sustained interest. Shorter would demonstrate efficiency. Both are valuable
I don't think such a transition happens the other way around. It shows that game programmers are superior to web programmers. It's hard to swallow but it's true. There are web developers who aren't good enough to be game programmers and the reverse is unlikely to be true.
I say this from the point of view as a backend web developer.
Another coworker said that until you’re more established they give you the shittiest jobs. One person who did an internship over the summer while getting their master’s degree was tasked with getting the intro screen (where you select which game you want to play) working. It took them about 2 days, but because they weren’t a senior engineer, the company never gave them anything else to work on. They spent most of their internship (after trying and failing to get the company to give them other work) surfing the web.
If you really want to make games there's a huge universe of types of game development. A broad approach would be to just start making games - pick Unity say - and while working at your regular job - make some games on your own. Nothing helps get your foot in the door more than showing initiative, creativity and a get it done aptitude than having some samples we can talk about.
Everyone and their sister wants to be the one that does the pretty graphics and UI with Unity or whatever. Nobody wants to be the one who does the backend code that actually makes the game work.
It's actually challenging when you work with games that might have a million daily users or even more. If it's a competitive game, people will try to cheat and you can't trust anything the client sends you. The code also needs to be cost-effective to run, if your game makes $10k a day, but the backend costs $5k a day to run - that's kinda bad.
Also especially mobile games need a custom frontend for customer service so they can do refunds, check player purchase history etc. Those are done with JS and Python etc.
Source: Moved from traditional tech to making CS tools and backend for games. My salary went up hilarious amounts, as did bonuses and options.
That said, you can leverage your normal tech chops to get a foot in the door. Games do need backend and database people, etc.
Cloud infrastructure/devops, data analytics, backend code, data storage all need people especially in mobile games.
You'll get a lot more people in Highschool who know Web simply because of how accessible and easy it is and a lot less people in Highschool who know how to create a physically correct rendering engine or a realtime graphics engine. It is brutally harder.
If you're just working on top of a platform, it's trivial for sure.
With engine creation you are creating the tool. It's programming through and through.
Though I can see how a lot of backend people are taking on the role of "configuring" stuff so it's hard to delineate backend programming away from it completely.
Still even when taking this into account, it is of my opinion that a rendering engine is significantly harder then even K8s or spark.
You are right though that with existing game engines graphics programmers are not as needed anymore.
They specifically are talking about creating the tool.
In the mobile world very few companies bother. If they do, they're either so old that Unity mobile wasn't very good and already have their own engine or they're doing something niche where Unity doesn't make sense.
Everyone else just uses Unity and Unreal, because trying to launch a new game is hard enough without having to build everything from scratch.
There's a ton of shader development happening. Optimizing the graphics stack takes some specialization.
Depends on how one defines “graphics programmer”. Those people are arguably more “tech artists” than “graphics programmers”.
Lots of people can write clever shaders in node graphs. Those folks are usually more “tech artist”. Although the line between “graphics programmer” and “tech artist” is very very very fuzzy.
The highest paid IC's at my last few companies (gamedev) were people that had been there 20 years (He was AI programmer) or the infrastructure people running the gameservers and multiplayer backend.
That might seem weird. But it's hard to hire infra people as they can work basically anywhere and will have as much enjoyment.
Render programmers can work in CAD or Games, there's much less demand, and they tend to want to work in games.
I think they meant graphics programmers, not artists.
Those two are the ones that are invaluable, there's a literal queue out the door to fill the sexier positions of game designer/producer/2d/3d artist/unity developer and whatever.
You can just pretty much plug in a new Unity developer to the team, since the skill set isn't that hard to learn.
...but finding someone who can do 1M+ DAU game backend that's reliable and cost-efficient isn't something you just hire off the street.
So, how do you get that particular skill? I've done backend development, but nothing with that kind of scale.
Scaling software is more about careful choices than some ultra deep understanding (though really understanding your data source is very important).
Simpler is always better, don't do stuff for your CV, build it so that you don't need to wake up at 3am on Christmas to fix some obscure deadlock issue.
Log stuff so that you can tell most of the time what went wrong just by looking at the logs and graphs.
But also be mindful of costs, logging everything to Cloudwatch can get surprisingly expensive.
Benchmarking is important, you can use the logs to see where you're actually spending time and optimise it if possible.
Sometimes the illusion of real-time is better than being real time. Everything that can be cached, should be cached. Utilise the TTL in Redis to make stuff simpler.
Only the biggest games with huge marketing budgets go from zero to 1M DAU in a day, so there's always the possibility of slowly improving the system while the player count grows.
This is only true for a certain class of games that rely on multiplayer. Many games are singleplayer where the meat exists on the game engine. There's two sub sections of this as well. Real time and non-real time.
Realtime means streaming updates from all users. Games like fortnight or pubg are like this. Non-realtime means like checkers or multiplayer chess. If you are doing the later rather then the former I would say you're still in traditional web development where shit is still relatively easy because an HTTP server is good enough.
The former is what is really hard, and that kind of thing is what I would refer to as backend game development. If you are doing that, then likely you're not a traditional web developer anymore.
I wouldn't say they are billion dollar game franchises but I would say billions and billions of dollars in total are part of games where multiplayer is not the central aspect. This sector is huge.
I think games with a huge online component tend to be bigger franchises but fewer in number. Overall online gaming as an industry is bigger then single player gaming but they are both huge enough in size that they are comparable.
In fact even in good times, I feel gaming is less safe.
For the non-real-time, it means using a pre-existing backend server.
Many backend engineers don't know how to write a custom real time server from scratch. It's two completely different levels of skill. If you are hiring for this role and put out of job ad for typical backend engineers you won't get the right people for the role because, again, backend engineers typically don't have this skill.
Edit: although I suppose it's equivalent to working on "engagement" algorithms in social networking.
The reason mobile game companies have hordes of data analysts and data scientists is to figure out the optimal point where enough people pay to speed up progress so the game is profitable, but not so much that non-payers stop playing because they feel they can't progress without $$.
Nobody bats an eye if someone spends $80 on the latest console, but everyone is sharpening their pitchforks if they spend a similar amount in mobile game IAPs. Even if the hours played and enjoyment received are perfectly equal.
Most people who buy IAPs exchange money for progress in games, they work 8-10 hours a day so they don't have the time that a Monster Energy Drink fueled teenager has to grind equipment. But they have money they can use to catch up somewhat so they can enjoy their evenings playing the fun bits instead of grinding for that 1% drop like a second job.
You're basically describing old single player games that did rare drops to pad gameplay time, then the first MMOs where grinding was there to keep you paying for the subscription, and now the IAP fests where the grinding is there to make you pay something.
However, there still are games that do not involve grinding out there. Even some AAAs. You do not have to be predatory to enjoy some success making video games.
Edit: I missed that: "Even if the hours played and enjoyment received are perfectly equal."
They aren't equal. Do you call grinding for rare drops equal to enjoying a story or developing and applying some skill?
And how is hours played a metric of enjoyment? If you count hours played, the game i spent the most time in ever is Minecraft. Paid all of $20 for it.
I would've gladly paid money to skip that bit and get to the fun parts even then and I was a mostly broke student at the time.
Now I play mostly story-driven single player games that don't rely on fetch quests to pad the runtime. Or games that really don't have an ending like Factorio, Dwarf Fortress and the like.
What fun parts? You just grind more, perhaps in a group. Or a larger group. I know, I could probably still lead a Kharazan (of the Burning Crusade flavor) raid from memory. The only fun part of WoW is the group interaction.
The sad thing is when people have only played WoW and its successors and start thinking this is the only way to do a game...
I'm all for people spending money in the way they want to... but I think people that buy little bits of virtual powerups and collectables for a mobile game lean closer to "addiction" than "gameplay" or "enjoyment."
A console is a physical device that you can play tons of games on. An IAP, even a collection of $100s is just not the same.
I used to have friends that would spend $100s of dollars on those mobile games. They don't play them at all anymore. So what was the point? They spent $100 to get to the next $100 barrier to spend another $100? And then they quit?
Again, I'm all for people doing whatever they want and think any regulation would cause casualties but I will always say a game designed in such a way where you either have to "grind 8 hours on monster energy" or "buy your way up" is just a predatory and ridiculous "game" right out of the gate.
People usually have two commodities, time and money.
When you're young, you have virtually endless amounts of time. You can just sit down and grind a game to get better at it and get better equipment.
When you're older, you don't have as much time, but you have money. Then (in my opinion) you should be able to use money to get on par with the people who have spent all the time gaming you spent at work and with your family.
Of course there are games where you just need to "git gud", because it's all your own reflexes and knowledge, in-game items and boosts don't matter that much if at all. If people using money to offset time used bothers you, you can play any of these games.
This is why people selling MMO accounts is a thing. People with money want to enjoy endgame content with friends who have unlimited time.
I suppose. I feel at that point, its more a chore than a game tho, lol.
I don't play those games, exactly for this reason. I feel the reasoning "offsets time" is honestly just a coping/irrational justification. Imagine paying to skip to the good part of the book or movie. Makes 0 sense.
So you have to buy the game and then pay to skip parts of it? That sounds like a system designed to extract extra money from people, not a game...
>This is why people selling MMO accounts is a thing. People with money want to enjoy endgame content with friends who have unlimited time.
This is a bit more justifiable, as long as the game isn't designed around the idea of creating the very situation... I say this as someone that almost failed out of college because of spending too much time on an MMO (talk about no time _or_ money, lol) I'd suggest the friend group just play a different game entirely. MMOs are big commitments... same as any other hobby you could get deep into though. I don't think its good for a group of friends to constantly be throwing time or money at something just so they can stay "at the same level."
*edit* Just want to add to the idea of regulation and casualties. I wouldn't fault a father for spending a little extra to "catch up" with his son so they can play together or something. I can't think of a situation off the top of my head but in that instance, I wouldn't say that's "bad" or "predatory." Everyone's situation is unique. So these comments are more directed to those mobile "games" that involve sinking time or money into them to "advance."
Games need to be designed for both groups to be successful.
They need to satisfy the people who pre-order the game and are sitting there with controller in hand hopped up on Monster the second the game launches. Then they'll play a 100 hours straight and complain there wasn't enough content because they finished it in 5 days (...of 20 hour/day playing, but they're not sharing that bit on the forums).
Games also need to be fun for the people who don't have a 100 hours to invest in a game, but still want to experience it.
This is why games have Achievements that are nigh-impossible. They're for the first group. Nobody in their right mind would attempt some of them unless they're sitting on a literal mountain of free time and nothing else to do.
Some games (like a bunch of Assassin's Creed games nowadays) allow the second group (money, no time) to buy better equipment with actual money for the single player game. They can still experience the plot of the game and have some challenge, but don't need to spend hours fine tuning their dodge reflexes for that one boss they got stuck on.
Let's call spade a spade.
This is a convenient rationalization to justify adding elements of unnecessary grind to with intent to get people to spend more money on a game they already paid for.
Games used to (and to a degree, still do) have difficulty selectors and cheat codes to accommodate different types of players. Publishers of AAA games like the ones you mention (Assassin's Creed) monetize this because of greed.
I finished Resident Evil: Village recently. On the "Casual" difficulty. First RE that has that. Every boss went down in a couple shots and I was swimming in the supposedly scarce ammo at the end.
Somehow they forgot to charge me extra for this.
I can sorta understand in some cases but I have no idea why there is a market for "skipping around" in single player.
You have blown my mind, as I hadn't realized this has gotten into single player games like Assassin's Creed.
I generally agree games should be fun for everyone... but at that point is it even a "game" if you're paying money to skip around? What happened to difficulty selection? Or just plain old grinding? That's part of the experience.
There's a game called Cuphead that I really enjoy(ed) but never beat. I couldn't in a million years think "let me just pay 10, 20, or 30 dollars to skip these hard levels." The very idea just seems so antithetical to gaming in general.
What about putting them in Elden Ring, just go right to the last boss if you pay $200-300 (assuming $ scales with progress).
If you're finding yourself with not much time, I recommend rogue likes. I never liked them until I understood that the "playing" was the experience, and grinding to the end was the reward. Now I like them b/c with a Steam Deck, I can play short sessions. Not once have I ever considered paying actual money to "skip" a game. That is just wild to me.
Again, at the end of the day, ppl can spend their money how they like... I just find it a bit ridiculous and that's not even touching on the "gacha" mobile games.
They don't hand out skips and it's just purely about the player's skill.
That's why I don't play any of them, I don't have the free time to spend that's required to get good enough.
I currently play mostly story-driven single player games like the new Tomb Raider games, Quantum Break, Control etc. on my Steam Deck.
Want to buy my save just in front of the last Elden Ring boss fight? :)
Considering your earlier posts, it's the logical thing to do.
Actually the game doesn't stop after you beat the last boss, I could do that and sell you a save right after.
the problem with this is that you assume "all the time gaming" is a bad and nonfun thing, at that point you're essentially paying the developer to not play the game. Sure those situations do exist, but they are design flaws* that should be fixed. Accepting a quick way to get thru them gives the developers incentive to not fix them but to actually make them more prevalent, and this has been happening in games more and more, just look at overwatch 2 and the hero unlocking speed as an example on a huge AAA game.
>This is why people selling MMO accounts is a thing. People with money want to enjoy endgame content with friends who have unlimited time.
This could be argued as a reason for selling currency, but for selling accounts I harshly disagree. The vast majority of people that buy accounts in MMOs do it to get "stolen valor" such as buying gladiator/rank 1 accounts in WoW or exclusive items/mounts/etc. The endgame activities most take part in takes orders of magnitude more time to progress in than the lead up to it nowadays, makes no sense to buy an account to skip it if you're genuinely time constrained. I could see that being a relevant case back in Ultima Online days for setting up a new PK character but that's not really a thing today in any big capacity.
*: some exceptions exist to make balancing passes I suppose, just to not speak in absolutes
I found a fairly low-friction way to add a custom online services subsystem into UE4/5: https://github.com/RyroNZ/UE4MasterServer
You can replace the python with anything that lives across JSON. I had no issues getting this to compile & load in UE5.
Once you have this in place, you could grab one of their arena shooter MP prototypes and focus almost entirely on the sessions, servers, matchmaking, accounts, logging, fleet management, etc.
My advice to everyone wanting to enter gamedev is the same as for everyone wanting to start a startup: Be realistic about failure. It’s a high risk, high reward business with tons of uncertainty. It’s easy and common to be so enthusiastic about working hard to succeed against impossible odds that failure become a “Voldemort” term that shall not be spoken..
But, if you are realistic about the fact that “risk” includes the possibility of failure, you can be realistic about what failure means and what you plan to do when it occurs. If failure means your family will literally be homeless and starving, don’t take that risk! If it means your dreams don’t come true and you’ll have to go back to some boring desk job… Well that’s a bummer. But, it’s not anything to be afraid of.
Be sure to have enough money in the bank to pay the bills if you suddenly, unexpectedly have no job and need to find another. Be a coworker who people want to work with again because people who leave your company before you are how you land your job at the next company.
The more I look into Gamedev the more it looks like a very ungrateful and daunting task
You can put all your energy (and money) into a game and it might just... flop
With a startup you can always try to pivot, or make something of what was developed. And your costs with creative productions (which are harder to reuse) are much smaller.
You can do this in gamedev as well.
A high budget example would be Fortnite which pivoted to a Battle Royale version of the original, vastly less successful, game. A lower budget example would be Proteus, originally a failed attempt to write an RPG that pivoted into something quite different.
Discord is an example of a game company pivoting from a failed MOBA to a more traditional tech company.
Excellent point to which I’d add: be very critical of how the risk is presented by your potential employer.
What's the high reward side of that for a typical dev? Do you get a percent of the game sales or something?
I think GP must mean indie game development, i.e. yes you get 100% of game sales (minus costs and partners' share if applicable of course), which isn't really worth distinguishing from advice for start-ups? That's just a start-up that makes games isn't it?
Presumably for the developer the reward for the high reward path is continued employment, and the penalty for the high risk path is loss of job
So, the rewards for a profitable game for most game employees is that the studio doesn’t shut down! Though I have heard of rare cases where people on a team hit a truly large royalty check from a game they worked on. Usually, the profit from a successful game goes into the war chest to cover the next failure.
It’s about as likely as becoming an L9 IC at a FAANG however.
High risk as in, most people are "gamers" or love games, unaware that they either hate or are bad at making them, aka wasting about 5 years of their lives learning how to. You really have to love making them, the constant interation will kill you otherwise.
Salary wise, from someone who has worked in Indie and now works in AAA as a Technical Narrative Designer and absolutely loves it, game dev salary is about 60% of a regular UX/UI Designer salary for traditional tech companies. This is the same for Engineers or Programmers. So still a lot, but just not life changing money like some of the salaries in Silicon Valley.
Riot and Valve pay best by far, they're the FAANG equivalent. (Excluding the mobile and web3 market)
Bonuses are also easy to dish out if the studio has a few successful games already operating and bringing in constant revenue.
The first one was very much a traditional full stack experience, developing front end features for the website and web based apps, as well as back end features for the web and games. We worked very closely with the game development team, so day to day I had to go into dev builds to see if my changes worked properly. I loved the job, it was the games I always wanted to work on, colleagues and management were great. But crunch was hard, ended up burning out which took a while to recover. Looking back at it, I would do it all again, I learned so much and I'm proud of what my team and I achieved.
The second job was as a UI developer, using the Gameface middleware, which basically renderers a web frame on top of the game, allowing you to design and write UIs with web tech. I was doing React there. The job was alright but the management was horrendous, a complete shit show at some points. Ended up leaving after a year and never came back to the games industry.
For both jobs, the salary was lower than other web dev jobs. And at times, it can be quite tough with crunch. But on the bright side, you meet great people and learn lots about game development even if you're not directly in the production pipeline of the game itself. I guess if your focus is to work on the game, you can easily transition within the company.
Your tech stack can be relevant depending on where you apply. Experiences wary greatly between studios, sometimes even within the same company. But I noticed a trend where working conditions and salaries are getting better in the industry, so maybe it's a good time to join. Have a look at career pages of game dev studios, you might find something you like.
Or maybe look at the indie route, working on your own game idea during your spare time. I'd highly recommend starting with Godot[0], the concepts of that engine are quite easy to grasp and you can produce really good results with it.
[0] https://godotengine.org/
The old generalizations about lower salaries and higher hours are no longer true across the board, by the way. As the industry is maturing, a lot of that is changing and the culture around things like crunch is changing for the better.
Tried a bunch of tech to see what stuck: phaserjs, haXe (fun!), Lua stuff like löve2d, unity (also with clojure). I settled on unity initially, but got burned (deprecation, docs/support, etc), and finally settled on Godot (I've got python skill, so gdscript felt natural).
With contracting, I make slightly more money than permies, so I can afford to spend a day a week on gamedev. With a view to phase in more gamedev days as I get more successful.
I just recently completed a masters in indie gamedev to fast track some of the skill requirements.
I'm happy with the approach I took to get where I am. It's low stress, I still make money, and I still have bags of fun. And the masters saved me some mistakes in the long run.
Link in my profile to my blog, where I talk a bit more about it.
I've started this way roughly year ago. Here's what helped me.
1. Find an active community for the tech stack you choose (game engine) [I went with bevy and Rust]
2. Do a tutorial project such as simple table-top game, but do it really well [chess?]
3. Participate in game jams
4. Start contributing to engine development or infrastructure around it (plugins)
5. Do a novel environment for training AI
The primary directive is to entertain the player(s). An AI that loses every round is 100% compatible with that goal. An AI which always loses but makes the player feel like a genius for winning is not a bad AI: it is perfection.
This is true, but only valid for arcade games and players. For any "serious" gamers, who wants a challenge - bad AI breaks the immersion. For example in Total Warhammer, the AI needs to cheat to have a chance on the map. Arcade players won't notice, but the veterans are annoyed by this, as they know it means, most of their strategic actions on the map are useless (like trying to bleed out the AI opponent economically).
1. AI-controlled physically-accurate character rigs instead of inbaked animations [1]
2. Conversations with AI NPCs (maybe lore-conditioned ChatGPT): think interactive Skyrim where you could actually talk to everyone
3. Evolving Neural Networks to control battle AI, but where Neural Networks get the same input as player (screen pixels, sound) instead of decision-tree based AI strategies. Then think how AI will learn along with player (Remember how PodBOT learned new maps in CS?) Current methods may work for any game, and bots may discover entertaining strategies by themselves
4. Multi-Agent large-scale simulations: there's some research [2] going on, imagine it applied to open-world games
5. Simulation for sim2real. How about testing a new robot prototype in the game before making it real
---
[1] ASE: Large-Scale Reusable Adversarial Skill Embeddings for Physically Simulated Characters, NVIDIA, 2022 https://nv-tlabs.github.io/ASE/
[2] Neural MMO: A Massively Multiagent Game Environment, OpenAI, 2019, https://openai.com/blog/neural-mmo/
Game dev is actually one of the least credential conscious parts of the industry. If you can ship a game and get people to pay for it, that's all the experience you need to get hired somewhere. With Steam and all of the free game engines nowadays, there's really nothing stopping you anymore.
> I love games
Many do, but game development can be tedious sometimes, or you might just discover that you like something else more.
# Game engines: Godot
For an easy start at putting something together, consider downloading Godot: https://godotengine.org/
It's a free game engine that's relatively simple, is open source, and supports both 2D and 3D, as well as has their own scripting language called GDScript (that should be easy to learn if you know Python), whilst also supporting C# (which is used more commonly in the industry). The documentation is pretty good, though you can also watch videos, like this channel for example: https://www.youtube.com/@Gdquest/videos
Follow the tutorials and try to put your own game together, see what working with maths/physics/things like raycasts is like, what it's like to deal with a game loop and scene trees, how logic that's attached to various nodes/objects interacts. Don't make the game anything complicated, start out with something like pong, breakout or snake.
# Game engines: Unity
If you want to focus more on what's used in the industry, rather than something that's just approachable, download Unity: https://unity.com/
You can do this as the first step as well, though you will have to use C# for the most part (though you can get Lua plugins, IIRC). This engine also has a rich ecosystem around it, as well as lots of different assets/plugins in the store, some of which are free. Do be warned that it's somewhat fragmented in the recent years (URP/HDRP, DOTS, networking and UI) so some things might be a bit confusing and it can get problematic to work with when you're dealing with larger projects. I recall Brackeys making some nice videos a while back, though apparently there's no new content: https://www.youtube.com/@Brackeys/videos
# Game engines: Unreal
Alternatively, if you're comfortable with even more complexity and lower level languages, go for Unreal: https://www.unrealengine.com/en-US
Admittedly, on the programming side of things it also supports Blueprints (visual scripting), but you'll probably be working in C++ with it as well. It can feel more coherent than Unity, but can also be more challenging to work with and some suggest it's optimized towards particular types of games. That said, the graphics and LOD solutions are excellent, so it's an especially good choice if you want something visually striking (though Unity's HDRP can also look good with some work).
# Game engines: other
There's also the option of looking into lesser known engines like Stride for example https://www.stride3d.net/ but while many of them will be interesting, you can't really compete with the amount of resources about Unity, Unreal (and perhaps more recently Godot) out there.
There's also the option of trying to write your own engine, but at that point you're most likely no longer writing a game and might not ship anything at all. For an example of someone's gradual descent into insanity (joking, sort of), look at Randy: https://www.youtube.com/@bigrando420/videos
# Other software
As for supporting software, for modeling/texturing/animations you'll probably want something like Blender: flippinburgers ↗ I would say try out making your own very simple game first. Others are suggesting unreal etc but you can simply use your current knowledge to build something using webgl 2.0. See if you even enjoy that process first. tomduncalf ↗ If you are sure you want to do it (see other posts!) then I would agree with others that getting your foot in the door with a webdev related role could be a good way to get into it, especially at a smaller studio with less defined roles and more flexibility for people to help out on other bits. sideway ↗ Does anyone have any source (books/videos/open source projects) on backend development for multiplayer games? The scale and real-time aspect of it seems like a fascinating subject. bfelbo ↗ I thoroughly enjoyed https://www.goodreads.com/book/show/28105277-multiplayer-gam... and would highly recommend it!
Personally I’d always been interested in music software development but my career was in webdev. I took a job at a music tech startup doing Node/React work, but was able to make a prototype using React Native to build the UI for music apps during the regular hack days we had there, which led to me teaching myself C++ and leading development of a new music app for them. I actually am not working in the music world any more but still do some for fun on the side, and found knowing both C++ and JS has opened up some really interesting job opportunities so it worked out well for me!