It's not often that I write stuff that is specifically Linux focused (I will admit to being Linux biased here and there though). I like to believe that there's more value in things that can be discussed by people on any platform.

The past year has seen a dramatic increase in the number of crowdfunding campaigns offering some type of Linux support. Whilst on the surface sounds great, there is a concerning undercurrent of Linux support being offered as fairly distant stretch goals, bundled along with non-PC platform support and other items which don't match the overhead involved or outcomes that supporting Linux does[1].

Following a recent conversation with the organisers of Atomhawk Design and Lantern Interactive's Kickstarter campaign for The Realm about why Linux support included in a stretch goal well over a third above the primary target might not be in their best interests, I decided it might be worth putting some of these thoughts out to where they might be of use to or evoke discussion from others.

In this article, I'll primarily be talking about Kickstarter campaigns, but these thoughts should apply to any crowdfunding campaigns on any platform (including self-run).

Linux Support In Recent Crowdfunding History

Whilst Linux support has occasionally been featured in crowdfunding campaigns for games for many years, several high profile campaigns by established development studios in early 2012 resulted in a comparative explosion of promised Linux support, and heralded unprecedented growth in crowdfunded games.

According to a recent Kickstarter blog post, campaigns in their games category raised over $83 million in 2012, an astoundingly dramatic rise from $3.8 million in 2011. The blog post notes that Double Fine's record breaking Double Fine Adventure campaign signalled the point at which this growth began.

Headed by renown game designer Tim Schafer, best known for classic adventure games from LucasArts (Grim Fandango, Full Throttle, Monkey Island) and Double Fine's cult favourites (Psychonauts, Brutal Legend), the Double Fine Adventure campaign promised to create a modern point and click adventure game, a documentary covering its development and the opportunity to provide input into the game itself. Towards the end of the first week of the 35 day campaign, when supporters had pledged more than double the initial $400,000 goal, support for Linux and other additional platforms was announced, though it was stated that beta access, which was to be granted via Steam, would not be available (Steam for Linux would not be announced until later in the year). At the campaign's close, supporters had raised over $3.3 million, more than 800% of the initial funding goal.

"Anybody can develop and release a computer game as long as they have the means to do so. You don't need anybody's permission, either a publisher or a console manufacturer. When we put out our games on PC platforms, we can release them when we want, how we want, and update them the way that makes the most sense for us and our community. The rise of an addressable gaming market on Mac and Linux gives us all the more confidence that this model is gaining traction among players and giving us the freedom to control our own destiny as developers." - Chris Remo, Double Fine (Double Fine Adventure/Broken Age)

Commencing the day before the close of the Double Fine Adventure campaign, inXile entertainment's Wasteland 2 Kickstarter campaign raised close to $3 million during its 35 day campaign. Unlike Double Fine's approach to Linux support, inXile chose to offer Linux support only if the project was funded $600,000 beyond its initial $900,000 goal.

Shortly afterward, Uber Entertainment added Linux support to their in-progress Planetary Annihilation Kickstarter campaign, which had not yet reached its initial funding goal. Uber made a point of highlighting that native Linux support for Planetary Annihilation was not being presented as a "stretch goal" and would happen alongside Windows and Mac OS if the initial funding target was reached.

Another high profile crowdfunded title from 2012, Project Eternity offered a Linux support stretch goal of $2.2 million, double the initial funding target of $1.1 million, leading some supporters to see Linux support as a waste of project resources. Later in the campaign, Project Eternity's developers, Obsidian Entertainment, announced they would be using Unity and providing Linux support as a base deliverable. Similarly, Linux support became a recurring point of contention in Roberts Space Industries' crowdfunding campaign for Star Citizen, after developers stated they would be open to supporting Linux and Mac OS if engine support was provided upstream by Crytek.

"When launching the campaign we felt safe promising Mac support since we had done enough testing to know that it wouldn't be a problem, but Linux was still undefined. Since then we took the time to test the prototype on Linux and do enough research to feel comfortable promising a Linux build." - Jordan Hemenway, Refract Studios (Distance)

