Perhaps the title should’ve have been “How to become a freelance game developer and the realities of what that entails”. Given how freelancing isn’t generally structured or has some set of rules that everyone follows, take what I say with a grain of salt… or a few of them.

With that comes a couple of disclaimers:

This is my own path and my own experience, it may or may not be suitable for you. Be mindful when applying or following the advice mentioned here.

This isn’t the only way, it is merely how “the stars aligned” a mixture of circumstances, fate, my plans and how I dealt with them.

This is from the perspective of a 3rd world country freelancer with almost no local industry presence. So quite a few things here may not be relate-able to you.

This guide doesn’t talk about disadvantages or advantages of going freelancing from a “benefits” perspective (i.e. health care, 401K or its ilk, etc…). That is a whole other bag of worms and it different based on country and your living status.

Now that these are out of the way I’ll break the post down into three sections and you’re free to jump to whichever you find most interesting or read the whole thing (if you dare!).

You’re living the dream! Wow! You are doing what everyone wants to be.

I hear that quite often when I mention that I work as a freelance game developer and when I first started out I felt the same. Up until the end of my first year doing it full time. Only then did I realize how many things are wrong with this statement.

You see, if your dream is to work on other people’s games with no or minimal input? Then yes, I am living your dream. If your dream is to have to deal with clients and their weird, convoluted and wildly misinformed decisions and requests, then, yes, I am living your dream. If your dream is to be told every now and then that someone else can do what you are doing for far cheaper and/or quicker, then yes, I am living your dream. If your dream is to have to carefully schedule the time to work on your own projects, then yes, I am living your dream.

The reality is that as a freelancer you don’t get to choose to work on this game or that game. Sure, you can revoke a project (and I have done that a few times), but you’ve to realize that every project you turn down, is a payment you’ve turned down. So unless you have some kind of leeway (financially) then you’re going to starve pretty quickly. You can’t be picky if you want to live comfortably (it doesn’t mean rich). So guess what, that RTS genre you despise? If you have a contract in that genre, it is not going to be a choice when you have no other contracts aligned for this month and you got bills and family to take care of.

Most of the clients I have met so far have nothing to do with game development as an industry. Most of them are like you and I (i.e. not companies). They want to make their own games and they want to release them. So don’t expect your clients to understand when you say that adding multiplayer midway through development without laying a base for it will double if not triple the projected timeline and cost. They think multiplayer is simply a switch in whatever engine you work in that you turn on or off and we’re done.

Clients usually aren’t verbose or eloquent and they don’t usually know what they want. They usually don’t know how to describe things. Many a times I talk to a client and I see the project description something like “2D platformer, just like Mario”. You’d expect mechanics wise, there is jumping, only moving in one direction, teleportation (i.e. the pipes), shooting projectiles after picking an item, going invulnerable after picking an item, etc… However after propping further you find out it is more like Hollow Knight meets Rogue Legacy and a dash of Mario in there. Completely different game, completely different feel and most importantly completely different scope. Try convincing said client that his game is too big for his budget and/or timeline.

As a freelancer you compete with every other developer on the planet in both experience and pricing. So if you think your price + experience is fair, guess what, someone else can do the same thing a lot cheaper. I have seen developers quote up to 3x more than my current hourly rate and have seen others that quote around 2x less than my current hourly rate. Good luck convincing your client that your rate is carefully calculated based on market research, level of quality and experiences. Specially if the client doesn’t care 2 cents about quality and is just an asset flipper.

Since you work as a freelancer on other people’s projects you really can’t work on your own as most of your time will be taken by other projects. It is more or less a day job. Sure you can of course reduce the amount of working hours, number of projects, etc… but until you reach a certain level of sustenance and/or fame you’re going to have to accept it as a day job. This means you’ll have little time to work on your own projects.

So in reality, it is just a day job with trade-offs — rather than having your boss tell you “if you don’t come to work you’re going to be fired or you won’t be paid”, it is between you, yourself and whoever you’re taking care of. You have to create your own balance, you have to sacrifice quite a bit at first (i.e. work like a day job) until you reach a level where you can work less hours on freelance and work more hours on your projects.

Is it all that bad? No, personally I prefer it over a day job because there are quite a few things better than a day job:

I get to work whenever I want unless a client requires specific time frames. Even then I can negotiate with the client. Perhaps take less per hour rate vs choosing my own hours.

