Continuing from the discussion of using a USB host or peer-to-peer, I have written a Chrome app which allows you stream serial data from one Arduboy to an unlimited number of Arduboys and screen capture from the Arduboy to the computer.
All data is streamed to all ports (except the port from which the data is coming).
I would advise to define the first Arduboy to start multiplayer as the “server”: it would manage the game logic, receive keypresses from the other Arduboys and send them data.
LOL. Ok, I’m totally interested in a network game for Arduboy now that I know Chrome can do serial port communication. Could imagine a big game with a web UI that showed overall progress while each played was plugged into USB and had their own individual view of the world.
Indeed, I am still waiting for the first multiplayer game, but you could do much more advanced stuff (online multiplayer, streaming data, etc.) and it only takes a couple dozens lines of code to use Chrome’s Serial interface.
Seems like an interesting idea, although the original idea of TeenyTank was to make a game that was multiplayer with just one Arduboy. As it’s turn-based, the pass-and-play style makes more sense there, I think.
It’s probably not too hard to do, but I am also not very time-free at the moment. The code is available at Github, if you want to have a go at modifying it yourself: https://github.com/Jezzamonn/TeenyTank/
I think what you’d want to do is to use the concept that @davidperrenoud posted above, and edit the updateAim() function so that it either takes input from the buttons or from the Serial port depending on which player is playing. Then you just need something to figure out which player is going to be first.
After getting this to stream, can I make a request?
Is it possible to have some sort of frame reset option? every now and then, the display goes a bit wonky if there is any sort of interruption in the data.