[tetrinext] TINT UI and Theme Standard draft -- part 1:interface
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
okay, involvement has picked up with TINT (what, you haven't noticed?? well it
has really =) so let's step up the effort to get some design concept stuff typed
out in rants and then converted to cohesive documents in html and put onto the
page. Here's my attempt at doing this. I'm sure it's quite incomplete, so
respond to this with some reccomendations/suggestions/comments/flames. let's
talk
about the UI. i'll just put it into the format of my ratings page since it's
the
only page besides the FAQ that anybody has felt like writing <ahem!>...
By the way, i'm sure Zillidot have plenty of additions and corrections to make
on this, since he's already coded parts of the UI. I hope that his classes let
up on him so that he can come on and post these, or at least to hand someone
what he's done so far so that they can take a look and note the incongruancies
with
what i wrote. I'm sure there will be alot of them, i'm really only writing
this in order to get SOMETHING started =). on with the show.
User Interface
1st Draft
Introduction
This document is [er, will eventually be] a complete description of the
features to be implimented in the TINT user interface. This includes a
complete user
interface as well as a framework that allows or modifications and extensions.
We
will focus on features that are necessary to include in order to have a
complete and cohesive user interface. In designing the interface, however,
future
modularization and extension to the interface should be supported.
Objectives
It's a good idea to outline the objectives that the UI is hoped to achieve.
These include the following:
-Portability. This is the primary reason that SDL was chosen as the library to
be used for TINT's user interface.
-Flexibility. In order to achive maximum flexibility, TINT's theme standard
will be very broad; every visual aspect of the UI can be set by theme.
-Modularity. It is hoped that willing programmers will be able to extend the
TINT interface by writing modules that use SDL and distributing them seperate
from the TINT package. the interface code should allow for this.
-Appearance. TINT will have a very arcade-style appearance, adding to the
enjoyment of the game and to its ability to be modified in various ways by
creative
and willing programmers. Design of the interface should allow for visual
effects that can then be provided by the TINT project or by theme authors.
-Useability. It is not our intention to sacrifice an intuitive interface for
all of the preceding objectives. Although it may be possible to extend TINT to
be a crufty, uncomfortable interface, TINT's interface should still be designed
to be as intuitive and comfortable as possible.
The rest of this document attempts to outline how these objectives will be
reached through the design of TINT.
Interface
The TINT interface will be designed to be as comfortable for the user as
possible. It will be designed to work in a windowed or full screen environment
and
conform to what most people would expect from a program's interface. The
following elements will be included in TINT's interface:
-Menu System.
The menu system will give users access to every function available. It will
probably be designed as most are -- File, Edit, View, and Help -- with extra
menus
for various categories of functions, including but not limited to a Game,
Client, Server, and Chat menu. Of course, some functions that are included in
the
menu will be made available directly on the screen and/or via hotkeys, for added
convenience.
-Dialogues.
Dialogues will be included primarily for connecting to a server, setting up a
serer, and editing client, server, and interface preferences. Note that which
options will be available for change within the preference dialogues will be
determined by further discussion. Input dialogues for simple arguments within
functions like setting nick name, changing teams, etc. will also be included
with
functions that require it.
-Task Bar
Another common element of an interface that will be included in TINT will be
the task bar. This bar will be optional -- it can be hidden through an option
in
the Vew menu as well as by whatever other means are decided. Every function
included in the task bar will be one that is available via the menu system. It
will include a text description and an icon -- whether to display the text,
icons,
or both will be left up to the theme author and/or user. A possible additional
feature for this task bar would be to allow input of a text argument to be added
as a flag to the function that is being used, via a text input box directly on
the task bar. This would be useful for connecting to a server, joining a
channel, joining a team, or changing a nick. Everything included in the task
bar
should be modifyable by the theme author and perhaps through the preference
dialogue.
-Console
The console will be the "irc-style" element of TINT. It will be the primary
means by which the user chats with the rest of the channel that he is playing
in.
It will support irc-style commands for everything that is included in the menu
system. This will complete a very comprehensive means by which a user can
perform the same function in whatever way he feels comfortable; for instance, in
order to join the team "teamsters", the user could either access the "team"
function
through the menu system and enter "teamsters" into the text dialogue; enter
"teamsters" into a text box in the task bar under the "team" function; or simply
type "/team teamsters" in the console. Note that the menu, taskbar, and console
name for a function can theoretically be different, provided that there is a
means by which such differences can be documented for the sake of theme authors
and
users. Aliases for various functions can also be set for use in the console.
The console will be at the bottom of the user's screen; The size of the console
during the game and between games will of course be different (and can be set by
theme author and/or user). Users will also be able to manually grow, shrink, or
hide the console. This console is remeniscent of the console used in games
like Quake.
-Panes
Panes will be used for various information that users would like to see
displayed throughout gameplay. Gameplay will be enveloped within a pane. Other
possible elements that can be displayed within panes include lists of users
within the
channel or on the server, queries with individual players (remeniscent of /msg
in irc), and winlists. Interested parties looking to have fun could even create
SDL hacks displayed in a pain that do various fun things like, for instance,
graphically reflecting the height of a player's field. Users and theme authors
will be able to show and hide panes, resize panes that can allow resizing, and
perhaps set various dialogues to be displayed in a pane (an example of good use
of
this would be to place the connection dialogue into a pane)
Okay, that's the end of the interface section. i would just write both the
interface section and the theme section into one doc, but (1) this is pretty
long
and (2) i need to go eat dinner. so, stay tuned for the section on themeing!
keep in mind while you're reading this that:
-It is not a complete document, it needs massive playing with by people that
know more than me
-I don't grock much of the technical end of implimenting this at all, so i'm
sure that there are things in there that are just technically ridiculous to do.
so do me a favor and point them out =)
thanks.
--
Jared Johnson
solomon@xxxxxxxxxxxxx
(null cookie; hope that's ok)
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/C d+(-)>-- s:+ a18 C++++$ UL++++>$ P+>++++ L+++ E--- W+ N+ o? K- w--- !O
M-- V-- !PS !PE Y PGP- t+ 5-- X R-- tv- b+ DI>+ !D G e>++(>+++) h-- r* y-(>+++)
------END GEEK CODE BLOCK------
- [tetrinext] TINT UI and Theme Standard draft -- part 1:interface,
Jared Johnson <=
|
|