Pull to refresh

Comments 15

enforcesSecureChat — подпись сообщений. Можно изменять формат, но не текст
previewsChat предпросмотр сообщения в чате перед отправкой

Введены в 1.19

Спасибо за подсказку!

То есть клиент "Джавы" не сможет играть на одном сервере с клиентом "Бедрока".

Это не совсем так, есть как минимум одна утилита для организации кроссплея

https://geysermc.org/

Да, верно. Я не совсем точно передал свою мысль, что совместимости нет по умолчанию, но она достигается сторонними решениями

Тогда при написании своего сервера при наличии таких решений, можно основываться на их опыте, а не сразу отвергать)

Интересное, чтиво по теме про сервер майнкрафта на баше. Там же описаны некоторые приколы протокола и про LEB128.

Спасибо за статью
надеюсь в следующей будет побольше кода

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

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

Хотя тут мы конечно в фантастику какую-то переносимся...

Привет, а как сейчас обстоят дела с точки зрения прибыльности с мониторингом Minecraft серверов? Лет 10 назад, слышал мониторинг серверов очень пользовался спросом и вроде было очень прибыльно. А сейчас как? Не уж то до сих пор играют?

Спасибо за статью! Она меня вдохновила тоже попробовать поисследовать тему ради интереса и написать свое)

Очень интересная статья. Всё понятно расписано, продолжай в том же духе! Единственное хотелось бы, чтобы автор показывал побольше кода программы. Жду новых статей с удовольствием.

То есть клиент "Джавы" не сможет играть на одном сервере с клиентом "Бедрока".

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

А мелкомягкие, которым ныне Mojang принадлежат - не могут...

Формирование пакета у вас сделано абсолютно неправильно. Если на каждое записываемое число создавать новый вектор - это ж нагрузка на динамическую кучу будет дичайшая, и ради чего?

Если уж вы читаете из &mut dyn Read - то и писать надо симметрично в &mut dyn Write!

Ну и dyn не стоит использовать так уж активно, он создаёт лишние косвенные вызовы там, где их можно очень легко избежать: просто замените dyn на impl.

А как лучше сделать формирование пакета? При инициализации пакета один раз создавать вектор и не объединять с другими в каждом новом типе данных, а мутировать?

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

Но все эти случаи покрываются трейтом std::io::Write. Поэтому начните с использования Write симметрично Read.

Sign up to leave a comment.

Articles