Posted on Leave a comment

Benefits of supporting Linux if you are a small Indie Developer

Hi Giants!

Space Mercs launch week has come and gone and, for me, it was an outstanding success both financially (more on that later) and on a personal level. I want to take the opportunity and visibility I have right now to give back to the Linux community and to help other small independent developers.

Before we move on to the article, let’s get some our facts straight and go over the subjects I’ll be touching upon. First off, in order to understand why Space Mercs is deemed successful in my book is to look at the costs of development:

  • It has been in development for three months before release
  • My budget for this game was less than 3000$
    • rent / month * 3 months of development = ~2100$
    • steam submission price = 100$
    • art, sound and other assets that I needed = ~780$
  • Development only by me with no other person contracted or hired

In order for the game to be successful financially for me it needed to make back it’s development cost + one month of rent + 1$. One extra month of rent to cover up for the time it takes for Steam to transfer the earnings (earnings in the month of August are paid out at the end of September) leading up to a total of: 3000$ + 700$ + 1$ = 3701$.

As such I was aiming for the game to sell roughly 630 copies in the first month in order to make it’s money back. 630 copies * 9.99 = 6193.8$ in gross revenue. After steam cut and taxes, 60% of the money end up in my bank account which equals roughly 3716.28$.

How did the game fair so far? In it’s first week of release on Steam the game sold ~648 copies (at time of posting) with a total gross revenue of 5889$ resulting in 3533$ ending up in my bank account – just shy of my 3701$ goal. However this Friday I also made the game available on itch.io which netted me (at current time of posting) 142.87$ leading to a total of 3675$ putting me just 26$ of my goal. Not bad for the first week.

Linux and it’s performance

Let’s get back to the topic at hand – Linux and how exactly it performed for me! Well, out of 648 copies sold, 266 of them were Linux purchases according to Steam meaning that Linux is responsible for 40% of my sales. So much for Linux only makes “3% of the sales” myth that everyone throws around (I’ll go into more details bellow).

Now, 266 sales is a drop in the ocean for big companies or bigger indies however – in my circumstance it really makes the difference between being able to make another game or having to get a job or chase clients. And I’m not the only person in this situation. Did you know that most “good games” make around $10,000 on their first month on Steam? There’s a talk from Mike Rose about it and this one is from 2018, in 2019 the reality should be a bit more harsh. So for the average indie 266 more sales actually matter and make a difference.

When I was talking with Liam from GamingOnLinux during the game’s release day I heard a quote that made me shiver a bit. Lots of developers don’t even see 30 sales on Linux in their first month and I ask myself why. There are plenty of games with more polish, work, production value and love in them that release than SM is. Don’t get me wrong, Space Mercs is one of the best games I developed as an indie to date but it only had 3 months of development time put into it. Other games with more budget and more production value should blow it out of the water in terms of Linux sales so what’s up?

It all comes down to how Linux is perceived in the development community. If we keep throwing around the 1-5% of sales statistic regardless of the scope or what the actual number of sales is we’re not going to bring any new game developers to Linux. Put it at face value, 5% of sales on Linux sounds bad. But when the sales number is around 50,000 copies, 5% is 2500 copies. For a 10$ that’s 25,000$ in gross revenue for the developer. Why don’t we lead with that?

The three myths that maintain the status quo

Indies of my scale ignore Linux because “it’s hard to develop for it, costs a lot of money to do the port, you get a ton of crashes and in the end you make 3% extra sales” and the reality just isn’t that. And note: I’m talking about developers of my scale – to whom a game that sells 1000 copies is a success and trust me on this one: selling 1000 copies of a game on steam is no easy business in today’s market. Most daily releases on steam don’t see 1000 copies sold in their life time. So by continuing to do this – we maintain the status quo.

Okay, so let’s take the percentage of sales out of the equation and let’s say: “Hey indies, you can sell about 200-500 copies on Linux”. How does that sound? Suddenly it’s more attractive to a few developers. But we still have to tackle the “costs a lot of money to do the port and customer support and you get a lot of crashes”. That quote is not pulled out of my proverbial arse, it’s an actual quote from a well known developer – check it out here.

I’m not saying that statistic is a lie and it’s true for them. But look at it from this perspective:

  • You develop the game on windows and work on it on windows for 90% of it’s development.
    • you may or may not use DirectX and no abstraction layer for the rendering/input code
  • As release draws closer you start handling the port to other platforms and Linux is one of them
    • this implies changing the code, adding support for other rendering API’s, Input, etc
  • You get the game running on Linux and tested on your development machine and maybe one two extra pc’s before release.
  • You put the game up on steam or other storefront that supports linux
  • release day comes and you see that linux makes 1% of the sales and you get ton of crash reports
  • shocked_pickachu.jpeg

Why would you support linux in this case, right?

  • You spent a ton of money and time re-writing the rendering api and the input handling routine. You gotta make that money spent back from sales so your sales target increases.
  • You spent the last few months of the development cycle doing the port and you weren’t sure you’re going to be able to launch properly on Linux so you don’t market it too much. Less awareness about the Linux release. Heck your twitter PR thingies are pretty vague about linux.
  • And since Linux is an after thought so is your QA process and your community involvement (aka linux testers for your beta builds) so you don’t catch the many issues that can crop up when you adapt your code to work on another platform.

