iOS port update: 1.14.8 and 1.14.9

All questions/issues/feedback for the iOS version of Wesnoth belong here.

Moderators: Forum Moderators, Developers

Post Reply
User avatar
singalen
iOS Port Maintainer
Posts: 296
Joined: January 3rd, 2007, 10:18 am
Location: bay

iOS port update: 1.14.8 and 1.14.9

Post by singalen »

Hello,

As I went through feedback on the App Store, I felt the need for there to be a single location for updates about progress on the iOS version in order to give better visibility to what's going on. This may also invite more feedback as well.

The latest update, Dec 23rd 2019, was labelled 1.14.8 and was actually 1.14.9 by mainline content.
It included two important changes, among others:
  • iPhone GUI, aka TinyGUI2

    This is a huge thing, since it required a full reimplementation of the so called TinyGUI framework.

    TinyGUI was an old, special version of Wesnoth suitable for resolutions below 800x600, going down to 320x480. Creating and maintaining it involved downscaling images as a part of a build, using some images redrawn by hand, hand-tailored GUI layouts, and some unobvious code. The end result, while functional, was also complicated, not pretty, and hard to maintain. Around 2011 a decision was made that modern devices no longer needed resolutions under 800x600, and TinyGUI was removed from all the codebase, which made it significantly cleaner.

    Now though, the iPhone port is resurrected, and it turns out that on HighDPI screens SDL2 (the graphical framework we use) shows display resolution in so-called points, where one point could be 2x2 pixels large. Such a device would have a "virtual resolution".

    It's a wise decision by the authors of SDL2, because a lot of applications (and games!) were only designed for resolutions no more than 1024x768. If you double your DPI, text will become unreadable, all the GUI elements will behave unpredictably, and so on. "Virtual resolution" solves this problem, but... now Wesnoth needs to work on the 640x1136 screen of an iPhone 5, which has a virtual resolution of only 320x568.

    Another consequence of this is that Wesnoth fonts look horribly pixelated on HighDPI displays. By far not as smooth as native ones.

    Back to TinyGUI2. The old code can be recovered, but the GUI system and the GUI in general has changed a lot since then, old code will break in a lot of places; CPUs now can scale images on the fly; so there would be no point to just restoring the old functionality. It had to be completely reimplemented. Many windows needed one or more new specialized layouts. A few brand new features had to be added to the GUI framework itself. I had to learn a lot about the framework's internals.

    The result of that work is now published. It's still rough on the edges, but is completely playable.

    Some known problems are:
    • The faction selection window is broken (fix is under development).
    • Cutscenes that don't fit into the screen fail to display (e.g. "Descent into darkness" intro).
    • Several dialog windows have double scrollbars or horizontal scrollbars.
    • The size of the "Load game" dialog changes depending on the save one has selected.
    • The preferences window is somewhat rough.
    • And still others, I'm sure.
  • iCloud saves

    Wesnoth save files are now saved to iCloud, if the feature is enabled on that iDevice.

    This lets players start playing on iPhone and then continue on iPad. With some effort (set up iCloud synchronization, replace the saves directory with a symlink), it's even possible to automatically sync the saves to and from a PC or Mac.
  • Others

    Update to 1.14.9 release: a regular exercise of iOS porting - merge the latest upstream changes.

    The battery indicator was fixed.

    Some internal code clean-ups.