Usually clients aren’t pressed with time, thus limited to no deadlines.

Usually clients are reasonable after long winded discussions, despite me saying they won’t accept criticism, they actually do. You just have to learn the way to get to them. Which require a bit of good old customer service

I get to join a community of other like minded people that care about what I care about. Sure you can do that as a hobbyist but the kicker for me was going freelance. Before that I didn’t really care.

How do you get started?

Well this is the simplest, yet the most time consuming part of the entire process. It is also based on fate and luck to some extent.

First, learn English. Yes, LEARN English. I don’t care if you hate it because your teacher at school was an idiot or you find it hard. Everyone speaks English and it is the most common known language at the moment. A client will dismiss you as quick as how bad your English is. The worse it is, the less chances you’ll get a contract.

Second, let’s address the elephant in the room, like any other regular job to get started you need experience, to get experience you need to have worked on the discipline you’re freelancing in (whether that is art, programming, writing, etc…). Some bad news and some good news here. The bad news is that you need a portfolio to get started, without one, it would be literally luck if you landed a job — even if you have proper education (for example computer science in terms of programming). The good news is that it is easy to make a portfolio, it is just time consuming.

So how do you make a portfolio?

There are two ways to address this; the first one is that you create small personal projects, something to show the client as a proof that you can do what you claim you can do.

The second one is simply join a revenue share project. Yeah, yeah, I can hear you cringe and roll your eyes. Don’t they fail all the time anyway? They do. But this option is for those that lack motivation to create projects on their own or perhaps may lack skills in other areas that will compliment their portfolio (next paragraph will expand on this). So while you’re on the revenue share project, always think of it as a portfolio piece — nothing more. Act accordingly on that. Even if it failed, you have a bunch of work that you did. Put it in your portfolio.

The issue with working on your own portfolio alone is more restrictive in the coding department than anything else. The reason behind this is that most clients don’t have technical affinity. Which means if you create a demo level out of crappy place holder art and showcase it to your client along with the source code — chances are that they won’t be impressed. Unfortunately most clients (specially those that come from a non-development background) can’t understand code and judge things based on their looks rather than content. So you might have a beautiful (code wise) well made level but it looks like crap. Chances are, you’ll lose that contract to some person who made a level look cool with a messy spaghetti code.

So what? I can’t have code portfolio as a code with no art. You can, anything is better than nothing. But be mindful. Try to care for beauty too. Heck on this website you’ll see a few projects of mine that are literally just squares and they look awful. But you’ll see other projects that I paid attention to in terms of look. Guess which ones receive more positive comments regardless of code quality?

So you have a portfolio, what is next?

The next thing is to not stop working on your portfolio. Every minute you don’t have a contract is a minute polishing the portfolio and working on your own project.

Meanwhile you’re applying to jobs left and right till you land that first gig. Once you landed the first gig and finished it, put it up on your portfolio.

But where do you find that first gig?

There are a few options and you’ll need to get used to checking them daily. We’ll talk about the pros and cons of some of them and the “business” side of freelancing in the next section:

The last one, I have never been able to acquire at all. I live in a 3rd world country, the biggest studio is an indie one reformed after shutting down in mid 2000s. It did “for hire” work for another studio in the US and that is about it. Thus I can’t comment on it much.

Which ones are worth my time?!

As mentioned in the previous point I wasn’t able to capitalize on connections — your case could be different. You might be living in the US thus can easily attend GDC, PAX, E3, etc… all of which are events with developers and companies and while some are focused on showcasing games for players, developers do talk to each other and you never know where a conversation could lead. Same if you’re in Europe there are quite a few events across Europe that you can leverage.

Moreover, this method is by far both the best and the most lucrative. Heck, Raph Koster landed his first gig because of a friend.

Let’s start with freelancing websites first.

In my case, no matter what I did with Freelancer, they always messed up my payment. I worked there once, got my payment fine. The next time I tried to work there I had a really hard time verifying my payment method that to this day 10+ years later, I am still unverified. Needless to say after a few tries I just gave up.

On the other hand, I have worked on Upwork ever since it was oDesk and before they bought eLance. Back then they were good. Really good. They were freelancer-oriented. They were literally trying to make a website to provide people with job opportunities. However a few years ago, a while after they bought eLance and rebranded, they started getting extremely greedy. They literally try to push restrictions and monetization down your throat that I haven’t used it in 3+ years (i.e. after the first 3 contracts I got on there once I went full time). I won’t go over it here because that warrants an entire post of its own.

That however doesn’t mean I am dismissing them. On the contrary. In my opinion these websites are great for your first 3-5 contracts to get your feet wet and build up a portfolio. After that I wouldn’t even bother. Though I do know some people that still make a living working on contracts from these websites.

This leaves the other websites. In my experience I had zero success with TIGSource, Unity Connect (I primarily use Unity for programming) and IndieDB. TIGSource and IndieDB rarely have paid jobs these days if ever. As for Unity Connect that is a… well I don’t know what to say. Unity Connect has two areas to look for jobs in. The first one is the obvious Jobs tab. The second is a Commercial: Job Offering group. The Jobs tab has loads of jobs from spam (like literally spam), revenue share, paid to some well known indie companies posting — Unity posts their positions there too. So far most of what I found are clients that either are trying to asset flip, specific type of experience jobs (i.e. editor scripting when I don’t have experience in editor scripts for example) or just need me to be local to the job with no relocation or remote work on the table.

The group is the worse one, last time I checked it out, someone was posting a website for counterfeit IDs and people posting their assets and their portfolio to advertise in a place that is titled Job offering I wonder what kind of client hires a freelancer that posts irrelevant posts and doesn’t adhere to the rules… but I digress.

With all this said and done, your mileage may vary. Perhaps you have a completely different experience and find that great client in Upwork for example. If you’re starting out, try everything. Otherwise, see what fits you and maximize on that (still if you want to hit them all, there is no shame in that).

The Business!

I bet half of the people reading this are interested in this section more than the blabber I have been talking about so far. This deals with the “Do and Don’ts” of the trade when dealing with clients.

To reiterate, this is my way. It isn’t the best way, it isn’t the only way, it isn’t the way that you must follow. It is the way I am using and feel comfortable with.

When dealing with clients you need to understand that they aren’t game developers they may not understand the technical lingo we use. They may not understand state syncing, interpolation, floating imprecision, etc… so talk with the client using simple language. Explain everything. Only when you see the client confirm understanding of said terminology that you start using it.

Do NOT trust a client with their game overview. They’ll provide a description similar to “it is X game but in 3D” or “it is a Y clone” or my favorite “just a simple platformer with combat focus and combos similar to Street Fighter, pretty easy stuff”

Following from the above, ask propping questions. If a client tells me their game is similar to X, I watch a video about X and start asking questions like “So you want combat that does Y, Z and M? You also want movement like this or that? You want inventory that works that way?” etc… usually there is a “yes, but…” and they start explaining their true vision.

Do NOT be shy to discuss money early into the “interview”. I can’t tell you how many hours upon hours (not even exaggerating) I wasted on talking with clients about details only to see their “Paid Unity developer, quote rate!” advertisement end up as revenue share with “revenue share is paid, we are starting our Kickstarter next month with 0 followers and 0 investors but we’ll make money so we’ll pay you”.

Ask if there are deadlines. Evaluate those deadlines. The tighter they are, the more money you ask. Unless you have nothing else to do. Basically if you have a contract and you’re getting another one on the side and they have a deadline, I’d charge more if that deadline may interfere with your first project.

Be honest with your client in the interview process. If you have another contract, tell them so. If you can’t commit to the deadlines, mention so. It doesn’t do you nor them any good that you take up the task only to leave it after a while. It hurts your reputation and it hurts them both financially and production wise.

Do NOT take free tests unless your portfolio is seriously lacking in the skill you’re testing in. Example, I spent a year of my own personal time learning multiplayer programming in Unity in three different frameworks. However, aside from some lost prototypes (story for later) I can’t show anything. So if I landed an interview and they asked me for a free test, I wouldn’t mind taking it if I am sure they’re legit. Otherwise, that is free work for nothing.

Following from the above, when you take a test, if it is free make sure that the test is not part of the game. If it is, don’t hand over the source code without payment. Otherwise, you just handed the client free work.

Negotiate the payment for the test. Try not to take less than the usual rate for a test. An hour is an hour.

Use the test in your portfolio if it looks good or is deep enough. You’ll probably need the permission of the client if this test was under NDA.

