Sign in to follow this  
GBGames

Obstacles to Linux game development

Recommended Posts

I was posting in another thread earlier this week about what people want in MMO games, and I put in that while MMO games aren't that appealing right now, having a Linux client is important to me. I am more inclined to look into Vendetta than Everquest. Anyway, it has been brought up that there are a number of reasons why games are being made for Linux more often. Below is what I posted, and I thought it would make an interesting thread on its own.
Quote:
It can be argued that the game development tools aren't available. In fact, I saw something on /. today about some nVidia developers discussing the reasons for the lack of game development on Linux: - lack of mature toolsets - lack of audience - lack of games A circular argument, to be sure. The last two are chicken and egg, but what about the other? I want to know what is meant by a lack of a mature toolset? Unix is meant to be a developers playground, so the toolsets have to be mature,right? gcc, SDL, OpenGL, etc, are all mature and robust. Eclipse, KDevelop, etc are great IDEs if people prefer them to CLI editors, which are also great. I am disinclined to believe that the tools are not up to snuff. Maybe one can talk about Blender and the Gimp not being up to the same quality as 3DSMax/Maya and Photoshop, but I've still seen some amazing quality come out of the free tools.
So what do you think? Are the tools poor? Are there other reasons for a lack of games development to run on Linux?

Share this post


Link to post
Share on other sites
There is a large linux culture as well that is sometimes hard to break. For example, I am working on an Open Source (GPL) MMORPG that works in Linux and part of our mandate is do it for free. However, our artwork and music and other content related stuff is not under GPL since we want to protect that. It's all still free but you just cannot use our content in your own projects. We've received ( admittly only a few ) responses of people condemming us for not releasing everything we have as GPL. If people have a hard time accepting a *free* game what luck will developers have trying to push comerical games?

I would certainly be willing to pay for games in linux but I am unsure if I am just in the silent majority or the minority.

Share this post


Link to post
Share on other sites
I would be willing to pay for a game for linux. I also have Windows installed for playing non-Linux games, though. I think that the problem is that you have on one end the Linux zealot who won't use anything that isn't GPL'd and wouldn't buy your game. On the other hand you have people who are willing to pay for a good game but have Windows installed because they want to play games (the classic chicken-and-egg problem). The more your attitude shifts from *Nix zealot to moderate the more likely you are to have Windows installed as well, so you don't need the Linux version as much. There's just not much market drive for Linux commercial games.

Having said that, my game is being released for both Windows and Linux. It is free, but it isn't open source. I don't really expect it to increase the audiance much at all; I'm more doing it for the principal of the thing.

Share this post


Link to post
Share on other sites
From my perspective I sence that most Linux users would in fact pay for Linux games, I for one would switch 100% to Linux if I could run the games I buy on it.

Then you have the 2 extremes, the Zealots, who wouldnt use anything not GPL and the "I want everything for free" newbie attitude, these, I think, are not the mayority.

I, for one have been playing with NeL the engine behind Saga of Ryzom, which is GPL and runs on Linux (though all ASM optimizations are Windows only, which is why I am working on it), I think it would be posible to write a game where you charge for the game data (artwork, story, etc, the content).

Share this post


Link to post
Share on other sites
I would agree that Linux lacks a mature toolset. One of my co-workers leads a project working on a network appliance that runs Linux. He has developed extensively on both, and he strongly prefers the Microsoft development tools over the Linux development tools. He feels that one of the major problems with open source (and Linux in general) is a lack of organization across projects, and often within the smaller projects.

MS Visual Studio .Net supports many languages with a good IDE and an incredible full-featured debugger that lets you step easily from one language to another. Its documentation is very clean and well-organized (and is an enormous advantage over the documentation for most Linux tools). It is very tightly integrated with sister products (both MS and non-MS) like Visual Source Safe and Bounds Checker. When a sister product is installed, its documentation shows up neatly with the rest of the Visual Studio documentation. There are also a number of third-party library vendors that integrate their library with Visual Studio, which adds their documentation to the MS pool so that code completion, tool tips, and IDE help calls all work as cleanly for that library.

In Linux, very few projects are integrated well. The debugger is a separate project from the compiler, and each has a separate set of documentation. Because the compiler and debugger are command-line utilities, there are a number of graphical IDE's written to sit on top of the compiler and debugger, and those are separate products with separate sets of documentation. There are usually addons and plugins, each written by different open source groups, often with different documentation systems. Documentation is often missing or incomplete. To make matters worse, each language has its own compiler/interpreter, debugger (which is not always available), and addons/plugins.

