Angband 80x24 sereen display - a modest proposal

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nppangband
    NPPAngband Maintainer
    • Dec 2008
    • 926

    Angband 80x24 sereen display - a modest proposal

    As a follow up to the discussions in the ASCII dreams thread, I wanted to start a thread strictly about the Angband screen interface and how it can be improved. I warn you all right now, I am going to be a little preachy and opinionated, but 1) I am a variant maintaner who is willing to contribute towards making the improvements I am ranting about. So I sincerely hope the devteam and other variant maintainers know I am not telling them what *THEY* should be working on, but rather what *I* want to work on for NPP, and seeing if there is interest in concentrating on this area, brainstorming together, and coordinating our efforts to create a better UI for all of Angband and the variants.

    That being said, let the rant begin:

    After looking at the screenshots of the most popular roguelikes in that poll (TOME, Dungeon Crawl Stone Soup, Brogue, etc), I came to the conclusion that Angband's screen layout, while great for a 1980s game, is sad, pathetic and antiquated. I believe it is probably the single biggest reason why so many other roguelikes have a much bigger audience than Angband these days. If I were just starting to play roguelikes, I can see 10 other roguelikes out there I would play ahead of Angband, just based on first impressions. Shockbolts gave us a gift in his tileset. They are an amazing improvement and gives us a screen display as nice as any roguelike has, but now we need a better layout to take full advantage of them.

    Angband is still based on the Moria screen, which was 80x24 because that's what the size of monitors were in the 80s. There is one line at the top, and one line at the bottom for presenting information to the players, and 20 ( I think) spaces on each line on the left of the screen to present all relevant information. Why has this not changed?????? Why have we stuck with with this antiquated format all these years? Options for additional windows have been added for people who want to see more information, and that is a great workaround, but it doesn't address the issue. The displays of the main window have to be flexible.

    Why can't Angband let the player choose as to what shows up onscreen, and/or have it pop up temporarily (for those playing on smaller screens, such as Ipads, or nintendo DSs), or display permanently (for those playing on much larger monitors).

    Why can't the inventory, floor items under the player, and equipment all have their own "toolbar" on the screen (see Crawl Stone Soup), with ASCII or tile representations of each item onscreen, so if the player wants to interact with that item, they can just click on the item, and get a menu of commands?

    Why can't we display up to 5-10 lines of messages instead of just one (assuming they are recent, if they are more than 5 turns old, they should dissappear and the dungeon displayed in that space instead)?

    Why can't, wherever the mouse is at that current moment, a space on-screen be dedicated to telling the player what terrain is at that space, the monster at that space, and any objects that may be at that space as well.

    Why can't a list of possible commands be on-screen for the player to click if they want? Why do we make players learn 50+ keyboard commands to play the game?

    Without my realizing it, a couple of months ago, the mission statement for NPP changed. I like the old Angband (from the 2.8x-2.9.x era), and I want to preserve it. I think it is a near-perfect game and in NPP I have always tried to add to it without taking anything away from it. I wish the devteam all the success in the world for all of the changes they want to make to Angband gameplay, but frankly, I don't think the roguelike community is going to care or take notice unless a better UI is developed first. Most of my time is going to be dedicated to UI improvements these days, that hopefully Angband and all of the variants can take advantage of.

    I even want to do a moria module for NPP, and someday that will happen too.
    NPPAngband current home page: http://nppangband.bitshepherd.net/
    Source code repository:
    https://github.com/nppangband/NPPAngband_QT
    Downloads:
    https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57
  • Derakon
    Prophet
    • Dec 2009
    • 9022

    #2
    I wish you all the best of luck.

    Personally, though, I'm not so interested in new uses for the mouse. I only have two hands, and they're engaged full-time in playing the game as it is. I don't want to be required to use a mouse too. So as long as the mouse is optional, I'll be fine.

    Comment

    • fph
      Veteran
      • Apr 2009
      • 1030

      #3
      With the current trends in computing, it has come a time in which many people have to rethink interfaces. Tablets and touch-screen phones are becoming more and more common, and they are something completely different from the 2000x1500 monitor of our desktop (assuming you still have only one of them in your desktop...).

      It's not an Angband problem, but everyone's problem nowadays. The goal of optimizing for a tablet or small touchscreen device seems to be incompatible with the one of optimizing for a "normal" computer. Laptop are somehow inbetween, but the fact that you can't seem to find a new laptop with a larger resolution than 1366x768 suggests that they'll soon end up in the first category.

      So, to end my rant, I think that we have three choices:
      1- we keep Angband desktop-only, and forget about touchscreens and "small" interfaces. A game like Angband cannot be played on a tablet, full stop. Exactly like a FPS cannot be played on a tablet.
      2- we deeply change Angband so that it is playable on both devices. This will require lots of rethinking and rebalancing. It is an open problem for today's UI design to find something that suits both a computer and a tablet well --- ask the Unity developers.
      3- we fork Angband: one for PCs, one for tablets, mantaining no more than a pale resemblance of the same game.

      These were just my 2 cents, sorry if that sounded pompous.
      --
      Dive fast, die young, leave a high-CHA corpse.

      Comment

      • takkaria
        Veteran
        • Apr 2007
        • 1951

        #4
        I think you are right on with what needs to change and I've been half-arsedly laying the groundwork for the past five years. It's gone slowly because I've been trying to make the design as flexible as possible, which is something I really should have the "no more options" maxim to.

        In retrospect, I can see that it could have gone a lot faster if I'd have made different decisions.

        1. Do you want to retain a text-only mode? I decided I did, which meant designing a system that would work with either text or graphics, which is a hell of a lot of work and requires a fundamental rewriting of the game internals in a way that choosing one display mode and going with it doesn't. If you just go with graphics, then you can hardwire them in, and not worry about piffling things like abstracting the game core from the UI before you can even get started.

        A lot of the command & event systems that came in over the past few years is there to allow a separation between the core and the UI, where the core sends events to indicate to the UI it needs to update something and the UI sends commands to the core to tell it to do stuff. It's a sensible design but it's difficult to implement across the entire codebase. The big problem with this is that the UI is always going to have to be modified depending on the behaviour of the game anyway, and its internal data structures. Choosing graphics and running with it would make life a lot easier.

        2. Do you want to allow different platforms to differ in their functionality? I decided to design things so that this would be possible - so OS X has different conventions to Windows, which has different conventions to GTK and then again to terminal emulators. You might want the UI to pan out quite differently depending on platform. I think now it would be better just to treat these desktop platforms the same. I always wanted the game to integrate with the OS well, like a normal application, but it seems pretty obvious to me now that it was misguided and unnecessarily complicated.

        I don't know how this works out with handheld ports - Android and iPod and DS will all want different treatment in terms of UI and input. I think having one codepath that tries to handle all desktop and handheld display and input will probably end up very difficult to modify and/or covered in hacks. I'm not sure what to suggest, except that if you drop text mode and term windows and stick to rendering everything on one graphics canvas as a baseline, it'll probably be a lot easier to cook up individual handheld ports.

        I hope this helpful in informing your thinking.
        takkaria whispers something about options. -more-

        Comment

        • nppangband
          NPPAngband Maintainer
          • Dec 2008
          • 926

          #5
          Originally posted by Derakon
          I wish you all the best of luck.

          Personally, though, I'm not so interested in new uses for the mouse. I only have two hands, and they're engaged full-time in playing the game as it is. I don't want to be required to use a mouse too. So as long as the mouse is optional, I'll be fine.
          After 20+ years using a keyboard, I don't think I could ever use the mouse either. It would be too slow. The one exception for me is targeting or "looking" around the dungeon.

          But 90% of what I am interested in what our eyes are looking at, rather than what our hands are doing.
          NPPAngband current home page: http://nppangband.bitshepherd.net/
          Source code repository:
          https://github.com/nppangband/NPPAngband_QT
          Downloads:
          https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

          Comment

          • nppangband
            NPPAngband Maintainer
            • Dec 2008
            • 926

            #6
            Originally posted by fph
            With the current trends in computing, it has come a time in which many people have to rethink interfaces. Tablets and touch-screen phones are becoming more and more common, and they are something completely different from the 2000x1500 monitor of our desktop (assuming you still have only one of them in your desktop...).

            It's not an Angband problem, but everyone's problem nowadays. The goal of optimizing for a tablet or small touchscreen device seems to be incompatible with the one of optimizing for a "normal" computer. Laptop are somehow inbetween, but the fact that you can't seem to find a new laptop with a larger resolution than 1366x768 suggests that they'll soon end up in the first category.

            So, to end my rant, I think that we have three choices:
            1- we keep Angband desktop-only, and forget about touchscreens and "small" interfaces. A game like Angband cannot be played on a tablet, full stop. Exactly like a FPS cannot be played on a tablet.
            2- we deeply change Angband so that it is playable on both devices. This will require lots of rethinking and rebalancing. It is an open problem for today's UI design to find something that suits both a computer and a tablet well --- ask the Unity developers.
            3- we fork Angband: one for PCs, one for tablets, mantaining no more than a pale resemblance of the same game.

            These were just my 2 cents, sorry if that sounded pompous.
            Actually I am personally far more interested in improving the game for big screens rather than small ones. I use a 16' laptop attached to a 24' monitor, using both screens. So when I play Angband unless I wizard light the dungeon most of it goes unused. It just seems like so much wasted space. My main point is that almost nobody is limited to 80x24, and there is no reason for us to be bound to that display size any more. Even if the standard minimum window size was 100x40 we could automatically give so much more information to the player .
            NPPAngband current home page: http://nppangband.bitshepherd.net/
            Source code repository:
            https://github.com/nppangband/NPPAngband_QT
            Downloads:
            https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

            Comment

            • Jungle_Boy
              Swordsman
              • Nov 2008
              • 434

              #7
              One of the things I like about Angband is the simple UI, this is probably at least in part simply because I am familiar with it after playing for a couple decades. If you go adding a bunch of information to the screen at least make your system so that it is not in the way or reducing the size of the dungeon screen or make it flexible enough so users can remove things they do not want or feel are not necessary.

              I did download and try Brogue after reading comments here and while the monster info on mouseover was pretty cool the first time I saw a new monster after about the 4-5 time I don't need to see that info anymore and it got annoying so too much info can be as big a problem as too little.
              My first winner: http://angband.oook.cz/ladder-show.php?id=10138

              Comment

              • Magnate
                Angband Devteam member
                • May 2007
                • 5110

                #8
                Hello Jeff, and thanks for starting this thread. Like Derakon, I wish you the very best of luck with this and I look forward to testing stuff as it develops. I am no expert in UI design or coding, but FWIW my 2p'orth (based on takkaria's) is:

                1. Splitting the game logic (core) from the UI would be the right design choice for all sorts of reasons about maintainability, portability, flexibility etc. etc. It's also more work, and as the person leading the work it's entirely up to you (unless someone else helpfully shouts "I'll do that bit"). I think lots of us would be sad to see the ascii mode disappear, but if you choose to take the easier path and hardcode graphics, I think modernising the UI would still be an awesome achievement. [Also, Nick has talked about splitting both core game logic and UI from the low-level z-* functions, which could form a library. I'll leave the preaching on this to him, but IMO it's a good idea.]

                2. I feel strongly that mandating the same behaviour on all platforms would be a bad move. This is a fuzzy feeling - I don't know what difference it would make to the amount of coding work involved, and what impact the first decision would have on this one. But I cannot imagine, as fph noted, that a good UI on a tablet or smartphone would be the same as a good UI on a big desktop monitor - and if you're going to put all this effort into the game, I can't imagine you'd want it to be unplayable on the next generation of devices.

                3. I don't know how familiar you are with Sangband 1.x, but Leon achieved quite a significant improvement to the UI without either splitting it from the core game logic *or* dropping ascii mode. The game uses the whole screen, and tries to arrange its seamless subwindows intelligently, and although the end user's ability to change the config is arcane, it's there. It doesn't address even half of your points (in particular it has minimal mouse support), but it would be much quicker to implement (even if only as a stepping stone / learning experience).
                "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                Comment

                • nppangband
                  NPPAngband Maintainer
                  • Dec 2008
                  • 926

                  #9
                  Originally posted by Jungle_Boy
                  One of the things I like about Angband is the simple UI, this is probably at least in part simply because I am familiar with it after playing for a couple decades. If you go adding a bunch of information to the screen at least make your system so that it is not in the way or reducing the size of the dungeon screen or make it flexible enough so users can remove things they do not want or feel are not necessary.
                  Yes, it should all be an option, much like the windows are now. I do not want to take away or alter one bit of the current UI or the ability to play that way. I just want to give the player more flexibility. You should be able to turn on additional message lines, a section for inventory, equipment, etc.... on the main screen, and the ability to interact more with a mouse.


                  @Takarria - One question: Why does anything need to be done to have both text and graphics? Text already displays when the player is in tile mode. I agree with you that ASCII/text should always be an option.
                  NPPAngband current home page: http://nppangband.bitshepherd.net/
                  Source code repository:
                  https://github.com/nppangband/NPPAngband_QT
                  Downloads:
                  https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

                  Comment

                  • Derakon
                    Prophet
                    • Dec 2009
                    • 9022

                    #10
                    Personally, and I recognize I may be in the minority here, I don't really like the SDL mode. My Angband layout tends to fit together puzzle-like with my other windows, split across multiple windows, which doesn't work so well when the entire game is just one window.

                    Comment

                    • takkaria
                      Veteran
                      • Apr 2007
                      • 1951

                      #11
                      Originally posted by nppangband
                      Yes, it should all be an option, much like the windows are now. I do not want to take away or alter one bit of the current UI or the ability to play that way. I just want to give the player more flexibility. You should be able to turn on additional message lines, a section for inventory, equipment, etc.... on the main screen, and the ability to interact more with a mouse.

                      @Takarria - One question: Why does anything need to be done to have both text and graphics? Text already displays when the player is in tile mode. I agree with you that ASCII/text should always be an option.
                      I'm sorry, I wasn't paying enough attention to the detail what you actually wrote - it sounds like you want to enhance the existing terminal-style display rather than to have a sea change in UI design. I think that in order for graphics mode to be properly usable and integrated, Angband needs to be able to stop displaying tiles over an integer number of terminal grids, and instead of pushing graphics through the terminal layer, push them through a graphics layer instead. But in order to do that, you have to think about to have a display that is part graphics and part text without the graphics being displayed on the same grid system as the text. Does that make sense? I'm not sure if I'm being very clear.
                      takkaria whispers something about options. -more-

                      Comment

                      • konijn_
                        Hellband maintainer
                        • Jul 2007
                        • 367

                        #12
                        Greetings,

                        I have come to pretty much the same conclusion in Hellband, which allows the player more flexibility what to show, it is all configurable with options which may or may not be to your liking. Quality of the code is not good enough to get inspiration from though..

                        T.
                        * Are you ready for something else ? Hellband 0.8.8 is out! *

                        Comment

                        • andrewdoull
                          Unangband maintainer
                          • Apr 2007
                          • 872

                          #13
                          I whole heartedly agree with your initial thoughts.

                          Is there anything worth stealing from Unangand where I've put together the following hacks to achieve:

                          a) Messages overwrite the screen display as required.
                          b) Removed the side bar and put everything at the bottom of the screen.
                          c) Mouse peek if you enable the correct options (Windows only).
                          d) Command abstraction allowing you to go object verb, rather than verb object. (The 'h'andle command).

                          More if/when I think of them.
                          The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
                          In UnAngband, the level dives you.
                          ASCII Dreams: http://roguelikedeveloper.blogspot.com
                          Unangband: http://unangband.blogspot.com

                          Comment

                          • tametick
                            Rookie
                            • Nov 2011
                            • 8

                            #14
                            Originally posted by nppangband
                            As a follow up to the discussions in the ASCII
                            Shockbolts gave us a gift in his tileset. They are an amazing improvement and gives us a screen display as nice as any roguelike has, but now we need a better layout to take full advantage of them.
                            Even the way the 64x64 tiles are used can use some work - I recently played the new 3.4 build with the tiles.

                            IMO it suffers from the same issue that has plagued crawl's tiles version for a long while (and to some extent it still does, although they have improved it a lot starting in 0.7 & every release after that).

                            And that is, even tho the individual tiles are nice, they are not arranged in a nice way - there isn't much of a consistent visual theme, the map in general looks too plain & the transitions between tiles are too stark/harsh.

                            Look at these 2 examples, one from angband+shockbolt and the other from my own game, Cardinal Quest:

                            Angband:


                            Cardinal Quest:


                            Both of these were taken a couple of steps into the first level, so they contain no fancy late-game stuff, just the most basic look.

                            My tiles are 16x16 (at 2x zoom), and are obviously not nearly as "hi-fi" as shockbolt, but there is a lot more variety: some ornaments on the walls and floors, some easy to do variations on the walls themselves (the green vines), slightly nicer lighting code, and generally some modicum of general style.

                            Now, I'm not claiming that CQ is some genius work of graphics design (there are many indie/hobbyist games out there that look a ton better), but this is what I managed to do in a game that was basically a one-man operation for most of its life with not a huge ton of work spent on graphics.

                            I dare say that while my individual tiles are far inferior to shockbolt's, using just a few relatively easy tricks (some graphical and some programmatic like the lighting) I managed to make the game look much better than angband.

                            -Ido.

                            PS - nppangband is of course 100% right, everything around the map needs improvement too (in both functionality and aesthetics), and this is something angband shares with almost all roguelikes.
                            Last edited by tametick; December 24, 2011, 12:10.

                            Comment

                            • Nick
                              Vanilla maintainer
                              • Apr 2007
                              • 9633

                              #15
                              I find this difficult to respond to, because I've been here, but I'm not at the moment. In fact, some of this is stuff I've basically given up on...

                              Originally posted by nppangband
                              After looking at the screenshots of the most popular roguelikes in that poll (TOME, Dungeon Crawl Stone Soup, Brogue, etc), I came to the conclusion that Angband's screen layout, while great for a 1980s game, is sad, pathetic and antiquated. I believe it is probably the single biggest reason why so many other roguelikes have a much bigger audience than Angband these days. If I were just starting to play roguelikes, I can see 10 other roguelikes out there I would play ahead of Angband, just based on first impressions. Shockbolts gave us a gift in his tileset. They are an amazing improvement and gives us a screen display as nice as any roguelike has, but now we need a better layout to take full advantage of them.
                              I think much of this is a matter of taste. I don't prefer any of those interfaces to Angband's - although I acknowledge that that may be habit.

                              Moreover - beautiful as Shockbolt's tiles are - I prefer ASCII. We are taught to recognise letters easily and quickly from a young age, so there is less concentration required to interpret what's on the screen. Also, it forced the player to get over the "this isn't realistic" feeling right up front - and once over that, what's on the screen is all just information, and the brain does the rest.

                              Angband is still based on the Moria screen, which was 80x24 because that's what the size of monitors were in the 80s. There is one line at the top, and one line at the bottom for presenting information to the players, and 20 ( I think) spaces on each line on the left of the screen to present all relevant information. Why has this not changed?????? Why have we stuck with with this antiquated format all these years? Options for additional windows have been added for people who want to see more information, and that is a great workaround, but it doesn't address the issue. The displays of the main window have to be flexible.
                              The format is not bad - the map is central, as the most important thing, and the rest can be configured around that. The obvious improvement is to make that configuration easier; UnAngband has done this with the ability to separate the left-hand information, and FA had (at one point) the option to put that info at the bottom.

                              Why can't Angband let the player choose as to what shows up onscreen, and/or have it pop up temporarily (for those playing on smaller screens, such as Ipads, or nintendo DSs), or display permanently (for those playing on much larger monitors).
                              The temporary stuff is a great idea - Immir did some of this for the DS port, but more could be done. For small screen play, what is really needed is the ability to zoom in and out (again, some of this is in the DS port), and possibly optional reduction of LOS and spell distances (as in a formed FA birth option).

                              Why can't the inventory, floor items under the player, and equipment all have their own "toolbar" on the screen (see Crawl Stone Soup), with ASCII or tile representations of each item onscreen, so if the player wants to interact with that item, they can just click on the item, and get a menu of commands?
                              In my experience (and I tested this quite extensively a few years back) playing with just the mouse is good, and playing with just the keyboard is good, but trying to play with both is jarring and awkward.

                              When Psi and I developed the Windows CE port for FA, we set it up so that everything could be done with just the stylus. Psi went further and made a GUI bar for the (currently in other ports only text) mouse buttons, and an awesome "macro bar", where you could set up new buttons and bind macros to them. I started doing this for the SDL port, but (like so many things) never finished it.

                              Why can't we display up to 5-10 lines of messages instead of just one (assuming they are recent, if they are more than 5 turns old, they should dissappear and the dungeon displayed in that space instead)?
                              UnAngband and some versions of FAangband have this.

                              Why can't, wherever the mouse is at that current moment, a space on-screen be dedicated to telling the player what terrain is at that space, the monster at that space, and any objects that may be at that space as well.
                              This is a nice idea for screens with sufficient real estate, and may even be worth it for small screens.

                              Why can't a list of possible commands be on-screen for the player to click if they want? Why do we make players learn 50+ keyboard commands to play the game?
                              Current Vanilla has this (command menu brought up with enter), albeit a little clunkily; older versions of FA did it rather better. The issue here is that Angband is a very complex and very long game, and that requires a largish number of commands and the ability to make customisable shortcuts. Some games have simple interfaces because a lot of the gameplay complexity has been stripped out. Wanting Angband to follow this lead is in some ways like saying "Fast food is more accessible and more popular than home-made salads. Why not just eat fast food?"

                              Without my realizing it, a couple of months ago, the mission statement for NPP changed. I like the old Angband (from the 2.8x-2.9.x era), and I want to preserve it. I think it is a near-perfect game and in NPP I have always tried to add to it without taking anything away from it. I wish the devteam all the success in the world for all of the changes they want to make to Angband gameplay, but frankly, I don't think the roguelike community is going to care or take notice unless a better UI is developed first. Most of my time is going to be dedicated to UI improvements these days, that hopefully Angband and all of the variants can take advantage of.
                              I am delighted that you are going to try to make UI improvements. I have been tried to push this for a long time now, and have met sufficient indifference, inertia and sometimes outright hostility that I've given up. I wouldn't say I'm bitter, but I am a bit disheartened.

                              As for the roguelike community - I think, with all due respect, that we should largely ignore it. I think that looking at other roguelikes and getting ideas is fine, but it may well be that the reason Angband doesn't do the same things that other games do is that it is a different game, and that those things would not work. Certainly trying to make Angband more like <insert game here> is just cultural cringe, and should be avoided like the plague. The best thing to do is to make Angband excellent, but still Angband, in every way we can.
                              One for the Dark Lord on his dark throne
                              In the Land of Mordor where the Shadows lie.

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