Textui reform (warning: long and full of C)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • t4nk
    Swordsman
    • May 2016
    • 336

    Originally posted by Nick
    Actually I quite like the environment variables idea, if I still have any credibility left
    I guess I'll do that then, people who use this stuff are huge nerds anyway

    Comment

    • Nick
      Vanilla maintainer
      • Apr 2007
      • 9637

      Originally posted by t4nk
      I guess I'll do that then, people who use this stuff are huge nerds anyway
      My reasoning precisely.
      One for the Dark Lord on his dark throne
      In the Land of Mordor where the Shadows lie.

      Comment

      • t4nk
        Swordsman
        • May 2016
        • 336

        What a hack:


        solid_walls slow xterm down quite a lot, though... well, that's xterm's problem, isn't it?

        Comment

        • t4nk
          Swordsman
          • May 2016
          • 336

          Originally posted by t4nk
          What a hack:


          solid_walls slow xterm down quite a lot, though... well, that's xterm's problem, isn't it?
          actually, speed is ok. More interestingly, none of the terminals that I tried uses vsync!

          Comment

          • AnonymousHero
            Veteran
            • Jun 2007
            • 1393

            Originally posted by t4nk
            actually, speed is ok. More interestingly, none of the terminals that I tried uses vsync!
            I wouldn't worry too much about performance for ncurses; it's probably mostly for people who absolutely have to play via non-X11 SSH (or similar).

            Comment

            • takkaria
              Veteran
              • Apr 2007
              • 1951

              Originally posted by AnonymousHero
              I wouldn't worry too much about performance for ncurses; it's probably mostly for people who absolutely have to play via non-X11 SSH (or similar).
              Or people using screenreaders, or people who just prefer running things in terminals. I think there's a surprising number of the latter...
              takkaria whispers something about options. -more-

              Comment

              • AnonymousHero
                Veteran
                • Jun 2007
                • 1393

                Originally posted by takkaria
                Or people using screenreaders, or people who just prefer running things in terminals. I think there's a surprising number of the latter...
                Yes, I forgot that screenreaders are an important use case! It's just such an easy thing to forget when one is sighted. I wish we could have some sort of "reminder" type functionality for our assumptions. (EDIT: Actually, I wonder... could we serve blind players better with a special-case UI rather than forcing them to use screen readers on top of curses? Surely playing with a screen reader is ridiculously sub-optimal since the screen reader doesn't actually know anything about Angband. Obviously there probably isn't actually enough developer-power to make anything else happen, but one can hope...)

                Given that, the rest is just more for argument's sake, so feel free to ignore: I disagree that "preferring running things in terminals" should be a big consideration. In fact, I wonder why anyone would even want that given that the other front ends are basically superior in every way. Can you elaborate?
                Last edited by AnonymousHero; November 7, 2016, 01:16.

                Comment

                • takkaria
                  Veteran
                  • Apr 2007
                  • 1951

                  Originally posted by AnonymousHero
                  Yes, I forgot that screenreaders are an important use case! It just such an easy thing to forget when one is sighted. I wish we could have some sort of "reminder" type functionality for our assumptions. (EDIT: Actually, I wonder... could we serve blind players better with a special-case UI rather than forcing them to use screen readers on top of curses? Surely playing with a screen reader is ridiculously sub-optimal since the screen reader doesn't actually know anything about Angband. Obviously there probably isn't actually enough developer-power to make anything else happen, but one can hope...)
                  Yeah, that would definitely be a better option. Brogue has BrougeSpeak which is pretty much exactly that: https://www.reddit.com/r/roguelikes/...8/broguespeak/ It's pretty cool.

                  The only reason I have screenreaders in mind is because there is at least one visually impaired user who has made requests for changes in Angband's UI to make it more accessible. I think the current Windows frontend is also usable with a screenreader because it draws characters using the system calls for text plotting, but if we switch to using the SDL port on Windows (which I hope we will, since the Windows one is ancient and no-one knows how to maintain it anymore) that will go.

                  Given that, the rest is just more for argument's sake, so feel free to ignore: I disagree that "preferring running things in terminals" should be a big consideration. In fact, I wonder why anyone would even want that given that the other front ends are basically superior in every way. Can you elaborate?
                  Sadly, I can't. I don't understand it either.
                  takkaria whispers something about options. -more-

                  Comment

                  • t4nk
                    Swordsman
                    • May 2016
                    • 336

                    I really feel like I'm pushing ncurses way beyound its modest limits. Just spent several hours debugging problems with cursor in lxterminal... at least now I know why textui1 erases grids with white space (that is, literally char ' ' and COLOUR_WHITE)
                    Anyway, I think it looks pretty nice:

                    Now, the problem is that borders of subwindows render as ugly blue (instead of grey) in linux console. Presumably because linux console doesn't have greyscale colors. If someone knows why linux console is important enough to do something about it, let me know Otherwise, I'll leave it as it is... (since grey borders look nice in graphical terminal emulators).
                    In fact, I wonder why anyone would even want that given that the
                    other front ends are basically superior in every way.
                    I suspect many of these people do so because they think it is "lightweight" or something like that. But, as far as I can tell, there is absolutely nothing lightweight about terminal emulators, terminal protocol, pseudo tty subsystem or ncurses

                    Comment

                    • hjklyubn
                      Rookie
                      • Jan 2014
                      • 19

                      Originally posted by AnonymousHero
                      In fact, I wonder why anyone would even want that given that the other front ends are basically superior in every way. Can you elaborate?
                      Much easier to record, play back, and stream terminal sessions to others. This is the main reason. More generally you can interact with the terminal programmatically with tools such as expect.

                      My terminal is already configured with the font, font size, and colors I want. Easier to do so once than figure out how to configure every different game to my liking. Basically, the terminal is already really good at displaying rectangular grids of characters; why would I want to use any other tool to do it?

                      The last time I tried the X11 angband frontend, it constantly consumed 100% cpu. And some people can't use X11 at all.

                      Comment

                      • fph
                        Veteran
                        • Apr 2009
                        • 1030

                        Originally posted by hjklyubn
                        Much easier to record, play back, and stream terminal sessions to others. This is the main reason.
                        Uhm, really? Even moderately computer-illitterate people can record a screencast and share it on Youtube. And I bet most of them wouldn't even know where to start if they had to record a terminal session.

                        I think you are confusing "much easier" with "I've been doing it for years and I'm more used to it".
                        Last edited by fph; November 7, 2016, 20:42.
                        --
                        Dive fast, die young, leave a high-CHA corpse.

                        Comment

                        • hjklyubn
                          Rookie
                          • Jan 2014
                          • 19

                          Originally posted by fph
                          Uhm, really? Even moderately computer-illitterate people can record a screencast and share it on Youtube. And I bet most of them wouldn't even know where to start if they had to record a terminal session.

                          I think you are confusing "much easier" with "I've been doing it for years and I'm more used to it".
                          Yes, I'm pretty sure typing 'ttyrec -e angband' is easier than setting up video recording software. Is angband only for computer-illiterates?

                          Comment

                          • t4nk
                            Swordsman
                            • May 2016
                            • 336

                            Originally posted by hjklyubn
                            Easier to do so once than figure out how to configure every different game to my liking.
                            But my plan to use a bunch of environment variables for configuring the game didn't raise any objections? Currently, main-gcu.c has the option "-n" and tries to do something "smart" about it, and I don't like what it does; on my laptop, it makes the map term too small and other terms too large. The person who wrote the term size calculation code obviously had a big monitor...
                            If you have a better idea, let me know!

                            Comment

                            • debo
                              Veteran
                              • Oct 2011
                              • 2402

                              If we lose the terminal interface I am never creating another vanilla comp ever again. I hope someone out there is willing to make savefiles! :-)
                              Glaurung, Father of the Dragons says, 'You cannot avoid the ballyhack.'

                              Comment

                              • Pete Mack
                                Prophet
                                • Apr 2007
                                • 6883

                                The trouble with SDL on Windows is it is much less automatic to compile. It is currently to be as easy as: Install MinGW. Click the shell icon. cd to source directory.
                                MinGW=YES make -f Makefile.win

                                Comment

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