The MMM game was originally created in Obj-C and SpriteKit and was generated using a tutorial for a candy crush clone. It made sense at the time because it was tile based and MMM is tile based. I was wrong.
The code base was a mess and only noticed it when tried to extend the functionality and it was a complete pain.
Lesson learned: Tutorials are great, but design your own architecture for your specific needs.
Not all was lost, since I get a better understanding on SpriteKit, and some code could be reused.
After finally unplugged the old code and left it to die. I decided to take my chances at Swift instead of Obj-C. I am using SpriteKit, which is only supported in iOS 7+. Changing to Swift gives me the opportunity to update to new technologies and also embrace the change.
One week later I finally feel like I am been productive again. So much type casting is still a mess in Swift, but you learn to live with it.
The current version can:
- Collide between animals or board objects
- Change between active animals by tapping on them
- Move using swipes
- Mammoth can move rocks
- Holes act as barriers
Here is the current build with a screenshot from the simulator:
It runs weirdly slow in the simulator, but in a ipad mini retina it can run at 60fps without trouble.