Group Group Group Group Group Group Group Group Group Forums

Video Tutorial: How to Make a Game Like Flappy Bird in Swift: Series Introduction

Find out what's covered in our How to Make a Game Like Flappy Bird in Swift video tutorial series.

This is a companion discussion topic for the original entry at

Dear Tammy,

Thank you for the great effort you put in these tutorial series. It is extremely useful. However after I downloaded the updated version of xcode (7.3.1) current tutorial gives some errors. Wondering if you are going to be posting an update for the related issues?

Thanks so much…

You’re welcome.

Yes, the series code will be updated. Thanks for letting me know.

Hi Tammy,

When I converted to Swift 3, I resolved all post-conversion errors
except one! In SpriteComponent.swift the ‘var entity : GKEntity!’ is
causing all sort of errors, as ‘entity’ is now a property with type
GKEntity? Please review and advise, thank you heaps in advance.

import SpriteKit
import GameplayKit

class EntityNode: SKSpriteNode {

weak var entity: GKEntity! // GKEntity! --> This causes Swift 3 error

Hi Tammy,

Can you have a look at updating the supporting resources. In particular the SKTUtils - some errors around ‘dispatch_block_t’ that aren’t being resolved properly when updating to Swift 3.


Thanks for the help, Tammy. Any chance this tutorial will get updated for Swift 3?

I implemented the scene switching code shown here and there is some sort of rounding error I guess. Sure it works perfects the first time around, but as you loop around and around the scenes gradually overlap on on side and grow further apart on the other.

@alico7 @mazen_kilani @landahoy55 @dk101 The course has been updated for Swift 3 in the meantime. I hope it helps!

@paradox927 Can you please help with this when you get a chance? Thank you - much appreciated! :]


Spent all afternoon re-implementing this code using SKCamera; a challenge. When it was said and done I watched it do the same thing… as in the SpriteKit positions slowly degraded and over/underlapped. I have tonight abandon that build and returned to the simpler version presented here. Maybe take a second look tomorrow.


Embarrassing but true; I was dynamically creating the scrolling background images, but my backgrounds were slightly different sizes, so 2042.9107666015625 vs 2043.383544921875 for example. Since I was using this size to position the sprite node the error crept in slowly getting bigger and bigger as I scrolled. Changed the code so that the positioning is linked to the screen size and not the texture; now it looks like it is working!!