Hidden Path Entertainment's Defense Grid: Containment/Defense Grid 2 campaign was structured with the initial funding target of $250,000 providing an expansion to the original Defense Grid game, and additional stretch goals seeing the original games re-released with a new engine, and a full sequel at a $1 million stretch goal. Sitting just prior to the Defense Grid 2 stretch goal was another stretch goal for native Linux and Mac OS support for the new engine, the original Defense Grid game, and all of its expansions. The Defense Grid: Containment/Defense Grid 2 campaign went on to raise $271,726, nearly $500,000 short of the stretch goal which included Linux stretch. At the conclusion of the campaign, Hidden Path promised to give supporters of the crowdfunding campaign a copy of Defense Grid 2 if it was ever made. In April 2013, Hidden Path announced that based on the performance of their Kickstarter campaign and handling of deliverables, they were able to secure investor funding to develop Defense Grid 2, which would include Linux support.

Whilst the Double Fine Adventure and Wasteland 2 campaigns may have been the catalyst for the popularisation of Linux support in crowdfunding campaigns, recent Linux support from prominent platforms and technologies have empowered developers who otherwise may not have considered Linux support to find it accessible.

Perhaps most featured in crowdfunding campaigns offering Linux support, Unity 4's Linux publishing preview has been broadly embraced by small and large scale developers. First hints of upcoming Linux support appeared when Wasteland 2 was revealed to be making use of in-development Linux code within Unity.

The announcement of Steam for Linux in mid 2012 provided a familiar distribution channel for developers who may have been unsure of how to approach distribution and packaging under Linux. It is also worth noting that Humble Bundle have recently been providing digital fulfilment services to crowdfunding campaigns such as Full Control's Jagged Alliance: Flashback campaign and Discord Games' Chasm.

"Steam supporting Linux gives us a channel to reach Linux gamers and the support infrastructure to make development on Linux possible - there are several online features for the game that we depend upon to bring the game to a platform and Steam provides those for Linux now." - Jeff Pobst, Hidden Path Entertainment (Defense Grid 2)

Throughout 2012 and 2013, there have been many crowdfunding campaigns which have not reached Linux stretch goals and not provided Linux support. The focus here though, is not the success or failure of Linux support specifically, but instead the fair and equitable treatment of Linux supporters.

About Stretch Goals

To get to the heart of the issues at hand, we must first look at what stretch goals are, what meaning they can have within the context of crowdfunding campaigns, and who they are attractive to.

Stretch goals are additional funding milestones or metrics at which many developers choose to commit to particular features or other relevant deliverables. They give a way of measuring and recognising additional support beyond the campaign's initial funding goal.

Primarily, stretch goals serve as rallying points, bringing existing supporters together and giving the backing community reasons to stay active, involved and invested after their initial pledges. The "rewards" that stretch goals offer encourage existing supporters to increase their pledges and to recommend the campaign to others.

Stretch goals have very little value to people not already supporting the campaign, as the general you-only-pay-if-the-target-is-met principle doesn't apply for features offered beyond the initial funding goal. Anybody supporting a project specifically for a stretch goal that hasn't been met run the risk of ending up in the position where they are charged, but the features they care about are not planned.

About Linux Support

It is undeniable that there are development, testing and support overheads involved with publishing on a new platform. Whilst research can be done and costs estimated, there are still unknowns and sense of risk at play.

Most crowdfunding campaigns are in a better position to minimise the development overheads of supporting Linux by choosing Linux compatible libraries and middlewares sooner rather than later when incompatible technologies may be tightly integrated with the project's codebase. Supporting multiple platforms from the ground up also reduces overheads, encouraging better programming practices, and resulting in more portable code than post-development "porting", as the process of building and testing development code on all target platforms from the start identifies and prevents the growth of unportable code, resulting in more portable programming cultures.