When you need to find something in Linux, especially documentation, you often have to spend a good bit of time hunting it down. Sometimes just finding that extra project you need and getting it installed takes a lot of hunting around. Of course, if someone were to make an IDE like MS Visual Studio for Linux, they would probably charge an arm and a leg for it, and you know how most Linux users would feel about that. So in a way, Linux users reject the tools that would make it easier for developers to make the games. ;-)

Share this post


Link to post
Share on other sites
Quote:
Original post by s_p_oneil
Of course, if someone were to make an IDE like MS Visual Studio for Linux, they would probably charge an arm and a leg for it, and you know how most Linux users would feel about that. So in a way, Linux users reject the tools that would make it easier for developers to make the games. ;-)


Well, there are a couple of Linux IDEs. KDevelop comes to mind. It's even supposed to have intellisense working ( at least some what ). But even though it is getting better, I still find myself using Kate and good ol vi. Also a lot of our server maintaince is done through ssh and it is setup to do core-dumps, so I have to use command line gdb. But I find that it's just as quick to use the command line gdb. GUI's are not always the faster way to go about things :)

Share this post


Link to post
Share on other sites
I am of the opposite opinion. The toolsets are great.

Documentation for everything is a single google search away.

Integration is nice for some things, but certainly not everything. Just because the tools are seperate, doesn't mean they're not as capable.

All that stuff aside, I thought it got easier to write code when I switched, so I think that its an inaccurate argument on a much higher level.

Share this post


Link to post
Share on other sites
the main reason is lack of market. But as any market, it will not exist until someone creates it.

Markets also get self-created when there is a need among people. Being out there a pletora of games for Ms. Windows and most people using Windows, there is not such a need yet.

Here is when my speculation enters in action. There will be a need in the near future that Windows will be unable to satisfy, and that will be the birth of Linux market for end users.

Share this post


Link to post
Share on other sites
1. Linux, following in the Unix tradition, was written for knowledgeable, responsible users. Linux obviously does a much better job of trying to be user friendly, but it is still not quite as simple as using a machine running Windows XP (which came pre-installed from Dell, of course).

2. Society believes that if something sounds too good to be true, then it is. Unfortunately they have good reason to think this. Watch the evening news on any given night and there is bound to be a story about some scam artist ripping people off.

3. Last year during the holiday visits to see my grandparents, aunts, and uncles, I remember them all sitting around talking about which diets they were on. One was on the Atkins diet, another on the South Beach diet, and another on the Sugar Busters diet. None of them had lost much weight, and they all said they generally felt horrible. They looked at my uncle and said, "You've lost weight. What diet are you on?" He replied, "I'm on the eat less diet, with exercise. I feel great." The point is, people are lazy. There is a simple, straightforward solution for losing weight starring us all right in the face and we go to monumental efforts to avoid the simple solution. When it comes to feeding the family, many people find that it's easier for them to pay more money and go to McDonalds instead of take a little extra time and make something considerably more healthy.

All of this basically holds true for this situation. Most people already have a Windows machine. It's easier for them to drive to the computer store and buy Visual C++, install, and start coding. If it crashes, no problem, just reboot. Even if by some chance they were made aware of gcc, it sounds too good to be true. "If the free one is just as good as this one, why does this one cost hundreds of dollars? Wouldn't everyone just use the free one? What if the free one is a virus like I read about in the newspaper? It might take over my computer and steal my retirement fund!" Well, in this age of people running scams, can you blame them for thinking this?

Even if someone concedes that Linux/gcc/KDevelop/etc. is superior (considering the cost compared to commercial alternatives), they are willing to pay for convenience. Even if they go so far as to try it, they will quit the first time they run into something they aren't familiar with. "It wants to know how big the partition should be for /usr/var/log... What is a partition? And what is /usr/var/log?" - "This gcc thing won't compile my code. It compiled fine in Windows..." - "KDevelop keeps crashing and it says something about missing a KDE library. Hmmm, I never had this problem in Windows..." Unfortunately rebooting isn't going to fix this crashing problem.

Even if they are still giving it a try, just wait until they post a question and someone tells them to "RTFM!"

Currently, Linux just isn't for everyone.