Future plans
  • A Wesnoth free upgrade bundle is still in Apple review. We were unlucky enough to run into an iTunes Connect bug: they left me some comment and I was never able to see it - neither in iTunes Connect, nor in email, and thus was not able to proceed with it.

    After the bundle is published, everybody who owns either the old iPhone version or the HD version will be able to get both for free. Only the HD version will be officially supported however, and some time after the bundle is published the 1.10 add-on and multiplayer servers (which are used by the old iPhone version) will be shut down.
  • Fix the context menu problem ASAP - sometimes a few context menu items are unclickable. This is a game-breaker, in a bad sense: you cannot recruit units. I will publish an update this week with the fix.
  • Update the control schema. The swipe-and-drag controls, suited for touch screens, felt like such a brilliant idea... until it didn't. All of us sometimes love ideas that don't turn out so great. The traditional Wesnoth controls, honed for almost two decades now, yield better results. The swipe-and-drag controls resulted in some users who couldn't move their units at all; there's still no way to teleport a Silver Mage beyond the screen; there's no easy way to cancel an assigned multi-turn movement, to name the main problems.

    I will revert the default back to the old iOS code; it doesn't exist in mainline and is a pretty big chunk to be re-implemented, so it will take more time. There will be an option to change back to the swipe controls once that is completed though, and I still hope to refine it so it will be no worse than the traditional schema.
  • Add pinch-zoom. The iPhone's screen is still too small to play comfortably. So far, we only use pinch gesture to turn 50% zoom on and off.
  • There are about 15 more bugs are in the queue.

Last, I want to apologize for the slow pace of these updates. Wesnoth for iOS is a hobby project; it has to compete with work, family (and children!) and other activities. Due to this, sometimes I'm not able to work on it for months. I apologize for not having enough resources to make it better.

No, last thing is - I want to thank the Wesnoth community. We got a lot of warm words for creating an iOS port; even when criticizing the very real problems of iOS port, the absolute majority of the users are nice and caring. It's an honor to work with such a community.
User avatar
singalen
iOS Port Maintainer
Posts: 296
Joined: January 3rd, 2007, 10:18 am
Location: bay

Re: iOS port update: 1.14.8 and 1.14.9

Post by singalen »

A fixup HD version (1.4.9 build 78) is in TestFlight (beta testing) now.
It includes fixes for:
* context menu items randomly becoming non-clickable. This one needs testing;
* prisoners not moving in HttT, "Captured" scenario;
* scrolling in a low-height lists/scroll areas now continues if you drag a finger beyond the list, like in most touch GUIs.

edit: context menu issue is actually much worse in this test version. Will issue a new update in a couple of days.
nemiere
Posts: 1
Joined: February 27th, 2020, 6:33 pm

Re: iOS port update: 1.14.8 and 1.14.9

Post by nemiere »

Any news about the bundle? Still not showing on iTunes Store.
Thank you for your info & support.
User avatar
singalen
iOS Port Maintainer
Posts: 296
Joined: January 3rd, 2007, 10:18 am
Location: bay

Re: iOS port update: 1.14.8 and 1.14.9

Post by singalen »

OS version with a fixed context menu crash released.
Apple had fixed our account, and now I could actually see the bundle rejection reason.
The reason for a bundle to be rejected was that the recent (HD) version and the old version had the same icon. Thanks Vultraz for helping figure out how to update the icon.
The bundle is re-submitted for review again.
Sir_Emental
Posts: 6
Joined: February 23rd, 2020, 8:48 am

Re: iOS port update: 1.14.8 and 1.14.9

Post by Sir_Emental »

Well yes, it does not crash now, but context buttons are unclickable again.
User avatar
singalen
iOS Port Maintainer
Posts: 296
Joined: January 3rd, 2007, 10:18 am
Location: bay

Re: iOS port update: 1.14.8 and 1.14.9

Post by singalen »

Sir_Emental wrote:
March 8th, 2020, 9:18 am
Well yes, it does not crash now, but context buttons are unclickable again.
Oh. I never could reproduce it 8(
Does restarting the app help?
Are you invoking the menu with double-tap or with a long-press?
LionBeard
Posts: 1
Joined: March 26th, 2020, 4:06 am

Re: iOS port update: 1.14.8 and 1.14.9

Post by LionBeard »

Thanks for addressing the drag controls it’s so brutal haha I love this game please update that!
User avatar
singalen
iOS Port Maintainer
Posts: 296
Joined: January 3rd, 2007, 10:18 am
Location: bay

Re: iOS port update: 1.14.8 and 1.14.9

Post by singalen »

Yet another fix for context menu released. I got a confirmation that it fixes the problem.
Post Reply