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:
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.
In this video we will cover the following
In this video we will cover the following
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:
We will create an asset manager to handle the loading and retrieval of various types of assets including the following
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.
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.
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.
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.
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.
We will add audio to engage the player even more.
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?
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.