Getting Ready for the Play Store

A localised logo, realistic snowfall, store graphics rendered from the game itself, crystal packs named by size instead of amount, Google Play Billing, and buttons that grow instead of texts that shrink.

Two days of work that players mostly see before they even install the game: the splash screen, store graphics, and the crystal packs.

A logo in every language

The splash screen got a new painted illustration and a modern logo drawn as vector text on top of it: white heavy letters, a thin navy outline and two red accent strokes in the colour of the gondolas. Because it is text, not an image, it is translated: "Skigebiet Imperium" in German, "Ski Resort Empire" in English. The first version showed the English name in German too, which was the first bug report of the day.

The snowfall became more realistic: flakes now have depth. Far flakes are small, faint and slow; near ones are big, soft and fast, and all of them drift in a wind that changes slowly. The same snow engine runs in the header, the story scenes and the unlock screens.

Store graphics from the game itself

The Play Store needs a feature graphic and phone screenshots. Instead of designing them in an image editor, they are rendered from the running game: a script drives the browser version into prepared situations, takes screenshots and puts them on a background with a headline. When the game changes, the screenshots can be regenerated in every language. Later a script was added that uploads listing texts and screenshots through the Play Developer API.

Crystal packs named by size

In Google Play, a product id is permanent. If a pack is called crystals_100 and you later decide it should contain 120 crystals, you have a misleading id forever. So the packs are named by size: a handful, a pouch and a chest of snow crystals. The amount inside can change freely; the name stays true.

The pack shop became a calm list with a painted icon, the name, the amount and the price button. One pack (an "avalanche") was dropped before release, and its id is noted as retired so it is never reused. The first painted pack icons contained coins, which made no sense for a crystal pack, and some had green badges that fought with the rest of the colours; both were fixed.

Google Play Billing

Crystal packs are consumable purchases. The order of operations matters more than anything else:

  1. The player pays.
  2. The game credits the crystals and saves immediately.
  3. Only then does it tell Google the purchase is consumed.

If the app crashes between steps, the purchase is still open at Google and is delivered again on the next start. Every purchase token is remembered, so nothing is credited twice. Before the first real-money purchase, the game also warns that the save is stored on this device only (this was before cloud saves existed).

Small numbers, big difference

Two tuning changes from these days:

Buttons that grow

The last change was a rule I wish I had made earlier: never shorten a translation to fit a button. German words are long, and Italian and French were coming. All buttons became about 15–20 % taller and allow two lines of text. If a translation is longer, the button grows. A game that looks slightly roomier is much better than a game that cuts words in half.

releasegoogle playin-app purchaseslocalisation

Try the game

Ski Resort Empire is free to play in the browser and on Android.