ok let me simplify this let's suppose someone in your family has an illness or a disability, you could get a laptop or use theirs and on windows or linux, you run a piece of software, this software interfaces with your arduino, everyone shares from the same instruction sheet, pin 2 goes to LED BLUE + pin 3 goes to GND etc etc until you have built whatever it is you're building/built you prototype it, you prototype it with led's at your end, eg if a relay comes on you could use an LED to indicate you're operating a relay.
at the other end, it's connect to a real relay which i dunno turns on the kettle, your circuit then turns on another relay opening the cutrains, your circuit now shows a green light, this could be applied to many houses not just 1, the arduino then turns on an alarm to alarm the person of danger or warning or some kind of sound/visual aids, at your end you light a little buzzer and another led.
this time you use it with 5 others, this time the 6th person decides to build this same system for himself as he finds out he has a disease, he pays someone to come and install it, now the programmer thinks that the alarm clock should be disabled, he can go into the code, remove the line of code for the alarm/radio other than that the program runs identically, he modified the code, recompiled and uploaded to the board.... but in the source code there are routines you can call to issue pin commands, switch on / off, you talk over the com port (usb) the client relays the signals to a server the server then relays that command to all the arduinos connected, when you join the server the board which is held virtually dictates the pin values and states...
arduino > com port [usb] > computer > com port [usb] > arduino, all of the devices are in sync with each other. the events go off and get sent to all the other arduino's are only allowed to come from sensors or human input, eg a button.
ok arduino1 and arduino2 and arduino3 (real hardware real life) are all connected to the virtual arduino server side.
//isbuttonpressed()
{
SendEvent(buttonpress);
digitalWrite(LedPin1,TRUE);
}
//
Void OnRecvPacket()
{
//check the serial for incoming data
//get the data
if (datastr=='LedPin1')
{
digitalWrite(LedPin1,TRUE);
}
}
and we have the beginnings of a game, so every LED turns on, on every board, make more led's make sounds, and what game can we play? 5 players, 10 players who cares, multiplayer hardware games, like the 80's programming boom, this could be the start of something fun and new.