Формат передачи данных с помощью RPC

Сеть в Unity3D

Формат передачи данных с помощью RPC

Сообщение GrueGames 24 май 2009, 11:40

1 раз в 10-30 секунд необходимо отправить от сервера клиенту серию из 100 трехзначных чисел. Посоветуйте пожалуйста как это лучше сделать.
- Отправить 100 RPC с числами в качестве параметра.
- Собрать из них строку, разделив запятой, и отправить 1 RPC с String в качестве параметра.
- Еще какие-нибудь варианты?
Спасибо!
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Формат передачи данных с помощью RPC

Сообщение Neodrop 24 май 2009, 11:51

Network.OnSerializeNetworkView

Тут копайте. С помощью этой функции синхронизируются массивы векторов для интерполяции положения Лягушонка в Network Example .

С её помощью можно синхронизировать большие объёмы данных.
Передавать сто вызовов не разумно. Особенно, если важна последовательность. Пакеты могут прийти не в той последовательности, в какой были отправлены. Это же UDP.

var currentHealth : int;

function OnSerializeNetworkView(stream : BitStream,
info : NetworkMessageInfo)
{
var health : int = 0;
if (stream.isWriting)
{
health = currentHealth;
stream.Serialize(health);
}
else
{
stream.Serialize(health);
currentHealth = health;
}
}
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Формат передачи данных с помощью RPC

Сообщение GrueGames 24 май 2009, 12:12

Количество этих числовых переменных каждый раз разное. В этом случае получится использовать?
Порядок получения не важен, но важна передача всех данных без потерь.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Формат передачи данных с помощью RPC

Сообщение GrueGames 24 май 2009, 12:20

Объясню для чего собираюсь использовать.

Например есть некоторая походовая игра, допустим шахматы.
Но специфика задачи не позволяет программе клиенту предполагать возможные ходы (как например в шахматах) только получить их с сервера. Тоесть клиент не знает "правил" игры.

На каждом ходу у игрока есть около сотни возможных ходов. Сервер определяет их, и отправляет игроку. Игрок выбирает один из них и использует. На следующем ходу у него практически такой же набор вариантов ходов, с некоторыми изменениями, которые ему должен снова передать сервер, но общее количество их может измениться.
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Формат передачи данных с помощью RPC

Сообщение Neodrop 24 май 2009, 12:28

По идее поможет. Вкуривайте Network Example. :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Формат передачи данных с помощью RPC

Сообщение GrueGames 24 май 2009, 12:50

Спасибо!
Но хм.. сериалайз несовсем то что нужно. Данные необходимо передавать только в одном направлении, не в реальном времени, и если их представить в виде переменных, их количество разное, боюсь с этим будут трудности. Наверное попробую представить данные в более эффективном виде и передать в виде RPC с параметром String
Аватара пользователя
GrueGames
UNITрон
 
Сообщения: 200
Зарегистрирован: 11 апр 2009, 16:42
Откуда: Samara, Russia
  • Сайт
  • ICQ

Re: Формат передачи данных с помощью RPC

Сообщение wild_r 01 июн 2009, 22:17

Сюрриализация - способ кодирования сложный объектов, с последующим восстановлением. Не знаю, в чем будут проблемы, если вы все данные запихнете в класс, а потом сюрреализуйте его. И обратно, уже на нужной машине.

З.Ы. Я это красивое слово наверняка неправильно пишу...

З.Ы.Ы. Смысл в том, что все нужные вам данные завернуть в красивую оболочку, а потом же кодировать.
wild_r
UNITрон
 
Сообщения: 220
Зарегистрирован: 16 апр 2009, 20:46
Откуда: Россия, Санкт - Петербург
  • ICQ


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7