Contents

Key takeaways

  • A complete rebuild in Unity, shipped as an update: same identifiers, same signing key.
  • Progress from the React Native version is read back from AsyncStorage (iOS files, Android SQLite).
  • Cell-by-cell simulation in pure, tested C#, with a smooth display and arc-shaped turns.
  • Online duels where each phone judges its own death and the host referees the rounds.
  • Apple rejection 5.1.1(iv) fixed by reordering the consent prompts.

Snake Survival is SunderDev’s first game, published on the App Store and Google Play. Version 2 rebuilds it from scratch in Unity: six 3D worlds, sixty challenges, twenty-four game modes, online duels and eighty skins. The challenge was not just to remake the game, but to ship it as a plain update, carrying over the players’ progress.

What Snake Survival does, and who it is for

The rules are those of the Snake everyone knows: eat, grow, don’t bite your own tail. The game keeps them exact and turns them into many ways to play, for short sessions on a phone.

On the home screen, a real game plays itself behind the menu, with the player’s skin. From there, you start a classic game, Survival, the daily challenge or a duel, and collect a gift every four hours.

Snake Survival home screen: the arena runs behind the menuSurvival in the Volcano with the “Gold rush” disasterMeteor shower in the Cosmos world
The home screen, Survival in the Volcano and the meteor shower in the Cosmos.

Features

  • Survival: every twenty seconds, a disaster (meteor shower, lasers, bombs, pitch dark, rivals, hunter, closing arena, gold rush…), more and more intense.
  • 60 challenges in 6 worlds: Jungle, Temple, Ice, Volcano, Neon and Cosmos, with one to three stars depending on time, and skins and modes unlocked along the way.
  • 24 modes, from Classic to No walls: Mirror, Reverse, Invisible, Spin, Scared apples, Portals, Shrinking arena, Twins…
  • Duels, best of three rounds: online against another player, against a friend with a code, or against the AI on five levels.
  • 80 skins, each with its own pattern, head, trail and sound effect.
  • Daily challenge: two crazy modes drawn at random each day, the same for every player.
  • In-game power-ups: magnet, shield, slow motion, ghost that passes through its own body and double points.
  • Choice of controls: swipe anywhere on the screen, an L-shaped gesture for two turns, or tap on one side of the head.
  • Eleven languages, a star chest for every ten stars earned, and a statistics screen.

A rebuild shipped as an update

The first version of Snake Survival was an Expo / React Native app, already live. Version 2 is an entirely new Unity project, but it keeps the same identifiers and the same signing key: for the stores and for players alike, it is an update.

That left progress. The old version stored everything with AsyncStorage, React Native’s storage, which Unity cannot read. On the first launch of the update, the game therefore looks for the old save where React Native left it:

  • on iPhone, in a JSON manifest file: the value sits there directly if it is short, otherwise in a neighbouring file named after the MD5 hash of the key;
  • on Android, in a SQLite database.

Players get back their coins, lives, purchased skins and equipped skin, records and settings. The twelve skins of the first version keep their identifiers so they are recognised.

An exact Snake that still feels smooth in 3D

Classic Snake moves cell by cell; a 3D game still has to feel smooth. Snake Survival separates the two:

  • the full simulation (snakes, food, power-ups, hazards, waves, bots, goals) is written in pure C#, without Unity, and tested separately, including with random games using every modifier;
  • the display interpolates between two cells and rounds turns into arcs: the direction of the next step is decided at mid-cell, which leaves time to draw the turn without a jolt;
  • the body is a smooth tube rebuilt every frame, tapering towards the tail and bulging where an apple is swallowed; the skin pattern stays glued to the body.

The controls needed the same care. The gesture reader forgives the slight drift of a stroke that is not quite straight, recognises an L-shaped gesture as two turns, and catches a gesture that arrives a fraction of a second too late: if the head has just left a cell, the turn starts from the cell it left, as if the finger had been on time.

Modes and challenges are described in a configuration file. A mode only states what changes from the base rules (board size, obstacles, speed, hazards, goal): adding a crazy mode or a challenge means adding an entry, and tests check that every challenge plays without errors.

List of crazy modes: Original Snake, Turbo, Frenzy, MinefieldMap of the 60 challenges, from the Jungle world to the CosmosPortals mode in the Neon city
The crazy modes, the map of 60 challenges and Portals mode in the Neon world.

Online duels: who decides what

In a duel, two phones must show the same game even though messages take time to arrive. The chosen rule is simple: each phone is the sole master of its own snake, sends it to the other several times per second and judges its own death. The host, who created the match, decides the apples, the start of each round and its result.

  • each player sees their snake at the bottom: everything coming from the other phone is rotated half a turn before use;
  • two deaths less than a quarter of a second apart count as simultaneous, because the other phone’s message may lag; a head-on collision is a draw, even if the other phone has not seen it yet;
  • with no opponent after a minute, the game offers to play against the AI, whose five levels are tuned by error rate, how far ahead it looks and aggressiveness;
  • matchmaking runs on Unity Gaming Services (lobby and relay), with no server to manage; if two players open a quick match at the same moment, the more recent one joins the other.
Duel against the AI, best of three roundsSkin terrarium with the legendary Red Dragon
A duel against the AI and the skin terrarium.

Publishing, ads and remote settings

  • In-app purchase of survival lives with RevenueCat, and Google AdMob ads with Google’s consent form.
  • Apple review: version 2.4.0 was rejected under guideline 5.1.1(iv). The fix: Apple’s tracking permission is now requested before Google’s form; if refused, no form, non-personalised ads and no advertising data.
  • Game Center and Google Play Games linked to the player’s anonymous account.
  • Remotely corrected settings with Unity Remote Config (balancing, skins, translations), checked against the same rules as the tests before being applied.
  • Eleven languages: for Japanese and Korean, fonts are trimmed to common characters and loaded only for the language on screen.

Tech stack

The game is built with Unity 6.5 (URP) and C#, with a UI Toolkit interface and custom shaders (stylised lighting, skin patterns, fog). The snake and scenery meshes are generated by code. Online services run on Unity Gaming Services; on top of that come RevenueCat, Google AdMob and Google Analytics for Firebase. Automated tests cover the simulation, duel rules, configuration and translations.

What this project shows

Snake Survival was designed and built end to end by Ahmed: game design, Unity game, online duels, shop, carrying over version 1 progress, and publishing on the stores. The project shows how to evolve an already published app without making players start over: same identifiers, same key, progress carried over, and fixes delivered remotely.

Do you have an app to rebuild without losing your users, or a game to launch? Get in touch. The video and every screen of the game are on the Snake Survival page.

Frequently asked questions

Did players of the first version lose their progress?

No, that is the point of the carry-over: on the first launch of the update, the game reads the old save on the same phone and restores coins, lives, skins, records and settings.

Does the game work offline?

Yes. Only online duels, purchases and VIP codes need an internet connection; everything else plays offline.

Where can I download Snake Survival?

On the App Store and Google Play. The links are on the game page, /projets/snake-survival.