Hacker News new | past | comments | ask | show | jobs | submit login
Fish vs. Fish in Street Fighter II (twitch.tv)
372 points by cyberfart on Aug 20, 2014 | hide | past | web | favorite | 69 comments

Can the fish see the game? What if the fish were rewarded for winning? Can we train fish to play street fighter? How about rats?

What I think would be more interesting would be a way for viewers to stimulate the fish.

Say you have a link that charges the viewer a small fee to feed the fish on a certain side of the tank. Scale the price with how much food the fish has been given (all the way down to $0.00 and up exponentially to not overfeed the fish). Basically, let the internet handle feeding your fish.

So they can watch it play street fighter.

And you make money off of it.

I was just speculating to my coworker about tying breeding to winning...

I don't think this is a possibility. While you could get some sort of feedback loop going (fish gets hit it gets shocked, fish hits it gets food or something), there would be no way for the fish to understand the massive amount of information they'd need to grok from the game, so they'd just be getting all this random stimuli with nothing to attach it to.

I can't see anyway to bridge the gap of making the fish understand the stimuli in relation to what's going on in the game. I would imagine the same is true for rats.

The fish doesn't need to grok the entire game, it just has to be better than the other fish. (Cue that joke about two people being chased by a bear and one pausing to put on his sneakers. "What are you doing? You can't outrun a bear!" "I don't have to, I just have to outrun you!")

For example, if fish A realizes that swimming around corner X gets it food, because X happens to correspond to "move forward and punch", that's enough to win the game if fish B doesn't figure out the same.

> Can we train fish to play street fighter?

Certainly. The question is how well it would play.

We could use crows or pigeons. Smarter, and already well studied. Or rats.

If you like to watch computer-controlled 2d fighting characters with actual decent AI (most of the time) squaring off against each other, check out http://www.saltybet.com/ .

There are over 5000 characters in the database, and it runs 24 hours a day. The matches can get really amusing sometimes.

It really is amazing, I still wonder how Salty made it.

Also some protips to those who are interested:

1) Always bet DBZ

2) Never trust chat

3) Never bet DBZ

From a technical standpoint it doesn't seem too hard to set everything up (over time), but the concept and then the monetization of it is pretty ingenious.

I've seen Salty himself in the chat every now and then. I wonder how much time he spends working on the site vs how much he makes off of it every month.

Even better are the automated betting apps - betting on the automated gaming matchups.


Somebody should setup a Bitcoin based side-betting operation for Saltybet...I'm guessing people would actually bet.

Background: This is the logical conclusion of Fish Plays Pokemon (http://motherboard.vice.com/read/an-exclusive-interview-with...), which was a hackathon project and a play on Twitch Plays Pokemon.

I believe this is actually the logical conclusion of the Internet.

There is no chance of that. The internet never ceases to amaze...

Nah, that would involve cats playing video games.

I am not sure if cats are a good idea for this. But what about rats? Could we teach them to do image recognition? Perhaps it could answer questions like "is there a cat in this picture?". Since rats are quite small this approach could scale well.

The rat rack.

I don't understand what you mean by "this is the logical conclusion of..."

What was concluded? Why is it logical?

'Logical extension' would have been a better phrase, I think. And 'logical' is clearly tongue-in-cheek.

And as a finishing touch, man made 2 fish fight eachother on Street Fighter and streamed it to the world in real time.

God I love the internet :D

He needs to randomize the 1P/2P assignment because Aquarius seems to prefer being on the right side of the tank and gets an unfair advantage as 1P.

Maybe Aquarius prefers the right side because Aquarius likes to win.

A lot of engineering effort to watch Balrog jab and Blanka duck forever.

Fish are bad at playing Street Fighter II. I already intuitively knew this.

Watching them for a bit, I would say they're ~=> my mom playing Street Fighter - the occasional times she would play video games with me, the results of her play often looked like this.

Fish > My mom at video games? Perhaps.

Maybe they should have been using fighting fish?

Stream seems to be down, here's what was on: https://www.youtube.com/watch?v=NHrRksz-XLI

Soooooo much more engaging than the Fish Plays Pokemon the creator links to. I explained it to a coworker (...in marketing) and couldn't help but giggle at every other sentence in my explanation. "So the fish swim around in that virtual grid, see, and that triggers button presses in the fighting game." Sweet action, as the kids say.

I don't get it, can someone please tell what is going on?

The position of two fish in a tank are tracked. The tank is divided into a grid and the position of the fish in the grid determines the input into the game.

ooh cool :P

Thanks :)

