Pokémania Pokémon-themed bubble blast iOS game application.
TECHNOLOGY
BUILD
Swift
Foundation
UIKit
XCTest
TOOLS
XCode
SwiftLint
Cocoapods
PLATFORMS
iOS
ABOUT
DESCRIPTION
Pokémania is an individual project for NUS module CS3217. It's a Pokémon-themed bubble blast game built from scratch without external dependencies, GameKit, or SpriteKit. The project only involves UIKit and Foundation. I wrote my own simple game and physics library to be importable through Cocoapods.
MOTIVATION
The objectives of this project include learning how to write and publish pods, as well as to design and write modular iOS game application using the Model-View-Controller design pattern.
CHALLENGES
This project was challenging due to the unavailability of external dependencies and the 3 weeks time limit imposed. It was also my first native iOS development experience.
DESIGN
ARCHITECTURE
This project was designed using the Model View Controller pattern. Controllers and Views are connected through Delegates and shared behaviours of bubbles across different effects are handled using inheritance and sub-class substitutivity.
FEATURES
SCORE SYSTEM & EFFECTS
Pokémania has a combo score system that rewards different point multipliers based on the types of bubbles blasted. On top of the score system, different types of bubbles may have type-based or area-of-effect behaviours, allowing you to strategise your play. The bubble types include magnet, explosive, lightning, bonus, elemental and multi-elemental. This video showcases the effect of magnetic bubbles.
STAGE BUILDER
A stage builder is available for you to design unique stages on top of default levels. These stages can then be saved, played, as well as removed.
TIMED STAGES
Stages are timed to make the gameplay more thrilling.
HOLD & AIM
You can tap to launch bubbles, or hold and swivel to aim.
PAUSE & RESUME
You also have the option to pause and resume game sessions.