I think this story is humorous, but true: MGBs, TANKS, AND BATMOBILES

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by s_p_oneil
Of course, if someone were to make an IDE like MS Visual Studio for Linux, they would probably charge an arm and a leg for it, and you know how most Linux users would feel about that. So in a way, Linux users reject the tools that would make it easier for developers to make the games. ;-)

Try Eclipse + CDT. While still experimental and somewhat slow and buggy, it comes very close to the Visual Studio IDE (for C++ development), and surpasses it by far for Java development.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Russell, good post. I agree with your conclusions.

Quote:
Original post by Russell
Currently, Linux just isn't for everyone.

True, but we have to ask ourselves: is that so bad ? Not to sound elitist (not at all), but I do actually think that this is a good thing. Look at it this way: why aren't there viruses, trojans and spyware for Linux (other than experimental lab ones) ? Why hasn't Linux been "dumbed down" to Joe Averages level as the Windows product line did ? Why aren't there any inherently evil pieces of software like animated paper clips, bonzi-buddies, IE porn toolbars, or other such adware ladden crap for Linux ?

Well, I'll tell you why: because Linux is no mass enduser OS. If one day it becomes one, then we'll be getting all those little abominations from the Windows world straight into our Linux systems as well.

Several large companies (including IBM and Novell) have recently started successfully marketing Linux as a professional corporate server style OS. Good, I say. This will make sure we'll get plenty of hardware driver support, and it will trigger the development of professional software suites for this type of market in the future.

But an end user OS ? No, thanks.

Share this post


Link to post
Share on other sites
Quote:
Original post by s_p_oneil
I would agree that Linux lacks a mature toolset. One of my co-workers leads a project working on a network appliance that runs Linux. He has developed extensively on both, and he strongly prefers the Microsoft development tools over the Linux development tools. He feels that one of the major problems with open source (and Linux in general) is a lack of organization across projects, and often within the smaller projects.

MS Visual Studio .Net supports many languages with a good IDE and an incredible full-featured debugger that lets you step easily from one language to another. Its documentation is very clean and well-organized (and is an enormous advantage over the documentation for most Linux tools). It is very tightly integrated with sister products (both MS and non-MS) like Visual Source Safe and Bounds Checker. When a sister product is installed, its documentation shows up neatly with the rest of the Visual Studio documentation. There are also a number of third-party library vendors that integrate their library with Visual Studio, which adds their documentation to the MS pool so that code completion, tool tips, and IDE help calls all work as cleanly for that library.

In Linux, very few projects are integrated well. The debugger is a separate project from the compiler, and each has a separate set of documentation. Because the compiler and debugger are command-line utilities, there are a number of graphical IDE's written to sit on top of the compiler and debugger, and those are separate products with separate sets of documentation. There are usually addons and plugins, each written by different open source groups, often with different documentation systems. Documentation is often missing or incomplete. To make matters worse, each language has its own compiler/interpreter, debugger (which is not always available), and addons/plugins.

When you need to find something in Linux, especially documentation, you often have to spend a good bit of time hunting it down. Sometimes just finding that extra project you need and getting it installed takes a lot of hunting around. Of course, if someone were to make an IDE like MS Visual Studio for Linux, they would probably charge an arm and a leg for it, and you know how most Linux users would feel about that. So in a way, Linux users reject the tools that would make it easier for developers to make the games. ;-)


Hmmm

$ man <whatever-tool-documentation-you-are-looking-for>

seems to work just fine for me.

I think it's a matter of different interfaces, people get used to windowed html like documentation and expect everything else to be the same, the documentation is there, its just not in the format you expect it to be.

Share this post


Link to post
Share on other sites
From dev's perspective I think linux is ready for them. From end user's perspective it might take a year or two for suse to finally nail it. I ran suse 9.1 but it was bit rough. I think the drivers on nv side are there, ati's are coming. So it looks hopeful for linux to get support in critical areas.

Share this post


Link to post
Share on other sites
I think everyone here has pretty much the same idea. It wouldn't matter if Linux became the next grandma's OS or not. There's little stopping you from releasing your games on Linux, but you don't have to. Closed-source games have been released on it, and some of your favorite console games were made on Linux systems. (Metal Gear Solid 2 is a good example.)

Share this post


Link to post
Share on other sites
I've recently made the switch from using DirectX for games, to using SDL, and I haven't looked back. I can now do all of my dev work on my Linux boot (sweet!) and it will be easy for me to release a Linux version of my games. Linux users will quite likely be a small proportion of my users, but SDL makes it easy for me to create a Linux version, so why not?

