Суббота, 04.05.2024, 14:42
Приветствую Вас Гость

Разработка игр c использованием JPCT

Каталог статей

Главная » Статьи » Разработка игр » Сеть

Немного о Protobuf
    Я счел нужным написать эту статью т.к. в дальнейших уроках связных с сетевым взаимодействием будет использован Google Protobuf. Данная технология серьезно упрощает жизнь при разработки программ в которых используется сетевое взаимодействие. В нашем случае речь пойдет о версии для Java приложений.
Для сборки приложения я предпочитаю не компилировать самостоятельно исходные коды Protobuf, а загрузить готовый jar файл вот от сюда. По указанной ссылке находится последняя на текущий момент версия 2.5.0. Также под Windows нам потребуется генератор преобразующий файл .proto в класс который в дальнейшем будет использоваться в разработке наших сетевых приложений его можно скачать с сайта проекта Protobuf. Необходимо проследить чтобы версия генератора соответствовала версии .jar файла, иначе при компиляции программы вы получите большое количество непонятных ошибок.
Завершающий штрих настройки это создание файл .bat который упростит процедуру генерации, вот содержимое файла:

     .\protoc.exe Message.proto --java_out=.\ 

Из него видно что первый параметр это путь к файлу .proto второй параметр это путь по которому будет помещен класс созданный на его основе.


Теперь немного о файлах .proto.
Я опишу некоторые аспекты создания этого файла более подробно с данной информацией можно ознакомится тут.
Итак я написал простенький файл .proto со следующим содержанием:

option java_package = "gram.packages";
option java_outer_classname = "Packet";

message ALogin
{
required string Login =1;
required string Password = 2;
}


Первая строчка говорит о том как необходимо назвать пакет Java в котором будут находится сгененрированный класс. Второй как назвать класс который будет содержать описанные сообщения.
Далее описано сообщение разберем его.
message ALogin это название сообщения(пакета)
{
required string Login =1;
required string Password = 2;}

Тело сообщения заключается в фигурные скобки. Далее две строчки описывают содержимое сообщения. Слово required говорит о том что данное поле должно обязательно быть заполненным при формировании пакета, помимо этого возможно задавать сколько угодно повторяющихся полей для этого используется слово repeated. Если указать слово optional это будет говорить что данное поле является не обязательным т.е. его может не быть в передаваемом пакете. Следующее за ним слово string это тип данных этого поля. Также необходимо обратить внимание на необходимость обязательно указывать номер поля =1 в сообщении, данный номер не должен повторятся. Описание каждого поля сообщения должна заканчиваться точкой с запятой.

Также возможно вкладывать описанные сообщения(пакеты) друг в друга например:

message Item
{
required int32 BaseID=1;
}
message Taken
{
repeated Item item=1;
}

Как видно язык написания файла .proto очень гибок и позволяет очень легко описать пакеты данных для их последующей передачи по сети.
Категория: Сеть | Добавил: Gram01 (19.08.2013)
Просмотров: 1786 | Теги: protobuf | Рейтинг: 2.4/7
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
JPCT [11]
Раздел о разработке игр на устройства работающие не под управлением Android'а
Сеть [2]
Раздел по вопросам касающимся сетевого взаимодействия приложений на java в контексте разработки игр
Контент [0]
Статьи о работе к контентом при разработки игр
Скрипты [2]
использование скриптов в игровом движке
Разное [1]
различные материалы о разработке игрового движка
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright Неведомый Р.А. © 2024 | Рейтинг@Mail.ru