I had the pleasure of speaking with another developer today about their Linux sales, and this time it was Lurler from AtomicTorch Studio.
I asked the developer about how their sales have been going across different platforms:
VoidExpanse:
Windows: 94.4%
Mac: 4.2%
Linux: 1.4%
Dinocide:
Windows: 91.5%
Mac: 6.7%
Linux: 1.8%
Those figures seem pretty similar to what we have seen from other developers before here on GOL.
The developer had this to say about the figures:
QuoteLinux sales are more or less consistent across these two projects, the difference is within the range of standard deviation. But mac sales are a bit bigger for Dinocide since it is a bit more casual game. I think this is because Mac has a higher percentage of casual users.
But as you can see it isn't really worth financially to support any platforms other than Windows, especially considering how broken the support for these platforms on most of the cross platform engines. Never the less, we felt it is important.
Q: How hard was it for you to support Linux?
QuoteSupporting Linux was a very difficult task. Even though Unity is supposed to be cross-platform solution, yet there are hundreds of problems related to compatibility and performance. Not to mention critical bugs in the Unity itself when running on Linux. And you can't always find workarounds to these problems and bugs... We are hoping that the situation improves, but for us the conclusion is that we will never use Unity for our future games. However seeing as Unity is one of the most used engines in the indie scene it is a serious problem for everyone...
We also had to rewrite many of our custom plugins and contact third party developers whose solutions we were using in order to improve their products in relation to Linux and Mac support. Unfortunately I must say that the Linux is the least stable platform when it comes to these kind of third party software and libraries. Obviously not the Linux itself, but the software tools that are available for that platform.
Another thing I want to mention, our game required Mono, but most of the users didn't have it installed or had an incomplete version and many actually had a corrupted installation. We solved that problem by providing a special bundled-mono with the game. But that was one hell of a task to overcome. Which again, doesn't make supporting Linux easy. However, there might be some improvements in this regards after merge between Microsoft and Xamarin.
Q: Do you feel you made any profit on the Linux version?
QuoteThe game was released simultaneously for Win, Mac and Linux. As you can see from the stats I provided above the sales of Linux version turned out to be minuscule. I would say with the amount of effort we had to put into making this support available we ended up losing money.
This is obviously only true for VoidExpanse. Some simpler games might actually be a very straightforward to port. In fact our second game - Dinocide, which is a classic platformer, was indeed a relatively easy port without any serious issues and we did make some extra income from this port.
And I would say, again. If you are using Unity and your game is a complex piece of software with many third party modules - porting isn't a good idea. But if you are making something simple and only using native Unity tools, making a port is definitely a good idea. As I mentioned above, for us the conclusion is simple - we are writing our custom engine (Renkei Engine:
http://wiki.atomictorch.com/Renkei_Engine) for our future projects to ensure total compatibility with all three platforms.
Q: What would you say to developers wanting to release a Linux version?
QuoteStay away from closed-source code where you have no control over things. You won't be able to fix the problems that might arise when porting. And waiting for fixes from the developers of these solutions may take months if it will be available at all. Not to mention that quite often the support for platforms other than Windows is sub-par.
Q: How do you feel about supporting Linux in future games?
QuoteTaking everything that I wrote above into consideration and the fact that we are a very small team with tiny budgets - all of our _big_ future projects will be released for Window only initially. At least for the Early Access phase. This will allow us to focus on developing the game itself, rather than spending significant amount of time for cross platform support early on. And when the game is more or less complete we will make the ports for other platforms available. We feel it is better to make a good product first, and then take care of porting, rather than allocating a significant portion of the time towards cross platform support during the initial development phase. However, if our custom engine proves to be stable enough to release for all platforms at the same time we will obviously do that. Never the less, it is still very important to us to make our games available on all platforms, including Linux. Hopefully the situation will only improve in the future :)
I would like to thank Lurler for the honesty, and wish the studio all the best!
You can find Dinocide here and VoidExpanse here. You can also buy them directly to get them from the developer + a Steam key. If you want to have a chat with me about your games, send me a message.
BTW, Dinocide doesn't interested me honestly, but I've had VE for quite a long while already, directly purchased DRM-free from your website. I invested some 6 hours into it, was pretty fun back then. I decided to wait to play it for real. Guess I will get it again now that it's reached maturity :-)
I will definitely keep an eye on AtomicTorch Studio's future work.
Note that if you don't develop with cross platform in mind from the beginning it increases your porting work quite a bit later. In my experience when your environment works across every targeted platform the only major bugs tend to arise from human error. Additionally even on Windows you should nearly always bundle required libs.
My experiences with engines:
- SourceEngine SDK/HL2 Source Code: It's hard to get through it, on any platform. The code itself ain't that nice to read and isn't really documented. Plus, the "free" version is full of binaries and requires quite some hacks to run properly on any platform I tested. Though when comparing Windows/Linux it runs completely on par, that's to say it's imho no fun on Linux -- but on Windows neither :P
- Unity: It's the best for developing *on* Linux, that is the Unity-Engine/Editor for Linux is quite stable and useable in my experience. It's beginning to mature! Sadly due to the closed code it can be difficult to investigate bugs.
- UE4: The Editor is not really nice on Linux, imho. It has visual glitches here and there. Compiling and deploying works perfectly though. You can easily crash it, but so you can if you do "magic" on Windows :D
Aside from developing, deployment seems to be best on UE4. But part of the quality of UE4-Linux games being better than Unity games could stem from the fact that UE4 requires more deep programming knowledge -- ie. targeting programmers who are able to properly able to port and have some experience. Unity makes it possible for newbies -- which can result in bad code quality. BUT this doesn't need to be, I've seen some really HQ-Unity games too.
Still it seems to me that UE4 is still more Linux-optimized.
@ai_enabled: In case you want to use XNA, have you looked at FNA already? It's an opensource re-implementation of XNA used by a well-known Linux porter.
I hope your engine will work on C# well, I've not much experience with it.
Also C# 6.0 is so-far a letdown for me, Roslyn is still not nice to set up on non-Windows and this doesn't seem to change too soon :/
I prefer working in non-managed C and C++ anyway, that's why I soon stopped trying more advanced Unity ^^
Quoting: wolfyrionI know is too early to ask about this but some other developers already experimenting with Vulkan and I would like to know if the release of Vulkan was any "game changer" I mean for bringing more games to other OS than Windows?
Also I would love to hear the developer thoughts about Vulkan.
It sounds like the graphics drivers weren't responsible for the difficulties they experienced porting to Linux. The problems are the poor support for linux offered by third party software developers that make tools and plugins that are required for complex functionality in games. Vulkan probably won't alleviate those problems but the situation should hopefully naturally improve over time as linux gains more of a foothold.
I just want to notice that VoidExpanse currently has a problems running on most Linux configurations due to long-lasting issue with Unity 5.2/5.3 - they're switching on new OpenGL rendering code, however they'd suddenly broken support for old GL rendering code so we cannot back to it, and new rendering code simply cannot compile even the default Unity Bloom/Blur shaders in some conditions. That's a shame, but good news is that we finally managed to contact right persons in Unity and the fix is coming with the next Unity patch release this or next week. Also there are several reports that the issue is not reproducible in Unity 5.4.
Quoting: Mountain ManI think the most encouraging thing here is that even with a small percentage of sales, Linux can be profitable in the right circumstances, the most important factor being a work flow that allows for easy porting.Sure. Some games have ~5% of Linux customers. Is not that a big deal if you selling only a few thousands copies of the game, but this number really matter when sells exceed 100k or even million. 5% of million is 50k - most indie developers today can only dream about such sales in total.
Quoting: LeonardK@ai_enabled: In case you want to use XNA, have you looked at FNA already? It's an opensource re-implementation of XNA used by a well-known Linux porter.Yes, we considered FNA and MonoGame. FNA is desktop-only and uses SDL (OpenGL rendering) on Windows. MonoGame has a not so good fame regarding the Linux support, but everything is improving very fast, there are a few contributors working very hard. Also they're going to implement support for Vulkan and it might improve compatibility with Linux.
I hope your engine will work on C# well, I've not much experience with it.
Also C# 6.0 is so-far a letdown for me, Roslyn is still not nice to set up on non-Windows and this doesn't seem to change too soon :/
Regarding C# 6.0 and Roslyn compatibility with Linux - well, Roslyn is already used in MonoDevelop/XamarinStudio http://tirania.org/blog/archive/2015/Sep-21.html and everything is going to be improved as Microsoft target now is cross-platform open-source solutions. Also their acquisition of Xamarin is a big step in right direction.
Regards!
Last edited by ai_enabled on 8 March 2016 at 5:04 am UTC
You've all managed to force big changes, but it seems like there's been a lot of growing pains in the process. In the future hopefully developers jumping into Unity won't have to deal with so many hoops. So while it may have been a negative for you now, it will be a positive for others... so good work!
See more from me