Размышления о клиенте Minecraft.

Здесь я хочу написать небольшой очерк о хаках клиента и нашей позиции с клиентом.
Мы разрабатываем свой сервер, изучаем технические детали майнкрафта, его протокола и клиента.
Клиент довольно легко модифицируется, почти также как сервер. Это позволяет делать любые хаки, подделывать любые пакеты и слать серверу любые сообщения, о чом угодно, обманывать сервер как угодно. И даже просто банально использовать особые текстурпаки. Я не буду перечислять примеры таких хаков и текстур, знающие поймут. Самые злобнейшие дыры исправил нотч с выпуском сервер-сайд инвентаря (обновление в декабре 2010, появление версии Beta). Недавно он добавил защиту от флайхака и спидхака. Конечно, сделал он это не лучшим образом, и сейчас мы пользуемся, как и раньше, отличным плагином на сервер, запрещающим кроме флай и спидхаков еще много багоюза.
Так вот, к чему это я? Чтобы фильтровать и защищать от всех возможных хаков клиента нам потребуется производить так много расчетов и проверок, что это будет использовать больше ресурсов сервера, чем, собственно, сам сервер, сама игра. Это превратит майнкрафт из интереснейшей игры в сплошную войну с хакерами, в которой нету места честным игрокам.
Это лишний раз говорит о некомпетентности нотча в области мультиплеера его игры.(про наше мнение о нотче я могу накатать отдельную статью)
Все нормальные, крупные и серьёзные mmorpg используют специальные анти-хак защиты клиента. Например, lineage2 использует frost, или что-то вроде того. Если эта защита не запущена, игра выдает ошибку до ввода логин-пароля. И не запускает игру вобще, если файлы отличаются от эталонных. Да даже взять простые лаунчеры игр - они проверяют перед запуском, соответствуют ли файлы эталонным, и если не соответствуют, то обновляет их до нужной версии.
С майнкрафтом все иначе - создано более 9000 модов клиента и все игроки используют те или иные. Мы бы могли сделать ланчер, который также проверял файлы, но все взвоют, что моды не поставить. Единственная игра, в которой тоже есть моды клиента это WoW, но у них существует специальная система для этого и никто не декомпилировал клиент и не делал таких модов на клиент, как в майнкрафте. А если и делал, то их быстро находили и банили, а уязвимость закрывали, патчем клиента, а не сервера.
Мы все хотим честной игры на равных, и никаких возможностей для читов и хаков. Возможно, со временем нам придется выпустить такой лаунчер, который будет жестко проверять клиент. И это позволит нам разгрузить сервер от тонны проверок "легальности" приходящих пакетов от клиентов в пользу честной и интересной игры. Чтобы позволить себе такие жесткие несовместимости нам потребуется стать гораздо более крупным проектом, имеющим гораздо меньше конкурентов, чтобы гринкубс был настолько крут, что несовместимость с клиентом нотча не была препятствием для игры на нем.
А если мы откажемся от совместимости с клиентом нотча, нам откроются огромные перспективы: например, удобное графическое меню вместо команд из века MS-DOS, удобный чат, статусы игроков и принадлежность к кланам или городам над ником, собственный мастер-сервер скинов, и это только то, что приходит первое в голову. Более того, у нас есть знакомые программисты в области 3D-графики на C++, которые готовы с нами сотрудничать и написать наш клиент майнкрафта на C++, а не на пресловутой яве. И тогда у нас будет свой клиент и свой сервер, от нотчевского майнкрафта останется только идея, и то, мы придумали уже столько ролевых систем и составляющих, что от идеи нотча остается только мир из кубов.
Но тогда это получается уже наша игра, и будет ли она столь популярна, как minecraft? Сложно сказать. поэтому, то что я сказала выше не имеет никакой уверенности и почвы. Не воспринимайте это как прямые планы развития, это лишь размышления.
С другой стороны, есть в рунете один проект, который требует своей модификации клиента, и на нем не сильно меньше регистраций, чем у нас(просьба не называть его).
Как логический вывод из всего сказанного я создала тему-опрос об использовании клиента.
Мы разрабатываем свой сервер, изучаем технические детали майнкрафта, его протокола и клиента.
Клиент довольно легко модифицируется, почти также как сервер. Это позволяет делать любые хаки, подделывать любые пакеты и слать серверу любые сообщения, о чом угодно, обманывать сервер как угодно. И даже просто банально использовать особые текстурпаки. Я не буду перечислять примеры таких хаков и текстур, знающие поймут. Самые злобнейшие дыры исправил нотч с выпуском сервер-сайд инвентаря (обновление в декабре 2010, появление версии Beta). Недавно он добавил защиту от флайхака и спидхака. Конечно, сделал он это не лучшим образом, и сейчас мы пользуемся, как и раньше, отличным плагином на сервер, запрещающим кроме флай и спидхаков еще много багоюза.
Так вот, к чему это я? Чтобы фильтровать и защищать от всех возможных хаков клиента нам потребуется производить так много расчетов и проверок, что это будет использовать больше ресурсов сервера, чем, собственно, сам сервер, сама игра. Это превратит майнкрафт из интереснейшей игры в сплошную войну с хакерами, в которой нету места честным игрокам.
Это лишний раз говорит о некомпетентности нотча в области мультиплеера его игры.(про наше мнение о нотче я могу накатать отдельную статью)
Все нормальные, крупные и серьёзные mmorpg используют специальные анти-хак защиты клиента. Например, lineage2 использует frost, или что-то вроде того. Если эта защита не запущена, игра выдает ошибку до ввода логин-пароля. И не запускает игру вобще, если файлы отличаются от эталонных. Да даже взять простые лаунчеры игр - они проверяют перед запуском, соответствуют ли файлы эталонным, и если не соответствуют, то обновляет их до нужной версии.
С майнкрафтом все иначе - создано более 9000 модов клиента и все игроки используют те или иные. Мы бы могли сделать ланчер, который также проверял файлы, но все взвоют, что моды не поставить. Единственная игра, в которой тоже есть моды клиента это WoW, но у них существует специальная система для этого и никто не декомпилировал клиент и не делал таких модов на клиент, как в майнкрафте. А если и делал, то их быстро находили и банили, а уязвимость закрывали, патчем клиента, а не сервера.
Мы все хотим честной игры на равных, и никаких возможностей для читов и хаков. Возможно, со временем нам придется выпустить такой лаунчер, который будет жестко проверять клиент. И это позволит нам разгрузить сервер от тонны проверок "легальности" приходящих пакетов от клиентов в пользу честной и интересной игры. Чтобы позволить себе такие жесткие несовместимости нам потребуется стать гораздо более крупным проектом, имеющим гораздо меньше конкурентов, чтобы гринкубс был настолько крут, что несовместимость с клиентом нотча не была препятствием для игры на нем.
А если мы откажемся от совместимости с клиентом нотча, нам откроются огромные перспективы: например, удобное графическое меню вместо команд из века MS-DOS, удобный чат, статусы игроков и принадлежность к кланам или городам над ником, собственный мастер-сервер скинов, и это только то, что приходит первое в голову. Более того, у нас есть знакомые программисты в области 3D-графики на C++, которые готовы с нами сотрудничать и написать наш клиент майнкрафта на C++, а не на пресловутой яве. И тогда у нас будет свой клиент и свой сервер, от нотчевского майнкрафта останется только идея, и то, мы придумали уже столько ролевых систем и составляющих, что от идеи нотча остается только мир из кубов.
Но тогда это получается уже наша игра, и будет ли она столь популярна, как minecraft? Сложно сказать. поэтому, то что я сказала выше не имеет никакой уверенности и почвы. Не воспринимайте это как прямые планы развития, это лишь размышления.
С другой стороны, есть в рунете один проект, который требует своей модификации клиента, и на нем не сильно меньше регистраций, чем у нас(просьба не называть его).
Как логический вывод из всего сказанного я создала тему-опрос об использовании клиента.