DoubleBuffered Games

Finding Success as a Game Development Contractor

I’ve been an Unreal Engine contract programmer for the last 5 years and a few people have asked me if I had any advice for other game development contractors, so I thought I’d write up some of what I’ve learned so far. This article covers what I learned about the personal and creative aspects of being a contractor, and I will discuss the details of running a business later.

Stock photo of a computer in a dark room

My background as a game developer is that I learned to be a game programmer during my 5 years at Cryptic Studios before joining Epic Games in 2010 and working on a variety of projects including the early development of Fortnite in Unreal Engine 4. Due to various issues (including some serious burnout) I decided to leave Epic in 2018 and I started my consulting business DoubleBuffered Games soon after. Since then, I helped to ship two commercial games (Trover Saves the Universe and Soundfall), consulted for Epic in developing Unreal Engine 5, and worked on substantial contracts for several unreleased games and tech demos. So what did I learn over the last few years about being a contractor?

Finding Value

The first thing is that there are two main reasons that game development (and related) companies hire contractors instead of full time employees:

  1. Contractors possess skills and experience that available full time employees do not
  2. Contractors are easier to work with for specific short term projects

To help fill the needs of clients, the first step is to understand what kind of value you would bring as a contractor. If you have any unique skills or knowledge (such as my experience directly developing the Unreal Engine), you want to identify those and figure out how to quickly explain them to potential clients. If you are more of a generalist you may want to focus more on being professional and easy to work with.

One of the first things I did as a new contractor was to write a summary (two paragraphs and some bullet points) of my relevant skills and experience. I then set up a simple website (using Squarespace originally) and posted my consulting skills and experience as a separate page so I could send it to anyone who might be interested in hiring me. Writing the statement forced me to identify the skills that I actually had and posting it publicly made it easy to quickly filter out job opportunities that did not make sense and serve as a digital “business card” to pass around inside a company.

Finding Work

Once you understand the value you can bring to clients, you need to find clients that actually want to pay you. Ideally you want to find work that both pays the bills and is satisfying/important, but you will need to balance the financial and personal goals. Sometimes the highest paying jobs are for clients that do not understand how game development actually works, and jobs with very unrealistic expectations are stressful and often lead to pay disputes. I recommend trying to maintain two long term contracts and then actively looking for more when one is getting close to ending. I found that negotiating contracts and trying to actually get paid is a part time job.

To find work in the first place, you need to use all available social networks. This has changed over time and will differ depending on your specialty, but here are my thoughts for 2023:

  1. The best social network is the informal one you already have. If you’ve been in the game industry for more than a few years you already know people at companies that could use a contractor. There is nothing wrong with asking friends and old coworkers for leads on job opportunities and personal connections make it easier to finalize a deal.
  2. LinkedIn is the best general social network for finding contract jobs these days as the other networks turned into walled gardens. You should post your summary of skills and experience and clearly state what kind of work you are looking for. You’ll probably get messages from recruiters who didn’t really read your profile, but you can always reply and let them know that you are available for relevant contract work.
  3. Discords can be a great way to find contract game development work. For Unreal Engine developers, Unreal Source (previously Slackers) is the first choice because they have dedicated channels for finding work. Many of the posts in those channels are from clueless “idea guys” but there are also serious opportunities. If you specialize in some other technology, look for discords or sites where developers who use that technology hang out and you will probably find some job leads.
  4. There are also good opportunities at companies that are game-adjacent. Most of my contract work was for traditional game development, but I also had successful contracts working for companies doing tech demos, serious games, and media production. There are many different industries using game technology and they often use a project-driven schedule that is ideal for contract work.

Finding Satisfaction

One of the best reasons to become a contractor is that it allows much more personal flexibility than full time game development work. This has gotten better with remote work, but many game companies still (implicitly) demand more than 40 hours a week and discourage side projects. When you’re a contractor you have much more control over what you are doing day to day and can use this to create a better life for yourself or your family. One of the main reasons I started contracting in the first place is that I’ve always been interested in psychology as well as game development, and while contracting I completed my online Masters Degree in Psychology earlier this year. You can go read my graduate thesis if you’re interested in the psychology of online harassment and I intend to do more work in the future combining gaming and psychology.

