Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old March 22, 2012, 21:18   #1
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,163
Donated: $60
Nick is on a distinguished road
Mouse playability

A long time ago, FAangband was completely playable by mouse - no keyboard required. But port-specific mouse buttons were hard to get done (although Psi did an awesome set for WinCE), and the codebase got 'updated', and the dream died.

Now NPPAngband has mouse playability - although the front-end support is still not there.

What I would like to see:
  1. GUI buttons in every front end (or text ones in gcu, I guess)
  2. Full mouse playability in Vanilla/v4
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old March 22, 2012, 22:06   #2
nppangband
NPPAngband Maintainer
 
Join Date: Dec 2008
Location: Stat Gain, Angband
Posts: 926
nppangband is on a distinguished road
Quote:
Originally Posted by Nick View Post
A long time ago, FAangband was completely playable by mouse - no keyboard required. But port-specific mouse buttons were hard to get done (although Psi did an awesome set for WinCE), and the codebase got 'updated', and the dream died.

Now NPPAngband has mouse playability - although the front-end support is still not there.

What I would like to see:
  1. GUI buttons in every front end (or text ones in gcu, I guess)
  2. Full mouse playability in Vanilla/v4
Agreed! I plan on implementing tile buttons and toolbars soon, at least in the ports that can hangle them.

What I want to do is:

1) Incorporate the latest main*.xxx from vanilla (that support shockbolts tiles and utf-8)
2) Modify them so the graphics files are always loaded, not just when the player is playing with tiles.
3) include tiles/buttons for the commands, and finally
2) change the screen display so it is flexible, so information can be displayed on more than the top/bottom line, and on the left side. Let the player customize thier view so they can have things like:
a commands toolbar
toolbars for the backpack, equipment, and floor items, etc....

Are you interested and everyone else in working on this (for all variants/Vanilla)? Better plans welcome.
__________________
NPPAngband current home page: http://nppangband.bitshepherd.net/
Source code repository:
https://github.com/nppangband/NPPAngband_QT
Downloads:
https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57
nppangband is offline   Reply With Quote
Old March 22, 2012, 23:36   #3
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,163
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by nppangband View Post
3) include tiles/buttons for the commands, and finally
2) change the screen display so it is flexible, so information can be displayed on more than the top/bottom line, and on the left side. Let the player customize thier view so they can have things like:
a commands toolbar
toolbars for the backpack, equipment, and floor items, etc....
Yeah, this is exactly the sort of thing I'm suggesting. A couple of other things (inspired by thinking about what you would need to make Angband playable on an iThing):
  1. Zoom function (I suspect this is much more do-able with utf8 support)
  2. Graphical menu handling

So once menus and buttons are fully integrated into the game, platform-specific display and selection code for them can be written for each front-end.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old March 25, 2012, 10:47   #4
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,163
Donated: $60
Nick is on a distinguished road
Here is an edited discussion Jeff and I have had about this. We think that this is important.

Quote:
Originally Posted by nppangband
My overall goal is to try to make a UI that will make it easy for newcomers to play the game.

Once the main-xxx.c's with utf-8 are incorporated for all the ports, I want to have the top, bottom, and left side of the screen fully customizible.