"In addition to [the] shared tech benefits [of multiplatform support], there's also been a big expansion of general mindshare and support for Linux and Mac as gaming platforms. The biggest factors here are Humble Bundle and Steam. Humble provides a recurring way that Linux and Mac gamers can tangibly demonstrate their willingness to support a robust game market for their platforms, and Steam being on those operating systems gives developers the confidence that they will have a way to confidently reach a critical mass of players on those platforms." - Chris Remo, Double Fine (Double Fine Adventure/Broken Age)

Crowdfunding campaigns by nature also have more direct connections to end users through their supporters. With many campaigns offering access to in-development versions of the project as pledge rewards, access to willing Linux testers should not be difficult to find for campaigns supporting the platform.

Between 1998 and 2004, Linux gamers enjoyed a proliferation of mainstream titles thanks to porting houses like Loki Software and Linux Game Publishing, and developers who were regularly providing Linux support like id Software (who has not published a desktop title for Linux since 2010, or 2007, discounting the browser based title QuakeLive), Epic Games (whose unreleased Linux version of Unreal Tournament 3 signalled the end of their previously established history of Linux support) and Croteam. In the years that followed, Linux gamers became a point of ridicule within gaming culture and commercial games with developers and publishers claiming that the Linux market was not commercially viable. Linux support became the domain of a handful of smaller, independent developers, and Wine became a primary fallback for "starved" Linux gamers, providing a widely, but reluctantly used way to play non-native games.

In 2010, Humble Bundle began to challenge industry level conceptions about the profitability of Linux markets, highlighting Linux compatible games and regularly publishing a growing number of Linux "debuts", whilst consistently managing to draw significant revenue, word of mouth promotion, and support from Linux users. Towards the end of 2012, Valve announced that they would be making their content delivery platform Steam available for Linux.

As we move into this "second golden age of Linux gaming", Linux users are more discerning and less willing to be taken for granted. Fewer Linux users are purchasing Windows titles to be played in Wine, and more are caring about the quality and maintenance of Linux games when they buy them. In general, Linux users feel that they are, at the very least, entitled to the same quality of software and support as users on Windows or Mac OS, and are not afraid of complaining when there is an imbalance.

Conversely, when catered for and looked after, Linux gamers have a tendency to become passionate fans, leading communities and promoting the things they enjoy to users on all platforms.

In short, Linux gamers are tired of being treated as second class, and when embraced can be a powerful asset in addition to a broader user base.

"We want to have the best online multiplayer experience possible for the game and again, by going with Steam for Linux, our Linux players can play with and against users on Mac or PC as well. That means that an online experience is viable enough for players to find games to play and the numbers of online players will be there and won't be fragmented." - Jeff Pobst, Hidden Path Entertainment (Defense Grid 2)

Linux As A "Parallel Platform"

Stretch goals may seem like a good place for additional platforms to be positioned within crowdfunding campaigns, and in many cases, they probably are. There is a subtle difference to take into account when looking at Linux support for PC games which is often not considered.

Supporting consoles or mobile platforms "value add" for users on PC platforms. For example, Windows gamers might also have an Ouya on the way, or Mac gamers might appreciate also playing on their Android devices. Supporting Linux however, only offers Windows and Mac gamers a sense of flexibility for those who might consider changing platforms in the future.

Rather than being an additional platform that opens up a new space, Linux should be seen as an alternative or parallel platform, making a project accessible to new customers. It's reasonable to assume that there will not be the kind of overlap between individual desktop platforms as there is between platforms that exist in entirely different spaces. For this reason, it makes more sense to group platform support by role rather than separating Linux out.

"We've always been interested in bringing this game to Mac and Linux since we feel that the PC is overall the best platform for enjoying it." - Jordan Hemenway, Refract Studios (Distance)

If Linux support is on equal footing compared to other PC platforms, then platform politics and preferences don't come into play, allowing for a more cohesive, vibrant and harmonious community.

Supporting the three major PC platforms also opens up opportunities that way otherwise remain beyond reach. Jeff Rosen's 2008 post on the Wolfire blog titled Why You Should Support Mac OS X And Linux remains relevant and gives some good examples of this.

Why Linux As A Stretch Goal Is Not So Good

