You Have to Port the Game

Last October, I began porting my NERD Engine to non-Windows platforms, using You Have to Win the Game as a test case. This involved rewriting all my rendering code to use OpenGL instead of Direct3D, which in turn required a solution for converting HLSL effect files to both GLSL and a proprietary format that would specify sampler and render state information. Input code and audio code that depended on DirectInput, XInput, Raw Input, and DirectSound had to be rewritten using SDL2 and a custom audio renderer. After three weeks of intensive work, I had a nearly 100% accurate Windows build of You Have to Win the Game that did not utilize any DirectX APIs.

That was only the tip of the iceberg. The next step was to begin compiling on other platforms, which would require the removal of all remaining Windows platform APIs as well as dealing with any unexpected compiler- or platform-specific issues. I spent a very frustrating day or two excising code wholesale and eventually wound up with a build that would at least compile on Linux. Of course, it segfaulted immediately on launch, due in part to 64-bit portability issues that I knew I would have to address someday but which hadn’t yet become an issue. In the interest of preserving my sanity, I abandoned the ports at that time, deciding that I could return to them once my next game were finished and on its way to recouping development costs.

Fast-forward to last week when I attended Steam Dev Days. Much of the first day’s material was focused on why and how developers should be targeting Linux. I hoped there would be a magic bullet. There wasn’t. In truth, there was very little I hadn’t already figured out for myself or with the help of my brother, who had just recently ported Eldritch to other platforms. What is clear is that Steam’s future is placing a tremendous importance on Linux development. I wish that there were a less painful solution, and maybe someday there will be, but we’re not there yet. Right now we are in a place in which developers are compelled to give up the comfort and familiarity of battle-tested tools if we are to target these platforms.

As a mostly-solo developer, that’s scary. As someone who has little or no immediate income because he left his job to focus on indie development not too long ago, it’s even scarier. And when I consider that my goal in the short term is to bring a free game to other, smaller platforms, it makes me question its worth.

You Have to Win the Game is free. It always has been, and it always will be. Being on Steam would not change that. I’ve even promised that if it were Greenlit, I would develop a new remixed campaign which would also be free. But considering the time investment involved in the porting effort and the hardware investment that will eventually be necessary once I turn my attention to Mac, I begin to question whether those costs, both in terms of time and money, are enough to put myself and my company at risk.

Of course, much of the work involved in porting You Have to Win the Game would translate directly to future projects, and in that regard, it’s conceivable that it would eventually pay for itself. Furthermore, I believe that doing this work upfront and targeting a finished game would allow me to better validate the results and hopefully catch some of the corner cases that might be more difficult to find if I were to attempt this process on an in-development title. That means easier development in the future and an increased likelihood of being able to sim-ship future titles on multiple platforms at once. So that’s cool. But I’m still burning money at a constant rate. The longer I spend on these tasks now, the longer it will be before I can ship another game, and the longer it will be before I can start recouping costs.

The worst case scenario is that I once again put the porting effort on hold and focus on shipping my next game on Windows first. But that’s not my preference, and I think it would be a small misstep for the company. So I’m looking for feedback on the situation. I would love to be able to make this game available for free on more platforms, but I also want to feel financially secure in my ability to do so. Without coloring the discussion too much, I feel like a donation or pay-what-you-want model could be a possible solution, or perhaps a crowdfunding campaign for development with the game released for free on completion. There’s no right answer, and I can’t make everyone happy, but I’m curious to see where y’alls’ heads are at.

—Kyle

3 thoughts on “You Have to Port the Game

  1. With the caveat that I don’t have any first-hand experience with important business decisions like this, I feel like this is an ideal scenario for Kickstarter. Want to see the game on your favorite platform? Chip in to cover the porting costs. If it doesn’t work out, your money isn’t lost. I’m probably going to do this for the Android port of my current app project.

  2. Thank you for supporting Linux! Hope it pays off for you.

    If you can put a very specific $ cost on the porting work, a crowdfunding campaign with a fixed funding goal (ie a cap) might work well.

    If you’re okay offering the game as a pay-what-you-want deal, getting the game into a future Humble Bundle seems ideal. Not sure how fierce the competition is for those slots these days but the Humble folks seem easy to reach.

    A possibly-weird idea: if the game is easily modifiable and has good tools, you could try adding Steam Workshop support, and make a little money off the game that way. It seems like it would be a cool game to make levels or mods for. That might be more work than it’s worth if you’re trying to move on to a new project though.

Leave a Reply