Outfit7
Published in

Outfit7

An App Reborn: Taking My Talking Tom to Apple Arcade

TL;DR: Find out how we transformed our “oldie but goldie” game and entered the world of Apple Arcade.

My name is Irena Rojko and I’m a Quality Engineer at Outfit7. I test My Talking Tom almost every day and I’m also a keen Apple user, so I was thrilled when I got the opportunity to help rebuild the game for the Apple Arcade store!

Here’s how it all went down…

What’s this all about?

The original My Talking Tom is a tamagotchi game. Users get their own kitten to feed, bathe, dress and play with. In addition to caring for the kitten (that eventually grows into a cat), the game also includes other fun activities like mini games, a clicker game, and the chance to travel around the globe. Monetisation is based on ads, which can be removed with any in-app purchase.

Apple Arcade is a subscription gaming service with more than 200 games on offer. With no ads, no in-app purchases and no additional costs, it’s all about the premium user experience.

Outfit7 got the chance to enter Apple Arcade’s “App Store Greats” category with our legendary app, My Talking Tom. We knew this would be a great way to expand and reach more users, so we jumped at the opportunity.

We renamed My Talking Tom to My Talking Tom+ (MTT+), and so our journey began. Loads of changes needed to be made to the original app in order for it to be suitable for Apple Arcade, including:

  • removal of in-app purchases
  • removal of ads
  • adaptation of monetization
  • removal of data collection, third-party SDK, analytics, etc.
  • removal of video gallery
  • adaptation of graphics
  • implementation of game restore with iCloud
  • implementation of “multi-device” functionality
  • modification of certain game features
  • plus, the app needed to be fully playable offline

This called for a lot of technical adjustments! We had two main goals: to keep game content as intact as possible, and to make sure users would get the same amazing experience as on other platforms. With this in mind, we got to work.

This post will fill you in on some of the most interesting changes we implemented over the course of the project.

The big removal

Our first job was the removal of in-app purchases and ads. Since we already had a presence on subscription-based services like Bemobi and Gameloft, this was a familiar challenge. In our original game, users earn currencies (coins and diamonds) through gameplay, in-app purchases, and by watching ads. But in MTT+, users automatically receive currency periodically, replacing ads and in-app purchases as the source. The amount provided is enough to allow users to progress through the game at a good pace, but limited enough for them not to lose interest.

We also had to modify the game to suit guidelines that forbid developers from collecting user data, using third-party SDKs, or anything similar. This was challenging and, in the end, we opted to remove the backend from MTT+ entirely.

It’s no secret that My Talking Tom, like many other games, depends heavily on it, so we had to tackle this issue with a lot of hardcoding and modifications. For example, in our clicker game, instead of removing the previously backend-configured feature that includes tapping on a little robot figure to get a reward (which required ad-watching), we implemented a hardcoded clicker game generator that periodically generates different reskins to keep the user entertained.

Users can now earn rewards from the roulette wheel without ever watching an ad.

A brand new cloud restore

In My Talking Tom we had a custom backend solution for storing users current progress (AKA “user state”). This way, we could offer users the option to continue (restore) their game where they left off, in case they reinstalled the game. But, since we didn’t want our app to rely on backend infrastructure, and the restore option was a must for Apple Arcade, we knew it was time to move the feature of restoring user state to Apple’s native iCloud.

Our newer apps are already using the iCloud option to store user data by default, but since the old My Talking Tom app dates back to 2013, it didn’t. We took this opportunity to finally implement it.

Playing on multiple devices

Another premium feature of Apple Arcade games is the ability to play the same game on multiple devices. You can play your favorite game on your iPhone in the morning and continue playing (with your progress saved) on your iPad in the evening. The iCloud restore allows for this functionality. But for an app that didn’t have cloud restore in place, this was quite a technical challenge.

First, we had to define our desired behavior. When did we want to restore the previous state? How could we make it clear to the user what they are choosing? How did we want to solve conflicts?

After a lot of discussion and experimentation, we found a reasonable way to implement the “playing on multiple devices” functionality:

The user has a “local user” state, which can differ from their “cloud user” state. If they are only playing on one device, these two states are the same. If they are playing on different devices, these two user states can differ.

When playing MTT+, the user collects experience points (XP) that result in reaching new levels; and we decided to use this metric to determine the “better” user state (i.e. the one with a higher XP) as the state that user will want to keep.

This means that with every new playing session, we check whether or not cloud state has the higher XP. If the cloud state has a lower XP, it gets overridden by the local state. The user doesn’t receive any dialogues and continues the game uninterrupted. But if the cloud state has a higher XP, the user gets a “restore” pop-up, which allows them either to continue the current game (local save) or restore from the cloud.

Here you can see the new “restore” dialogue. The user gets an offer to load the game from the cloud (upper choice, higher XP/level, more probable) or to continue the local game (below, lower XP/level, less probable). The chosen game then overrides the local and cloud states and the user can continue where they left off.

We added lots of info to the restore screen to make sure the user knows exactly which game they’re choosing. They can see Tom’s user-created name, the level, currencies (diamonds and coins), time and date last played, as well as the device name.

This way, users are able to make an informed decision about which progress they wish to keep.

Testing, testing, testing

After adding the cloud restore and multi-device functionalities, it was time for some serious testing, covering every possible user action (both expected and unexpected).

Because the multi-device functionality needed the most attention, we organized a group testing session with quality engineers and developers in order to catch all possible bugs. Even the preparation for this session took some time, since we needed two devices per person, each logged in with a unique Apple ID, to ensure that we were mimicking user behavior.

We also tested how cloud restore functionality worked if the same Apple ID was logged in and playing two devices simultaneously (as might be the case with two persons from the same family). We didn’t want the restore dialogue popping up constantly in such situations so we needed to verify that the implementation withholds this scenario. We even tried switching between three devices, even though this case is close to non-existent in real life. We were switching between offline and online gameplay, switching between devices while doing this and several other testing acrobatics.

The implementation proved to be very robust and in the end we were really happy with our work. We made the whole game restoring process in a way that worked for our users and also makes sense development-wise.

Tom’s new favorite color: red

Like any app in the Apple Arcade store, we had to include the Apple Arcade splash video at app launch. This was a bigger challenge than it seems since we already have a loading screen and other screens that show at the launch. It would have looked too crowded to just add the splash video, so we removed our own loading screen to make space for it. Here’s what the new flow looks like:

Last but not least, we had to make some changes to our app icon. Normally, we don’t use such intense colors for MTT (we stick with shades of blue and green). But, as you can see, the MTT+ icon is pretty bright. And it actually looks quite refreshing!

A last word

All in all, it was a very interesting challenge to remake My Talking Tom and find creative ways to work with old features. We’re excited to see how Apple Arcade users enjoy our classic game in a new, tailored, premium experience.

What’s your experience of Apple Arcade? Feel free to share your thoughts in the comments!

--

--

The inside scoop on development, engineering & tech innovation @ Outfit7.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Irena Rojko

A quality engineer, passionate about gaming, traveling and team work. I love good jokes (but also lame jokes) and having fun in any given situation.