Author Topic: Supporting Multiple Platforms  (Read 50970 times)

ido

  • Rogueliker
  • ***
  • Posts: 618
  • Karma: +0/-0
    • View Profile
    • Tame Tick
Supporting Multiple Platforms
« on: May 07, 2010, 11:15:46 AM »
Hi,
we've recently had a discussion about cross-platform support (or lack-thereof) in another thread.

It seems like a lot of recent roguelikes are windows only, despite the abundance of cross platform libraries and it seems a lot of it is because of devs thinking that the amount of potential players who are not on windows is negligible and that it's not worth the effort to support them.

In addition to the data about visitors to my homepage (which is safe to assume are mostly roguelike players) I've presented in that post (70% windows, 15% Mac, 15% Linux) I've recently come across some stats on buyers of the The Humble Indie Bundle.

As you can see about half of the buyers are windows users with the rest dividing approximately evenly between mac & linux.

More surprisingly, linux buyers chose to pay a higher price than mac buyers (who in turn payed more than windows buyers)!

Discuss.
« Last Edit: May 07, 2010, 11:17:54 AM by ido »

mariodonick

  • Rogueliker
  • ***
  • Posts: 296
  • Karma: +0/-0
    • View Profile
    • LambdaRogue .:. roguelike RPG
Re: Supporting Multiple Platforms
« Reply #1 on: May 07, 2010, 11:28:40 AM »
Well, I can not discuss, only confirm.

If I have a look at LambdaRogue downloads (1.5 only, without patch and source downloads):

Total: 1899
Windows: 1585 (83,46%)
Linux: 314 (16,54%)

Although Linux is a clear minority, I will always support it, because

1. I started LR development on Linux
2. I need a roguelike for Linux that fits my expectations
3. Cross-platform development is very easy with FreePascal.
4. The number of both Linux and Windows downloads are still increasing.
https://mariodonick.itch.io/lambdarogue-the-book-of-stars
-- LR: The Book of Stars graphical roguelike RPG

ido

  • Rogueliker
  • ***
  • Posts: 618
  • Karma: +0/-0
    • View Profile
    • Tame Tick
Re: Supporting Multiple Platforms
« Reply #2 on: May 07, 2010, 11:36:07 AM »
I wonder how many more players you'll be able to get with a mac version - extrapolating from the data we have it should be about the same as the number of linux players.

A quick calculation would put the estimate at:

2213 total
1585 (71.6%) windows
314 (14.2%) mac
314 (14.2%) linux

That would make your user-base distribution practically the same as mine (70-15-15).
« Last Edit: May 07, 2010, 11:38:12 AM by ido »

getter77

  • Protector of the Temple
  • Global Moderator
  • Rogueliker
  • *****
  • Posts: 4957
  • Karma: +4/-1
    • View Profile
Re: Supporting Multiple Platforms
« Reply #3 on: May 07, 2010, 12:12:28 PM »
I would say, as somebody unqualified to speak on technical matters, that it is in fact largely a technical matter hinging on happenstance.  That is to say, it just so happens that many of the projects appearing lately are built with Not-So-Crossplatform Thing X, which happens to be what the developers knew how to be effective in for whatever reason---possibly work otherwise.

On the business side of it, as you mention, it tends to be a fact that most indie developers come to realize sooner or later---that you need to cast as wide and well wrought a net as possible given how much is out there.  This is why the ambitious sequel for Knights of the Chalice is having to pretty well be utterly rewritten using SFML---some interested parties simply couldn't get the original to work/support made much trickier and there's only so much one can do once a game is far enough along and this just wasn't anticipated as an issue else I suspect it would've been in SFML or some such in the first place.

As to how to change this, the best solution I could think of would be some prominent guides based around developing a Roguelike with a Multi-Platform core FROM THE ONSET across the various engines/languages/etc that excel at this and maybe some that don't without some special sauce added to the mix(I'd guess Mac issues would complicate things, but still).  So long as people would know/think to check for such a resource to alleviate as much of the mystery/legwork as possible while the game was early in the dev cycle, there should ultimately be an increase in the amount of projects that don't have this issue.
« Last Edit: May 07, 2010, 12:14:34 PM by getter77 »
Brian Emre Jeffears
Aspiring Designer/Programmer/Composer
In Training

PaulBlay

  • Rogueliker
  • ***
  • Posts: 83
  • Karma: +0/-0
    • View Profile
