Hacker News new | ask | show | jobs
by habosa 4514 days ago
I really want to build a Lego Mindstorms robot (or similar) that watches my phone with a webcam, holds a stylus, and plays Flappy Bird. I have played enough (high score 194) that I am pretty sure I know the right strategy, I just want to take human error out of the equation.

Are there open source vision libraries that are low-latency enough to play this in real time? Assuming the robot could keep up with some regular servos. Would be a very interesting project.

Edit: I'm thinking I could run an Android emulator, and then use MonkeyRunner with Python OpenCV processing my monitor to do the work. Anyone who has any relevant experience please reply, I'd love to hear if this is feasible.

5 comments

Someone made a robot that played Angry Birds: https://us.pycon.org/2012/schedule/presentation/470/

I was wondering if this would work for Flappy birds. Due to the speed of the game, I think it is going to be quite a challenge.

P.S. If you are interested in the mindstorms robot part, I'll put a shameless plug for a robot I built some time ago (based on some work by David Singleton). Code is on github but here is a pycon video: http://pyvideo.org/video/1195/self-driving-lego-mindstorms-r...

Ohai! (I presented that Angry Birds bot at PyCon.) My bot is now called "Tapster" and I continue to make improvements. It's completely open-source; I'd love to expand the community of game-playing bot fans. (http://tapsterbot.com) I even created a 3d-printable LEGO Technic-compatible building material to make the bot. (http://bitbeam.org)

I'm working on training Tapster to play Flappy Bird. I'm going down the route of webcam + OpenCV.

This is why I love Hacker News, I can ask a question about getting a lego robot to beat my favorite cell phone game and there's someone watching who has done it.

Would love to hear how it goes! I'm sure a blog post about that would be front page HN material.

yes, because if there's one thing that computers are known for... it's being slow.
If you're going to go as far as running it in an emulator... then why not just write something that works in process and avoids the whole visual feedback / physical input loop altogether? It's how bots are written for MMO's like WOW.
I'd like to do it without altering the app, which makes it more like the robot is playing the game not cheating it. This limits me to processing the game's output in real time.
What do you mean strategy? I only played on http://flapmmo.com but it seemed like it was only a game of reflex (I got to level 12).
I mean as far as when I should tap based on height and distance to the next obstacle. I try to be consistent but obviously a robot would be better.
http://www.cloudteastudio.com/bird.html Another group already done it. check it out
holy shit you sound like a crack addict

(only with flappy bird) - they say it's addictive but you're taking this to another level. "Man I need to do a Lego Mindstorms robot with a webcam and stylus and OpenCV - I've gotten to 194 but I NEED more. I need to take the human element out of this equation...."

A worrying amount of serious CS effort was put into the problem of Sudoku solving after it became a big hit.
Logical Conclusion: All computer scientists are crack addicts.
Hey, making AIs play games is fun.
You must be unfamiliar with crack.
It's a joke guys. I left it at +4 if I saw the downvotes I would have deleted it.
umm no