Top of screen:
Allow the players to have more than one line for messages at the top, and lines for toolbars. The toolbars can be standard commands (these can be updated and re-drawn after every player turn). It can also have a standard one for all utility commands (save, quit options menu, knowledge screens, etc). Then toolbars for equipment, floor items, and the backpack. If the player clicks on them, a toolbar pops up a menu of possible actions for that item (I already have the verb-noun object menu done and working in NPP). All that is needed is to change button.c a little bit, and to have the set of graphics loaded in every game, not just when the player is using graphics on the map. I have already spoken with buzzkill about this, and he is happy to help us with putting the buttons in the universal tileset he is working on.
Quote:
Originally Posted by Nick
There is already a way of having messages overflow from the top line onto the main screen, done for Un by Andrew Doull (and it's in FA1.1 - easy_more option). It relied on old message code, so it may be easier to start from scratch.

The toolbars can be standard commands (these can be updated and re-drawn after every player turn)
I can see a few options for toolbars:
  • Standard mouse buttons (that's the obvious one, I guess)
  • Buttons for items, as you suggest
  • Configurable buttons to represent keymaps (this is what Psi did for the FA WinCE port)

and maybe there are others. If we're going to get serious about this, Tim Baker's AngbandTk has a lot of ideas in it.

Quote:
Originally Posted by nppangband
Left screen - allow the player to customize each item on the left side of the screen. It can be the permanent, static list that Angband players are used to seeing. But for each item, the player can decide if he wants it there permanently, or if they want all the information on the left pop up temporarily for x number of turns when changes happen, and then disappear after x number of turns. Create a menu to allow the player to customize this.
Quote:
Originally Posted by Nick
I love this idea. Un did the thing of making the left panel detachable, and FA had a "left panel at the bottom" thing (which I may have stolen from Un - I don't recall). Maybe the thing to do is to move the handling of that to the main-xxx files. I think anyone who doesn't like that for reasons of tradition is probably using the gcu port And I'm thinking that the gcu port is probably an exception to a lot of this stuff (although the relevant code might be shunted from game files to main-gcu.c).

Quote:
Originally Posted by nppangband
Bottom of the screen: Again, let the player have more than one line. Toolbars can appear here too, and also additional information. There can be a help section that, wherever the player has their mouse, it is displaying information. During character birth, the help entry for the active player race/class automatically displays. During play, it gives information about the square the mouse is pointing to (monster info, list of objects). Things like that.
Quote:
Originally Posted by Nick
Again, brilliant. Maybe have the status messages, toolbars and help section all as separately configurable bits.

With a number of these things, we need to think about whether they are subwindows, or part of the main window, or UI-generated widgets - I'm inclined to favour the last.

Other things I'm thinking about:
  1. Zoom function. We should be able to replace the cumbersome font-changing process with a simple zoom control that picks a font size based on the window size and the level of zoom. For most ports, this can be a slider or something, so you can zoom out to see what's around, then zoom back in for better control. This will take a bit of work, obviously...
  2. Menus. The menus (inventory, spellcasting, etc) have basically been abstracted out so that the game calls menu code and it's all centralised. The next step seems to me to be to make the port UI handle the menus. Again, work needed.
  3. New Ports. Windows, OSX and Linux are fairly well catered for, there is a pretty up-to-date Android port (which I don't know much about), and an outdated NDS port. We desperately need an iOS port, and I think getting the Android guys involved in all this would be helpful. Plus Windows 7 phone (or whatever they call it), maybe...
Quote:
Originally Posted by nppangband
I think this is pretty important to do. I get the impression that Angband is considered an antiquated game by the general roguelike community. Plus, it is hard for our variants to get much attention if vanilla angband is being ignored. Implementing as many buttons/toolbars as possible will help pave the way for a touchscreen tablet version.

But the question is: If we do this, and/or have a team of people helping us, what codebase do we start with? The Angband 3.4 codebase has changed so much, everything we have done in FA, NPP, and UN would practically have to be re-written from scratch. What is the state of AngbandBase?
Quote:
Originally Posted by Nick
I think it really needs to be done on the V3.4 codebase. This page is a guide to what does what in the V3.2 codebase, and 3.4 is not actually a huge change from that. I think that making sure appropriate mouse buttons appear will go most of the way to getting 3.4 to NPP0.5.4/FA1.1 state.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old March 25, 2012, 10:58   #5
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,054
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
I think 3.4 is a good choice of codebase to start with - it ensures that contributions from others can be put to best use.

I'm really not a UI or UX guy, so I'll just wait and see what happens with all the customisability and mouse-driven stuff. But I did want to ask: does this plan include fixing all the message handling (ticket #1502)? IMO it's one of the big precursors to the core/UI split, and will address all the out-of-order message bugs.

I ask because I'm trying to fix archery in v4 and pulling my hair out with passing nested pointers to message types. Ugh.
__________________
"3.4 is much better than 3.1, 3.2 or 3.3. It still is easier than 3.0.9, but it is more convenient to play without being ridiculously easy, so it is my new favorite of the versions." - Timo Pietila
Magnate is offline   Reply With Quote
Old March 25, 2012, 11:19   #6
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,163
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Magnate View Post
But I did want to ask: does this plan include fixing all the message handling (ticket #1502)? IMO it's one of the big precursors to the core/UI split, and will address all the out-of-order message bugs.
Short answer: no. These things also apply to FA, which doesn't have the message ordering issues (AFAIK), so that's an independent issue.

I see all the things we discussed as more important than (and maybe precursors to, or part of) the Core/UI split. I am in favour of making the game play the way we want it to, and then worrying about tidying up the code later.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old March 25, 2012, 19:56   #7
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,850
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by Nick View Post
Maybe the thing to do is to move the handling of that to the main-xxx files. I think anyone who doesn't like that for reasons of tradition is probably using the gcu port And I'm thinking that the gcu port is probably an exception to a lot of this stuff (although the relevant code might be shunted from game files to main-gcu.c).
I think this is a really bad idea - if the main- files start having their own side panels, then you would have massive code duplication and it would make it more difficult to have a cross-platform game. Also, sharing frontend improvements would become a lot more difficult.

OTOH, I'm not doing the work, so go for it
__________________
"Physician, heal thyself."
takkaria is offline   Reply With Quote
Old March 25, 2012, 20:17   #8
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,054
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by Nick View Post
Short answer: no. These things also apply to FA, which doesn't have the message ordering issues (AFAIK), so that's an independent issue.
I don't think it's independent, but I can't be sure of that until you answer this question: have you solved those issues in FA with some sort of systemic change to message handling, or just by fixing every use case?
Quote:
I see all the things we discussed as more important than (and maybe precursors to, or part of) the Core/UI split. I am in favour of making the game play the way we want it to, and then worrying about tidying up the code later.
Hmm. Leaving aside the basic disagreement about project management methodology (creating lots of time costs later from untidy code), I'm fine with seeing this stuff as a precursor or early part of the core/UI split. I was just intrigued as to whether you were focusing solely on inputs (buttons and so on), or both inputs and outputs. Because it seems to me that if you're going to do a lot of work on where things are displayed (panels, sidebars and what-have-you), I don't see how you can avoid grappling with when they're displayed. But like I said, this isn't my bag, so feel free to ignore me ...
__________________
"3.4 is much better than 3.1, 3.2 or 3.3. It still is easier than 3.0.9, but it is more convenient to play without being ridiculously easy, so it is my new favorite of the versions." - Timo Pietila
Magnate is offline   Reply With Quote
Old March 26, 2012, 02:40   #9
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,163
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by takkaria View Post
I think this is a really bad idea - if the main- files start having their own side panels, then you would have massive code duplication and it would make it more difficult to have a cross-platform game. Also, sharing frontend improvements would become a lot more difficult.
I guess I was being imprecise there. I think what to display in the side panel should be internal to the game; I also think that the option of having the "side panel" at the bottom, or absent altogether should exist (and Un and FA have both dabbled in this already). I do also think that it might be good to be able to manipulate subwindows directly, but that would take some thought.

Quote:
Originally Posted by Magnate View Post
I don't think it's independent, but I can't be sure of that until you answer this question: have you solved those issues in FA with some sort of systemic change to message handling, or just by fixing every use case?
As far as I know it has not ever existed in FA. ISTR that it started becoming a major problem in V with the unification of monster pain messages, etc, which FA (even 1.2) does not have. One related thing I have had trouble with in FA is making sure subwindows update when they're supposed to; I suspect taht's probably been fixed case-by-case.

Quote:
Originally Posted by Magnate View Post
Leaving aside the basic disagreement about project management methodology (creating lots of time costs later from untidy code)
IMHO the only measure that matters here is the player's experience. A good game can be fairly buggy and still retain players (see Posband, for example); a bad game can run as smoothly as you like and have pristine, elegant code and everyone will still hate it.

Also IMHO, the Angband interface is in urgent need of improvement. It needs to be done now.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old March 26, 2012, 03:54   #10
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,447
Derakon is on a distinguished road
Quote:
Originally Posted by Nick View Post
IMHO the only measure that matters here is the player's experience. A good game can be fairly buggy and still retain players (see Posband, for example); a bad game can run as smoothly as you like and have pristine, elegant code and everyone will still hate it.

Also IMHO, the Angband interface is in urgent need of improvement. It needs to be done now.
That attitude is, I feel, overly shortsighted; too much development done without concern for the future will result in a codebase too messy for people to want to deal with, which can completely hose not just Angband but all the variants that want to keep up with it. I'm not saying that every line needs to be absolutely perfect, because heaven knows the current codebase isn't always entirely legible -- just that it's worth taking the time to figure out how to do things with a minimum of downstream pain, as much as possible.
Derakon is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Mouse Suppotr Notes Blue Baron Development 3 December 11, 2011 07:51
Mouse movement change request Speusippus Vanilla 1 March 1, 2010 19:53
Disable mouse move Whelk Variants 3 August 11, 2009 04:27
[FA] WinCE port + Mouse buttons screenshots Psi Variants 6 March 4, 2008 08:16
Mouse buttons Nick Vanilla 4 October 20, 2007 23:22


All times are GMT +1. The time now is 02:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.