Привет,
Сегодня, под предлогом обсуждения и в целях развития этой ветки форума, которая слишком уж тухленькая, я попытаюсь выманить немного ваших знаний о Фотоне для благих целей!
Задавал вопрос как на офф.форуме, так и на stackoverflow - молчат.
В общих чертах, мой вопрос можно истолковать так:
Что такое Operations и Events в Фотоне, для чего они нужны и на каких живых примерах их можно использовать?
Если понимаю правильно, то в кратце:
Операция - запрос посылаемый клиентом на сервер
Событие - событие рассылаемое сервером одному, группе или всем клиентам
Углубляемся
Учитывая, что операций например, может быть всего 255, потому что передаются байтом и не рекоммендуется раздувать это, я предположил, что разработчики Фотона уверены в том, что в 255 операций уложится любая игра.
Тогда вопрос... А как тогда различать запросы? И чем тогда является операция?
Я опять предположил, что операция в таком случае, является неким каналом для потока данных между клиентом и сервером, в одной операции могут содержаться разные запросы, которые можно различать посредством channelID, но я могу жестко ошибаться и тут мне нужна ваша помощь понять это.
Кстати, в таком случае, если я прав, с терминологией проблемы. Тогда вместо операций должны быть channelID, и внутри него надо использовать операции (или проще говоря какой-нибудь GAME FLOW), например: "Игрок А хочет ударить Игрока Б".
Но я знаю, что так же есть и параметры которые передаются в каждой операции, так же через byte,object списки, что вносит еще один уровень категоризации/слоения.
Я могу начать практиковаться, но боюсь, что научусь сам, без помощи, тому, что является грехом и неверным в корне.
Поэтому, может быть, тот кто имеет опыт с Фотоном и писал уже работающие вещи скажет, для чего операции, каналы, события, в чем их смысл? Как это применить в игре? Не в плане кода, с этим все хорошо, а в плане логики.
Чем в моем случае будет являться операция, а чем канал...
Можно использовать пример для обсуждения: Есть набор функций которые управляют персонажем. Идти, бежать, сидеть, прыгать, ударить. У каждой функции есть свои параметры. Куда идти, куда бежать, как высоко прыгать, где точка приземления, можно ли сесть там где хотят сесть, кого ударить и.т.п
Вопрос - все эти функции являются операциями по отдельности, или они являются одной операцией, группа похожих по смыслу функций, которые различаются по channelID? или channelID это тоже слишком высокий уровень для столь низкоуровневых функций?
В общем.. я в печали, больше некому мозг сверлить. Помогите, помогите, с меня пиво.. Если кто будет проездом в Израиле =)
Спасибо.