Re: [GD-Design] Configurable GUIs
Brought to you by:
vexxed72
From: Filip J. <fi...@bl...> - 2002-06-25 16:24:42
|
I'll try sending this to the list too - instead of just to Mickael Pointier whose message I responded to (sorry). > > 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. > > It's a mix between "Dungeon Siege" and "Morrowind" ? > > In dungeon siege most interface items can be expanded > or retracted using a small "<<<" or ">>>" click box. > > In Morrowind, the character status, inventory, spell > list, merchant inventory, and world map are all fully > sorted and resizable windows. You cannot play (freeze) > when menus are active, but it's a full featured gui > anyway. I'm working on an RPG which has a top-down 3D view. For a GUI, I was thinking about multiple text consoles. I currently have a global menu, which freezes the game (for load, save, etc). But that kind of interface won't do for interaction. So, I was thinking about having a tiny text console pop up over the head of an NPC/PC when I click it. If I left-click, I initiate a conversation with the NPC, if I right-click I get a stat window (telling me what I have learned through conversation with the NPC, and what is apparent about it - things like strength etc are only displayed for PCs). Attacking is a double-click. When one or more of these consoles are open, life in the world continues as usual, and the console by default follows the NPC it belongs to. Therefore consoles must be semitransparent (solid text and borders, background semitransparent). I think I'll do a stenciltest on consoles so that they can't cover each other, I thought that I'd rather let the overlapped part of a console not be visible at all, though I could have them side by side too (which would make the consoles rub against each other, and suddenly change places, if two NPCs with open consoles cross each others paths). If I want to reach through the console window when I click, I shift-click instead of clicking ordinarily. Output to the consoles, and input from them is piped through std::cin and std::cout (so the consoles are set as output/input buffers), output supports a simple markup langauge to embed controls in the console text. This requires the player to make sure that s/he does not have more than one conversation open at a time, or the s/he address the right NPC (with a bop^W click on the head), (free text conversation is not implemented though, so it may turn out as a clickable conversation tree, in which case there will be no such problem). This all comes pretty close to the FPS-like interface I guess. My idea though, is that everything and everybody has an interactive interface. If I left-click an object, I get an action menu instead of a conversation, and if I right-click it, I get a help text (based on my PCs virtual visual input). If OTOH, I view an NPCs stats for too long, they'll turn to the PC and yell "Quit staring at me!" and walk out of sight. If I want to keep track of one of these consoles for a while, I'll just grab it by the window bar and pull it where I want it - then it'll stay there until it's closed/reattached. To close it I left-click "X", to minimize I click "_" (and all that'll be left is the bar). To close/minimize all consoles, I double-click the "X"/"_" on one of the consoles. To resume an action/conversation that was abruptly interupted, I was thinking to implment a resume action/"now, where were we" conversation entry. To make the console interface more feature rich, one could add image maps. Then it'd work better for other kinds of implementations, that won't be accomodated by a text-oriented interface. Another thought about the consoles is to have a docking bar, which ought to be the only place a detached console could stay while detached. It'd be the perfect place to have a backpack, or other inventory items one wants handy. The docking bar should have a "minimize all" and a "close all" button, the docking bar would be a perfect place for a couple of chat consoles. A minimized console should alert the player somehow, if its contents has changed (eg start blinking red). Many unstructured thoughts, but there you have my current ideas. ::)) (<= on caffeine) /Filip Joelsson |