Previous Blog Next Blog
Prev/Next Blog
by date

Plan for James Lupiani

Plan for James Lupiani
Name:James Lupiani
Date Posted:Sep 21, 2005
Rating:Not Rated
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for James Lupiani

Blog post
If you're writing an application that's primarily GUI-based, your app should not require or default to running from within a CLI window.
It's really starting to irk me. Maybe it's console elitism, maybe it's printf-codependence, or maybe it's just laziness.

Let me give you a few examples in recent memory that I find particularly distasteful:

1. Blender 3D - Blender has a bad enough reputation for the learning curve, so I won't pick on it too much. In its case, the only saving grace is that the console window might occasionally provide useful debugging information. That being said, I think there may be a number of more elegant solutions available in, for example, every other 3D package known to humankind. There's a relatively obscure NURBS modeler known as Rhino3D that relies heavily on a command system, but it deals with it by integrating the console into its UI.

2. Stani's Python Editor - I decided to give this another try earlier today, in light of the sheer amount of feature integration it offers. I couldn't hold back a groan when I first ran it and a console window popped up. I would have trashed it without a second thought, but it turned out that getting rid of the console window was a simple matter of changing the shortcut to use the GUI python interpreter instead.

3. Torque - This has been coming up as a topic in the forums for what, four years now? There is absolutely no reason release builds of Torque games (especially official GG demos!) should be set with /subsystem:console. The logging facilities and in-game console are more than adequate. You want console output on a second monitor? I suggest you research an ancient app known as tail.

You're probably thinking, "what the heck is this guy on about? All you have to do is change--" Let me stop you right there. Even if everybody knew how to change the behavior for all these apps (and could indeed recompile those that require it), they shouldn't be forced to. Another response I've heard is basically that it's not a bug, it's a feature. That's like a real estate agent trying to put a positive spin on a run-down house by calling it a "fixer-upper." Here's why...

GUI applications that launch from within a CLI window give off a strong initial impression of being unpolished or outdated. Non-technical people that are old enough to remember DOS usually say something akin to, "This thing runs on DOS? How 80's is that?!" Windows users in particular end up having to deal with two separate taskbar items to click and Alt-Tab between. Closing just one of the windows will typically kill both of them. This tightly-coupled behavior is a usability faux pas that should be dealt with sooner rather than later in software design.

So, please, take that extra ten seconds and do it right.

Recent Blog Posts
List:10/16/06 - Community Weekend & Frozen Codebase
11/07/05 - Plan for James Lupiani
09/21/05 - Plan for James Lupiani
08/11/05 - Plan for James Lupiani
11/28/04 - Plan for James Lupiani
02/26/03 - Plan for James Lupiani
10/27/02 - Plan for James "Defiant" Lupiani
05/25/02 - Plan for James "Defiant" Lupiani

Submit ResourceSubmit your own resources!

Nigel Hungerford-Symes   (Sep 21, 2005 at 04:22 GMT)
Um, I think the console for Blender is fine mate. You are just being really really picky about it :P

When I run Blender under Linux, I run it from a shell window to get debug info.

If the windows version didn't have a console window I wouldn't get all those nice reason why Python just choked, the Torque exporter wasn't set up properly or how far through my yafray render is.

If it plugs into the standard "cout" and that is available on the 6 different platforms it runs on, why go to the bother of coding a second window or using valuable screen real estate in one window to do the job that is already done with a console.

Plus, you can pipe the info to other apps sooooooo easily that way.

If people fear the "DOS" prompt then they should stick to the XBox :)

Andy Schatz   (Sep 21, 2005 at 05:19 GMT)
No, you are right. Loose ends like this really should be polished up. Perhaps this would be an easy one for 1.4?

Andy

Matthew Langley   (Sep 21, 2005 at 16:37 GMT)
"There is absolutely no reason release builds of Torque games (especially official GG demos!) "

I agree with the demos... but for release builds (that is if your talking about the one that comes with Torque when you download it) (which really is just a start build for Torque as a dev tool) I think the console is fine. If you don't know how to take out the console then you really need to if you want to release a game and should look at it as a learning experience. At least thats my opinion :)
Edited on Sep 21, 2005 16:38 GMT

Anthony Fullmer   (Sep 21, 2005 at 18:17 GMT)
Personally, I don't see why running from a CLI window is such a problem. Worst case scenario it clutters your windows taskbar. I agree with Nigel, if you don't like the DOS prompt, fix it or don't use the program, it really isn't a big deal. *Shrug* Just my opinion.

James Lupiani   (Sep 21, 2005 at 23:11 GMT)
"If the windows version didn't have a console window I wouldn't get all those nice reason why Python just choked, the Torque exporter wasn't set up properly or how far through my yafray render is."

You can easily redirect stdout to a window within the application itself, avoiding the coupling problems but retaining the functionality. In the case of Blender, which has excellent layout flexibility, I'd put the console in its own pane. You could then watch the progress of your script's execution without changing focus or using a window manager to pin the console on top of all other windows.


What I was trying to get at towards the end there is that I do know how to take out that prompt. Depending on the system, it's either a large hassle (download and rebuild Blender?) or such a small fix that it really should have been done to polish off a production release anyway (as in the case of SPE).

The "deal with the prompt or get out" argument would be a great one, if it were for purely command line apps. The problem here is crossing between the two domains and creating a counterintuitive link between them. A fair compromise would be to allow the creation and destruction of the command window without destroying its associated GUI.

You must be a member and be logged in to either append comments or rate this resource.