Share My Creation Birdie Crash - arcade game experience

This is the story behind "Birdie Crash". It's a game I’ve written using B4A, and will never ever be published on the Play Store. It most probably violates several copyrights, trademarks and patents, so don't ask for the source code, don't ask for the APK, I made this game for personal enjoyment only. However, I'm sure it can serve as a source of (technical) inspiration for some of your own future projects, and that is why I'm giving you an exclusive "behind the scenes"-look.

birdiecrashfinishedoriginal.jpg

First some background. The arcade machine pictured here is called "Flying Tickets", a game from Adrenaline Amusements. It was also known as "Flappy Tickets" until recently.

It's a relatively new game and just appeared this summer at our local arcades. It features a giant 65 inch screen with animated leds on the left and the right of the screen and two round buttons to play the game (for maximum 2 players at the same time).

"Flying Tickets" is created by the company's software studio in Quebec City and is - as you probably have guessed already - a "Flappy Bird" clone on steroids. Not only have the graphics been revamped compared to the original, there is also plenty of technical stuff added like shadow trails, gravity and particle effects. The aim of the game is still to jump between the opening in the pipes. Each successful pass gives you a ticket that can be exchanged for prizes in the arcade shop. A green pipe earns you 1 ticket, a red one 5 tickets. The opening in the pipes becomes gradually smaller as the game progresses and when you can beat the high score, you get bonus tickets.

It's a pretty addictive game because it looks so easy to play, and I've seen plenty of people queuing up to give the machine a try.

Since my kids were pretty impressed by the game as well, I decided to make my own "table top" version of the game this summer. Not as big as the real stuff - something a bit more portable and only for one player - but still reflecting the original gameplay. Plus, it had to be as cheap as possible.

This is how it turned out after about two months of work:

birdiecrashfinished.jpg


Initially, my plan was to buy a big LED monitor, loudspeakers and a small PC connected with some kind of USB button. While writing down my shopping list, I realized that this hardware was way too expensive. OK, brand new idea, scrape that PC and use Android instead! There are small Android HDMI sticks on the market these days, and when you use them in combination with a LED TV, you don't have to worry about buying separate loudspeakers as a bonus.

