Variants on Android

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Archenoth
    Scout
    • May 2020
    • 26

    Variants on Android

    So, I've been doing a little testing, and it seems like it's not actually terribly difficult to get most variants to compile and work on Android using Termux.
    Basically, you can get enough of a compilation environment running on Android natively with it (You can just install the right tools and libraries with apt) that, with a few tweaks, I've found that mostly any variant is possible while following the building instructions for Linux.

    So far I've had success with frogcomposband, Zangband, and Sil, but I bet most others will work too.

    The cool things about this are:
    1. More roguelikes are playable anywhere!
    2. They take up basically no battery when playing, and if you put your phone in power saving mode, you can play on most phones for a really, really long time
    3. Termux lets you create custom key layouts, so they are actually surprisingly easy to control if you are fine with the screen size in portrait mode


    For example, here's Sil:


    Some of the tweaks that I had to do to make it more playable include:
    • The custom keys along the top, which you can find here. (You can put that in termux.properties)
    • Use the "roguelike keyset" in the games played to keep things consistent
    • Keymap the arrow keys with hjkl directions in my keymaps (Arrows in Termux auto-repeat if you hold them down, and arrows are sometimes bound to "run a direction")


    One hurdle when compiling most of these is that there is a list of system calls that Android will cause the kernel to outright kill -9 some games, which are listed here. But those aren't too difficult to discover and bypass if you just try to compile normally, and run the game through strace if it dies. (Eg "strace ./frogcomposband")

    That lets you basically just grep the code for that syscall so you can replace it with nothing. (Most of them don't do anything in the single-user/single-group CLI that Android has anyway)

    I know there are versions of the main game on the Play Store, and I think that's super-neat, but I figured I'd just throw out what I've been doing recently in case someone else wanted to play a variant of their choice on the go, and didn't realize this was an option without making a full-blown app!

    Thoughts? Ideas? And has anyone else done something like this?
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9634

    #2
    That's great. I'm now considering getting an Android tablet just for this
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.

    Comment

    • Diego Gonzalez
      Adept
      • May 2007
      • 170

      #3
      Nice! Improving the android app is quite a task, and having the chance to play variants without too many changes is great!

      Comment

      • Archenoth
        Scout
        • May 2020
        • 26

        #4
        Originally posted by Nick
        That's great. I'm now considering getting an Android tablet just for this
        I find that, surprisingly enough, tablets seem to play less nicely than normal phones do. This is mostly because the size of the screen makes it hard to hit the keys comfortably. (Since you have to move your hands to hit a lot of them as opposed to being able to use them all with one hand)

        Phones are weird because the size of them means that hitting any key on the keyboard isn't actually that difficult. (Like, it's about the same difference as typing on a phone instead of a computer; which people do a lot) So if you can get the directions and some of the more commonly-used special characters on the screen in a place where it's as easy to press as the keyboard keys, I find that it's surprisingly usable.

        I tried on a tablet too, but all the extra distance my hands had to move to do things like movement and the fact that there wasn't a consistent way to hold it to do that means that an external keyboard was significantly more comfortable in my case.

        Comment

        • Archenoth
          Scout
          • May 2020
          • 26

          #5
          Heck yeah! Some of the stuff in my post got compiled into a package, so now if anyone wants to play frogcomposband in Termux, it's just a matter of running "apt install frogcomposband"~

          Sil and ToME 2 will probably be next. ^^

          Comment

          • KesTheHammer
            Apprentice
            • Feb 2021
            • 50

            #6
            I'm no Linux expert. So I installed Termux from the play store, and typed in "apt install frogcompsband" and it said unable to locate package frogcompsband

            Comment

            • Pete Mack
              Prophet
              • Apr 2007
              • 6883

              #7
              @Nick--
              The android port for Angband is better still.

              Comment

              • Archenoth
                Scout
                • May 2020
                • 26

                #8
                Originally posted by KesTheHammer
                I'm no Linux expert. So I installed Termux from the play store, and typed in "apt install frogcompsband" and it said unable to locate package frogcompsband
                Oh! That should be frogcomposband

                You can tab complete it pretty early into the name to avoid needing to type the whole thing too~

                Comment

                • Pete Mack
                  Prophet
                  • Apr 2007
                  • 6883

                  #9
                  @Archenoth--
                  I tried playing in Termux at one point, but I couldn't get around the soft keyboard. It doesn't have a raw mode, as angband requires. (It also mucks up the command line.)

                  Comment

                  • Archenoth
                    Scout
                    • May 2020
                    • 26

                    #10
                    Originally posted by Pete Mack
                    @Archenoth--
                    I tried playing in Termux at one point, but I couldn't get around the soft keyboard. It doesn't have a raw mode, as angband requires.
                    Yeaaah, that's why I usually ended up adding the layer of custom keys into Termux to play. Doing it with just the keyboard on its own would be pretty tricky.
                    The custom key row allows for key repeats and other fancy things to be put wherever you like, though it does require some setup. (That's actually why I mentioned this if you wanted to use my key setup instead of making your own from scratch.)

                    Originally posted by Pete Mack
                    (It also mucks up the command line.)
                    Oh? It really shouldn't act differently than running it in a normal terminal.

                    If you have more information, maybe I can find out what's happening here.

                    Comment

                    • Pete Mack
                      Prophet
                      • Apr 2007
                      • 6883

                      #11
                      The soft keyboard disables echo in Termux until words are complete, and it tries to form actual words, which ... doesn't really fit the unix philosophy. I even tried messing around with stty, but it doesn't actually propagate up to the keyboard as it should.

                      Comment

                      • KesTheHammer
                        Apprentice
                        • Feb 2021
                        • 50

                        #12
                        Originally posted by Archenoth
                        Oh! That should be frogcomposband

                        You can tab complete it pretty early into the name to avoid needing to type the whole thing too~
                        I tried again, no success. (I retyped the lines below, I did not copy and paste them from my phone)

                        Code:
                        $ apt install frogcomposband
                        Reading package lists... Done
                        Building dependency tree... Done
                        E: Unable to locate package frogcomposband

                        Comment

                        • Archenoth
                          Scout
                          • May 2020
                          • 26

                          #13
                          Originally posted by KesTheHammer
                          I tried again, no success. (I retyped the lines below, I did not copy and paste them from my phone)

                          Code:
                          $ apt install frogcomposband
                          Reading package lists... Done
                          Building dependency tree... Done
                          E: Unable to locate package frogcomposband
                          Ohh! You might not have your repos populated! You might need to "apt update" first.

                          After that, you should be able to see it.


                          Originally posted by Pete Mack
                          The soft keyboard disables echo in Termux until words are complete, and it tries to form actual words, which ... doesn't really fit the unix philosophy. I even tried messing around with stty, but it doesn't actually propagate up to the keyboard as it should.
                          Oh huh, that seems...wrong. (And like it would be pretty annoying )

                          What keyboard are you using? gboard for me doesn't buffer anything--it just instantly sends my keystrokes to the games.

                          Comment

                          • Pete Mack
                            Prophet
                            • Apr 2007
                            • 6883

                            #14
                            Just the default installed keyboard. I tried Google keyboard but it was worse. I'll try gboard, thx.

                            Comment

                            • Archenoth
                              Scout
                              • May 2020
                              • 26

                              #15
                              It also occurs to me there is another reason it could be buffering.

                              If you swipe left on the custom keys area, you get a textbox for typing literal text with added OS-level support. That will also buffer keystrokes until you swipe right again on the box.

                              That mode is designed for typing actual sentences and stuff into Termux, but would suit roguelikes poorly. ^^'

                              Comment

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