Hopefully this sort of thinking will result in more games developed for Linux. I know Garage Games (check out Gish, for example) are one publisher interested in releasing Linux versions!


Ryan

Share this post


Link to post
Share on other sites
Quote:
Original post by acraig
Well, there are a couple of Linux IDEs. KDevelop comes to mind. It's even supposed to have intellisense working ( at least some what ). But even though it is getting better, I still find myself using Kate and good ol vi. Also a lot of our server maintaince is done through ssh and it is setup to do core-dumps, so I have to use command line gdb. But I find that it's just as quick to use the command line gdb. GUI's are not always the faster way to go about things :)

I used KDevelop a while ago, and it didn't seem to come anywhere close to Visual Studio. It may have improved tremendously since then, but as you said, you still use Kate and vi so it doesn't sound like it's won you over yet. ;-)

Quote:
Original post by Anonymous Poster
Try Eclipse + CDT. While still experimental and somewhat slow and buggy, it comes very close to the Visual Studio IDE (for C++ development), and surpasses it by far for Java development.


I've recently tried Eclipse for Java, and while I do like it quite a bit, it doesn't even seem to do as much as NetBeans, which doesn't seem to do as much as MS Visual Studio. I'm not bashing it because I did like it better than NetBeans despite the fact that it didn't seem to do as much.

Quote:
Original post by Kwizatz
Hmmm

$ man <whatever-tool-documentation-you-are-looking-for>

seems to work just fine for me.


A lot of times it has worked fine for me too, but it doesn't always. And the Google search away someone else mentioned is rarely a quick search (if it was easy to find it would already be in the man pages). Sometimes the information isn't in the man pages and it isn't on the web. It's only in the source code, and while you have the source code with which to hunt it down, it can take a lot of time to find.

I haven't done as much with Linux as my co-worker has. He's very well-versed in many flavors of Unix (as well as Windows) and he's a top-notch programmer. Most of my Linux work was done in Java, which doesn't really count because I can code and test it in Windows before I deploy and test it in Linux. ;-) I do work very closely with him and listen to all of the headaches he has gone through.

He also mentioned another reason that games might not be available in Linux. He tried to set up a Linux PVR system at home with an nVidia chipset, and he found that he had to recompile his kernel to get the video driver installed. He was not happy about that at all, and he blames the Linux community for being too restrictive about closed-source drivers.

EDIT: He also feels that the open-source community would've done better to choose Free-BSD to put their weight behind. With better driver support, he believes it would've been a much better OS. And because it's more friendly to commercial software, more commercial software would have been written for it.

Share this post


Link to post
Share on other sites
Quote:
Original post by s_p_oneil
Sometimes the information isn't in the man pages and it isn't on the web. It's only in the source code,
I call BS. I have never one had to go to the source to figure something out. Documentation abounds.
Quote:
he found that he had to recompile his kernel to get the video driver installed. He was not happy about that at all, and he blames the Linux community for being too restrictive about closed-source drivers.
Closed source drivers are buggy drivers. They are pissed upon by the majority of the kernel people for technical reasons, not religious ones, though there are some that do for both.
Quote:
EDIT: He also feels that the open-source community would've done better to choose Free-BSD to put their weight behind. With better driver support, he believes it would've been a much better OS. And because it's more friendly to commercial software, more commercial software would have been written for it.
Linux CREATED the open source community. The BSDs just sat there. They were cast by the wayside for very good reasons. The biggest being: they weren't doing anything.

As for "more friendly to commercial software"... I'm 90% certain this just refers to the license, and any argument from that perspective is junk. The only situation in which the license conflicts (slightly) with the "commercial" land is the embedded market, and they are STILL choosing linux over BSD.

Let your friend know that BSD IS dead. Except for Apple.

Share this post


Link to post
Share on other sites
The project management and debuggers of all the free Linux IDEs are god-awful - it's easier to use MSVC for multi-platform targetting!

I write my code with MSVC, check it into cvs and then check it out on Linux and build using scons.

Share this post


Link to post
Share on other sites
Quote:
Original post by C-Junkie
Linux CREATED the open source community. The BSDs just sat there. They were cast by the wayside for very good reasons. The biggest being: they weren't doing anything.