So I ultimately bought a Salora 22LED1500 TV (the cheapest 22" HD TV I could find), a cheap Android 4.4 stick (an MK808B Plus) and a big yellow arcade button for a total of 150 euros.

My first goal was to completely hide the entire Android OS. The Salora can be configured to turn on as soon as you plug in the electricity, plus there is a possibility to hide its startup logo (through a secret menu). The Android stick comes rooted out of the box, so the ugly standard boot animation can be replaced as well. As you can see on the video, Android immediately starts the game without opening the standard shell menu first. This is done by installing the game as a home screen replacement (you can still open the standard menu by clicking on a hidden area on the screen).

The stick is connected on the HDMI (for video) & USB (for power) inputs on the tv. The second USB port on the stick is connected to an Arduino Leonardo and serves both as power source and as a keyboard interface. The Arduino sends out a keystroke to the Android stick as soon as someone presses the button to make the bird jump. I’ve seen people struggle with the serial interface to do this, but this is a much simpler solution. The LED animations and the blinking led inside the button are managed by the Arduino as well. Using the Arduino and the LED strips added over 100 euros to the project, which is a lot of money, but the machine wouldn’t be complete without it.

The game itself has been completely written in B4A. Unfortunately the MK808B Plus is pretty slow, so I had to use LibGDX and Box2D to create smooth animations - quite a change for someone who is used to working with the standard Android components. It took me a few weeks to figure out how to use these libraries, but once you understand the basic principles, you wonder how you’ve been able to create games in the past without them.

The hardest part was probably getting the particle effects working. If you look carefully, you’ll see the bird has a shadow trail and randomly loses some of his feathers while he’s flying. There are also small sparkles around the points you’ve scored. During the final score display, confetti floats on the screen. All of these effects are created with particles. When the bird crashes, the amount of feathers is higher and Box2D kicks in to simulate gravity while the bird bounces on the floor or against the pipes (mimicking the behaviour of the original arcade game).

I’m not a designer nor musician, so all graphics and (background) sound effects were created by people on Fiverr.com, although I must admit that I’ve paid more than five dollar to get the work done.

My dad took care of almost all hardware related stuff. He made a button box out of wood (covered with printed stickers) and the braces to mount the tv vertically (really: I couldn’t have done this without him). The kids and my wife served as beta testers.

Me and my dad have made some pretty nice stuff in the past (mostly game related), but this is the first time we’ve tried to actually reproduce an existing arcade machine. You get to decide if we did a good job or not.
 

walterf25

Expert
Licensed User
This is the story behind "Birdie Crash". It's a game I’ve written using B4A, and will never ever be published on the Play Store. It most probably violates several copyrights, trademarks and patents, so don't ask for the source code, don't ask for the APK, I made this game for personal enjoyment only. However, I'm sure it can serve as a source of (technical) inspiration for some of your own future projects, and that is why I'm giving you an exclusive "behind the scenes"-look.

View attachment 37988

First some background. The arcade machine pictured here is called "Flying Tickets", a game from Adrenaline Amusements. It was also known as "Flappy Tickets" until recently.

It's a relatively new game and just appeared this summer at our local arcades. It features a giant 65 inch screen with animated leds on the left and the right of the screen and two round buttons to play the game (for maximum 2 players at the same time).

"Flying Tickets" is created by the company's software studio in Quebec City and is - as you probably have guessed already - a "Flappy Bird" clone on steroids. Not only have the graphics been revamped compared to the original, there is also plenty of technical stuff added like shadow trails, gravity and particle effects. The aim of the game is still to jump between the opening in the pipes. Each successful pass gives you a ticket that can be exchanged for prizes in the arcade shop. A green pipe earns you 1 ticket, a red one 5 tickets. The opening in the pipes becomes gradually smaller as the game progresses and when you can beat the high score, you get bonus tickets.

It's a pretty addictive game because it looks so easy to play, and I've seen plenty of people queuing up to give the machine a try.

Since my kids were pretty impressed by the game as well, I decided to make my own "table top" version of the game this summer. Not as big as the real stuff - something a bit more portable and only for one player - but still reflecting the original gameplay. Plus, it had to be as cheap as possible.

This is how it turned out after about two months of work:

View attachment 37987


Initially, my plan was to buy a big LED monitor, loudspeakers and a small PC connected with some kind of USB button. While writing down my shopping list, I realized that this hardware was way too expensive. OK, brand new idea, scrape that PC and use Android instead! There are small Android HDMI sticks on the market these days, and when you use them in combination with a LED TV, you don't have to worry about buying separate loudspeakers as a bonus.

So I ultimately bought a Salora 22LED1500 TV (the cheapest 22" HD TV I could find), a cheap Android 4.4 stick (an MK808B Plus) and a big yellow arcade button for a total of 150 euros.

My first goal was to completely hide the entire Android OS. The Salora can be configured to turn on as soon as you plug in the electricity, plus there is a possibility to hide its startup logo (through a secret menu). The Android stick comes rooted out of the box, so the ugly standard boot animation can be replaced as well. As you can see on the video, Android immediately starts the game without opening the standard shell menu first. This is done by installing the game as a home screen replacement (you can still open the standard menu by clicking on a hidden area on the screen).

The stick is connected on the HDMI (for video) & USB (for power) inputs on the tv. The second USB port on the stick is connected to an Arduino Leonardo and serves both as power source and as a keyboard interface. The Arduino sends out a keystroke to the Android stick as soon as someone presses the button to make the bird jump. I’ve seen people struggle with the serial interface to do this, but this is a much simpler solution. The LED animations and the blinking led inside the button are managed by the Arduino as well. Using the Arduino and the LED strips added over 100 euros to the project, which is a lot of money, but the machine wouldn’t be complete without it.

The game itself has been completely written in B4A. Unfortunately the MK808B Plus is pretty slow, so I had to use LibGDX and Box2D to create smooth animations - quite a change for someone who is used to working with the standard Android components. It took me a few weeks to figure out how to use these libraries, but once you understand the basic principles, you wonder how you’ve been able to create games in the past without them.

The hardest part was probably getting the particle effects working. If you look carefully, you’ll see the bird has a shadow trail and randomly loses some of his feathers while he’s flying. There are also small sparkles around the points you’ve scored. During the final score display, confetti floats on the screen. All of these effects are created with particles. When the bird crashes, the amount of feathers is higher and Box2D kicks in to simulate gravity while the bird bounces on the floor or against the pipes (mimicking the behaviour of the original arcade game).

I’m not a designer nor musician, so all graphics and (background) sound effects were created by people on Fiverr.com, although I must admit that I’ve paid more than five dollar to get the work done.

My dad took care of almost all hardware related stuff. He made a button box out of wood (covered with printed stickers) and the braces to mount the tv vertically (really: I couldn’t have done this without him). The kids and my wife served as beta testers.

Me and my dad have made some pretty nice stuff in the past (mostly game related), but this is the first time we’ve tried to actually reproduce an existing arcade machine. You get to decide if we did a good job or not.
From what i can see in the video there isn't much of a delay when pressing the button and the Arduino processing the signal and sending it to the Android device, very cool, I might just have to build one of this for my crazy flappy bird kids.

Thanks for sharing your project.

Walter
 

wimpie3

Well-Known Member
Licensed User
The delay is a few milliseconds, needed to "debounce" the hardware button on the Arduino side. Also, you can only use an Arduino that acts as a USB keyboard (the Leonardo is one of them).
 

rafaelbr20

Member
Licensed User
Great work !! Perfect ! Congratulations !

How did you made confetti floats on the screen during the final score ? Wich library did you use ?

I need to do samething !

Thanks
 

wimpie3

Well-Known Member
Licensed User
Great work !! Perfect ! Congratulations !

How did you made confetti floats on the screen during the final score ? Wich library did you use ?

I need to do samething !

Thanks

All you need to know is explained in the first post. The confetti is made with particle effects.
 
Top