The description is further down the page. The top-middle sector of the tank activates the jump button for example. If both fish are in that sector, then the two characters will do nothing but jump on the spot until either fish moves elsewhere.

I watched the video and couldn't figure out what was going on :D

Thanks :)

Well given that its Street Fighter my best strategy was to always just mash random buttons.

I do wonder if he choose the fish at random or tried to find more active fishies.

Humans are pattern recognition animals, we like to look at anything random and extract meaningful patterns from it.

I see this game as a clear example of that, where (random) fish movement is fed to a computer game and translated into game play (pattern). I fail though to conclude anything particularly interesting if one fish won the game :)

Hypnotic. Aquarius can't seem to lose.

He is a winning machine. His gold color suits him well. Aquarius is an impeccable fighter.

The last ~10 or so matches I've seen show Aquarius winning, often by a tiny margin. These fish might be more skilled than some real players.

They should make it so that you can play vs. a fish now.

EDIT: I spoke too soon, the Bruce is making a comeback.

Twitch plays Street Fighter against fish!

I wonder now if one could train chimpanzees to play the game successfully.

I'm sure if you get an infinite amount of monkeys, they'd perform a Hadouken eventually.

Nice, but I think it is not real, just marketing for the new Planet of the Apes movies.

What I'd really want to see is two monkeys playing the game against each other for the treat. If given some time, I believe that they can get better than most humans.

I had a dream one time when I was a kid that I trained a puppy to play Street Fighter 2. I'd never imagine it would ever be linked to anything this close to reality.

Haha this is awesome! First a couple of HackNY fellows make Fish Plays Pokemon, now this! I can't wait for what fish related fun comes next.

Fish playing 2048 would be my guess

Anyone know if these guys making these games are using some kind of library for the image processing or what? Seems pretty complicated to do

I can confirm that FishPlaysPokemon uses OpenCV. There's a wealth of knowledge and tutorials, so if you just want to isolate certain color ranges (what they're doing), I guarantee there are tons of resources. There's also Python bindings to make things even more friendly. After that, it's some simple math to figure out which quadrant it's in and then trigger the correct button press.

Hm, good call, thanks for that. Looks like there's a binding for Nodejs out there too: https://github.com/peterbraden/node-opencv

Actually they just have to detect more than $x pixels of $color in each region then do a button press on that. I don't think in the abstract that it's all that complex, given that the fish are of starkly different colors that do not occur in the tank or elsewhere in the video feed.

maybe opencv ?

If one of the fish managed to make an Hadoken it should get a job at Konami (or at least a nice place on an "Konami"-Desk)

Would be interesting to observe if there may happen to be some pattern in fish movements as more data is collected over time.

what's missing from "fish plays game" is some sort of reward for the fish. I wonder how clever they can get.

These fishes are more entertaining than the Pokemon game which was played through the chat room.

what about the parody of http://twitch.tv/garlicplays

I was actually hoping for a writeup on the differences between regular fish and fish in SFII, but this is also good.

Next we need kittens versus fish. Kittens are much more active.

This is best thing I've seen all year.

If I could upvote you 10 times for the most ridiculously useless (but cool) thing I've seen on HN, I would. You win HN for today sir.

This is the answer to life, the univers and everything!

I thought I was going to see Phil Fish fight himself, somehow.

That already exists, it's called Indie Game: The Movie.

Or one Phil Fish fighting another (Abe Vigoda's Barney Miller character). Now that'd be hilarious.

Just gotta say this is a strange outcome of our technological developments.. I mean think of the energy that was spent making this work - it could've been done doing something.. I dunno fucking useful?!

It's almost as bad as watching two "grown-ups" play Street Fighter lol.

this exercise is useful.

1) the creators had a chance to learn/practice their favorite libraries and languages -- computer vision is hugely useful and applicable to nearly all domains.

2) the creators got spectators to think about the technologies involved, possibly motivating some to learn about them, and undoubtedly teaching a few people about things they didn't know the concepts behind. (computer vision. hell, check the comments on HN, a few of us didn't know how it worked and were thus elucidated.)

What have you done to benefit the world?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact