Advertisement

Obstacles to Linux game development

Started by November 12, 2004 05:06 PM
142 comments, last by C-Junkie 19 years, 11 months ago
Quote: Original post by s_p_oneil
I had been informed that, because the Linux kernel is GPL, any code that links to it to call kernel functions must also be GPL. This primarily affects drivers, which run in kernel space. If I have been mis-informed, then I was mistaken.
Perhaps misinformed, but most likely oversimplified.

The details are monstrous, much like copyright law. I could explain it, but it is sufficient to say that binary modules can be linked to the kernel, in SOME cases. Defining "some" is the hard part.

The modules provided by nvidia are ordinary modules. They fit into that "some" part. They can be inserted into an already running kernel.
Quote:
They reek of 70's style thinking. This is 2004.


That reeks of windows style thinking...

GUI system (i.e. modification of the functionality of your computer) interfaces are just consoles with little boxes that limit where you may enter text.

The idea that a "User" should have the ability to randomly screw his computer because the operating system should be "User friendly" is ill-considered.

Novices can easily perform complex procedures on the command line. Any literate (Not computer, just 6th grade reading level) person can follow a list of instructions and reproduce them on a command line. Try writing the same procedure out for a GUI.... "Where is the menu bar?", "Which X?", "Minimize, what's that?"....

User friendly is also why windows thinks it knows better than you, even when you know that you just removed the Nvidia video card and put in an ATI card, windows still tries to save you from yourself, which in turn causes more frustration for advanced users, and completely stumps the novice. Since the novice users won't be able to figure it out for themselves anyway, why not give advanced users the tools they need to quickly fix the problems that arise?

GUI's are getting closer to being a viable sole interface, but until computers can reasonably handle speech recognition, text based interaction with your computer is here to stay.

There is a time and place for a GUI. To make simple tasks easy. For important tasks, one must have a concise set of instructions, and what instructions could be easier to follow than, "repeat after me."
Advertisement
Quote: Original post by mrhollow
Quote:
They reek of 70's style thinking. This is 2004.
stuff

His point is that the console isn't discoverable (afaict).

When a gui user walks up to a new program and tries to do something, he'll search through menus for the command he wants to do (for example).

When a console user walks up to a new program and tries to do something, he'll search through the man pages for the command he wants to do.

man pages take longer to search through than menus. They also don't have immediate effect.
Amen. Command line apps work fine when you have the approach that a naked call brings you some basic help with information no how to get more, in comparison to single-window apps. It falls apart when you get sets of tools - in commandline land, you don't even know where to start. Compare Vi to notepad. If I keep clicking menus in notepad, I'll eventually get help, and see how to open, close, and save documents. In Vi, I can't even figure out how to quit the goddamn thing without going to external references.

Command line is for high-end productivity stuff - nerd tools. Sed and grep and suchlike. Scripting toys. But for simple "I need to do X" gui apps are the way to go.

Imho, the best approach was old Autocad, where the command line was visible and you could tinker with it, and the gui stuff was a wrapper for the command line. So, from within the app, you could go either way, and if the user cared to pay attention they could learn the command line system from using the GUI.

The basic fact is this - lets say I need to do something esoteric - like find a tool to convert files of type X to type Y. I guarantee that I could do that faster under Windows. I don't have to worry about build instructions, man pages, etc. Just run installer, open app. That's what people want - learn to do a task quickly the first time, and worry about honing their skills later.
-- Single player is masturbation.
The ultimate fact is this: you need both a script interface to all your app's functions (be it hacking ini files, activeX script bindings, or command line) and a gui interface for the people who actually want to use it. If you're missing one, it ain't finished. Windows apps are very nasty to script - COM objects are annoying to work with compared to, say, Python modules or command-line tools.
-- Single player is masturbation.
Quote: Original post by s_p_oneil
nVidia provides installs for popular versions of Linux to keep users from having to re-compile it themselves, but anyone with a less popular version will need to re-compile it. Also, upgrading your kernel can break your video driver.

No. You never need to recompile your kernel (unless you're lacking features of course) to install nvidia drivers. If you're running a kernel not from a major distribution, the nvidia installer needs the kernel sources to grab the header files it needs in order to link their binary package into a kernel module, but you don't have to recompile the kernel.

Trust me, I've run four different distributions with nvidia hardware with plenty of different kernels without having to recompile.
-LuctusIn the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move - Douglas Adams
Advertisement
Quote: Original post by Pxtl
Imho, the best approach was old Autocad, where the command line was visible and you could tinker with it, and the gui stuff was a wrapper for the command line. So, from within the app, you could go either way, and if the user cared to pay attention they could learn the command line system from using the GUI.


That's exactly what Linux is like. The GUI and CLI don't replace each other, they compliment each other just like this. For example, people write several command-line utilities that can do things like burn files to CD/DVD and encode MP3/AVI/MPG files to CD format. This allows command-line users to combine and script the utilities in any way they see fit with a powerful interface. Then you get GUI frontends, like the excellent K3B for KDE which ties all these types of programs together to let you do things like create a music CD from MP3 files or create a DVD movie from AVI files.



Nobody is suggesting all users should just use a GUI or just use a CLI. Linux is great because it combines the two. I use GUIs for everyday things, but when they aren't sufficient I'll use the command-line utilities.
Quote: Original post by seanw
That's exactly what Linux is like.

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.

You can go seemlessly between the command line and the mouse, at any time. Even in the middle of an instruction. You can click the 'circle' button, then click the screen where you want the center, then click a point on the circle. Or you can click the circle button, type the coordinates where you want the center, then use your mouse to specify that the radius should be the same length as the line segment you specify. Or you can avoid the mouse all together, and type everything. All commands can be shortcutted so long as there is no confusion as to what you mean. You don't even need to hit <TAB> to complete the command, you can just keep going.

Its like working in heaven, I almost wish I were a CAD designer so I could make use of it more often.

CM
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.
Distros such as suse already mimick windows pretty well with guis throughout. I think the cli argument is old news and thankfully behind us.

This topic is closed to new replies.

Advertisement