Obstacles to Linux game development

Started by
142 comments, last by C-Junkie 19 years, 5 months ago
Quote:Original post by seanw
Quote:Original post by Conner McCloud
I suspect you've never used Autocad. Its possibly the best UI I've ever encountered. Linux has nothing like it, from what I've seen.


I haven't used autocad, but I find it hard to see how the same concept could be translated to any generic computer tasks such as CD burning, updating software, playing music etc. as I imagine the autocad interface is heavily specialised for CAD. My only point was that Linux makes a good attempt to combine GUI and command-line interfaces together instead of making you use only the CLI, which people seem to think.


I disagree - AutoCAD is functionally like any other drawing program - it includes drawing tools, configuration screens, and various wizards. All of them are implemented congruently in a Windows-style GUI and a prompt-oriented command line.

Consider - lets say you have a wizard - on the main screen you have the wizard, and in the cmd line, you have questions for each field, with a blank entry meaning "select default". This is how drawing in Acad works (plus the features for getting points by referencing other objects like mid or intersect). As a result, you have a full graphical system that can easily be driven by pipe, and the user is introduced to the cmd line system in an easy-to-read manner in regular use, so they can learn it on the fly without ever opening a help file (I can't think of any other command line program that doesn't at least require a foo /? command to learn the arguments).
-- Single player is masturbation.
Advertisement
Quote:Original post by Pxtl
I haven't used autocad, but I find it hard to see how the same concept could be translated to any generic computer tasks such as CD burning, updating software, playing music etc. as I imagine the autocad interface is heavily specialised for CAD. My only point was that Linux makes a good attempt to combine GUI and command-line interfaces together instead of making you use only the CLI, which people seem to think.


I disagree - AutoCAD is functionally like any other drawing program - it includes drawing tools, configuration screens, and various wizards. All of them are implemented congruently in a Windows-style GUI and a prompt-oriented command line.

Consider - lets say you have a wizard - on the main screen you have the wizard, and in the cmd line, you have questions for each field, with a blank entry meaning "select default". This is how drawing in Acad works (plus the features for getting points by referencing other objects like mid or intersect). As a result, you have a full graphical system that can easily be driven by pipe, and the user is introduced to the cmd line system in an easy-to-read manner in regular use, so they can learn it on the fly without ever opening a help file (I can't think of any other command line program that doesn't at least require a foo /? command to learn the arguments).

By generic computer task, I'm referring to how this type of system would translate to anything you would want to do on your computer. How would I script CD Burning software, MP3 ripping software, package updating software, a complex tool chain for developing software etc.?



Bare in mind that I've never used Autocad, but why do you need to learn the command-line interface to use it? Doesn't it just complicate matters when the GUI is good enough for most tasks? I don't think regular users would like a command-line interface being visible in all their applications myself; it would look very intimidating and unnecessary.



The current approach used in many Linux applications is to hide the underlying CLI with a GUI, which is sufficient for the vast majority of normal users. Bare in mind that many Linux progam have multiple GUI frontends written by different people. Power users can then access the CLI interfaces directly if they want to, but most users have no desire or need to do this. It is very powerful for developers and admin however and it a great way to encourage programmers to use other programmers work in other projects as the functionality is not locked behind GUI components or a complex API. This isn't the case with Windows and it's either very hard or just not possible to use different programs together from the command-line prompt.
That's just the point: you don't need to use the command line. It looks just like a drawing program except that everythign you do usign the regular drawing tools is echoed in a command-line box at the bottom of the screen, and vice versa. The command-line entries are interactive and clear, not just using obscure parameters. It works like this

> l
:LINE
:Select a start point
> 12, 44
:Select an end point
> 12, 99
: Line drawn

I might be getting details wrong, but that's the gist. That same dialogue would be written out in the command window whether the user typed in the values or whether they clicked the line tool and clicked two points on screen.
-- Single player is masturbation.
Quote:Original post by Pxtl
I might be getting details wrong, but that's the gist. That same dialogue would be written out in the command window whether the user typed in the values or whether they clicked the line tool and clicked two points on screen.


I understood this, I just don't understand how you could translate this idea into a form that every single application on your computer could use or why you would want to anyway. Command-lines are fine for techinical applications, but it doesn't look user-friendly and it will scare people, even if it is just a little bar at the bottom of the screen. If you don't have to use the command-line in normal use, casual users shouldn't see it in my opinion.



