Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Variants (http://angband.oook.cz/forum/forumdisplay.php?f=4)
-   -   Variants on Android (http://angband.oook.cz/forum/showthread.php?t=10039)

Archenoth May 9, 2020 21:23

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:
https://pbs.twimg.com/media/EP9U1yjV...jpg&name=small

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 May 10, 2020 00:33

That's great. I'm now considering getting an Android tablet just for this :)

Diego Gonzalez May 10, 2020 01:53

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

Archenoth May 10, 2020 03:19

Quote:

Originally Posted by Nick (Post 145337)
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.

Archenoth August 25, 2020 21:01

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. ^^

KesTheHammer February 7, 2021 07:37

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

Pete Mack February 7, 2021 10:42

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

Archenoth March 19, 2021 18:27

Quote:

Originally Posted by KesTheHammer (Post 150990)
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~

Pete Mack March 20, 2021 01:18

@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.)

Archenoth March 24, 2021 07:15

Quote:

Originally Posted by Pete Mack (Post 152004)
@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.)

Quote:

Originally Posted by Pete Mack (Post 152004)
(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. :o


All times are GMT +1. The time now is 14:23.

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