tayatlas писал(а):
Alexies писал(а):
Принцип действия такой: про попадании в игрока его повязка посылает широковещательный запрос всем повязкам, содержащим информацию: в игрока X из команды Y попал игрок Z, и ранил/убил. Повязка стрелявшего распознаёт себя по значению Z, и посылает оружию команду на проигрывание одного из трех звуков. Сами звуки я пока не выбрал, будут какие-нибудь короткие пиликанья.
Сразу видно, что вы знакомы только с теорией и не имеете практического опыта.
Иногда идет такое месилово, что повязки тупо не смогут обработать такое количество сигналов (повязки то может еще теоретически и смогут, но динамики явно не справятся
).... Иногда за секунду при игре 12-14 человек происходит по 3-4 попадания + повязка "готовится" отыграть звук, а тут в нее прилетает попадание + повязкам еще надо не забывать опрашивать оружие о его присутствии... и т.п.
Стоит ли все усложнять и наворачивать то, что работать толком все равно не будет ?
А тут Вы ошибаетесь. И, похоже, не достаточно хорошо знаете теорию. Я написал упрощенно. Естественно, всё это сделано не в тупую, "попало - выхожу в эфир - сразу об этом забываю". Есть довольно продвинутый "сетевой стек", и писал я его не два дня.
Вам не случалось играть в контру по Wi-Fi с одной точки доступа в 10 ноутбуков?
Мне случалось, это работает с пингом 50-60 мс. Ведь это как-то работает?
В самом простом случае nfr24l01 даёт один на всех физический канал с пропускной способностью в 1 мбит/с. Каждый слышит каждого в зоне досягаемости. Нужно быть довольно посредственным программистом, чтобы не суметь, имея 1 мбит канал и 72МГц процессор, доставить сотню-другую пакетов в секунду с гарантией доставки и задержкой в несколько мс. Учитывая, что длина 1 пакета всего ~50 байт. А уж отыгрывание звука - это вообще параллельно происходит, есть же DMA.
Моя защита от коллизий чем-то похожа на ту, что применяется в WiFi. Например, годная гифка внизу страницы:
http://robotics.eecs.berkeley.edu/~wlr/ ... ge1390.htm