I'm losing track of what the original discussion was about to be honest. I just like that Linux applications let you use GUI applications when you want a GUI and when you need something more complex you can switch to the console and plug together lots of small self-contained utilities using piping, input/output redirection, scripting languages, DCOP etc. I don't see how you can use the autocad interface you've described to replace this (i.e. most of the functionality) without making your applications look very complicated.
Quote:Original post by Kwizatz
$ yum update (enter)
...
I am going to install these [...] is that ok? [N/y] y (enter)

$ sh ./NVIDIA-Linux-x86-1.0-6629-pkg1.run
[Next]
[OK]
[Done!]


Ditto... on Gentoo, I just do:

$ emerge -sync$ emerge -u world


... and I'm done with less hassle, more reliability, and more guarantee of what I'm getting than I ever get with windows update.

Everyone here who's been bit in the butt by Windows XP SP2, please raise your hand... *raises his hand*
=========================Buildium. Codium. Fragium.http://www.aklabs.net/=========================
'Scuse me while I drag this thread kicking and screaming back on-topic...

Obstacles to Linux game development?

Simple: Windows isn't a particularly successful games platform. Barring an almost infinitesimally small number of titles, PC games don't actually make much money. Hell, the vast majority make a loss. Why should games developers want to spend more precious development dollars on minority platforms? It's not as if the Mac is getting all that many releases, so why in blazes do you expect Linux to get anything at all? Be thankful for what you have.

Check out your local computer games store. Note the PC Games section. Now compare it to the console games sections. Note how the PC Games section look pathetically small by comparison. Consoles rule.

*

Let me put it another way: suppose Linux _were_ to eat up some of MS' market share. In my opinion, I believe this would actually make things worse, rather than better. Suddenly, developers will need to design, develop and -- this is important folks! -- *support* games on both Windows *and* Linux platforms.

