GridRun is a strategy based game where two players play against each other. There are two types of players: Runners and Seekers.
Runner's goal is to escape the maze. Maps usually have a couple of exits and reaching one of them is enough to escape the grid. Runner has to be always vigilant as they are always tailed by Seeker, who are trying to find and capture the Runner. If Runner successfully exits the maze, they win.
Seeker's goal is to capture Runner. Chasing down Runner is not easy, but if Seeker manages to open up a tile that Runner has used, then Seeker gets information on Runner's move on that particular tile. Constructing the overall way of Runner allows Seeker to tail and capture Runner before they escape.
- iOS 15.0 and higher
- App Store Link: https://apps.apple.com/app/gridrun-runner-v-seeker/id6450959111
- Multiplayer Game
- Unranked and Competitive Plays
- Custom Game Rooms
- Account Management
- Account Creation and Login.
- Local Notifications and Support for Remote.
- Customization (soon)
- Tutorial (soon)
- Playing against AI (soon)
Implemented using native iOS development.
Architecture used for the project is a 4 layered architecture. Layers are:
- Business Logic Layer
- UI Layer
- Network Layer
- Storage Layer
SOLID principles were used.
Gaming sessions were implemente using Ably Realtime Service. Subscribing and publishing to channels allows for uninterrupted conversation between two players. Standart NSNotifications were used to handle edge case updates from realtime service, for example: sudden resigns, game configuration changes - to name a few.
Network Layer was implemented using core URLSession and Tasks.
Completely programmable UI. UIKit was used as a UI framework. Custom UI classes were built for reusability and maintanability. Design itself was prototyped in Figma.
iOS version created by Imran Hajiyev. All rights reserved 2023 GridRun.
- Official Website: https://gridrun.live
- Privacy Policy: https://gridrun.live/privacy-policy
Reach me here or submit offical form at https://gridrun.live/contact-us