Obstacles to Linux game development

Started by
142 comments, last by C-Junkie 19 years, 4 months ago
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.
Advertisement
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.
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.
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.)
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
--Visit the Game Programming Wiki!
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.
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.
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.
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
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]
"Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it." - Samuel Johnson
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.
"THE INFORMATION CONTAINED IN THIS REPORT IS CLASSIFIED; DO NOT GO TO FOX NEWS TO READ OR OBTAIN A COPY." , the pentagon

This topic is closed to new replies.

Advertisement