Pull to refresh

Comments 9

Не надо заискивать перед сообществом Хабра, тут и хорошую статью заговнить могут, а могут и бездарную залайкать… Статья нормальная, особенно для первой.

Мне кажется, автор именно это и имел в виду, говоря "знаю комьюнити Хабра"..

Для первого раза очень хорошая статья

Для примеров общего концепта - неплохо.

Но явно стоило бы отметить, что в реальных и клиентах и серверах и while true кода поменьше, и данные, скорее всего, гоняются и не в виде JSON, а в бинарном формате (трафик), и не в виде полного дампа (предположу, что летят изменения + есть какой-то механизм синхронизации, детекта её сбоев и доотправки потерянных пакетов).


Было бы интересно про такие оптимизации почитать. А то сейчас, на первый взгляд, сама отрисовка честно выдает 60 кадров, а вот класс клиентов от души терзает сервер настолько быстро, насколько вообще может :)

Дело не только (и возможно не столько) в трафике (JSON), но и в том, что кодирование, декодирование JSON обычно медленнее, чем имеющиеся форматы типа Protobuf. Что важно для игр с низкой задержкой.

В реальных клиентах и игрока не будут наследовать от спрайта, и отрисовка объекта будет идти через полиморфизм.

Ещё в реальных клиентах начало анимации показывается игроку сразу, и только потом команда уходит на сервер. Тут же кнопки WASD при каждом (!) нажатии отправляют запрос на сервер, а перерисовка идёт уже при получении обновлённых данных.

Ну и сервер вешается на интерфейс локалхоста, то есть подключений снаружи он не слушает. Короче, понятно, что пример учебный.

Дурацкий вопрос: Зачем использовать pygame если есть pyglet?

pygame — это всем известная библиотека для обучения программированию на примере игр. В статье это и происходит — обучение сетевому программированию, демонстрация концепции.

pyglet я лично не видел, но в документации он позиционируется как библиотека для разработки игр и прочих "visually rich applications", а не как обучалка. Наверное, поэтому.

Sign up to leave a comment.

Articles