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"

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

1)Как вы считаете, стоит писать большие посты или средние.

Средние.


И как вы оценивайте этот пост, длинный средний?

Средний.


2)Я пока решаю куда публиковать игру, в целом то есть два варианта:

На этап разработки - сделать на своем сайте публичную бету. Когда будет не стыдно - можно и в стим.


3)Тут несколько людей продвигают идею опенсорса, и возникает такой вопрос, стали бы вы донатить на разработку данной игры тем самым делая её бесплатной?

Я бы стал, если писать статьи с разбором и публикацией исходников.


Т.е. пишите мультиплеер - вначале реализовываете его в отдельном демо проекте. Только мультиплеер, без остального мусора. По этой теме написали статью с обзором. Опубликовали проект. Когда мультиплеер доведен до блеска - интегрировали его в основную игру. И взялись за новый демо-проект, скажем управление персонажем или AI.


Исходники основной игры можно и не публиковать, если доната будет мало. Но такие мелкие проектики конкретно заточенные под одну задачу - будут очень полезны.


Можно их даже в ассет-сторе выкладывать. В том числе платно. Заработать сможете больше чем на игре, если делать хорошо, а не публиковать копипасту.


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



4)Я тут решил отказать от стоковой музыки, и начать кооп с музыкантами, есть кого вы могли бы посоветовать?

Я мало верю что кто-то захочет просто работать со мной за идею, но вера это единственное что у меня есть.


Люди, которые заходят работать за идею есть. Проблема в том, что их мало, и вероятность что вы их встретите пока что исчезающе мала. Если вы будете полезны сообществу - то ваша аудитория увеличиться и пропорционально увеличиться шанс найти музыканта (да и кого угодно).


Но вы сами критически гляньте на свой пост. Кому он может быть полезен?


Что это вообще? Этот текст не может никому помочь в своих проектах. И он не интересен как "дневник разработки". Он пока вообще "ни о чем". Зачем там этот кусок кода? Чтоб было что-ли?..


Если вы чего-то достигли в своей разработке - то это само по себе никому не интересно. Я вот сегодня выучил 20 неправильных глаголов. И что? Кому это интересно само по себе?


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


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

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

Спасибо за столь развёрнутый ответ.
3) Сколько вы готовы донатить?
4) Я описываю процесс разработки, а не введу туториал.
Я описываю идеи и решения, а люди же могут вдохновится и придумать что-то свое.
Если же я буду просто публиковать исходный код, то это будет тупой копипаст, и ничему он людей не научит.
Я бы рад писать туториалы, вот только у меня на них нет не времени, ни денег.
Если вам не интересно читать мой дневник разработки, вы можете указать конкретно что вам не нравится, чтобы мы вместе могли его улучшить.
Я его введу чтобы показать что разработка не стоит на месте и игра улучшается, также иногда бывают посты которые раскрывают некоторые технические стороны проектов.
Ради примеров почитайте другие дневники разработок.
PS: Я и так раскрываю очень много технических сторон проекта, посмотрите мой другие посты, а люди еще и не довольны. Вот стараешься для людей, а они этого не ценят :c

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

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


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

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


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


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

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

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

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

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

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

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

Проще говоря вы хотите годные туториалы, но не хотите сказать сколько вы за них хотите платить?

Я сказал, что пока платить тут не за что. А не то что я не готов платить за годный материал.


Если делаю новый проект - то обычно покупаю готовый проект с похожей механикой, где-то за 300-400$. Потом отдельно не ключевой контент, еще 300-500$. Ключевой контент делаю сам, или отдаю на оутсорс, тут всегда по-разному, от 500 и сильно выше. В итоге все собираю вместе.


Вот те 300-400$ - это и есть потолок доната для подобных проектов, если вы делаете только механику.


Если делаете отдельный компонент, например, мультиплеер, то потолок 20-70$, и то при наличии всех нужных функций (работа на разных платформах, разные режимы и т.п.). А если код хреновый - то нисколько. Зачем он нужен, если его можно с туториала скопировать? Или бесплатно найти.


Я плачу за проф. решение. Т.е. по сути, за то, чтобы не столкнуться с проблемами, в будущем. Любое решение из туториала - обречено на проблемы, когда что-то не учтено, обновился двиг, архитектура сети, драйвер и т.п. И решение из туториала падает. Но большинство таких проблем можно предвидеть, если раньше с ними уже сталкиваться. Т.е. даже простую функцию должен делать хороший специалист. Нанимать его для простой задачи - невыгодно, но, если он напишет код и выложит на продажу – код купят много раз и его разработка окупиться. Так даже за 100$ можно купить приличное решение частной задачи, с которым не будет проблем. Вот и вся математика.


И я не ищу у вас туториалы, я с java вообще не работаю, поэтому, что вы сделаете или опишите - мне без разницы. Тем более, что разработка на своем велосипеде в наше время оправдана крайне редко, а если это еще и не свой собственный велосипед - то вообще бессмысленна.

Просто я ваш пост увидел, уже прошло 6 часов и не одного коммента. Вот я и решил помочь советом. Может грубовато вышло. Сорри тогда. Удачи во всех начинаниях!

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

Делать ассеты это конечно круто, но не так интересно как делать игры.
Но в любом случае спасибо за столь развёрнутые ответы.
И вам тоже!

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

Можно ещё посмотреть видео-блоги Around The Verse разработчиков Star Citizen.

https://www.youtube.com/watch?v=FhywXu8vsuM вот последний эпизод.

Там уровень, конечно же, совсем другой, но смотреть интересно -- может что-то сможете перенять.

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

Ну там уровень конечно другой, там целая команда.
И проекта уровня ААА.
Мне до такого далеко x)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества