Блог

Лагает сервер майнкрафт на хостинге

NikitOS9 9 ноября в In fact, the size of the off-heap cache is limited only by address space and the amount of RAM on your hardware. Очень привлекательно. При чем тут алгоритм Дейкстры? Выявить мусор можно и за линейное время. Maccimo 9 ноября в В одной онлайн-игре с сервером на Java оные лаги раньше были обычным делом под конец суточного цикла, разработчики грешили именно на GC.

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

Не сточки зрения евангелизма, а с точки зрения здравого смысла. Почему был выбран этот инструмент? Потому что это чертовски удобный язык. Ну а вообще выбор был прост — оригинал был написан на Java и я почерпнула очень много опыта из работы с первоисточником, а так же очень удобно писать свой код и видеть как работает то, что я пытаюсь сделать.

Dreammaker 9 ноября в Судя по минусам — питон совсем не предназначен для написания 3D-игр? Или что этим хотели сказать? Я просто никогда с ним не работал, но не на пхп же, который я знаю, писать игры: Если питон вообще не подходит, то какой язык для быстрого вхождения в процесс можно использовать? Dreammaker 10 ноября в Теперь хоть есть от чего отталкиваться и куда смотреть!

На пайгейм раньше наталкивался, а вот панды не видел: Многие и сейчас с удовольствием поиграли бы на предыдущих дополнениях, особенно если админы их постоянно улучшали. OnYourLips 8 ноября в Давят опенсорс созданием качественного ПО серверов, с которыми невозможно конкурировать одиночкам-опенсорсникам. Так что качество ПО и качество содержимого мира — это разные вещи. Я вынужден с вами не согласиться.

Майнкрафт оптимизация сервера. Совет Уменьшаем лаги на сервере, в клиенте и другое

Контент комуниздится прямо у близов. Абсолютно не масштабируемая архитектура, ни вертикально ни горизонтально, плюс куча пробелов в реализации, поскольку оригинального сервера ни у кого нету. Алгоритмы работы скриптов, боссов, данжей, формул… всего этого нет в открытом доступе. Подмена понятий. Но тут нечего выдумывать, потому что сама идея — украсть контент у близов. Остается только проблема архитектуры и отсутствие формул и алгоритмов.

Контент в данном случае — модели, текстуры. Целая куча причин. Основная в том, что реверс-инжиниринг. Кроме снифов, кэша, и данных на вовхеде ничего. Простите что вклиниваюсь. Даже предложил ряд патчей, которые впоследствии приняли в ядро обёртки для вещей, почта с фирменными подложками, формула опыта открытия территорий, имена и статы петов лока.

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

Результаты анализа трафика между клиентом и официальным сервером. Разбор пакетов и. Hint 9 ноября в Потому что периодически сливаются официальные сервера со всеми скриптами, конфигами, AI и прочим.

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

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

В промежутках между утечками идет разработка экстендеров. Как сказал Hint, офф сервер ла2 утекал в сеть. К тому же эмуль написан на джаве, что упрощает процесс фиксинга, рефакторинга и прочего в разы, когда становится доступна очередная порция информации… У мангоса и тринити ситуация печальная, команде приходится вклиниватся в рамки, которые они сами себе создали и громоздить костыли, о глобальном рефакторинге уже никто и не задумывается — слишком сложно будет….

BeLove 9 ноября в Дополню Ваше сообщение. Так же проблема рандомных опкодов, начиная с Каты. Писал немного об этом.

хостинг битрикс сравнение

Но тому есть веские причины, да и свет тут очень простой: А можно чуть поподробнее про причины для человека, не игравшего в minecraft? Monnoroch 9 ноября в В темноте спавнятся мобы, на свету. Это первое, что на ум приходит. Ещё деревьев, травы, цветов, выцветание травы.

А ещё таяние снега и льда…. Освещение обсчитывается в пределах чанка? И вообще — не подскажете толковое описание игровой механики? Всё просто, монстры мобы появляются в зависимости от уровня освещения.

Помогите убрать лаги или настроить сервер

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

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

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

Вам ниже ответили. Если буду делать что-нибудь, где это более к месту, обязательно не буду изобретать велосипед. А почему он должен держать его при себе? Вроде он никого не принуждал, а у нас официально свобода слова. Потому что он предлагал синхронизировать потоки обменом сообщений.

Я не обязана искать скрытый смысл и догадываться, что овтет был не на то сообщение. Если вы при этом еще используете notify All — то наверняка. Не похоже, по-моему. И нет, не использую. При чем тут синхронизация данных между потоками и перечисленные вами продукты? Потому что можно извращаться и обмениваться сообщениями между потоками… а можно.

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

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

Murkt 9 ноября в Это шовный мир и так сделать намного проще, чем размазать бесшовный мир. Впрочем, к Хадупу это всё равно никакого отношения не имеет. Я не против наличия отдельных нод под локации, но для этого совершенно не обязательно использовать столь тяжёловесные технологии. Сколько у вас будет латентность в связке camel-activemq? Десятки миллисекунд? А у вас всего 50ms на все вычисления. Про хадуп вообще молчу. Стоп, зачем? Что там синхронизировать? Просто передавать секьюрную инфо типо ключей при смене игровой локации.

Каким образом вы сможете использовать synchronized в разных JVM, на разных машинах? Я имею ввиду, что там не такой уж большой объем данных, которые надо синхронизировать. Передавать чаров с локации на локацию, синхронизировать инфо для статистики, ну и так далее… Если вы хотите реалтайм и при этом кластеризацию, вам не подойдет архитектура где нужно синхронизировать много данных между нодами.

Я не собираюсь использовать synchronized для синхронизации между разными JVM хотя в каком-нибудь Hazelcast есть распределённые локи реализующие стандартный джавовский интерейс Lock.

Мало того, я вообще не собираюсь использовать synchronized. У него есть свои преимущества, но есть и более удобные средства обеспечения потокобезопасности — как в java. Последняя, к тому же, может обеспечить относительно прозрачную кластеризацию.

А придрался я именно к рекомендации заменить synchronized на транзкции и JMS. Перечитайте первые три сообщения этой ветки, в них нет ни слова о распределённости: С помощью synchronized при доступе к одним и тем же данным. А, да это я уже понял, я спутал треды Я думал речь идет о распределенности. Когда мне нужно будет сделать кластер, я всё-таки разделю мир на части, которые буду плавно связаны и передавать между собой объекты или их состояния в зависимости от того, на сколько объект с одной ноды ушел на другую.

Кстати, а в протоколе Minecraft реализован second connection дя прозрачного смена ноды? Или там есть возможность изменять протокол по своему усмотрению? Например, в ВоВ такое есть, отдельным пакетом можно попросить клиент установить коннект с другим адресом и после успешного соединения закрыть првый коннект, тем самым менять ноды на лету.

Что доказывает, что у близзард именно такая архитектура. О чем вы, гспди? Minecraft не предназначен для нормальной игры на одном-то сервере, не говоря уже о нескольких…. А как тогда его кластерезировать? Туннелирование и тому подобное не очень удачный вариант…. Как я уже говорила, мир должен быть бесшовный. Сделать мир со швами проще простого было бы, хоть. Как — вопрос уже другой, будет нужно — решу. Почему туннелирование — неудачный вариант?

Используются же балансировщики нагрузки в вебе и. Потому что по хорошему балансировщик должен принять клиента, передать его на ноду и забыть о нем закрыть коннект. В чем смысл пропускать весь траффик все равно через одну точку? MiniM 9 ноября в Stack Overflow — веб ресурс, а мы говорим о реалтаймовых играх. Как отразится на прформанс пинг лишний слой узел? К сожалению не могу сказать про игры. Вот статистика по SO: Почему пинг должен сильно возрасти? Балансировщик и игровые сервера будут находиться в одной сети и интерфейсы могут быть достаточно быстрыми.

Пиратский сервер ВоВ, данные пару лет назад, так как сейчас этим не занимаюсь. В играх отклик должен быть мгновенным. Потеря даже 50 милисекунд уже очень существенна.

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

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

Обсуждение:Создание и настройка сервера/Архив 1. Майнкрафт оптимизация сервера

Надеюсь вы знаете, что synchronized — это ой как дорого и с java 1. Если вас так заботит масштабируемость посмотрите en. Почему вы назначаете потоки на конкретные задачи? Не проще ли сделать одну очередь заданий и потоки будут чисто worker, так система будет гораздо устойчивее и адаптивнее. Вы можете мониторить очередь отдельно и сортировать в соответствии с циклами.

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

Разделение просто по удобству. А ещё есть вещи, которые можно допустить лагающими — например, предметы, лежащие на земле. Их стандартная скорость 5 циклов в секунду, если немного просядет, не страшно. А вот тележки должны делать идеальные 20 циклов, и делают… Так удобнее. Атомарные синхронизации годятся для доступа к переменным, но сложны или не применимы к коллекциям.

B7W 9 ноября в Присоединяюсь к вопросу про очередь. Я конечно против одной, но у вас их как-то многовато. Не получился так, что некоторые будут простаивать, а другие тормозить. При том что ресурсы машины будут полностью не задействованы. Собственно и их жесткая привязка к количеству, как я понял из статьи, тоже может мало способствовать гибкости приложения.

И спасибо за статью, и за комментарии. Познавательно получилось. Дедлоки тут не причем, они появляются от некорректного проектирования, а от техники реализации synchronozed или read-write lock — не зависят ну.

Как не нужно писать большие сервера / Хабр

А насколько коллекции общие и как часто к ним происходит обращение и со скольки потоков. Synchronized с 1. Оно при старте вообще biased lock. При попытке захвата лока из другого потока переходит в thin-lock, который использует CAS оптимистичный подход.

По-моему, synchronized в общем случае работает на порядок шустрее локов из util. Я это утверждаю на основе своих личных тестов. Synchronized также меняет имплементацию в зависимости от использования. Если быть более точным, то biased lock используется не совсем при старте, а через какое-то время после старта.

Хотелось бы уточнить… после перехода в fat lock все synchronized становятся фат локами, или только тот кусок кода, который туда свалился? Или только этот кусок пока он не закончится? Блокировка происходит на объекте который указан в synchronized. Большое спасибо, очень полезная информация.

Вообще я уже решила смотреть в CopyOnWrite коллекции и прочее. Вообще относительно проблем производительности рекомендую посмотреть видео со встречи jug. Biased lock используется при первой синхронизации на данном объекте.

Если там уже есть threadId, то блокировка раздувается до thin lock. А вероятность получить fat lock сильно зависит от contention rate.

Боюсь у Вас немного неправильное понимание работы biased locking. Сникерсни нравится. Faifon20 фев SkiTeLS21 фев Shevchik21 фев Лаги могут возникнуть из-за кучи ненужных плагинов, которые нагружают сервер. Так-же может лагать из-за слабого железа. Likeobotslavikdeno10 и ещё 1-му нравится. Faifon21 фев Вы должны войти или зарегистрироваться, чтобы ответить. Показать игнорируемое содержимое. Поделиться этой страницей Tweet. Ваше имя или e-mail: Бесплатные решения имеют практически одинаковые базы вирусни, поэтому можете особо не переживать за платные касперычи.

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

Optifine решает большинство проблем. Если лень настраивать весь этот комбайн, то есть крайне простое решение! Вот мы и дошли до второй части, а это лаги интернета. Вы часто вылетаете, ну очень частно и систематически по вечерам в основном или ночью?

Но учтите, некоторые провайдеры могут запретить менять DNS! В таком случае меняете ползунок на использовать автоматическую настройку. Далее, если вы лагаете и ноете в чат что лагаете, человек с лагами FPS говорит что лагает и тут Вы уверены что причина в сервере.