[GD-Design] Configurable GUIs
Brought to you by:
vexxed72
From: Brian H. <bri...@py...> - 2002-06-25 03:21:44
|
Whilst toying with a simple RPG I've been working on in my spare time, I've run into a bit of a stumper when it comes to GUI design. Originally I started out with the grand notion that the GUI would simply be a bunch of overlapping windows on top of a 3D desktop (i.e. the entire background was the local "situation" -- first person, top down, isometric, whatever, point being that it's not constrained to a smaller window). This seemed to make intuitive sense. Until, of course, it was implemented. The control scheme is unbearable. Most games I've seen fall under one of three GUI camps: 1. effectively no GUI, the entire scene is 3D and interface elements tend to be non-interactive. Most first person shooters are like this. 2. hard coded GUI, where there's a display window and then a bunch of dressing that does things like show character stats, order units around, exit the game, bring up menus, etc. Most RPGs and some flight sims are like this. 3. MDI style multiple-window system with tiling and overlapping windows, where the 3D view is "just another window" The problem with #1 is that it's not a very friendly interface and it doesn't allow for a particularly rich interactive experience. The problem with #2 is that, well, it's hard coded. If you want a bigger chat window or a larger radar display, it's difficult to do within the constraints of a hardcoded layout (and make no doubt, the layout is hardcoded, because if it wasn't, it would be a #3 GUI). The problem with #3 is that it becomes cluttered. Quickly. Overlapping windows make sense when you have a lot of documents that you toggle between, but by and large you're only operating on a single window at a time and the other windows can be ignored. Works great for a word processor, but it's kinda sucky for a game. So let's invent #4, the "central window with overlapping ancillary control panels" interface. Basically imagine an RPG or flight sim where you can undock the chat, radar, health, etc. panels and move them and resize them at will. For chat this is particularly nice (especially for an on-line game) where you want to make the windows nice and big (and possibly have several of them open) so you can interact with others. The problem comes about due to the windows overlapping each other, which causes a point-and-click interface to go to complete hell. Say your game is an RTS. Your chat window is up because you're coordinating with your friends, but now an enemy unit appears under your chat window. You try to click on the unit, but it simply "focuses" the chat window. Bzzzt, that sucks. But if clicking selects the unit under the chat window, how do you move the chat window -- by manipulating the title bar only? That sucks too since it's unintuitive. So do you force the user to dock/move the chat window out of the way? That would seem cumbersome as hell (imagine constantly moving the chat window out of the way in order to click on various units on the screen). I didn't realize that taking a simple UI and just extending it into "make it configurable" was so damn hard to design. I'm leaning towards thinking that overlapping windows -- except for modal dialogs -- is a bad idea. Alternatively, panels can be undocked and resized, but they are 'naturally' in a docked position so when the shit hits the fan, you can click on a "dock all windows" button and be back in a usable state. Anyway, I'm curious what others think about this issue. Brian |