We shipped Urban Warfare last week (the new Battletech DLC) along with the 1.6 free update. Things have calmed down enough that I only worked on some simple bugfixes which isn't really much to write about. But I did have an interesting conversation. Kiva asked me if I could talk to a friend of hers and answer a few questions about becoming a tools developer. This isn't the first time I've been asked this question so I thought I would turn our e-mail chain into an article.
This turned into a pretty long post so I'll do a quick summary. When you're learning to be a game developer you have a choice to make every time you sit down at your computer. You take the blue pill - you play some video games, cruise the internet, and wake up the next day no closer to your goal. You take the red pill - put in some effort, learn some new skills, work hard, and achieve your dream.
Another thing to say is there isn't a single "best" formula for how to get into the games industry. All I can say is that this worked for me.
Riley has been programming for a while and dabbling in game development. After watching some GDC Vault videos, they became more interested in becoming a game developer - specifically a tools programmer. They were polite and appreciative of me taking time to talk with them. Riley asked me for some good resources to better understand how tools development works and for advice on looking for jobs. They also asked about what kind of work I did on Battletech and other games.
Eck's First Email
Let me tell you a little bit about myself first. Originally I was a regular developer working on business applications. I started out with C++ and then moved over to C# and SQL as the technology shifted that way. I dabbled with game development as a hobby since college keeping a few projects spinning but never really did anything major. I started working on my own engine and saving up money so I could quit my job and make a serious attempt at game development. After about a year, I participated in a game jam and saw what amazing things people were doing with Unity and I was just floored. I really should have used something like Unity or Unreal instead of working on my own engine.
Then I quit my job and switched to Unity. I started writing a weekly Developer Journal about the things I was working on here: https://www.gamedev.net/blogs/blog/1922-ecks-journal-still-flying/ - This helped me stay motivated with my learning efforts, and also served as a portfolio to show potential employers I had serious passion, and it would also serve as a form of marketing for my game if I remained an indie developer. The indie dev plan was the way I was leaning towards but then I saw Harebrained was hiring for Battletech. My wife made me apply even though I knew I wouldn't get the job. Long story short, I did get the job even though I had 0 professional game dev experience and didn't live in Seattle. So I gave away most of my stuff, packed up my family, moved across the country, and have been working there ever since.
A tool developer's job is to make everyone else's job possible, easier, and faster. It's about creating easy to use "tools" like a map editor, or a mech editor. It's about making those tools intuitive, fast, and automating repetitive tasks. It's about identifying the pain points that people are dealing with and eliminating them. The best advice I can give you on how to learn to be a tools developer is to make games on your own and try to drive them with data. You'll quickly become aware of the annoying parts of game development. Figure out how to automate those annoying tasks where possible or reduce it to as few clicks as you can.
I also recommend starting a developer journal. It's motivational - especially if you end your posts with what you plan to accomplish next week. It makes you feel like you've committed to something and other people will be disappointed in you if you don't. And then a few years later, it's nice to have a historical record of your time. You said you were interested in seeing what work I did. I started doing the developer journal thing before I got my job so you can see exactly what I was working on leading up to that. Lately, I've been writing up journal entries about the kinds of stuff I've been working on for Battletech. So click the link above and read all about it. Feel free to ask any questions on the game dev site and I'll be happy to answer them.
Finding a game development job is super hard. And even when you do find one, there's a decent chance that job could suck. There are plenty of sweat shops out there that just squeeze every hour they can out of employees and then boot them after the game ships. One thing I found out working at HBS is that I'm happy just being a programmer. If this wasn't Battletech, I probably would have gone back to Business Application development to make way more money so I could retire sooner. But HBS is an amazing company to work at and I'm working on an IP that was a HUGE part of my teen/college years so I'm super happy. #LivingTheDream Do your research on the companies, apply lots of places, and prepare yourself mentally for quite a bit of rejection.
I hope this helps Riley. Good Luck!
P.S. - Watch Collateral (Jamie Fox, Tom Cruise). It's the movie that really lit a fire under my ass to go follow my dream.
Firstly, thank you so much for responding, it really means a huge amount!
Unity is an amazing piece of technology indeed and some of the incredible work I see on twitter is honestly amazing. However I've been rather weary of it for a while, due to mostly varying issues I've heard about it. Though I should just get on with some tutorials and learn things! C# / C++ / SQL is a good set of techs to learn as you allude to later on, business applications are big money! My main language is C# / PHP!
How far did you get with the work on your own engine? I've attempted that a few times and it is a rather big challenge especially when you are brand new to it all. I have just noticed in your first blog post you were using XNA / MonoGame, it's my current go to as well (well FNA) but it's a good toolset.
It is rather awesome your wife and family were so supportive of your move when you did get the job, thought I can imagine that it was a big move and stepping into an unknown. It's also awesome that you did end up getting the job even with 0 professional game dev experience. That is a massive thing that does end up worrying me when looking to apply "At least 2 games shipped", "At least 5 years in the industry" etc. Though Harebrained sounds like it must rather be an awesome company.
I shall have to give that a go, but literally everything you described is what I absolutely adore doing, creating systems and tools, to make peoples lives easier, automate things. In almost all my jobs, I end up building tools of some form to help others out, in one job I build a dashboard to monitor SSL certificates alongside website up time and in another, I built a whole framework to help developers write importers that were fail safe and powerful in the reporting side of things, so literally anyone could find out what went wrong.
Any suggestions for sites to use for creating a journal? Would be interesting to see if it does help, cause I struggle massively with motivation and keeping going at projects though having any form of record of things I've done / am doing is a really nice thing to be able to look back on and see how / where you have grown. I shall be giving your blog a read over the next few nights and will definitely drop a few questions into the comment section, will be nice to talk more about how you have done things etc.
The industry does seem like a few fast turn over area and yeah, I don't have the energy left in me for a sweatshop kinda company, we've all read the horror stories. I'm really glad to hear that you do love it so much at HBS and you feel so happy there, it's always nice when you do find places like that. Lots of research to be done and oh I've had my fair share of No's (including being ignored by a somewhat indie games company I looked up to, which sucked, but oh well).
Thank you again, seriously this is honestly a massive help to me and I appreciate you taking time to read and respond to my emails, also Kiva, thank you also
Hope you both have a lovely day!
P.S. I shall have to go watch it indeed, thank you for the suggestion
Being wary of Unity: Originally I was in the camp of people that thought people using Unity were "cheating" and weren't real developers. You were only a REAL game developer if you wrote your own engine. That's the main reason I worked on my own engine. And quite frankly - that's a stupid camp to be in. Instead of working on low level stuff that's been done a million times by a million developers for nearly 2 years, I could have actually been working on a game and possibly released it.