Re: Supporting Multiple Platforms
« Reply #4 on: May 07, 2010, 12:15:01 PM »
I think a lot of developers decide they would rather have a 70% user base on a project they can cope with than a 100% user base of a project that drives them nuts.

Roguelikes tend to attract dabblers (like me), who may have limited computer language skills, limited knowledge of non-Windows systems and could be looking for any short-cuts they can find.  I mostly played around with existing code-bases (of *band games) and when I wanted to make changes that pushed the limits of what's do-able (like multi-language support) I quickly found that there were handy functions, libraries and development suites that were available for Windows but often not for Linux.  It was a pain even getting a Linux system set up alongside Windows on my (only) computer - never mind working out how to compile stuff.  And I don't have access to a Mac.

Etinarg

  • Rogueliker
  • ***
  • Posts: 424
  • Karma: +1/-1
  • Idea archivist and game tinkerer.
    • View Profile
    • Gedankenweber Blog (German)
Re: Supporting Multiple Platforms
« Reply #5 on: May 07, 2010, 12:16:56 PM »
For my java projects it seems to be about 5-6% of Mac users. I don't know if this is a representative number. Could most likely be more, but I know so little about MacOS, so I cannot take a lot of precautions for my projects to run well there. Usually I just hope Java will be portable enough to work - now and then I get told of some quirks, so far I could solve all of them I think.

roguedjack

  • Rogueliker
  • ***
  • Posts: 70
  • Karma: +0/-0
    • View Profile
    • Rogue Survivor blog
    • Email
Re: Supporting Multiple Platforms
« Reply #6 on: May 07, 2010, 12:57:06 PM »
My current roguelike is not portable. For my defence :

1. I chose a language (C#) and a platform (Win32, DirectX) I'm comfortable and efficient enough with, and on which I know I can implement every feature I have in mind.

2. It's not commercial so market size isn't vital.

3. If I made it cross-platform (let's say C+libs, Java), since I have only access to Win32 I would have to rely on users feedback for error reports and mostly do random-guessing for cross-platform bugfixes.

4. In the same vein, the less portable third-party libraries (libtcod, SFML, SDL...) the more control I have and I don't "loose" time learning a new API and annoying the library devs with silly questions  ;D I don't mind having to code by myself roguelike basic algorithms and graphics primitives, it's part of the fun and I learn how to do it better for the next project.

Mmh.
Thinking more about it, if I was going commercial I would seriously consider doing it cross-platform. So the most important reason is 2 and I would have done it in Java.
« Last Edit: May 07, 2010, 12:59:19 PM by roguedjack »

ido

  • Rogueliker
  • ***
  • Posts: 618
  • Karma: +0/-0
    • View Profile
    • Tame Tick
Re: Supporting Multiple Platforms
« Reply #7 on: May 07, 2010, 03:53:32 PM »
Java is pretty much cross-platform off the bat, especially if you don't use native libs like LWJGL or JOGL.

AgingMinotaur

  • Rogueliker
  • ***
  • Posts: 805
  • Karma: +2/-0
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Supporting Multiple Platforms
« Reply #8 on: May 07, 2010, 07:08:22 PM »
I find this interesting/amusing:
I will always support [Linux], because [...] 2. I need a roguelike for Linux that fits my expectations
as an example of the whole myth or idea that "free developers code for themselves, to scratch their own itch". I personally use only Linux, so I always find it annoying with seemingly interesting games that run only on Windows. (Elona, Spelunky and Triangle Wizard springs to mind.) Mac users obviously feel the same way. What every individual ends up using, depends on a lot of factors. There are exotic pieces of hardware and software out there.

Whenever it comes to publishing any kind of computer program, I personally feel that it's really sensible to try to make it as accessible as possible to anyone who might have an interest, in the technical terms of which tools I use to develop and publish. For me, this rings especially true with RLs, since we're such a small community in the first place (and probably more than averagely quirky when it comes to computers). Your mileage may vary.

My own project is currently available as either Windows binaries (yawn) or Python source (easy on Linux, but you need third party downloads on Mac). This is ironic, since my main computer is actually a Mac. I used to dualboot MacOS and Linux, but after a while I felt like MacOS was just taking up space, since I already knew and liked Linux. But for a more official release, I intend to make sure that there are downloads of the source, as well and binary releases for Windows, OSX and Linux. The Linux binary will be a *.deb (sorry *.rpm-geeks), and just because it would amuse me to build the package. It will be interesting to see how many (if any) download the *.deb. (But I would guess that being your own downstream developer into Debian itself would earn you a lot of downloads as a RL developer ;) )

[...]
getter77 is showing magnificent charisma and wisdom, as always :)

