Для игр это не «старый» способ ведения дел - это норма.
Это связано с тем, что, в отличие от типичных веб-сервисов, где сервер отправляет данные клиента короткими, редкие пакеты, в играх сервер и клиент отправляют пакеты туда и обратно постоянно . Количество пакетов, необходимое для синхронизации состояния каждого клиента с воздушными шарами друг друга в геометрической прогрессии с количеством игроков, поэтому чем больше игроков будет в вашей игре, тем важнее сохранять размер пакета небольшим.
Также при превышении размера MTU (обычно около 1400 байт) приведет к фрагментации пакета, что может оказать существенное влияние на производительность.
Обратите также внимание, что Microsoft имеет ограничение на загрузку и выгрузку в 8 килобайт в секунду для игр, созданных для XBox 360, поэтому вы почти не можете создать MMO, используя XML для сетевых сообщений.
Что касается того, как преобразовать байт в тип сообщения: просто используйте оператор switch
или сохраните Dictionary<byte, Type>
или Dictionary<byte, Func<Message>>
(при условии, что у вас есть набор классов сообщений, которые все происходят из базовый класс Message
)