38

TerraPath #11⁠⁠

Кратко о содержании сегодняшнего поста:

Примитивный интерфейс.
Обработчик пакетов.
Интерполяция движения.
Чат.

Обработка авторизации.
Фильтры пакетов
.
Рубрика вопросов.


Вот мы и перешли в эру альфы.
Чтобы работать с сетевой частью, я сразу создал очень примитивный интерфейс:

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

Текстовый поля можно редактировать как обычные формы в браузере и тд.
Ну то есть есть поддержка выделения текста, Ctrl+C, Ctrl+V и тд.

Дальше я занялся обработчиком пакетов:

Особенностью получилось, то что я могу передавать пакет обработчик, а он сам попадет в нужную функцию. Получается очень удобно и просто.
Достигается такая фишка за счёт генериков и лямбд.
Код становится чище и понятнее.

Интерполяция движения.
Как долго я закончил написания ядра сервера, я начал переносить логику игры на сервер, начал с движения персонажа, но оказалось не всё так просто.
На клиенте используется предсказание для игрока. Поэтому на большинство своих действий игрок видит сразу, без задержки, а вот остальные игроки нет.
Они двигались рывками и чтобы исправить это я стал интерполировать их положение с прошлого.
Как это работает? Когда от сервера приходит новая позиция для сущности, она смещается с текущий позиции на новую за 100мс.
Получается очень плавно движение, без рывков.

Также сразу решил сделать чат:

Следующим шагом стал система авторизации на сервере.
Я составил протокол передачи данных, и после его успешного завершения игрок появляется на сервере, а на клиенте пропадает плашка "Connecting..."

Это дает защиту от случайных коннектов, а также чтобы игрок не видел не загруженный мир.

Был добавлен Фильтр пакетов.
Сервер и клиент игнорирует сообщения кроме указанных, что предотвращает посылку данных без авторизации. Также в дальнейшем для защиты будет использоваться пароль на сервере. Поэтому читеры не смогут как либо влиять на сервер пока не авторизуется.
Само собой пароль будет передаваться в шифрованном виде.
Также подумываю о том чтобы добавить проверку игроков через стим.

А также по части сети:

Инициализация игрока.

Синхронизация игроков.

Установка тайлов и объектов.

Синхронизация анимации игрока.

Вот как-то так это выглядит:


А на этом всё, спасибо, что дочитали.
Также не пропустите прошлые посты:

https://pikabu.ru/profile/GooDCrafter


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

https://vk.com/terrapath

А теперь рубрика вопросов:
1)Как вы считаете, стоит писать большие посты или средние.
И как вы оценивайте этот пост, длинный средний?
2)Я пока решаю куда публиковать игру, в целом то есть два варианта:
Это стим или же поднять собственный сайт.
С одной стороны я думаю про стим, но увы стим уже не приносит столько трафика новым играм.
Что думаете об этом?
3)Тут несколько людей продвигают идею опенсорса, и возникает такой вопрос, стали бы вы донатить на разработку данной игры тем самым делая её бесплатной?
4)Я тут решил отказать от стоковой музыки, и начать кооп с музыкантами, есть кого вы могли бы посоветовать? Сразу оговорюсь что платить много я не смогу, сам свожу тут концы с концами. Можно как вариант 2-3 трека за небольшую плату, а остальные после выхода игры.
Я мало верю что кто-то захочет просто работать со мной за идею, но вера это единственное что у меня есть.
5) Тоже самое и с художниками, само собой пиксельарт.


PS: Во накатил вопросов то :)

Спасибо всем кто ответит хотя бы на часть из них.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Автор поста оценил этот комментарий

3) Сколько вы готовы донатить?
Пока я тут не вижу вообще ничего за что стоит донатить.


4) Я описываю процесс разработки, а не введу туториал.
Если бы вы описывали процесс разработки Half life 3 - это была бы жизнеспособная модель развития.

В данный момент проблема этого дневника - в отсутствии полезности.


Ваш текст предсталяет собой список: "я реализовал фичу i", плюс иногда какие-то технические детали которые не имеют смысла в отрыве от более детальных обсуждений.


Вам нужно для начала определиться на кого вы нацеливаете этот текст?

Новичок не будет писать первую игру на java, это бред, он возьмет движок в котором большая часть описанного есть из коробки, а остальное детально разобрано в мануалах к движку.

А не новичок, который знает java на том уровне чтобы начать в нем делать игру - вряд-ли нуждается в идее о том, что в мультиплеере нужно делать интерполяцию переменных... Эти вещи столько раз описаны где только можно, что повторять их просто не имеет смысла.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

3) Ну то есть вы даже примерные оценки вашего доната не можете обозначить.
Проще говоря вы хотите годные туториалы, но не хотите сказать сколько вы за них хотите платить? Какой ваш потолок?

4) Почему вы ищете туториалы в девлогах?
Текст нацелен на игроков, как я уже говорил ранее, чтобы показать процесс разработки игры и что он идет.
Повторю еще раз, так как вы похоже не читаете что я пишу, я не делаю туториал.
Если кто-то почерпнёт полезную инфу в моих постах это хорошо, но основная цель это показать что идет разработка игры.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества