We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

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

Frahaan Hussain

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

Read more

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.

Over 205,000 students have enrolled on my courses and all of them are extremely satisfied. You will also be satisfied with this course. If you do not like the course, remember that within 30 days you can request a full refund. I guarantee you satisfaction.

If you have any questions regarding the topics covered in this course, please feel free to ask. I'm always happy to help those who want to learn.

To summarise this is what you get:

• Lifetime access to HD quality videos. No monthly subscription. Learn at your own pace, whenever you want.

• All videos are downloadable. Learn wherever you want, even without an internet connection.

• Downloadable starter code and final code for each section.

• Free helpful support in the course Q&A when you have questions or get stuck.

• Multiple coding challenges to practice your new skills (solutions included).

Sounds great? Then start this adventure today by clicking the “Take this course" button, and join me in the only course that you will need.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

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

Learn about the history of Flappy Bird and it's creator
Great Articles
Psychological Techniques Employed By Flappy Bird
Read more
Learn how to create a project on your computer

In this video we will cover the following

Prerequisites:

  • Windows Visual Studio project setup
  • Resources

In this video we will cover the following

Prerequisites:

  • Mac Xcode project setup
  • Resources
Learn how setup an adaptable game engine template

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

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

  • Textures
  • Fonts

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.

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

Let's create all the states/screens the game will use

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

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

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

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

Now we will implement game play mechanics to play our game

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

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

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

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

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

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.

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

We will now make our bird fly.

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

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.

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

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

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

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

Now the infamous game over :D

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.

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.

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

Extras

We will add audio to engage the player even more.

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.

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.

So what is next after this awesome Flappy Bird game?

Bonus Lecture: Discounted Courses

Thanks a lot for enrolling in this course, as a way of saying thank you, I am giving you access to my other classes on (game development) at a steep discount! Hope you enjoy them.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Guides learners through the creation of a multi-platform game using the immensely popular and addictive Flappy Bird as a model
Introduces learners to the immensely successful and addictive Flappy Bird as the basis for a multi-platform game
Offers a deep dive into essential game design techniques, ensuring that learners gain a thorough understanding
Emphasizes a step-by-step approach that allows students to grasp each stage of game development
Provides a solid foundation for beginners who aim to advance their skills in game development with SFML

Save this course

Save Flappy Bird Clone - The Complete SFML C++ Game Course to your list so you can find it easily later:
Save

Reviews summary

Hands-on game development in c++

According to students, this course provides a hands-on approach to game development in C++. They say that the best way to learn is to watch a few lectures and then try implementing things by yourself.
Encourages self-study.
"Very much hands on."
"The best approach is to ... implement things by yourself."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Flappy Bird Clone - The Complete SFML C++ Game Course with these activities:
Review C++ basics
Ensures a strong foundation in C++ syntax and programming concepts, which are essential for understanding the course material.
Browse courses on C++
Show steps
  • Review basic C++ syntax, including data types, operators, and control flow
  • Practice writing simple C++ programs to reinforce understanding
  • Complete coding exercises to test your grasp of C++ fundamentals
Compile a collection of resources on Flappy Bird development
Provides a valuable resource for further exploration of Flappy Bird development, offering a variety of perspectives and approaches.
Show steps
  • Gather resources such as tutorials, articles, and code examples related to Flappy Bird development
  • Organize the resources into a coherent collection, categorizing them based on topic or difficulty
  • Share the collection with other students or interested individuals
Follow a tutorial on SFML Input Handling
Provides hands-on experience with SFML's input handling capabilities, enhancing understanding of game controls.
Browse courses on SFML
Show steps
  • Find a comprehensive tutorial on SFML Input Handling
  • Follow the tutorial step-by-step, implementing input handling in your own Flappy Bird project
  • Experiment with different input handling techniques
Six other activities
Expand to see all activities and additional details
Show all nine activities
Recreate Flappy Bird's main gameplay loop
Reinforces core concepts of game programming, including game states, event handling, and rendering.
Show steps
  • Design the game loop architecture
  • Implement event handling for input
  • Create a state machine to manage game states
  • Implement game logic for player movement and collision detection
  • Handle rendering of game objects and background
Participate in a peer code review session
Fosters collaboration and knowledge sharing, allowing students to learn from each other's approaches and improve their coding skills.
Browse courses on Code Review
Show steps
  • Find a study partner or group
  • Exchange code and provide constructive feedback on each other's work
  • Discuss design decisions, code optimizations, and potential improvements
Create multiple levels with varying difficulty
Challenges students to apply their understanding of game mechanics to create engaging and progressively challenging levels.
Browse courses on Game Design
Show steps
  • Design different level layouts with varying pipe patterns and obstacles
  • Implement level transitions and difficulty scaling
  • Test and iterate on level designs to ensure a balanced gameplay experience
