Yevhenii Kolesnyk

DevOps Engineer

System Engineer

Computer engineer

Software developer

Web developer

Yevhenii Kolesnyk

DevOps Engineer

System Engineer

Computer engineer

Software developer

Web developer

Blog Post

Building ViperGrid — Cross-Platform Arcade Snake Game for iOS and Android

April 19, 2026 Development, Games, Mobile Apps

ViperGrid is a cross-platform arcade snake game I developed for iOS and Android.

The game takes the familiar snake formula and expands it with a modern mobile presentation, responsive swipe controls, collectible loot, an inventory system, unlockable skins, mystery gifts, saved progress, sound settings, and optional rewarded ads.

The goal of this project was to build a simple and recognizable arcade game that feels easy to start, but still gives players reasons to continue playing through rewards, progression, customization, and high-score chasing.

Project Details

Role: Owner / Mobile Game Developer
Platforms: iOS and Android
Game Type: Arcade Snake Game
iOS Stack: SwiftUI, Swift, UserDefaults, AVFoundation, AdMob
Android Stack: Kotlin, Jetpack Compose, SharedPreferences, Google Mobile Ads, UMP
Focus: Cross-platform game development, arcade gameplay, inventory, shop, monetization, publishing
App Store: https://apps.apple.com/en/app/vipergrid/id6762260836
Google Play: https://play.google.com/store/apps/details?id=com.relaxgames.vipergrid

What I Developed

I designed and developed ViperGrid as a complete mobile game for both iOS and Android.

The core gameplay is based on classic snake mechanics: the player swipes to control the snake, collects food, grows longer, avoids collisions, and tries to beat the best score. Around this familiar foundation, I added extra progression systems to make each session feel more rewarding.

The game includes collectible items, coin rewards, an inventory, a shop, unlockable skins, mystery gifts, saved progress, sound feedback, and rewarded ads for optional bonus coins.

Gameplay Design

ViperGrid is designed for quick mobile sessions.

The player can start a run immediately, control the snake with simple swipes, collect food to increase the score, and pick up temporary collectibles that appear during gameplay. These collectibles add more variety to each run and give the player more than one reason to continue: score, loot, coins, skins, and progress.

The challenge stays close to classic snake design. The player needs to react quickly, plan movement, avoid walls, avoid the snake body, and keep control as the snake grows longer.

The result is a game that feels familiar, but has a stronger modern mobile structure.

Cross-Platform Development

One of the most important parts of this project was building ViperGrid for both major mobile platforms.

For iOS, I developed the app using SwiftUI and Swift. The iOS version includes the game logic, UI screens, local progress storage, sound system, rewarded ads, and App Store-ready configuration.

For Android, I developed the app using Kotlin and Jetpack Compose. The Android version includes the same main game flow: menu, game screen, inventory, shop, options, reward ads, persistent progress, and package configuration for Google Play.

The project required keeping the gameplay concept consistent across platforms while adapting the implementation to each ecosystem.

Core Game Systems

The game contains several connected systems:

  • Classic snake movement with swipe controls
  • Food collection and score growth
  • Best score tracking
  • Temporary collectibles during gameplay
  • Inventory for collected items
  • Coin balance and in-game economy
  • Selling collected items for coins
  • Skin shop with permanent unlocks
  • Selected skin persistence
  • Mystery gift purchase and reveal flow
  • Saved progress between sessions
  • Sound settings
  • Optional rewarded ads for bonus coins

These systems make ViperGrid more than a minimal snake clone. The game has a small but complete progression loop where gameplay, rewards, customization, and persistence work together.

Inventory and Economy

I implemented an inventory system where collectible items can be stored after gameplay.

Players can collect items such as apples, hearts, clovers, stars, and gems. These items can then be sold for coins. Coins are used inside the shop to unlock new snake skins or buy mystery gifts.

This creates a simple in-game economy:

Play runs → collect items → sell loot → earn coins → unlock skins or gifts.

The economy gives value to short sessions, because even a run that does not beat the best score can still contribute to long-term progress.

Skin Shop and Customization

ViperGrid includes multiple snake skins with permanent unlocks.

The player can unlock and switch between different styles, such as Classic, Ember, Ocean, Neon, Royal, and Gold. Each skin gives the game a stronger sense of personalization and gives players a reason to keep collecting coins.

The shop system was designed to be simple, understandable, and persistent. Once a skin is purchased, it remains unlocked and can be selected again later.

Mystery Gifts

I added a mystery gift system to make rewards more interesting.

Players can spend coins on a gift, reveal it, and receive a random reward. This reward can be coins or collectible items. The gift system adds a small surprise mechanic without making the core gameplay complicated.

It also gives players another meaningful way to use coins besides buying skins.

Monetization

ViperGrid includes optional rewarded ads.

The rewarded ad flow is used for bonus coins and is designed as an optional action rather than a forced interruption. This keeps the core arcade experience clean while still supporting mobile monetization.

On Android, the project includes Google Mobile Ads integration and UMP consent handling. On iOS, the project includes AdMob rewarded ads and a no-tracking configuration for the submitted App Store build.

Sound and Feedback

I implemented lightweight sound feedback for key gameplay events such as starting the game, eating food, pausing, button actions, and game over.

These small feedback details help the game feel more responsive and give the player clearer action confirmation during quick sessions.

Technical Challenges

The main challenge was building a complete game loop that feels simple to the player but still supports several connected systems behind the scenes.

The game needs to manage movement, collision detection, food placement, collectible spawning, temporary item expiration, score tracking, persistent inventory, coin balance, skin ownership, selected skin state, mystery gifts, rewarded ads, sound, and settings.

Another challenge was maintaining the same product idea across iOS and Android while using different native stacks: SwiftUI on iOS and Jetpack Compose on Android.

Result

ViperGrid became a complete cross-platform mobile arcade game with classic snake gameplay, modern UI, saved progress, inventory, economy, shop, skins, mystery gifts, rewarded ads, and store-ready releases for both iOS and Android.

This project reflects my experience in mobile game development, cross-platform product delivery, SwiftUI, Kotlin, Jetpack Compose, game logic, local persistence, monetization, UI design, and publishing mobile applications to App Store and Google Play.

View on App Store: https://apps.apple.com/en/app/vipergrid/id6762260836
View on Google Play: https://play.google.com/store/apps/details?id=com.relaxgames.vipergrid

Taggs: