Вот он.
Сайт сейчас глючит, так что пока можно посмотреть его в [url=http://webcache.googleusercontent.com/search?q=cache:CXQYGANifAwJ:blitzetc.blitzmax.ru/index.php/%D0%94%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC_%D1%87%D0%B0%D1%82]кеше гугля[/url]
Исходник для Blitz3D.
Он описывает чат с прыгающим сервером

Смысл в том, что один из участников чата назначается сервером. Если вдруг он исчезает, сервером назначается другой, и т.д.
Каждый из участников хранит полный список всех, кто в сети, потому перекинуть сервер на другого не проблема.
Большинство сетевого кода все-таки скрыто за стандартными функциями Blitz, но их не сложно додумать самому (например мониторинг участников - пинг, а лучше запрос раз в 30с с определенным кодом, кто жив - ответит)

1-99 пользовательское сообщение;
100 к игре присоединился новый игрок;
101 игрок был удален из сетевой игры (NetMsgFrom () возвращает номер ID удаленного игрока);
102 оригинальный хост оставил игру, и ЭТА машина - теперь новый хост.
200 произошло Ваше фатальное исключение, и Вы должны выйти из игры.
100 к игре присоединился новый игрок;
101 игрок был удален из сетевой игры (NetMsgFrom () возвращает номер ID удаленного игрока);
102 оригинальный хост оставил игру, и ЭТА машина - теперь новый хост.
200 произошло Ваше фатальное исключение, и Вы должны выйти из игры.
Поняв принцип, можно реализовать аналог на HiAsm, использовав свои коды сообщений.
Это похоже на распределенные сети, но здесь все-таки сервер есть.
Но можно немного расширить принцип, и построить полностью распределенную сеть.
Кстати, отсюда всего один шаг к распределенным хэш-таблицам. А они уже есть готовые.
Используя их, можно построить безсерверный аналог ICQ, даже с отложенной доставкой сообщений.