Complete tutorials on advanced SFML features
Extends students' knowledge of SFML's capabilities, enabling them to create more sophisticated and visually appealing games.
Browse courses on SFML
Show steps
  • Identify advanced SFML features that align with your interests or project goals
  • Locate comprehensive tutorials on those features
  • Follow the tutorials and implement the features in your own Flappy Bird project
Design and implement a custom power-up system
Challenges students to apply their understanding of game mechanics and programming to create unique and engaging gameplay elements.
Browse courses on Game Design
Show steps
  • Brainstorm and design different types of power-ups
  • Implement the power-ups using C++ and SFML
  • Test and balance the power-ups to ensure they enhance gameplay without compromising fairness
Mentor a beginner in Flappy Bird development
Provides an opportunity to reinforce learning by sharing knowledge and assisting others, while honing communication and leadership skills.
Browse courses on Mentoring
Show steps
  • Find a beginner who is interested in learning Flappy Bird development
  • Share your knowledge and experience, guiding the beginner through the development process
  • Provide feedback and encouragement to support their learning journey

Career center

Learners who complete Flappy Bird Clone - The Complete SFML C++ Game Course will develop knowledge and skills that may be useful to these careers:
Game Developer
**Game Developers** create video games for various platforms such as PC, consoles, and mobile devices. They use their knowledge of programming, art, and design to bring games to life. This course in Flappy Bird Clone Development provides a solid foundation in game programming using the SFML framework in C++. It covers essential game design techniques and concepts, including game logic, state management, and collision detection. By completing this course, you will gain the skills and knowledge necessary to create your own cross-platform games.
Game Programmer
**Game Programmers** are responsible for the programming aspects of video game development. They write code to create game mechanics, physics, and artificial intelligence. This course in Flappy Bird Clone Development provides a comprehensive introduction to game programming in C++ using the SFML framework. It covers topics such as game loops, input handling, and collision detection. By completing this course, you will gain the programming skills necessary to develop your own games.
Game Designer
**Game Designers** are responsible for designing the overall gameplay, story, and characters of video games. They work closely with programmers and artists to bring their vision to life. This course in Flappy Bird Clone Development provides a foundation in game design principles and techniques. It covers topics such as level design, enemy design, and game balance. By completing this course, you will gain the knowledge and skills necessary to design your own engaging and fun games.
Software Engineer
**Software Engineers** design, develop, and maintain software applications. They use their knowledge of programming languages and software development tools to create software solutions for a variety of industries. This course in Flappy Bird Clone Development provides a solid foundation in software development principles and practices using C++ and the SFML framework. It covers topics such as object-oriented programming, data structures, and algorithms. By completing this course, you will gain the skills and knowledge necessary to pursue a career in software engineering.
Web Developer
**Web Developers** design, develop, and maintain websites and web applications. They use their knowledge of programming languages, web development frameworks, and design principles to create user-friendly and engaging online experiences. This course in Flappy Bird Clone Development provides a foundation in web development principles and practices using C++ and the SFML framework. It covers topics such as HTML, CSS, JavaScript, and web application architecture. By completing this course, you will gain the skills and knowledge necessary to pursue a career in web development.
Mobile Developer
**Mobile Developers** design, develop, and maintain mobile applications for smartphones and tablets. They use their knowledge of programming languages, mobile development frameworks, and design principles to create user-friendly and engaging mobile experiences. This course in Flappy Bird Clone Development provides a foundation in mobile development principles and practices using C++ and the SFML framework. It covers topics such as mobile app architecture, user interface design, and mobile app distribution. By completing this course, you will gain the skills and knowledge necessary to pursue a career in mobile development.
Artificial Intelligence Engineer
**Artificial Intelligence Engineers** design, develop, and maintain artificial intelligence systems. They use their knowledge of machine learning algorithms, natural language processing, and computer vision to create intelligent systems that can perform tasks such as image recognition, speech recognition, and decision-making. This course in Flappy Bird Clone Development provides a foundation in artificial intelligence principles and practices using C++ and the SFML framework. It covers topics such as machine learning, natural language processing, and computer vision. By completing this course, you will gain the skills and knowledge necessary to pursue a career in artificial intelligence engineering.
Machine Learning Engineer
**Machine Learning Engineers** design, develop, and maintain machine learning systems. They use their knowledge of machine learning algorithms, data analysis techniques, and statistical methods to create intelligent systems that can learn from data and make predictions. This course in Flappy Bird Clone Development provides a foundation in machine learning principles and practices using C++ and the SFML framework. It covers topics such as supervised learning, unsupervised learning, and reinforcement learning. By completing this course, you will gain the skills and knowledge necessary to pursue a career in machine learning engineering.
Data Analyst
**Data Analysts** use their knowledge of data analysis techniques, statistical methods, and data visualization tools to extract valuable insights from data. They work in a variety of industries, including finance, healthcare, and retail. This course in Flappy Bird Clone Development provides a foundation in data analysis principles and practices using C++ and the SFML framework. It covers topics such as data cleaning, data visualization, and statistical analysis. By completing this course, you will gain the skills and knowledge necessary to pursue a career in data analysis.
Computer Scientist
**Computer Scientists** conduct research in the field of computer science, including the design and analysis of algorithms, the development of new programming languages, and the study of artificial intelligence. They work in a variety of settings, including academia, industry, and government. This course in Flappy Bird Clone Development provides a foundation in computer science principles and practices using C++ and the SFML framework. It covers topics such as algorithms, data structures, and computer architecture. By completing this course, you will gain the skills and knowledge necessary to pursue a career in computer science.
Software Developer
**Software Developers** design, develop, and maintain software applications. They use their knowledge of programming languages, software development tools, and software engineering principles to create software solutions for a variety of industries. This course in Flappy Bird Clone Development provides a foundation in software development principles and practices using C++ and the SFML framework. It covers topics such as object-oriented programming, data structures, and software design patterns. By completing this course, you will gain the skills and knowledge necessary to pursue a career in software development.
Data Scientist
**Data Scientists** use their knowledge of data analysis techniques, machine learning algorithms, and statistical methods to extract valuable insights from data. They work in a variety of industries, including finance, healthcare, and retail. This course in Flappy Bird Clone Development provides a foundation in data analysis principles and practices using C++ and the SFML framework. It covers topics such as data cleaning, data visualization, and machine learning. By completing this course, you will gain the skills and knowledge necessary to pursue a career in data science.
Game Tester
**Game Testers** play video games to find bugs and ensure that the games are working as intended. They provide feedback to developers to help them improve the quality of the games. This course in Flappy Bird Clone Development provides a foundation in game testing principles and practices. It covers topics such as game testing techniques, bug reporting, and quality assurance. By completing this course, you will gain the skills and knowledge necessary to pursue a career in game testing.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Flappy Bird Clone - The Complete SFML C++ Game Course.
Discusses design patterns commonly used in game development. While it doesn't specifically cover SFML, the patterns it discusses are applicable to any game development framework, making it a valuable resource for anyone wanting to improve their game programming skills.
An exploration of game engine architecture and design, with a focus on the underlying principles and technologies used in modern game engines. is helpful for understanding the technical foundations of game development and can serve as a reference for designing and implementing your own game engines.
A comprehensive guide to real-time rendering techniques, covering a wide range of topics from graphics pipelines to lighting and shading. is valuable for gaining a deeper understanding of the technical aspects of game graphics and can serve as a reference for implementing real-time rendering in your own projects.
An introduction to artificial intelligence (AI) techniques used in game development, with a focus on practical applications and examples. is helpful for understanding the basics of AI and can serve as a reference for implementing AI in your own games.
An introduction to physics concepts and techniques used in game development, with a focus on practical applications and examples. is helpful for understanding the basics of physics and can serve as a reference for implementing physics in your own games.
A guide to level design principles and techniques, with a focus on creating engaging and immersive game worlds. is helpful for understanding the basics of level design and can serve as a reference for designing your own levels.
A collection of recipes for solving common problems and implementing common features in Unity. is helpful for Unity developers who want to learn new techniques and improve their skills.
An introduction to game development using the Unreal Engine 4 engine. is helpful for beginners who want to get started with game development and can serve as a reference for using Unreal Engine 4.
An introduction to game programming using the C++ programming language. is helpful for beginners who want to learn the basics of game programming and can serve as a reference for using C++ in game development.
An introduction to game programming using the Java programming language. is helpful for beginners who want to learn the basics of game programming and can serve as a reference for using Java in game development.
A comprehensive guide to game development using HTML5, JavaScript, and Canvas. is helpful for developers who want to learn how to build web-based games and can serve as a reference for using these technologies.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Flappy Bird Clone - The Complete SFML C++ Game Course.
Tic-Tac-Toe Clone - The Complete SFML C++ Game Course
Most relevant
Bash Scripting, Linux and Shell Programming Complete Guide
Hacking Unity and WatchKit - Make Games and Apple Watch...
MongoDB Database Developer Course In Python
Unity 2D Game - Kawaii Survivor - The Coolest Roguelike...
Unity Game Development: Create 2D And 3D Games With C#
Unity Multiplayer UNET Build Online Shooter . Code...
Making Your First Game in Game Maker Studio 2
A Complete Guide to Game Design
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser