What’s My Problem?
7 Hours into a overnight flight, my phone rings in the morning and I answer it. Wrap call up, attempt to go back into IF and it relaunches the entire app causing me to lose hours of flight time and XP.
Throughout multiple times last night, I did do other things on my phone while the app was running in the background, to go back into IF without any issue. Last 20min of flight as I approach LAX, total restart.
I’ve seen responses on post like these being, “this is just how it is…” or “This is not how IF is designed. Its not meant to be running in the Background, You should get a separate device.” Those might float pre-2020 in the iOS world; but now apple is taking a big step towards multi-tasking and the Flight Sim world is becoming more competitive each and every day. IF needs to remain a top dog, but must be able to multi-task or maybe even run in Picture-in-Picture would be great!
What’s my Ask?
I ask IF flight prioritize development on keep alive settings to ensure no loss of disconnect, and recovery actions in cases of a loss connection. With this should be some built-in UI which allows a player to distinguish themselves as being AFK. Maybe only allow this as certain altitudes, so we don’t have a bunch of AFK players sitting at airports taking up spots or failing to respond to ATC requests.
Thanks for taking the time to share your thoughts!
As you’ve mentioned, this is a constraint of running on a mobile device unfortunately. There are limited resources available and these are allocated by the operating system (in this case, iOS) to what it deems most important. iOS has a large focus on performance and battery life, and it uses a careful mix of scheduling and prioritisation to achieve this.
As a compute-intensive app, iOS is more likely to close Infinite Flight when you switch to another task such as a phone call, as the OS would deem this to be more important. While multitasking is becoming more prominent in iOS, we are more likely to reach bottlenecks due to the nature of what Infinite Flight is (we require CPU time for whenever our simulation is running, GPU time for rendering, etc.)
That said, we are aware of this caveat, yet this isn’t as an straightforward issue to solve as it may seem on the surface. For example, picture-in-picture isn’t a solution as iOS only allows this for media players, and we can’t run the app in the background on your device either, as iOS will kill it for the reasons mentioned above.
There is an open feature request for this though and I would encourage you to show your support there. This helps us gauge demand which we use to plan future development :)
Ahh, I do understand the resource limitation. I believe a way around this would be allow the app to “crash”, but upon relaunch have IF validate if there was a previous connection established but then disconnected. Allow a 24 hour window, so if it crashes overnight, you can still recover in the morning but the no longer than 24 hours to reduce the load on IF backend systems as the data would be required to be stored somewhere for those 24 hours. In this case, yes, we would lose the hours it was disconnected, but at least not the entire flight. With that being said, if we get disconnected mid-flight and the game doesnt crash, we should be able to reconnect and IF servers get updated with our new location. I would hate to see a reset put us back miles if we got a short term disco.
Picture-in-picture is media only. I was thinking of someway that when the game is moved to the BG, it turns into a video stream which allows PIP, but that would be complicated. PIP is more of a bandaid anyways. Truly getting a recovery built in would be nice.
I cant think of any mobile examples off the top of my head, but usually ranked PVP type games, when the game crashes and the user re-loads, it will have a pop up says “you were in a game that is still on-going, do you wish to re-join”. That would allow the game to crash and rely on IF database to recover our flight upon reload and continue.
I understand that. I mentioned in a reply below, but in that case, allow the crash but upon recovery present a pop-up box stating “your previous session was disconnected, would you like to reconnect?” which would pull the user back into the last known position when last connected.