Flappy Bird Clone - The Complete SFML C++ Game Course
4.3 (45 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,839 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Flappy Bird Clone - The Complete SFML C++ Game Course to your Wishlist.

Add to Wishlist

Flappy Bird Clone - The Complete SFML C++ Game Course

Game Programming Course To End All Courses
4.3 (45 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
8,839 students enrolled
Created by Frahaan Hussain
Last updated 6/2017
English [Auto-generated]
Current price: $12 Original price: $20 Discount: 40% off
4 days left at this price!
30-Day Money-Back Guarantee
  • 5.5 hours on-demand video
  • 3 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Use C++ To Make A Game
  • Create A Multi Device Game
  • Create A Cross Platform Game
  • Use The SFML framework To Make A Game
  • Understand Game Logic
  • Create An Extendable Game Engine
  • Understand Flappy Bird Game Mechanics
  • Understand How To Create An Adaptable Game Template
View Curriculum
  • C++ Programming
  • SFML
  • Coding
  • Game Development (optional)
  • Flappy Bird Game Logic (optional)

Learn how to make cross platform games using the immensely successful and addictive Flappy Bird as an example. A step by step process is used to show everything from project setup to essential game design technique

Gain a good understanding of the following concepts:

  1. C++ Game Programming
  2. Video Game Logic
  3. SFML Game Programming
  4. Game Mechanics

SFML is one of the easiest game frameworks in the world and will provide you with a solid foundation for your game development journey. The gaming industry is bigger than Hollywood and is constantly growing, start your journey now.

You will be provided with the full source code to aid in development during and after this course. The source code and artwork is free to use in as many projects as you wish.

Who is the target audience?
  • Suited for C++ Developers
  • Suited for Budding Game Developers
  • Fan of Flappy Bird
  • Love Video Games & Relish The Prospect Of Making A Game
Compare to Other Flappy Bird Clone Courses
Curriculum For This Course
36 Lectures
1 Lecture 02:13

Welcome to the Flappy Bird SFML C++ Game Development course.

Preview 02:13
2 Lectures 00:28
Great Articles

Psychological Techniques Employed By Flappy Bird
Project Creation & Setup
2 Lectures 24:55

In this video we will cover the following


  • Windows Visual Studio project setup
  • Resources
Setup Project - Windows (Visual Studio)

In this video we will cover the following


  • Mac Xcode project setup
  • Resources
Setup Project - Mac OS X (Xcode)
Game Engine Setup
4 Lectures 47:34

We will create the state machine which will allow our game to manage different game states/screens from Main Menu to Game to Pause state

Great links to learn more about State Machines:

  • http://gameprogrammingpatterns.com/state.html
  • https://www.gamedev.net/resources/_/technical/game-programming/state-machines-in-games-r2982
  • https://gamedevelopment.tutsplus.com/tutorials/finite-state-machines-theory-and-implementation--gamedev-11867
State Machine

We will create an asset manager to handle the loading and retrieval of various types of assets including the following

  • Textures
  • Fonts
Asset Manager

We will cover implementing an input manager to handle all of our input needs. It will be extendable allowing you to implement more and complex input methods for your future games.

Input Manager

We will implement the main game loop that will handle all of our game from input to asset management to state handling.

Game Loop
State Creation
4 Lectures 43:45

We will now implement the Splash State that allows us to add our very own logo

Preview 17:24

We will now implement the Main Menu State that allows us to  navigate to the Game State and displays the game name/logo.

Main Menu State

We will now implement the Game State that will contain our main game logic and game elements.

Game State

We will now implement the Game Over State that will appear when the player wins or loses.

Game Over State
Game Logic
14 Lectures 02:31:20

We will now create our Pipe class which will serve as the foundation for spawning and moving pipes.

Pipe Class Setup

Now we will spawn pipes that move from the right to the left of our game window.

Preview 10:54

Lets spawn pipes automatically and delete them when they move off screen.

Automatically Spawning Pipes and Deleting Them

Pipes are awesome but we need some ground/land to compliment them, also they need to move :D

Create Moving Ground

Lets liven the game up by randomising the Y position of the pipes to add some difficulty to this game.

Randomise Pipe Y Position

Awesome we have pipes and land. Now lets create the basics for our Bird Class which will allow us to create a moving, animating bird.

Bird Class Setup

The bird is boring, lets make it come to life using animation :D

Preview 07:58

We will now make our bird fly.

Fly Bird Fly

Let's make our bird rotate to look down when it's falling and rotate to look up when it's flying.

Rotate Bird

Without collision we have a very easy game, so lets implement collision detection with the ground and a game state system for the different gameplay states.

Collision With The Ground & Game State System

We have collision with the ground, lets extend it to support collision with the moving pipes arrrgggghhhhhhhhh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Collision With The Pipes

Dying is not fun. So lets rub it in the players face with a flash of light :D

Flash Screen White Upon Death

Games are no fun without scoring, so lets add a scoring system.

Scoring System

The player needs to be able to see their score as they are playing so lets implement it.

Displaying The Score
Game Over
4 Lectures 39:03

We have a fully functioning game. Lets extend it with a game over screen to display some extra data.


We will now display the players pitiful score on the game over.

Display Score

It isn't fun if we lose our score when the app is shut down, Flappy Bird is hard as it is. So lets save our scores.

Saving Score

Shiny things are awesome, lets give the player some medals for their hard work.

5 Lectures 19:26

We will add audio to engage the player even more.

Sound Effects

Extra Task - Music

The command prompt is great for debugging for doesn't look very elegant when sharing your amazing game with the world.

In this video we will cover hiding the command prompt.

Hide Console On Windows

Running your game through Visual Studio is great but not ideal for sharing your game. Also Visual Studio uses valuable resources from your computer for debugging.

Lets cover how to produce a release version of your amazing game to share.

Distributing Your Game On Windows

So what is next after this awesome Flappy Bird game?

Where To Go Next?
About the Instructor
Frahaan Hussain
4.2 Average rating
508 Reviews
44,846 Students
11 Courses
CEO and Lead Developer at Sonar Systems

I am CEO of Sonar Systems which is the world leader in educational material for the game engine Cocos2d-x, one of the best and most popular game engines in the world. With years of experience programming and running an online education platform (Sonar Learning) I can help and support new programming like you.

I am also a University Lecturer teaching a variety of topics in Games Programming from Games Design to OpenGL Shader Programming.

I am also a published author of games design and soon to be released Responsive Web Design. I have all the facets required to educate and inspire.