File Exchange

image thumbnail


version (123 KB) by Mingjing Zhang
MATLAB replica of the viral mobile game "Flappy Bird"


Updated 04 Apr 2016

From GitHub

View Version History

View license on GitHub

Flappybird for MATLAB
Author: Mingjing Zhang

As one of the most popular games on app stores before being taken down, Flappy Bird does not need any further introduction. Now, it has come back alive, on MATLAB.

This implementation is intentionally made to replicate the user experience of the original game, with all physical dimensions of objects being identical. The gravity and 'jumping pulse' are also carefully adjusted so that they match the original as closely as possible.

*MATLAB R2014a is recommended for this game to achieve the best graphical performance

Simply execute flappybird.m. Alternatively, you can install "Flappy Bird.mlappinstal" as a MATLAB app.

Spacebar/Return/Uparrow/W/ -> Jump/Start game/Restart game;
ESC -> Quit Game.

This game app features a few technique breakthroughs that I utilize in a game for the first time. For instance, the bird sprite is represented as a SURFACE object, as opposed to an IMAGE object, so that it can easily rotate at any angle.

** If you encounter any problem, or have any suggestions / feedbacks, please drop a comment down below. **

Enjoy the endless flapping!

Cite As

Mingjing Zhang (2021). RoteAugen/flappybird-for-matlab (, GitHub. Retrieved .

Comments and Ratings (58)

남경 김

how can i change 'space bar' to button of arduino?


Error:File: flappybird.m
Line: 169 Column: 25
'ScoreInfoBackHdl' is not
a function or a shared

to fix this ,you should add two line code on the "Handles" section.

%% Handles
MainFigureHdl = [];
MainAxesHdl = [];
MainCanvasHdl = [];
BirdSpriteHdl = [];
TubeSpriteHdl = [];
BeginInfoHdl = [];
ScoreInfoBackHdl = []; % add this line
ScoreInfoForeHdl = []; % add this line
FloorSpriteHdl = [];
ScoreInfoHdl = [];
GameOverHdl = [];
FloorAxesHdl = [];

Andrew Janke

António Oliveira

Anyone knows how to fix this problem?
Error:File: flappybird.m
Line: 169 Column: 25
'ScoreInfoBackHdl' is not
a function or a shared
variable. To share
'ScoreInfoBackHdl' with
nested function,
initialize it in the
current scope. For more
information, see Sharing
Variables Between Parent
and Nested Functions.

Walter Broeckx

I tried to run it using MATLAB 2019b and got an error about ScoreInfoBackHdl and ScoreInfoForeHdl not being a function or shared variable. I initialized them (I included ScoreInfoBackHdl=[]; and ScoreInfoForeHdl=[]; in the %% System variables section and it seems to fix the problem.

Matthew Chihata

I only have access to the newer version of MATLAB (r12019a). Is there anyway to fix the graphics?

gong Yang

Herib Puga

Justin Hadyniak

Jeremy Sands

Anyone else have an issue with this causing MATLAB to crash when you lose the game?

It's so fun if you change some parameters in the code.


scor pioor

amazing game, even though i never play it!

Ngoc Doan

Jie Liao

Carlos Romo

Dmytro Karpushko

Asmaa Saleh

Behnam Azizi


Jeffrey Hung

xi zig


Jian Li


Jeremiah Littrice

Is there any way to change the bird into another surface image?

ding chen

very Good

K. Kojima

Melanie Magdun

K. Kojima

Nice work

jian zhing


Han Feng


Dhinesh Ram K

John Hedengren

Here is one implementation of automatic control with this Flappy Bird application.

It is surprising that a simple P-only controller can do very well.


Mohammad Abouali

nice. This should be selected by mathworks as featured


I like this game,I believe I can always fly.

Moath Awawdeh

Wonderful work Mingjing Zhang :)

Adivhaho Magoma

Nice game,but hard not to collide

Turner Conrad

I hate my life now. Thanks.


Great work! Thank you! This is a good example to learn creating small but funny games in Matlab.

Zohar Bar-Yehuda



dat nguyen


jacky chen


David Barry

Good effort!

You need a slight modification to your code if you are packaging as an app. You need to make sure that the main fuction which you package returns a figure handle so that the app removes itself from the path when you close it.

Ghozali Hadi


@Rabih have you use the pacakage of this submission by downloading "Download Submission"?
Or I think you have problem with your directory. Because matlab couldn't load *.mat file

Harvey Abaya

i was thinking of doing this, but kept it a fantasy. This is a work of passion and skill. Awesome Job!


it doesn't work in matlab R2012 a. I get:
Error using load
Unable to read file sprites2.mat: No such file or directory.

Error in flappybird/initVariables (line 276)
Sprites = load('sprites2.mat');

Error in flappybird (line 94)


the game is very similar with the original one on the iphone. Thank you for your efforts. And I suggested this app to my friends already.

Darshan Pandit


Nakk Mungofa

wow! u actually did this?? amazing! ...and funny!

Ligong Han


Ligong Han

Jason Nicholson

It is hard to believe you took the time to make this. Funny! :)

Jason Nicholson

Interesting! :)

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: pab47/FlappyBirdController, SpriteKit Framework

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!