Write a contract. Period. OK, sure, I sometimes skip that but only after years of freelancing and confirming the client is good for their words. I won’t recommend it. However in a 3rd world country, even with a contract, if the client skimps on payment, usually the price of getting the payment is far more than the payment itself. Still try to do it.

After confirming your understanding of the project (propping questions) ask for a full detailed document (game design document) that has all of these things. This brings the next point

When accepting work from a client and agreeing on certain tasks or features, make sure to inform your client that any changes are subject to extra charge. This doesn’t apply to hourly payments. This is more when you’re quoting a per project sum.

Unless you have years of experience in the job you just took and can estimate to the “T”, inform your client that the estimates are… estimates. They aren’t 100% accurate. They may increase or decrease based on the production process. When quoting add a 25% margin. Don’t quote a specific number, quote a range. Make sure that range covers any delays you may anticipate.

Do NOT start work without agreeing with the clients on tasks list and the payment.

Either project based or hourly agree with the client on payment milestones to test the waters and see if they are good on their word. For example I’d take an hourly contract paid monthly for example. I negotiate with the client to make the payment per week not per month. If the client isn’t pressed on time I put little hours the first week on purpose. If the client didn’t pay, I wouldn’t have lost a lot of time.

I never ask a client to pay a portion first and then the rest later. This is due to two things; the first is that I want the client to trust me. We aren’t here to scam one another so I present a modicum of trust and expect the client to do the same. In return, I don’t deliver any source code or final product until I get paid. In terms of code, I provide a GIF/Demo/Etc… and once the payment is confirmed, I send the source. With art (despite not being an artist) I would put water marks or a screenshot of the art piece with watermark (i.e. low quality). The second reason is that it is a lot of hassle (and sometimes costly) to reverse a payment — at least it seemed that way from the services I used.

There are quite a few options for payment, first I try to use Payoneer (referral link, non-referral link is here as it is really easy for me to withdraw the money), if not I offer Western Union, if not I use Paypal — note if you’re in the Middle East most likely any money received on your account will be locked for 35 days, no matter the amount and it is non-negotiable. Always offer multiple payment methods to your client. You never know what issue they may encounter.

Genuinely care about any client you’re interviewing with. Don’t be scared of losing time with a client because you’re explaining things or try to talk him out of a stupid endeavor. I once talked with a client and spent with him about 11+ hours over chat trying to dissuade him from listening to some person he found online that convinced him to start a 2D MMOARPG with real time combat and other nonsense and it can be done within a few months. Needless to say after I stopped this madness, he recruited me to make a much smaller game for him that he had in mind (a far more realistic project).

If you’re in a 3rd world country, use that fact to your advantage. Don’t just price your hourly or per project rate based on “industry standards” just for the sake of it. Specially when you’re still starting out or don’t have too many projects behind you. That said don’t throw the prices down the drain. Quote cheaper (if you can afford it) but not to damage the price range. See what other people price their hourly rate at and compare their experiences with yours. Be mindful.

When quoting deadlines for certain tasks, never give the exact time frame, always pad it with extra time minding anything that could happen (be it work related to personal life related). You don’t want your client to feel that you keep missing deadlines. Be mindful though, over estimating too much is as bad as under estimating.

If you’re taking a job and part of the tasks in that job you’re unfamiliar with, voice those concerns early. Tell that to your client. I recently landed a gig in a genre I never worked on before — I was skeptical about some things since I didn’t work with them before and I mentioned it to the client. They were more than happy to offer me the job despite my lack of experience in certain parts. Had I kept it from the client and issues happened, he’d suspect my entire resume and experiences — probably would’ve hurt my reputation quite a bit too.

The Conclusion

Freelancing in game development is just like any other freelancing. You’ll end up dealing with clients both good and bad. You’ll end up having less time to work on your project and you’ll have to figure out your work/life balance. Getting into freelancing may seem daunting but in all honesty it just needs some hard work. Sure we might have a harder time than others that are located near an industry hub area or a country that has an industry presence, but we still have a chance and can make it work.

All it takes is some perseverance and willingness to go the extra mile. Once you go through the door, you’ll see that things get easier and easier. Sure you may have long dry times with no contracts but at least it won’t be the same as when starting out and hopefully one day you get to afford going to one of those big game development events, perhaps land a job in a studio (if that is your thing) or even start your own studio.

Either way, good luck and hope that helps!