Skip to main contentSkip to case study detailsSkip to contact
Ocean View Games
From Unity 2019 to Unity 6 in a Week

From Unity 2019 to Unity 6 in a Week

Bringing Foil Hat Games' live puzzle game up to current Google Play and App Store requirements, with a lighter build and longer battery life along the way.

Summary

The challenge
Without an update, Nova Blast could no longer be submitted to Google Play or the App Store, and the project was still on Unity 2019.
What we did
In one week David upgraded the game straight to Unity 6, migrated its ads and in-app purchases to current packages, and added haptics and tablet support.
The result
Store-ready again, with the download cut from 187MB to 137MB and a frame rate that drops to 30fps when idle to save battery.
Foil Hat Games came back to us with a familiar problem for a live mobile game. Nova Blast, which we had previously modernised and ported to Android, needed updating to meet Google Play's current target application programming interface (API) level and Apple's minimum software development kit (SDK) requirements. Without the update, the game could no longer be submitted to either store. The project was still on Unity 2019. We moved it straight to Unity 6, which offered the best compatibility with current store requirements and was the most cost-effective option for the client: one upgrade rather than a series of intermediate ones, onto a version that will meet store requirements for longer. David Edgecombe completed the work in a week. Alongside the upgrade, we migrated the legacy Unity Ads and Unity In-App Purchasing (IAP) integrations to their current packages, fixed obsolete and deprecated code paths, added haptic feedback and tablet support, and made a set of smaller gameplay improvements. We also used the opportunity to cut the download by around 50MB and make the game kinder to battery life.
The starting point and completed work for the Nova Blast Unity 6 update
AreaBeforeAfter the update
EngineUnity 2019Unity 6
Ads and IAPLegacy Unity Ads and Unity IAPCurrent Unity Ads and Unity IAP packages
Download size187MB137MB
Level map scene file218MB6.8MB
Particle systems on the level map1,5001
Frame rate when idle60fps at all times30fps after 2 seconds without input or animation
iOS texture compressionPVRTCASTC
Player featuresNo haptics or tablet layoutHaptic feedback and tablet support
Meeting Store Requirements

The update had to leave Nova Blast submittable to both stores, with its monetisation working as before. That meant the engine, the SDKs and the code that depended on them.

Unity 2019 to Unity 6

Unity 2019 to Unity 6

We upgraded the project directly to Unity 6, raising the minimum supported versions to Android 7 and iOS 13 in line with current requirements. The Android build now targets API level 37.

Unity Ads and IAP Migration

Unity Ads and IAP Migration

The legacy Unity Ads and Unity IAP integrations were migrated to the current packages, keeping the game's adverts and in-app purchases working on both stores.

Obsolete and Deprecated Code

Obsolete and Deprecated Code

We fixed a number of code paths that relied on obsolete or deprecated APIs, so the project compiles cleanly on Unity 6 rather than carrying warnings into its next update.

Cutting Build Weight

The download went from 187MB to 137MB, and most of that saving came from one scene. The level map had been storing far more than it needed to.

Level Map: 218MB to 6.8MB

Level Map: 218MB to 6.8MB

The map's 250 level buttons, each carrying six particle systems, were saved in the scene. They are now created from a prefab when the map loads, and only the current level gets a particle marker, taking the scene file from 218MB to 6.8MB.

Texture Compression

Texture Compression

iOS textures moved from PVRTC to ASTC, and the sprite atlases gained compressed platform overrides with a maximum size of 2048.

Unused Code Removed

Unused Code Removed

We removed six unused packages, a leftover memory profiler folder and dead scripts, turned on code stripping, and limited Android to a single graphics API to reduce shader variants.

Longer Battery Life

A puzzle game spends much of its time waiting for the player's next move, or on menus between levels. The game no longer works at full speed when nothing on screen is changing.

Adaptive Frame Rate

Adaptive Frame Rate

The game runs at 60fps while the player is touching the screen or something is animating, then drops to 30fps after two seconds of idle. This is where most of the battery saving comes from.

Less Work Every Frame

Less Work Every Frame

The 1,500 particle systems on the level map are down to one. Empty Update methods are gone, the collectable glow stops updating once it fades, and the camera only refits when the screen changes.

Android Frame Pacing

Android Frame Pacing

We enabled Android frame pacing for smoother, more consistent frame delivery, and switched off the accelerometer the game never used.

Improvements for Players

The client also took the opportunity to improve the game itself while it was open on the workbench.

Haptic Feedback

Haptic Feedback

We added haptic feedback to the gameplay, so players on supported devices feel the action as well as see it.

Tablet Support

Tablet Support

Nova Blast now supports tablets as well as phones, opening it up to players on larger screens.

Gameplay Polish

Gameplay Polish

We made a set of smaller gameplay and quality of life improvements requested by Foil Hat Games.

The Results

Store-Ready in a Week

Nova Blast moved from Unity 2019 to Unity 6 and met the current Google Play and App Store requirements, with its adverts and in-app purchases migrated to current packages.

Download Cut by 50MB

Building the level map at load time took its scene file from 218MB to 6.8MB and replaced 1,500 particle systems with one. With the texture compression and code stripping changes, the download went from 187MB to 137MB.

Kinder to Batteries

Halving the frame rate when the game is idle, and trimming the work done every frame, reduces how hard the device works between moments of play.

What the Client Said

“Awesome job! I really look forward to working with the guys again very soon!”

Jacob Behunin

Chief Creative Officer, Foil Hat Games

Meet the store deadline on your older Unity game

Tell us which Unity version your game is on, which stores it is published to and when the deadline falls.

Send your deadline