В этом и идея чтобы минимизировать дублирование кода. Максимум common для ключей.
К серверу привязывает только протокол общения. Но не кто же не мешает использовать массив байтов. Или строку. (Но строки то не дешевые, выбор байтового массива в этом случае более актуален) Если ява, придется продублировать свой сериализатор, тоже и для других языков. Что собвственно тот же message pack и сделал. Сложно представить систему, для msgpak которой не реализован.
А для чешл тогда были придуманы protobuf message box fb protocol и другие? Очень смутно представляется перескок на другой сервер (например с фотона на sfx еще ладно. они схожи. а вот на другой). В любом случае это не быстро, да и зачем.
Связь через ссылки на классы. По заданным требованиям, сериализовать сложные составные объекты справился только протобуф и стандартный сериализатор. «Данные должны быть максимально простыми», куда проще чем набор байтов.
Тест для простого примера, для реального примера . Json не сериализует поля типа интерфейс и абстрактный класс. Для этого нужен бубен, пример И наконец, как решать вопрос со сборкой? переименовать? ведь на клиенте и сервере классы хоть и одинаковые, но сборки разные.
Задача именно серелизовать объекты. Поля и так поделены на классы. И у каждого игрока своя модель. На сервере модели сереализуются с бд только при включении и выключении сервера. А так они всегда активны, зашел игрок. Его конектит к его модели, та шлет события, мол кто-то куда то пошел или чет построил. Нужно знать о втором игроке, принцип тот же.
Зачем использовать json при обмене между unity и photon? Можно его без всяких проблем перехватить. Бинарный же нужно еще декодировать. Любой при чем. Потом как решить проблему со сложными типами? Например объекты типа инвентарь?
К серверу привязывает только протокол общения. Но не кто же не мешает использовать массив байтов. Или строку. (Но строки то не дешевые, выбор байтового массива в этом случае более актуален) Если ява, придется продублировать свой сериализатор, тоже и для других языков. Что собвственно тот же message pack и сделал. Сложно представить систему, для msgpak которой не реализован.