Angband Forums

Angband Forums (
-   Sil (
-   -   Making Sil 1.3 for Android (

Shaosil June 17, 2018 03:08

Making Sil 1.3 for Android
Hi folks,

Just FYI, I'm not exactly "new" per se to roguelikes (I've spent some time in this, Nethack, FTL, etc), but I'm by no means good at them. For example, I haven't really got past the 5th depth of any dungeon roguelike that I know of :(

However, I do like access to them, namely on my android phone so I can pull it up and play anytime. As some of you may know, Sil 1.1.1 can be currently played on Android via the app "Angband Variants" and setting the plugin to Sil. But of course, it bugs me to play on a version other than the latest and greatest, so, being a software developer myself, I started looking into ways to get Sil 1.3 compiled.

The BAD news is that I've never even looked at Android development before, and right off the bat I can see the development process is much different than what I'm used to, and I know for sure I'm going to overlook something.

The GOOD news is that I already have a compiled and mostly working version of Sil 1.3 on my phone. There are some bugs, like savefiles don't seem to be loading properly, and other minor things I want to fix before I "release" it. I downloaded the source code for Angdroid from the Google code repository and just plugged Sil's latest source into it when I figured out how the build worked. If you're interested in the extra nerdy info, I'm using Visual Studio (I know I know, not the usual IDE) and an android Native Activity project since the source is in C, but I also need the Java files from the repository.

I have no idea how to release anything on Google Play, though I imagine it can't be too difficult, and I imagine there must be some type of licensing info I have to include. Obviously I would release it for free as well, according to the license.

I don't really have a point to this post other than bringing awareness to my little project, and welcoming any tips or suggestions given my situation. I usually never finish personal projects, but this is something I've been wanting to do for a long time, and since I'm this close already, I can't imagine that I will completely abandon it.

Thoughts? Does anyone other than me actually want this? :D

Edit: It's live, download it from the Play Store here!

Squid July 1, 2018 14:04

I'd love Sil on Android!!

Shaosil July 1, 2018 22:09

Status Update
I've made progress since my initial post. At first I thought Angband Variants had been removed from the play store, but it appears some people still see it, so perhaps my Android version was upgraded to a version past what it allowed? For now I'll keep going and plan on releasing it when it's stable enough.

Now for the progress update. Here is a list of the changes I've made from the other app:
  • Upgraded Sil to version 1.3
  • APP BUGFIX: Save games are no longer being corrupted! This was the highest thing to fix on my list. We can't be having saves be corrupted for a game like this. :) The other app was calling a save function any time the app lost focus, and didn't always detect whether the game was in progress. Sometimes, it would save during the main menu and overwrite the game data. I just improved the in progress logic.
  • APP BUGFIX: The quit button now functions from the main menu.
  • SIL BUGFIX: Playing a game after the tutorial no longer displays a blank message at the top.
  • SIL BUGFIX: Trying to save during the tutorial no longer displays a warning message with -more- cutting out the middle.
  • Added a tab key to the symbols keyboard.
  • Added an options key to the symbols keyboard.
  • The orientation preference now has four options: Sensor (System), Sensor (Forced), Portrait, and Landscape. Sensor (System) will rotate based on the current user rotate system preference, and System (Forced) will rotate based on the sensor, regardless of user preference. The latter was the only sensor setting previously, and it bugged me.
  • The keyboard no longer displays annoying little popup key animations between certain keypresses. I had to hack my way around this one because that animation code is part of Android's functionality for that class.
  • Raised the minimum and target APIs a bit (19 and 26 - KitKat and Oreo). As a result, I had to make sure the newer Android permission system worked and asked the user about permissions when needed.

Basically, it's probably good enough to go ahead and release on the Play store, and I can if the public demands it. However, I do have a Todo list, and I would like to get another 2-3 things done before committing.

Todo List:
  • Use the same font as the one on PC. Android is showing '#' for walls, which I think is ugly compared to the solid block that I see on Windows. This one is a little difficult to track down but I'm close.
  • Add a transparency setting for the keyboard, at least in landscape mode.
  • Fix the slain monsters list - currently doesn't open
  • Thinking about adding a single row sliding keyboard, similar to DCSS.
  • Add a way to open the manual from the app - could be embedded, or a link to the website...
  • Fill entire screen with game view so there is no wasted space in portrait mode.
  • Add way to reuse the exact stats from the last character upon a new play. Everything but the skills save currently, so it's probably not difficult.
  • Add a way to pan the view by dragging. This might be harder than it sounds, since Sil isn't structured to let the view be changed if the player isn't in a look-around mode already. I may not actually get to this.

Pete Mack July 1, 2018 22:19

It's still there, from whoever that is.

Pete Mack July 1, 2018 22:22

Ooh, one more: fit screen correctly in portrait mode. (I am playing Angband, not Sil, but the waste of vertical space is my biggest peeve. )

Shaosil July 1, 2018 22:24


Originally Posted by Pete Mack (Post 131270)
It's still there, from whoever that is.

Oh really? Maybe they have a max SDK version set. I could have had an Android upgrade that went past it. Good to know though!

Shaosil July 1, 2018 22:54


Originally Posted by Pete Mack (Post 131271)
Ooh, one more: fit screen correctly in portrait mode. (I am playing Angband, not Sil, but the waste of vertical space is my biggest peeve. )

I see what you mean. I'll add it to my list :)

Nick July 1, 2018 23:11

If you could update Angband as a side-effect, that would be awesome :)

Shaosil July 1, 2018 23:54


Originally Posted by Nick (Post 131275)
If you could update Angband as a side-effect, that would be awesome :)

Not sure what you mean exactly. :D The Angdroid app?

Nick July 2, 2018 02:03


Originally Posted by Shaosil (Post 131278)
Not sure what you mean exactly. :D The Angdroid app?

Yep. I'm appointing you the new maintainer of it :)

All times are GMT +1. The time now is 15:10.

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