See where I’m going with this? From the get go a ton of developers consider linux as an afterthought and reap the benefits of having it as an afterthought – you reap what you sow. If from the get-go your rendering engine used OpenGL or Vulkan time spent doing the port would be much lower and with less hurdles. There’s literary no reason why you shouldn’t use SDL in your custom engine from the beginning for handling input or window creation. Heck, for a 2D game SDL is literary all you need and the game will compile for anything from tablets to the PS4 with minimum changes. But hold on, the case I presented above concerns developers with a custom engine. What about developers that use Unity – that engine is cross platform and exports to Linux so they shouldn’t be facing any problems right? Egh… check out the screenshot bellow:

This is a mistake I see other devs routinely make. They fall into a false sense of security given from the fact that Unity can export a Linux build via 1 click in the editor. And it’s true – if you were to make a game in unity with no extra middle-ware solutions and 3rd party plugins the game should run on Linux with no problems. But once you start adding it more stuff that haven’t been developed with cross platform portability in mind things go off the rail. Let me put it easier for you:

You’ll never expect a text-to-speech middleware library from the asset store designed to use the iOS API to compile and work on Windows right? So why do you expect any 3rd party stuff that you didn’t make to run on another platform it’s not advertised for?

I have a simple rule I follow for my games – before I purchase any middleware (and Space Mercs uses a few – like ReWired for Input handling) I make sure that Linux is marked as a supported platform. And after I purchase it I do a build and check it on all my targeted platforms. That means I also check it on Windows. I check the things that I buy before I use them to make sure I’m not shooting myself in the foot in the long run.

This is why QA is needed when you are targeting Linux. No I don’t mean hiring a specific QA team, I mean doing regular builds when you add new stuff. Setup a build server, spit out a Linux build and run it. Or do it from your machine. Do a Linux build, fire it up every once in a while and you’ll know how things are going on. But most developers just get their stuff, code their game, test it on windows and bam! Come release month they do the Linux build for the first time since last Christmas and they have to post announcements like this or this.

For Space Mercs – I developed it exclusively on Linux. There are many reasons why I handled it this way – from Linux being my favorite operating system for a while now to it makes business sense. It makes business sense – from no operating system costs, to great uptime to a ton of stuff but especially from a middleware and engine perspective:

If it works on Linux – 99% of the cases in works on Windows vs the cases above. Middleware and assets on the unity store that work on Linux are 99% guaranteed to work on Windows. Through out SM’s development I only had a single, Windows specific issue – and that was a crash with a particle effect which was caught as soon as I made the windows version. It took me 20 minutes to get the source on my Windows PC, do the build and test it out.

So let’s take the development woes away. So far we got rid of the percentage issues and cross platform support. Why does a game still sell so little on Linux? Well most game devs do no marketing on Linux. Like – at all. At best they fire an e-mail to GamingOnLinux and that’s it. While the Windows version get’s press releases, builds sent out to testers, to press websites. Windows players get engaged on reddit and twitter and facebook. Everyone that’s on Windows knows the game is out while Linux users get a single article mentioning the build might come. Heck, usually Linux is used as a marketing tool when it comes down to needing kickstarter pledges but once the goal is funded it’s up to Linux writers and editors to keep a track of the release and mention it.

Would your windows version sell just as well if no one knew it was coming out? Do you do a one-off shot to the press about your game and forget about it until release? The most common questions posted on r/gamedev when a dev post that his game got no sales is “Did you do any marketing?”. Same thing here – did you do any marketing for Linux for your game?

For Space Mercs I exclusively marketed it on Linux! I was lucky to have GamingOnLinux believe in me and my Linux 1st Initiative to cover the game so extensively. Because of GoL’s article I meet Jason who interviewed me on the Linux4Everyone podcast that eventually became a Forbes Article. All my windows marketing was basically nil, safe for SpaceGameJunkie reaching out to me on twitter and doing a video about the game. And Joshua Pantalleresco giving me the time of day on his podcast which isn’t about computers or gaming (thanks to IndieImprimt for helping me out there with this one). But I didn’t market the game too much outside of linux and the efforts can be seen. 40% of the sales at this point – are from Linux.

How Linux improves overall sales on Steam

And if you think that’s something impressive let me tell you the kicker! Remember that I launched on Steam right? Well, stream cares about how many sales you make and how well you convert. They are like an ad agency. The ad that sells the most products get more traffic. Wanna know how Linux is worth it? You’d be expect that by having 90% of the marketing done on Linux would lead up to 90% of the sales being on Linux right? No, Linux’s % of the market on steam is tiny – yet a Linux sale has the same weight as a Windows sale. The more sales I made on Linux the more visibility STEAM gave my game. This is why after the Forbes article the total percentage of my linux sales didn’t drastically increase from 36% to 90%. Let me put it this way: For EVERY sale I got on Linux steam deemed me worthy and sent more traffic my way. For every Linux sale I got two more sales on Windows. Why? Because 95% of the traffic Steam can give you is Windows traffic.

So doing a good job supporting linux and engaging with Linux users actually BOOSTS YOUR SALES NOT JUST ON LINUX. Supporting Linux increases your overall support for your primary target platform. I’m not sure how I can explain it better than this.

So when people complain and say that Linux is not worth supporting, when they tell you “just advertise that it works with Proton” or when they complain that they are wasting money on a dead platform just point them here. Because they are shooting themselves in the foot.

I love Linux and I really wish a day will come when I can just develop games for Linux exclusively and get someone else to do the Windows port. That’s the day when I’ll be a really happy developer.

But yeah, it’s not worth it to support Linux.

P.s. If you like this article and want to support my development on Linux you can do so in a bunch of different ways. One of them is by becoming a patron. This gives you access to all my Linux games from the BGG store. You can also purchase Space Mercs – the game about whose development I talked about in this article – from Steam or Itch.