As for "more friendly to commercial software"... I'm 90% certain this just refers to the license, and any argument from that perspective is junk. The only situation in which the license conflicts (slightly) with the "commercial" land is the embedded market, and they are STILL choosing linux over BSD.

Let your friend know that BSD IS dead. Except for Apple.


BSD is dead? According to whom? Not to get pulled into a troll debate, but the BSD are going pretty good. Both FreeBSD and OpenBSD had new releases in the last month, 5.3 for FreeBSD and OpenBSD 3.6, with NetBSD getting close on 2.0(I hear). All do very well for what they're designed for. FreeBSD targeted for stability, and more general use. OpenBSD for security, PF is a great firewall, much better then IPTABLES, imho. NetBSD designed for portability, what won't it run on? I love using my FreeBSD as a desktop, runs pretty much everything that linux runs, including games.

The reason the BSD "sat" there had more to do with a lawsuit. My feeling with dealing with the community of FreeBSD is they're more laid back and don't care to be the spotlight. Which is why I'd guess linux people would think BSD is dead. BSD vs Linux A good read on the difference between BSD and Linux world.

If you can port your game to Linux there's no reason it won't run on FreeBSD, especially with SDL and all the other libraries.

[Edited by - gg83 on November 15, 2004 2:49:05 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Magmai Kai Holmlor
The project management and debuggers of all the free Linux IDEs are god-awful - it's easier to use MSVC for multi-platform targetting!


In my opinion KDevelop's automake project management is far superior then MSVC's. I have this tendency to split projects up in lots of little static libraries (each in a seperate directory), which I then put in one or more shared libraries. This keeps things more manageable. With an automake based project this is extremely easily to do.

Automake has the further advantage that it keeps track of all dependencies without user intervention (so a change in some obscure header will rebuild every file which includes this file, even the ones part of different targets, located in different directories).

Automake (and all the other autotools) + KDevelop's GUI frontend for it, is far more flexible then MSVC's project management.

Share this post


Link to post
Share on other sites
Quote:
Original post by Magmai Kai Holmlor
The project management and debuggers of all the free Linux IDEs are god-awful - it's easier to use MSVC for multi-platform targetting!

I write my code with MSVC, check it into cvs and then check it out on Linux and build using scons.


I agree, KDevelop is probably the best but it doesn't even touch the surface of what Visual Studio.NET 2003 can do. I really hope somebody does bring out an IDE on linux that i would use, until then i'll use VS.NET or KDevelop when i have to.

Share this post


Link to post
Share on other sites
Quote:
Original post by George2

Automake (and all the other autotools) + KDevelop's GUI frontend for it, is far more flexible then MSVC's project management.


Not for everyones needs, I personally prefer MSVC, i'll admit though KDevelop is getting better.

Share this post


Link to post
Share on other sites
I have been using both Windows and Linux to develope my games. I have to admit the tools on Linux are getting better but they are not up to par with MS yet. That don't mean I dislike developing on Linux, just means I have to work harder at it for some things. Either way, until there is a major benefit to using Linux over Windows, the community will remain a small targeted group. Most computer users are lazy and creatures of habbit. Not to mention, most computer users barely know how to turn their computers on, let alone troubleshoot a problem. They are not going to go to the trouble of searching google for answers. They are going to assume their computer is broken. With Windows are familiar with it. It is comfortable. People don't like change. So if there is going to be any real chance of the Linux market being viable for game programming, there will have to be major improvements that the average computer user would percieve as a better choice. It just hasn't happened yet. We can argue about stability all day long but the end user don't care. It isn't that hard to reboot, not to mention XP has done a great job of fixing some of the stability issues.

Until something changes, Linux will remain a toy for superusers. But I will continue to port my games to it in hopes that one day it is a viable solution.

Share this post


Link to post
Share on other sites
linux is not a problem to dev on. the main thing you need to keep in mind is that things run a bit different.

i am a hard-core coder so the only thing i need is a text editor with a bit of syntax highlighting if possible, a file manager and a console: nothing more.

i could not work anymore with bloated dev tools like MSDev as i'm just used to free roam work.

automake is so far doing a good job at managing projects. just edit your sources and don't waste any thoughts about possible dependency problems. and what's easier than a ./configure ?

in the end it is a matter of taste but i use no IDE at all as especially not everybody uses KDevelop or MSDev or DevCpp or whatever.

and 'man' rules. you need it only for function definitions and that's what man has been made for: quick and easy.

Share this post


Link to post
Share on other sites
Sign in to follow this