Windows is painful enough to support, what with the differences between the Win9x core and the WinNT cores, as well as the multitude of driver combinations. But at least installers are standardised; you don't need to host umpteen install package formats for Windows; you just offer the one .EXE and let the installer sort it out. There's enough commonality between Windows XP and the legacy versions to ensure that a single installer will do the job. (.NET's MSIL is the next logical step in this.)

Linux, however, is a QA and support nightmare. Not only are there loads of kernel versions, library versions and the like to keep track of, but each distro is different enough to cause serious pain. Which package formats do we support? RPMs? Ah, but those aren't actually standardised across distros, are they? And many distros don't even support those -- Gentoo's "emerge", for instance, isn't RPM-based.

And then there's the simple fact that the OS is irrelevant. When most people see a PC running Windows, they simply aren't aware of the separation of software and hardware: as far as Joe Public is concerned, Windows is a *platform*, not a piece of software. The very concept of installing an OS is alien to them.

And please, do try and keep up with MS' tactics: people stopped having to reinstall Windows *years* ago. IBM, Dell, HP/Compaq, Packard-Bell, Tiny, Time, Asus, Acer, Fujitsu-Siemens... all the major OEMs give you a "recovery CD", not a standard Windows CD. MS *want* Joe Public to associate the Windows experience as an out-of-the-box thing; they don't want to encourage the idea that you can actually install a rival instead.

The OS is a commodity item now and isn't particularly relevant to Joe User. Fire up a typical Symbian smartphone and I'll bet good money you won't find a Symbian logo anywhere in or on the device. Even the manufacturers are letting service providers put their own badges and idents onto their phones. Ask your average mobile phone user what OS their phone is using and you'll most likely get a blank look, accompanied by the age-old cry of the blissfully ignorant: "Huh?"

*

One final point: Arild Fines is right about the 1970s ethos behind Linux. As he also implies, Windows isn't a massive improvement either. To the true developer and computing afficionado, there's no such thing as a "perfect" OS, any more than there is a "perfect" programming language. There is only a "least worst for the task at hand".

Home computing is very much in its infancy still. It has a long, long, LONG way to go before it has come even remotely close to settling down and having kids.

Fuck Linux. Fuck Windows. They'll be dead and forgotten long before most of you are.

Regards,

--
Sean Timarco Baggaley
Sean Timarco Baggaley (Est. 1971.)Warning: May contain bollocks.
Quote:Original post by stimarco
'Scuse me while I drag this thread kicking and screaming back on-topic...
most of this has all been said already.
Quote:And please, do try and keep up with MS' tactics: people stopped having to reinstall Windows *years* ago.
Not really, but they've made an improvement.
Quote:As he also implies, Windows isn't a massive improvement either.
Computer science hasn't progressed much at all in the last little while. I wrote a paper about this (er.. writing a paper on this) and I'm chalking it up to the lack of interface changes. Keyboards haven't changed a bit. The mouse began a massive GUI revolution. Then.... nothing. There's been no change in how we use machines. So yes, we're stuck with 1970's style crap. We use a 1970's style interface, with no visible improvements in sight.
Quote:Fuck Linux. Fuck Windows. They'll be dead and forgotten long before most of you are.
I'm actually quite skeptical of this. Can you think of a reason linux would ever die? It's perfectly capable of evolving into anything it needs to be.
I agree that multiple distros is a problem for both dev companies and users. I don't want to take away competition between distros because it breeds better sw but at the same time I like to run my app under any distro with zero effort. I like the fact that on linux you get to play with new technology like 64bit stuff that MS charges extra for. I think the push needs to come from devs because if it's avail. then it most likely it will be bought. Nothing would be done if folks looked at the linux marketshare all the time. I think games are something that don't need os guis to rely on just opengl and why I think they would be the easiest app to make for linux. On the gui front, Fox toolkit or wxWidgets come close to MFC, surpassing it in some case like directory dialog box, wizards etc., but need just a little bit more polish or ease of use and we're pretty much at win98/xp level. I was impressed with suse 9.1 and now that novell bought them out I think, there is more financial support going into suse distro that they'll iron out the remaining bugs. The linux distros should be kept affordable and competitive with winxp. I think the portal to linux apps under each distro should be standardized and not more "clubs" and such nonsense to further divide the endusers. Afterall I'm not going thru MS when I install windows app on my computer and neither should linux users of big distros. Lindows was too proprietary for my tastes but I think distros such as this one makes it easier for folks to run linux. So ease of use is important like the poster said above, the oses are slowly moving towards commodity and folks don't care much about the internals to use it with their cam corders, mp3 players and all the other gadgets out there.
Quote:Original post by C-Junkie
Quote:Original post by stimarco
Fuck Linux. Fuck Windows. They'll be dead and forgotten long before most of you are.
I'm actually quite skeptical of this. Can you think of a reason linux would ever die? It's perfectly capable of evolving into anything it needs to be.
I agree completely. Unix will be around in some form (Linux, BSD, or something else) way longer than Windows, Microsoft, or any of us.

Why? The same reason that the main world religions will still be around well after all of us are gone. It only takes one special person from each generation to keep it going, and that one special person always seems to have a knack for recruiting a global army of volunteers. There will always be another Stallman or Torvalds to lead the charge.

Unix is now its own organism with seperate cells capable of operating independently, indefinitely. Major world religions are the same way. The internet is the same way. Imagine how difficult it would be to destroy a major religion. Even if you could accomplish some unimaginably difficult feat like destroying every copy of the bible in existence (hard copy, digital copy, etc.), you would still have to destroy every person who knows portions of it (or all of it) by heart. So even if a situation like SCO-vs-Linux destroyed Linux, it doesn't matter. Too many people "know Linux by heart". It could easily be recreated from scratch and given a new name.

Look at BeOS, which was financially driven. The money ran out. It died. It was buried. It rose again. Now there are multiple efforts to recreate it from scratch. Now imagine how Unix, which is not financially driven, and has more staying power than BeOS ever did, could die. If it could happen, I think it would have to just fizzle out over many decades or centuries, or we would evolve to a technological state where computers or operating systems are no longer needed or used, or the earth would have to spontaneously explode or something.
i dont have any problem with building win32 + linux games from the exact same codeset. 99.9% of the code is shared, the small differences are #ifdef WIN32 etc.

gcc + mingw make for a very nice cross platform dev system. with a single command i can make a linux + win32 build.

not to mention gcc generates _far_ less retarded code than vc...
[=^_^=]http://bani.anime.net/etpro/ - ETPro websitehttp://bani.anime.net/banimod/forums/ - ETPro discussion forums

This topic is closed to new replies.

Advertisement