I don't mind having to code by myself roguelike basic algorithms and graphics primitives, it's part of the fun and I learn how to do it better for the next project.
I wholeheartedly agree to this, but for me it's rather been an argument to make the project more cross-platform ;) . I have a very limited understanding of computers from the outset, so I've basically learned/am learning how to program from making a RL. For me, it was "part of the fun" to use more or less cross-platform tool from the outset. But as said, all that differs from person to person. I just happened to fall across Python in a timely manner, but the fact that it is a scripting language was part of what made it shine at the time. Today I might have chosen Java, I think ...

Sorry for ranting ...

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

mariodonick

  • Rogueliker
  • ***
  • Posts: 296
  • Karma: +0/-0
    • View Profile
    • LambdaRogue .:. roguelike RPG
Re: Supporting Multiple Platforms
« Reply #9 on: May 07, 2010, 07:26:04 PM »
Quote
I wonder how many more players you'll be able to get with a mac version

We'll probably find out in summer or autumn 2010. I'll plan to get a Mac in June or July, and I already figured out how to compile LambdaRogue on a Mac. It's really easy, because the game only uses SDL and doesn't rely on OS dependent things.

The Lazarus book I bought some days ago also has some good chapters on FreePascal Mac development.

Quote
as an example of the whole myth or idea that "free developers code for themselves, to scratch their own itch"

Well, yeah. :-D Although there are lots of roguelikes I really like, none of them offers me exactly the kind of game I want to play. Of course, this is true for Windows, too.
https://mariodonick.itch.io/lambdarogue-the-book-of-stars
-- LR: The Book of Stars graphical roguelike RPG

Xecutor

  • 7DRL Reviewer
  • Rogueliker
  • *
  • Posts: 263
  • Karma: +0/-0
    • View Profile
Re: Supporting Multiple Platforms
« Reply #10 on: May 08, 2010, 06:32:29 AM »
When I started development of Wizard's Quest I had Linix at work and Windows at home.
So I actually didn't have other choice, but to make it crossplatform.
Later I moved to mac on work, and added mac os x to the list of supported platform...
Simple as this...

Right now I'm trying to find good high level cross platform library
for (2d) game development.
I thought that choice is much better with this kind of libraries.
Right now I'm trying to play with LÖVE 2d.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Supporting Multiple Platforms
« Reply #11 on: May 08, 2010, 07:06:37 AM »
because of devs thinking that the amount of potential players who are not on windows is negligible and that it's not worth the effort to support them.

I don't know who really thinks like that. I as developer think that it could be nice to support all possible platforms, but the real problem is that I have only Windows installed in my computer. I don't have Linux or Mac, which makes cross-platform development quite hard. I don't want to install Linux, because it's a complicated OS. I don't have time for that shit. And Macs are too expensive anyway.

amjh

  • Newcomer
  • Posts: 6
  • Karma: +0/-0
    • View Profile
Re: Supporting Multiple Platforms
« Reply #12 on: May 08, 2010, 08:57:26 AM »
I agree with Krice, it is usually impossible or extremely difficult to develop for OS you don't have.

ido

  • Rogueliker
  • ***
  • Posts: 618
  • Karma: +0/-0
    • View Profile
    • Tame Tick
Re: Supporting Multiple Platforms
« Reply #13 on: May 08, 2010, 09:02:14 AM »
Not that hard to install an OS on vmware or virtualbox, I do it with windows to provide windows builds.

Ubuntu's installation process is about as easy as windows' (and unlike windows, it is free), maybe easier - shouldn't take you more than an afternoon of working at a fairly leisurely pace to set it up.

If anything the real problem is using platfrom-dependent libs such as XNA and DirectX.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Supporting Multiple Platforms
« Reply #14 on: May 08, 2010, 10:47:25 AM »
If anything the real problem is using platfrom-dependent libs such as XNA and DirectX.

I'm going to release the source code of Teemu v1.1 when it's done. It's interesting to see how portable it is, because it's using standard C/C++ and only SDL as external library. There was that problem with Stile (sprite editor) in Linux as class Screen was already a part of some obscure internal Linux library. It sounds like non-standard way, because in empty project there should not be anything colliding with names of the source code.