By offering Linux support as a stretch goal, campaign organisers pave the way for segregation within their existing community, giving those not personally interested in Linux support the opportunity to question and undermine the developers' decision to support it. Even if such dissent is from a vocal minority, it can still lead to open hostility and drive away the very Linux supporters that the campaign is hoping to attract.

Additionally, since getting to actually play the title is going to be the highest priority to them, Linux users will tend to overlook intervening stretch goals and additional deliverables, interpreting the full stretch goal amount as an unrealistic representation of the cost of supporting Linux.

As mentioned earlier, supporting additional desktop platforms for a PC game is only of direct value to users outside the backing community, and so is fundamentally incompatible with the notion of a stretch goal and the principles that make crowdfunding work.

"We had a half-dozen or so Linux activists on the Kickstarter comments. They pushed hard for us to include Linux support, and several offered to help test Linux builds. They helped promote the project in comments and on other forums, especially after I agreed to make a Linux version."[2] - Corey Cole, Hero-U (Hero-U)

If any Linux backers have chosen to support a project before Linux support has been announced, stretch goals prevent their contributions from visibly counting towards the platform they care about.

Ultimately Linux stretch goals position Linux support as of lesser importance, and not worth committing to - a message which makes a campaign seem less inviting to Linux users.

Some Advice For Campaign Runners

I am by no means an expert in crowdfunding. All of the perspectives presented here are from the perspective of managing community expectations for maximum positive effect - something that I imagine successful crowdfunding campaigns can not ignore.

"[Access to Linux gamers through Steam and Humble Bundle] is important, because the theoretical size of a given player base on a given platform isn't actually all that meaningful to developers, especially small developers without a lot of marketing capability, if they can't reliably reach that audience. Windows game development actually presented the same problem for years until services like Steam started giving devs a place where their potential audience was most concentrated." - Chris Remo, Double Fine (Double Fine Adventure/Broken Age)

For anybody who is running or considering running a crowdfunding campaign that may support Linux, I have the following suggestions:

Research the libraries and middlewares that you are considering using. Know ahead of time whether you are likely to encounter licensing or compatibility issues and steer clear of them when possible. Open source technologies have an added advantage of having source access for additional debugging and optimisation. By focusing on cross platform dependencies, you gain increased flexibility and portability even if Linux support isn't pursued.

Be open and listen when Linux users contact you. Give them as much time as you would users on other platforms. By treating individuals within your supporting community equally, you create an inclusive atmosphere rather than an exclusive one.

Avoid delayed Linux releases (or delayed releases on any "parallel" platforms). Simultaneous releases have greater launch enthusiasm, whilst delayed releases cause portions of your community to fragment and withdraw for fear of spoilers and to avoid reminders that they have been given a lower priority than others.

It's OK to not feel comfortable supporting Linux with an initial funding target. If this is the case, avoid presenting that as a stretch goal and instead make a fuss about committing to Linux support when enough funds have been raised. I'm normally an advocate of transparency, but in this case, expectation management must take higher priority, and this is the best way to avoid unfulfilled supporters whilst still giving you whatever safety net you feel you need.

Finally, if Linux support is something you are reluctantly considering, then it might be best to just focus on what does feel right. Begrudgingly supporting Linux is unlikely to result in positive outcomes for developers or gamers, and often leads to poorly maintained software, bad community relationships and customers feeling cheated.

"Its very hard to tell quantitatively what the impact of adding Linux support has been - there's no real way of telling. However we have definitely noticed a lot of activity on the site and support amongst the Linux community. So whilst you guys are a small minority, you are very passionate and that is invaluable from a campaign perspective." - Atomhawk + Lantern Interactive (The Realm)

To summarise:

Choose to work with open and/or cross platform technologies.

Communicate with Linux users and give them as much attention as users on other platforms.

If you are targeting Linux with your project, aim to have simultaneous release on all PC platforms.

If you feel that you need a particular amount of funding to be comfortable producing a Linux version, just announce Linux support once that threshold has been reached.

If you are not interested in or excited by supporting Linux with your project, then don't.