По какой-то причине все монстры Майнкрафта превратились в аниме-девушек
»пидоры помогите программирование geek как из дурака превратится в человека и зарабатывать миллион
Прошу вашего вашего совета и целительного пендюля. Мне нет еще 30, но уже слышу как поёт Сектор газа, и хочу стать погроммистом. Мечтаю об этом давно, а вот за последние пару лет прогресс сдвинулся не сильно далеко: 250 страниц из учебника Г.Шилда по JAVA и 4 месяца универа из которого благополучно съебал (потому как преподаватели ровесники фон Неймана, и надо было искать работу после возвращения с заработков (денег хватило на полгода что бы ничего не делать)). В универ ходить сложно потому как работаю по сменам, да и там особо не учат. Один препод читает лекцию на русском, сама презентация на латышском, а ему пора на пенсию еще 20 лет назад, второй с проблемами ЧСВ, ничего не объясняет, а просто зачитывает формулы с презентации которая на английском и говорит - "Пилите!". Про высший матан, молчу- тут я пень. Ну и как бы я перед универом изучал по тЫрнету матчасть, но ребята которые были со мной на потоке были намного скиловей. В общем универ не варик.
Собственно вопросы пидорам:
-есть ли здесь те кто пришел к успеху своим ходом(как вы это сделали?), без высшего образования или получил кресло джуна его и только потом пошёл учится?
-Можно ли влезть в IT-сферу обучаясь самостоятельно?
-Расценивается ли при приёме как плюс то что выучился сам?(Я понимаю, первое на что смотрят - скилл , но при прочих равных будет ли это плюсом)
-Правда ли что там выгорают? Или просто с жиру бесятся сидя в теплом кресле?!
-И что же всё таки лучше, долбится в учебники Г.Шилда или искать годный ресурс для изучения языка, что сами посоветуете?
Игры Minecraft Мультиплеер видео длиннопост
Тысячи игроков в одном чанке: новая ветка развития Minecraft
Как «синхронизировать» множество серверов в единый бесшовный мир и как изменится игровое сообщество с выходом нового серверного ядра — MultiPaper.
Одной из самых главных проблем большинства игровых серверов является однопоточность или сильная зависимость от главного потока, где важна частота процессора (а точнее IOPS), что сильно ограничивает масштабность игры в мультиплеере. Разработчики Minecraft пытаются решить данную проблему ещё с версии 1.14, но всё упирается в сложности разработки и «неповоротливость» компании. С каждой новой версией производительность серверов наоборот ухудшалась. Многие всё ещё остаются на 1.12 ради возможности вместить больше 200 игроков.
В 2020 году студия Mojang экспериментировала с Aether Engine компании Hadean, чьи технологии используются в EVE Online Aether Wars. Они смогли поднять сервер на 1024 игрока.
"Внедрение Aether Engine в Minecraft открывает для наших игроков множество новых захватывающих впечатлений, событий и режимов игры. Aether Engine отлично справляется с увеличением количества соединений и вычислительной сложности, что позволит нам создавать более масштабные и захватывающие события, чем когда-либо прежде. Увеличение возможностей игроков и производственных возможностей также открывает новые возможности для получения прибыли, не перестраивая радикально существующую инфраструктуру Minecraft."
Майкл Вайлбахер, CTO Mojang Studios
Что в итоге получилось от сотрудничества непонятно. Сообщество решило взять эту задачу в свои руки. С каждым годом серверные ядра, плагины и моды пытались превзойти друг друга добавляя всё больше оптимизаций и переписываний оригинального кода игры под многопоточность.
В 2021 году появился проект Mammoth от WorldQL. Они пытались добавить возможность горизонтального масштабирования с использованием общей базы данных и брокера сообщений. Проект провалился.
"Горизонтальное масштабирование подразумевает увеличения вычислительных ресурсов путём распределения задач на разные компьютеры и сервера. А вертикальное — увеличение на уже имеющихся мощностях (апгрейд процессора, добавление памяти)
Форк — использование кодовой базы программного проекта в качестве старта для другого, при этом основной проект может как продолжать существование, так и прекратить его." Википедия
Также можно отметить попытки реализовать полностью самописные движки для сервера. С 2019 года в медленном темпе разрабатывается Feather, написанный на Rust. Выглядит перспективно, но не понятно что с проектом.
Ещё есть Minestom, что также пытаются написать свой мультипоточный сервер, но уже на Java. Имеют довольно активное сообщество. Подходит скорее для мини-игр, чем на полноценный опыт.
Для ядер Fabric и Forge также были попытки написать моды на многопоточность — MCTM и MCTMFabric. Разработка практически не ведётся.
Начало положено
В это же время над своим решением начал работать австралийский разработчик PureGero — MultiPaper (github / сайт). Основой для него является серверное ядро Pufferfish. Это позволяет получить лучшую производительность со всеми оптимизациями и сохранить совместимость с гигантской экосистемой плагинов Bukkit. Вот так выглядят отношения между популярными серверными ядрами:
Vanilla → CraftBukkit → Spigot → Paper → Airplane → Pufferfish → MultiPaper
Vanilla → CraftBukkit → Spigot → Paper → Airplane → Pufferfish → Purpur
Vanilla → FabricСтрим ютубера Ish. Все 897 игроков собрались в одном месте."Попробовать поиграть самому можно уже сейчас на специально созданном под эту статью сервере на MultiPaper. Он тестовый и не будет регулироваться, поэтому прошу соблюдать рамки приличия и быть благоразумными.
Хотел сразу на 1.19 сделать, но один из плагинов на приват, HuskTown, не успел обновиться.
syndicate.ss220.space - Minecraft 1.18.2 (любой клиент)"
Как это работает?
Multipaper Master — это прокси-сервер и база данных, которая взаимодействует между подчиненными серверами и предоставляет сервис, на основе которого эти серверы синхронизируют свои данные и отправляют пакеты. Каждый сервер MultiPaper подключается к одному Master, чтобы данные между ними обновлялись в режиме реального времени. Если игрок на сервере A атакует другого игрока на сервере B, сервер A отправит эти данные прямо на сервер B, чтобы сервер B нанес повреждения игроку и применил обратную связь.
PureGero, автор проекта
Такая координация позволяет удостоверится, что каждый загруженный чанк «тикается» только одним сервером за раз и позволяет осуществлять смену текущего «владельца» чанка в зависимости от нагрузки. Каждый шард кэширует чанки, которые нужны игрокам, что обслуживаются им. Если правильно всё сделать, то вы сможете поднимать/останавливать шарды по мере необходимости и игроки практически бесшовно будут переключаться между ними (увидят лишь загрузочный экран на 1 секунду).
Вывод команды /servers с информацией о состоянии каждого шарда
Недавно PureGero поставил рекорд по заполненности сервера — 7000 ботов в одном прегенерированном мире на 7200x7200 блоков со 100+ ботами на каждом шарде. Для этого использовались виртуальные сервера Google Cloud Platform. Также потребовались тонкие оптимизации настроек методом проб и ошибок.
Стресс-тест ботами - https://github.com/PureGero/minecraft-stress-test
Достаточно тяжело уловить золотую середину между количеством шардов на машине, количеством памяти на один шард и расходами на хостинг. Всё это очень индивидуально и зависит от концепции сервера. Рекомендуется арендовать выделенные сервера на расстоянии до 1мс между шардами и мастером для избегания проблем с синхронизацией и с хорошей шириной канала.
Уже есть некоторый список проверенных плагинов, что были опробованы с MultiPaper. Вы можете попробовать и другие. Если в плагине есть поддержка работы с базами данных, то есть вероятность, что он заработает без изменений. Тут уже надо экспериментировать.
Советую вступить в discord разработчика MultiPaper, чтобы иметь возможность задавать вопросы и делится своим ценным опытом с другими. Есть слухи, что уже больше 5 крупных коммерческих компаний готовят новые сервера на MultiPaper на протяжении последних нескольких месяцев.
З.ы.
Дальше дополняет автор к спизженной мною статье от себя пару слов:
Надеюсь вам понравилась статья. Пытался писать для обычных геймеров, не перегружая технической информацией. Целью статьи является попытка сделать MulitPaper более известным среди майнкрафтеров, и чем известнее он будет становится, тем больше технической поддержки будет от сообщества.
Немного расскажу про свой опыт. Я являюсь одним хостом довольно крупного игрового проекта и discord-сообщества на 17000+ участников. Оно сформировано по совершенно другой нишевой игре, не Minecraft. Дневной онлайн на наших игровых серверах составляет обычно 400-600 игроков.
Недавно попробовали вместе с некоторыми стримерами Банды (суммарно вышло 1к+ зрителей) организовать ивент на MultiPaper сервере с двумя этапами: строительство игровой зоны (город/пригороды) и последующая масштабная королевская битва. Как оказалось, привлечь больше чем 100 игроков довольно трудно, даже если есть такое немалое сообщество и среднего размера стримеры.
Поэтому мне интересно посотрудничать со стримерами, ютуберами и сообществами в организации чего-нибудь интересного на MultiPaper или просто общения для обмена опытом.
Telegram: @azizonkg
Email: azizonkg@gmail.com
Отличный комментарий!