I could go back to full-time employment, but I would only do that if I could have flexible working hours. Full time game development jobs are very intensive and have a reputation of causing burnout and forcing older workers out of the game industry. This is hard enough for “normal” people, but if you’re in the game industry there’s a really high chance that you’re somewhat “weird” like I am. Over the last few years I’ve realized that my personality and mental health challenges make it very difficult for me to work on the same project for 60 hours a week. Contracting has been great for me because I can set my own schedule and work on a variety of projects to avoid boredom and burnout. Of course contracting does come with its own personal challenges so here are some tips:

  1. Contracting is very frustrating when the project you’re working on seems to be failing. This comes with the territory and unless the client asks for it you should not try to “fix” a project’s design or business model. The full developers probably already know what’s wrong (executives with unrealistic expectations who make bad decisions) and getting involved could cause more problems. If other members of my project team ask for my honest opinion I will give it to them, but I try to stay out of leadership conflicts.
  2. The definition and prioritization of tasks during contracting can be irritatingly ambiguous. Some of my contracts had very clear goals and processes, but most of my contracts were more open-ended because I was hired to help figure out how to make a game. To deal with this, it’s important to identify your functional lead at the company who can make decisions to resolve the ambiguity. This has normally been a lead developer on the project instead of whoever was approving my invoices.
  3. Because of project failure and context switching it can be difficult to feel like you’re actually making progress as a contractor. This is important to me so I balance it by working on something else (like my degree) that has a clear sense of progress. Keeping up a regular side project also gives you something productive to do while you wait for potential clients to get back to you about contracts and such.
  4. Find your limits and stick to them. I love working on multiple different things in a week, but every time I tried to work on more than two projects in a single day it went really poorly. Context switching is already hard for programming and creative work, so make sure to give yourself enough time to switch between contract jobs and side projects.

Creating a Process

As a contractor, you will need to come up with a process that helps you deal with personal challenges, satisfy your customers, and earn enough money to survive. I’ll cover the specifics of running a business in a second article, but here are some that have tips helped me be (somewhat) successful:

  1. Plan out your next week ahead of time. If you’re working multiple contracts at once, you need to know how to balance those contracts with your own personal goals and the schedule may change week-by-week. I normally work specific days of the week for specific clients, but I will adjust that based on the project schedules. My clients appreciate this flexibility and it allows me to take proper vacation when needed.
  2. Document what actually did for each client. As a contractor you need to know what you did on a specific day 6 months ago because it can help you resolve contract disputes or better estimate tasks for future contracts. I keep a simplified copy of my daily status (without proprietary details) in client-specific spreadsheets where I also track my hours. Knowing what I did every day makes it easy to create accurate invoices for clients that pay by the hour.
  3. Document all of your professional interactions with clients. You need to have permanent access to all contracts you ever signed as well as any informal modifications to those contracts. Because of this, even if I am assigned a client email address during a contract I do all negotiating with my personal email account and make copies of important messages that were sent on internal chat programs.
  4. Document what you learned during your contract. Many of my contracts have focused on helping clients understand complicated processes, so I have written a lot of internal documentation for clients. As a contractor, the things you learn are often more important than the actual tasks you complete and can help both you and the client in the future. Generally contracts are written so clients exclusively own all documentation you write for them, but while negotiating I often ask for the ability to keep and reuse sanitized copies of documents I wrote. Either way the publicly-available knowledge you gain during a contract is yours to keep and you can write your own personal documentation after the fact as long as it does not contain any proprietary client information.

That’s enough words for now, and hopefully some of them will help out other game dev contractors! If anyone has questions about the topics I covered here (not business details), please leave a comment or email me at ben@doublebuffered.com.