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.