Экономика Diablo III была разрушена целочисленным переполнением перевод
Diablo III от Blizzard – популярная онлайновая Action/RPG, выпущенная почти год назад, получила свою долю технических неполадок. От Error 37 до лагов, которые выливаются в сотни зря потраченных часов, но весь прошедший год Blizzard провела за отладкой бекэнда для того, чтобы он лучше справлялся с миллионами активных игроков. Diablo III также можно отметить за реальную экономику, с акцентом на региональные Аукционные Дома, где игроки могут продавать редкие предметы за золото, которое исчисляется миллионами и миллиардами (инфляция сумасшедшая). Кроме того в Diablo III используется Real World Auction House, где игроки могут продать золото или предметы за деньги реального мира. Вчера был выпущен Патч 1.0.8, который должен был улучшить прогресс персонажей. После нескольких недель тестирования в Public Test Realm, где добровольцы обкатывают патч для того, чтобы понять, что он не нанесет никакого вреда игре, патч был успешно опубликован. Да, патч был полностью протестирован в PTR – но за исключением одной мелкой доработки, добавленной в последнюю минуту. И эта доработка порвала экономику игры на мелкие кусочки. Финальный билд включал следующие изменения: Размер стека для продажи золота в аукционном доме увеличен с 1 миллиона до 10 миллионов. Как правило, в Real Money Auction House игрок может продавать золото «пачками» в 1 миллион, максимум 600 порций. В версии 1.0.8 этот инкремент, соответственно, увеличен до 10 миллионов. Что же произойдет, когда игрок попытается выставить на торги абсурдно большие суммы? (абсурдно потому, что получение даже 100 миллионов золота для одного игрока долгое время считалось практически невыполнимой задачей — Blizzard умеет недооценивать игроков) Пользователь Reddit с ником tyropro прекрасно поясняет : На торги в RMAH можно было выставить золото, которое при продаже в реальных деньгах не превышало бы 250 долларов. В опубликованном видео, например, показывалась продажа 6 миллиардов золота — 600 x 10,000,000 по $0.39 за стек, в сумме $234. Когда игрок размещал такой аукцион, то на продажу попадало только примерно 1.7 миллиарда, а остальное «пропадало» до тех пор, пока золото не возвращалось в сундук и там уже увеличивалось. Вот точные цифры из видео: Создается RMAH аукцион: 6,000,000,000 золота Аукцион показывается как: 1,705,032,704 золота Пропажа! 4,294,967,296 золота Пропавшее если поделить на 2: 2,147,483,648 золота 4,294,967,296 это 2 32 степени, предел для целого без знака, интересная реализация со стороны Blizzard. Проще говоря, код для продажи золота в RMAH не умеет работать с числами, больше чем int32, и в результате переполнения задваивает золото в карманах продавцов. Итак, нападающий может создать 6-миллиардный аукцион, из которого выставится на продажу только 1.7 миллиарда (и, соответственно, только 1.7 миллиарда спишется со счета «взломщика»), отменить его, и получить себе обратно на счет уже 6 миллиардов. Чистая прибыль – 4.2 миллиарда. Повторить до полного удовлетворения. Эксплоит был показан на одном из сайтов и быстро разошелся по людям. Повторить его мог каждый, кто знал о баге. И началось веселье. Да, тут 420 миллиардов золота! После того, как обманщики скупили все предметы в Аукционных Домах, они выставили их на продажу в Real Money Auction House. За реальные деньги. И люди покупали их. И это самый худший сценарий для Diablo III. И все из-за не протестированного маленького изменения в патче. Что компания Blizzard могла сделать с этим? Хорошо было бы откатить все достижения на день до выпуска патча, но это вызвало бы множество негативных откликов. Но оставлять экономику в таком положении невозможно – это обесценило бы предметы, а Diablo III как раз про предметы и есть. В конце концов, Blizzard не сделала откат, но забанила всех, кто читерил, и вернула деньги всем, кто потратил реальные деньги. Изменение в патче, вызвавшее хаос, было отменено и, соответственно, проблема временно решена. И пусть это будет уроком – не протестированные изменения в последнюю минуту могут привести к коллапсу всей экономики. От переводчика: И это уже второй баг в игровой экономике, о котором стало известно менее чем за неделю – в субботу CCP рассказала, как непродуманный функционал привел практически к аналогичной ситуации в EVE Online . Да, экономика в играх виртуальная, но ошибки и/или непродуманный функционал позволяют найти такие пути, которые позволяют просто обойти длинный и честный заработок и украсть уже реальные деньги. Интересные возможности нового цифрового мира.
комментарии ( 175 )
Главное, что европейских (куда относятся и русская версия игры) серверов не коснулось, т.к. патч выходит на сутки позже, и уже вышел без бага.
Да даже если бы и с багом, собрать 6 лярдов денег, даже имея слаженную пати из 4х60(100) просто пролетаея см8-см10 пекло третьего акта практически нереально, подобные суммы есть только у голдселл-фармеров, то есть воспользоваться им (багом) можно, активно фармя деньги в 4 окна через Multibox, и имея пул в 6ккк, что, согласитесь, не мало. А еще есть черный рынок золота, на котором цены плавают от 6-7 рублей за 1 млн до 2-3 рублей за 1 млн, в зависимости от фазы луны, погоды и удачи. А это — существено дешевле, чем на аукционе, и рынок этот в евро-регионе цветет и пахнет. Самое главное, что hardcore-часть игры не пострадала — там проходит основная острая борьба, а не на софткоре, и там же цены до сих пор находятся на более-менее разумных уровнях, и в целом экономика не в пример здоровей. А RMAH в хардкоре попросту отсутствует (что, в принципе, понятно и хорошо, особенно учитывая похерестическое отношение близзарда к саппорту по проблемам D3), и из реалмани трейда на хардкоре только если голду или очень рарные вещи на черном рынке брать, но там и ценник кусачий — от 20 до 30 рублей за 1 млн, а вещи — вообще за дурные деньги. Но там над ними трясутся очень. Как-то так.
Ага, «На инсте гейта минусовый хуррик, в бубле, в агре.» Что касается моего первого абзаца: Имея сыгранную группу из четырех персонажей 60 (то бишь последнего значимого для скиллов) уровня с сотым уровнем престижа (который отвечает за дроп золота и предметов) и буквально пролетая самые насыщенные монстрами локации с практически максимальным усилением монстров (что гарантирует увеличение дропа золота и предметов), насобирать даже 1 млрд голды очень сложно. Воспользоваться багом могли те люди, кто владеют «фермами» по добыче золота. Фермы работают через специальную сотфину, которая позволяет управлять четырьмя клиентами, как одним. Собираются максимально похожие персонажи по одежде, им назначаются одинаковые Area of Effect атаки, и они идут радостно пылесосить под предводительством одного игрока. Быстро и эффективно. Вот у таких людей мог быть запас необходимого золота (на продажу и выкуп вещей с аукциона, для последующей перепродажи за реальные деньги), чтобы хотя бы раз провернуть баг и получить выгоду. А простым смерным оставалось только чл… лапу сосать, или скидываться всем селом.
А… я-то думаю, чего цены все время растут?! А это у нас все время целочисленное переполнение в жизни…
Как раз таки откатить базу данных было бы самым правильным путем. Конечно, было бы недовольство — недовольные всегда есть, но такое часто случается после выпуска обновлений. Все ситуации предвидеть сложно.
Откат в данном случае неправильный путь (более 5 лет администрирования WoW говорит об этом). Люди платят свои деньги за игру, и совершенно непонятно, почему их должны откатить. Это не «фришка». Так что Близзы сделали верное решение.
Ну, вообще-то тут зависит от масштабов проблемы. Откат — плохое решение, но сломанная экономика куда хуже.
В части «забанила всех, кто читерил» очень сомнительно. Попали ли в их число все те, кто увидел на форуме «попробуй такую фишку» и попробовал?
То есть, когда человек получил из ниоткуда большое количество золота, он может недоумевать, «за что меня забанили? Мне же не говорили, что это плохо!» да?
Ну то есть игра, за которую я заплатил, и вовсе не моя проблема, что у разработчиков кривые руки. В EVE, например, такие вещи поощряют.
А что меняет то, что это где то пооширяют? Только если вашу точку зрения. Надо не смотреть со стороны «какие плохие разработчики», надо смотреть со стороны «Зачем они это делают?»Разработчикам нужно чтобы не рухнула экономика, и что бы играть было интересно как прежде. Поэтому они просят в EULA не пользоваться багами во благо большинства.
Я не читал EULA Blizzard, т.к. не играю. НО, как мне кажется, откат более правильная затея, т.к. это всё равно, что купить обогреватель, обжечься об него и не получить медицинской помощи, т.к. в инструкции к его использованию было написано, что вы можете обжечься.
Не корректный пример. Не получить компенсацию за ущерб здоровья от производителя обогревателя, он же писал, что вы можете обжечься.
Все зависит от того, при каких обстоятельствах это произошло: 1. В инструкции написано если вы накроете обогреватель одеялом, он взорвется и нанесет повреждения всему что находится вокруг. Категорически запрещается накрывать обогреватель одеялом. Вы решили посушить одеяло и он таки взорвался. 2. Обогреватель взял и взорвался сам. Без вашего участия. Во втором случае вы имеете право спросить у производителя: WTF??? Но тут как раз первый случай.
Надо бы заканчивать спор, но мне всё же интересно к чему мы придем. В таком случае в EULA должно быть дано точное определение того, что такое баг и его использование.
В данном случае это был баг и это было очевидно. Тебя попросили им не пользоваться, понятно по каким соображениям. И всегда можно сказать даааа? А что у вас не написано что если при продаже 6ляродв голды я получаю прибыль 4млрд то надо об этом сообщить вам? Нигде так и идите отсюда! Вопрос в том что невозможно прописать все. Тогда в инструкции должно быть перечислено все, чем нельзя накрывать обогреватель. Включая какую нибудь наноткань из сколково. Должны быть рамки здравого смысла. А то мы рискуем при покупке воды в ларьке начать расписываться на 350 листах предупреждений чего делать нельзя с бутылкой воды.
В EULA Близзарда нет формализованного определения, что такое «баг», и что такое «злонамеренное использование» «бага». Даже в УК РФ с этим все не очень хорошо. Даже у американцев. Так что, по сути, все отдано на откуп чисто субъективному мнению техподдержки. Которая по хреновости сравнится только с поддержкой SWTOR в EA.
Как сказать… В EVE как-то был баг, позволяющий получать феррогель и некоторые другие дорогие материалы «из воздуха» в прямом смысле слова. Они вырабатываются на специальных реакторах и, при некоторых условиях, становилось возможным запустить его так, что она начинал работать не потребляя сырье. Реакция CCP заключалась в изъятии у игроков всех заработанных таким путем сумм и купленных за них вещей, включая корабли-носители (mothership). Были ли изъяты самые дорогие корабли в игре — титаны, а не помню.
ну 6 миллиардов тоже для начала надо как-то заработать в игре. И это очень непростая задача для честной игры. Так что врядли это совсем уж честных игроков коснулось.
Покупаем 6 млрд. за $250. «Ксерим» (Fallout 2 все помнят?:) ), скупаем предметы, продаём за $$. Профит! В общем-то, на ровном месте:)
Ну т.е. на лицо не совсем честные намеренния, далекие от уничтожения Мирового Зла, так ведь? :) Потому и не страшно, раз таких наказали.
Есть у нас в инвентаре, к примеру, 100 патронов от гаусски. Но мы жадные и хотим больше. 1. Сохраняемся 2. Находим ближайший шкаф 3. Кладём туда наши 100 патронов 4. Сохраняемся на новый сейв 5. Сворачиваемся и идём в папку с сейвами 6. Копируем новый сейв в старый, заменяете. 7. Загружаемся в старый сейв. Теперь 100 патронов есть в шкафу и ещё 100 у нас в инвентаре:) 8. Повторяем до устранения чувства жадности … PROFIT Вот, как-то так:) Мелочи могут отличаться от реальности — давно дело было, могу в чём-то ошибаться. Если не сработает, то правильный вариант гуглится легко:)
в сингле второй дьяблы сундук был отдельно от «персонажных» сейвов, например. P.S. Небольшой оффтоп: мне одному кажется, что общеаккауньный сундук в «трёшке» маловат? :)
> недовольные всегда есть Тут дело в другом — такого знатного факапа не было даже во времена клонирования топовых шмоток. А вся суть в том, что на тестовых серверах нет аукциона «за реальные деньги», который работал бы хотя бы на фантики.
Я считаю, что они не правы, забавнив читеров. По крайней мере, тех, кто не наживался на этом в RMAH. Нечего неоттестированные патчи выкладывать.
согласен. просто отменить транзакции было бы более верным решением. в диабло не играл, так что имхо
Нет, не согласен. Читерство остается читерством вне зависимости от повода, его породившего. Вот применрная аналогия из реальной жизни: следует ли освободить вора от ответственности, если украденная вещь «плохо лежала»? Близзард все правильно сделал, действия читеров есть нарушение EULA, в части запрета эксплуатации багов и уязвимостей игры.
Слишком сурово. Обнулить золотые счета тех, кто эксплуатировал уязвимость, было бы достаточно. А Близзард понимают, что люди никуда не денутся, вот и банят направо и налево.
В каком смысле никуда не денутся? Играть в дьябло дело добровольное, или я чего-то не знаю?
Добровольное, но я не об этом. А о том, что забанив игрока Близзард ничего не теряет — деньги за ключ остаются у неё, комиссии с рмаха тоже, ботовод купит еще десяток ключей (ура, прибыль из ниоткуда), ну а кто не купит так и фиг с ним. Имхо.
Обнулить золотые счета тех, кто эксплуатировал уязвимость, было бы достаточно. А как же быть с теми, кто получил реальные деньги за продажу игровых вещей, купленных ранее за призрачные игровые деньги? Или продажа шмота предполагает возможность возврата денег при вмешательстве Администрации? PS: я в Диабло не особо разбираюсь, если что) Пока ~17 лвл.
Что у всех за привычка проводить аналогии с реальным миром? Давайте за мат в комментах давать денежный штраф как за нецензурную брань в общественных местах. За баг должен платить разработчик, а не клиент. Я плачу им свои деньги за то, чтобы играть у них. И это их обязанность тестировать все и давать мне качественный продукт. Очень понравился подход EVE к этой проблеме: «Аферистам» обычно оставляют заработанное состояние как своеобразную награду за найденный баг и за сообразительность.
Цитата про еву тут не к месту. ССР(разработчики евы) оставляют «заработанное» только тем кто баг нашел и сообщил о нем, а не юзал ради собственной выгоды пока это не обнаружили. Остальных банят. Что же до данной новости про диабло: автор не выяснил(или просто не указал) как читтеров забанили — перманентно или на время. Близы любят за эксплуатацию багов давать баны по 3-7 дней и это как по мне слишком мягко, но зато спасает от ошибок в наказании тех кто не понимал что нарушает еулу.
На счет цитаты — не уверен. Она была взята из статьи, ссылка на которую есть в данном посте. В этой статье говорится, что человек вполне себе спокойно провернул аферу и нажился на ней. Ничего он не сообщал. В той же статье говорится как они нашли баг: Компания-разработчик поставила перед штатными экономистами задачу разобраться, что происходит.
В той статье множество неточностей . А вот отчет о проделанном от организаторов.
Неверная аналогия. Вот если бы человек в реальном мире обнаружил уязвимость в законах физики и нафигарил себе золота — в тюряжку?
Даже расстреливали таких одно время . А вы говорите в тюряжку. И современном реальном мире у него тоже были бы проблемы. И лучшее что он мог бы сделать это работать на государство.
Интересная история, спасибо, посмотрел фильм по ссылке. Тут есть важный нюанс — чувака шлепнули за подделку монет, а не за разработку процесса получения золота из препаратов «жидкого золота».
Согласен. Его шлепнули за то что он нафигарил себе золота, а оборот золота контролируется государством.
В Средние Века даже за помысел об этом на костер отправляли. ru.wikipedia.org/wiki/Охота_на_ведьм
Это-то тут при чём? Наводить порчу или там с Дьяволом совокупляться — это, конечно, вредительство. А вот золото добывать или там порох изобрести(не такой как у китайцев, что для феерверка только, а нормальный, чтоб из пушки по соседскому барону можно) — это как раз в почёте. Из поисков философского камня химия и выросла вообще-то.
> А вот золото добывать или там порох изобрести С одним небольшим дополнением — в пользу тех, у кого в данный момент власть. А иначе — см. п.1.
Такая уязвимость давно существует: допуски и погрешности в замках позволяют их взламывать. Думаю, теперь должно быть понятнее.
Нет, взлом замка — это брать чужое, а тут оно из ниоткуда бралось. И вообще, нельзя сравнивать игры и реальную жизнь в этом ключе.
Вообще-то насколько я знаю, смертным людям, в России запрещено свободно торговать золотом без лицензии, а также хранить 999 пробу. Ходит такая история: один умелец нашел баг в канализации ювелирного завода и отмывал из канализации золото. Его повязали и в тюрягу.
Если это так, то как же вы законно получили 999 золото? Я год работал с ломбардом в одной комнате, так вот они рассказывали, что хранить золото 999 нельзя, если это не банковские слитки, ювелирные украшения. 999 можно получить сделав царскую водку, но хранение, перевозка такого золота незаконна.
Согласно ч. 1 ст. 191 уголовная ответственность устанавливается за совершение сделки, связанной с драгоценными металлами, в нарушение законодательства РФ, а равно незаконные хранение, перевозку или пересылку драгоценных металлов в любом виде и состоянии, за исключением ювелирных и бытовых изделий и лома таких изделий.
Это именно банковские слитки. Пошел в банк и купил (надо же и о старости как-то заботиться). Их покупка и хранение законны для частных лиц. И не надо представлять слитки обязательно как штабеля килограммовых (или каких там) чушек в банковских хранилищах. Слитки могут быть и весом в один грамм, размером с ноготь. Ещё законный вариант — золотые монеты, в тех же банках продаются. А УК предполагает ответственность за незаконные сделки, а не за все подряд. Грубый ориентир для быта — есть или нет проба.
А откуда можно знать, что это бага? Ну захотелось мне купить на 6 лярдов.
Ну то есть, когда вместо шести миллиардов выставилось полтора — это было нормально. Это не баг. И когда после отмены вернулись не полтора, а шесть — тоже всё логично? Увидели, что вместо шести выставилось полтора. Ваши действия? Отменил аукцион и сообщил разработчикам? Или отменил, увидел набежавшие деньги, смекнул и давай эксплуатировать? Ещё и другим на форумах рассказывать…
Вы как-то интересно применили аналогию. Если следовать вашей логике, то за украденную в реальной жизни вещь должны лишать жизни (бан аккаунта) с правом начать жизнь с самого начала (не играл в эту игру, так что насчет второго даже не уверен). Кроме того, наверняка были игроки, которые про баг и не знали, а просто выставили большие суммы на торги.
Прямая аналогия из реальной жизни — олигархи. Украли много. Никто не отнял.
Это не аналогия. Олигарх это не просто тот, у кого много денег. Олигарх участвует в политических процессах страны. Потому он и "-арх". С многомиллиардновладеющими игроками совсем не так.
Они всегда так делают. Так и в EULA написано. Даже если ты знаешь о баге – не эксплуатируй.
Обычно здравого смысла достаточно. Если не уверены, спросите у службы поддержки.
Фичи описаны, в каждом патче есть список изменений. Не описано — значит баг.
Они играют на том, что проще купить новую копию игры, чем идти в Small Claims Court ради 60 долларов. Или даже, если человек не купит, то в итоге хотя бы будут экономить на электричестве для серверов. Элементарно им финансово выгодно банить.
А после бана прежняя копия игры перестает работать? О_о А деньги за неё возвращают в таком случае?
Перестаёт. Деньги не возвращают. В том и изюминка. Хотя лично знаю одного человека, который получил деньги через тот самый Small Claims Court за Мир Варкрафта. Не помню, почему его забанили, было это лет пять тому назад, если не больше.
Сомнительно. Продают не товар и даже не услугу, а права.
Не возвращают. Захотел нажиться на близзах — близзы наживутся на тебе.
Поставил бы плюс, если бы мог. Меня примерно аналогично забанили в WOW, когда вышел какой то патч. Самое интересное, я сходил в подземелие (даже не рейдовое...), на следующий день бан с формулировкой «за нарушение игровой механики». Ну и ладно, отпуск, написал тикет с вопросом и уехал не неделю. Приезжаю — добавлен перманентный бан с описанием «за обмен игровой валюты на настоящую». Что за бред? Вот так пропал гильдмастер с 6 летним аккаунтом. Куда только не писал жалобы — «мы считаем решение правильным»… Теперь даже не захожу на battle.net, и зарёкся не покупать ничего у близзарда. Особенно обидно что у меня WOW был проплачен на год! Как то это неправильно!
А считаете ли вы, что можно избивать людей, не занимающихся единоборствами? В любом случае читайте EULA. Там запрещено читерство, и я рад, что забанили этих подонков, которые портят мне игру, ломая экономику.
Нет, не считаю, а при чем тут это? Баги будут эксплуатироваться всегда, решение банить или не банить не меняет разрушительного эффекта от этого или количество эксплуататоров. Выложили версию с багом — расхлёбывайте. И впредь не делайте так. А параллельно наверняка пострадало n юзеров, что просто решили продать 6 ярдов золота.
Баги с переполнением всплывают по многу раз практически во всех онлайн играх (в той или иной вариации). Самый простой пример: есть игровой магазин, в нем продаются предметы за игровую валюту. Покупаем разом столько предметов, чтобы цена перевалила за 4,294,967,296, и получаем очень много за копейки, а потом продаем обратно в магазин порциями. Бывает так, что у предметов есть «вес», поэтому нельзя купить очень много с переполнением суммы (сработает лимит по весу). Тогда надо просто купить такое количество, чтобы переполнить и цену, и вес одновременно. Если кажется, что таких простых багов в серьезных проектах быть не может, то скажу только, что это работало в Lineage 2.
У обычных NPC в торговой лавке. Какие-нибудь Gemstone.
Да, можно было когда-то (если переполнится одновременно и цена, и вес). Потом на фришках установили лимит на количество товара, но и его можно было обойти, разбив покупку на несколько слотов, играя с пакетами (покупать одновременно можно несколько товаров, но через клиент только разных типов). Потом само собой и это пофиксили. А вообще багов было множество, это только один из самых простых.
Облажались, а забанили игроков. Обожаю современных игроделов.
я читал когда игра только вышла. Были пункты про читерство и последствия оного.
И как? Удачно?
я к тому что они заранее предупреждают про читерство в любом его проявлении — не только подмена битиков в пакетах или модифицирование клиентов и т.д, а так же использование эексплойтов и несовершенной механики игры тоже может привести к отлучению от игры.
Но оно ж не выставилось на продажу? Не выставилось. Следующий логичный шаг — обращение в поддержку.
Читеры есть читеры и их нужно банить. При чем здесь ошибки игроделов? Нельзя же, например, оправдывать неспортивное поведение ошибками организаторов олимпиады.
Но это не Олимпиада! А всего лишь компьютерная игра. Должно быть, я отстал от жизни, но за iddqd никого не банили. Читы — это такая же часть игры. Моя девушка всегда играет в Симс только с читами, чтобы у неё были бесконечные деньги, а персонажи не старели. Думаю, что если бы не эти читы, то она бы и не купила игру вовсе.
А вы сравниваете намеренно существующий читкод в single player игре и онлайн игру с реальной (!) экономикой.
Экономикой и онлайном, которые всем навязали. Всё же это дико, когда вы покупаете копию игры и не можете играть в неё так как хочетса вам лично, а не так как решает игродел. Тут же после блокировки ваша копия становится просто мусором.
Вас никто не заставляет покупать такую игру. Покупая вы получаете такой продукт который был задуман разработчиком, а не который будет удобен вам. Перед запуском вам показывают еулу где все условия расписаны. Если не согласны — жмите отмена и верните игру в магазин. Конкретно в данном случае нечестные игроки использовали баг для личного обогащения не только в игре, но и в реале — мешая честным игрокам(а у некоторых можно сказать воруя реальные деньги) — за такое нужно наказывать.
Ну, это не совсем так. Продавая мне копию игры, разработчик вступает со мной в отношения, которые вдоль и поперек регулируются законами. Он может писать в EULA очень много чего, но далеко не факт, что это будет иметь силу. Скорее всего, суд обяжет компанию разбанить человека, но просто всем лениво идти в суд из-за 60 баксов или сколько там копия сейчас стоит.
Что удивительно, каждый подобный игровой проект неизменно наступает на одни и те же грабли. Помимо фокусов с переполнением, самые распространённые проблемы такие:
Не припомню дюпа в вове. Да и переполнения тоже.
Дюп был, даже несколько раз. 1) баг в клиенте. 2) клонированием и правкой пакетов идущих от клиента серверу. Был еще забавный баг с не очисткой буфера, был найден случайно, сначала на пиратских серверах, но заработал и на официальных. Можно было получить любое заклинание любого класса любому классу ) Суть в следующем с панели действия мышкой брался закл с целью его перенсти, то есть сам закл помещался в буфер. Далее не отжимая левой клавиши мыши (которой мы держим закл) делался логаут клавиатурой и логин в любой другой класс. Далее наведя курсос на панельку действий и отпустив мышь мы наблюдали внезапно появившийся закл )
А Вы понимаете чем чревато не «передавать клиенту полную информацию обо всех окружающих игроках»? Это надо делать AoE менеджер который для каждого игрока будет обсчитывать координаты ВСЕХ подвижных объектов отдельно? То есть добавляем квадратичную зависимость — 100 игроков будет обсчитывать 100*100 = 10 000 объектов каждые n-тиков. Да, это можно оптимизировать, но все равно, сложность зашкаливает.
На самом деле, примерно так и делается. Всем этим видимым объектам все равно часто приходится пересылать статус апдейты. Более того, на них можно здорово сэкономить, пряча невидимых. Но делать скрытие чревато другими проблемами — движок видимости в ММО по сложности и нагруженности одно из самых узких мест. Кроме того, следует отличать видимость персонажу и видимость игроку (если вид от третьего лица, как обычно в большинстве ММО).
Всем этим видимым объектам все равно часто приходится пересылать статус апдейты. Совершенно верно, только без квадратичной зависимости. Более того, на них можно здорово сэкономить, пряча невидимых Экономишь трафик, нагружаешь сервер.
Почему без? Очень даже с. Каждый игрок должен получать информацию о каждом из N игроков в радиусе видимости плюс о M NPC. Получается примерно N*(N+M). А это еще большой вопрос. Отправка статус апдейта практически наверняка будет тяжелее одной проверки видимости.
1) к таким ошибкам приводит исключительно лень разработчиков. 2) В данном случае тут выбор либо загрузить сервер постоянными проверками пройденного пути клиентом и тем самым снизить число игроков которых данный сервер может обслужить либо верить клиенту. Тут все на совести и кошельке разработчика. Проверка делается элементарно. 3) Тут также как и со вторым пунктом только еще более ресурсоёмко. И требует довольно много кода. Пишу как один из разработчиков эмулятора сервера ВоВ, довольно продолжительное время.
Это в параллельной вселенной так. А в нашей вселенной не верить клиенту лишь там где это жестко необходимо. Все упирается в железо и удешевление обслуживания одного игрока. Да можно на каждого клиента выделять больше ресурсов, но тогда абон. плата будет не 100-200 рублей в месяц, а 999 рублей.
Я, конечно, не специалист, но мне кажется, что вычислительные ресурсы в абонентской плате занимают очень небольшую долю, в основном там зарплаты художников, сценаристов, программистов, менеджеров всех уровней, поддержки, а также реклама и прочий маркетинг. Так-то, за 100-200 рублей можно целую нормальную виртуалку под каждого пользователя выделять (я сужу по ценам облачных провайдеров).
Вы судите не правильно. Чтобы выделить виртуалку, Нужно купить сервер на котором вы её запустите. Допустим, сервер (только железо) стоит 500 000 тугриков. Его обслуживание в месяц стоит 5 000 тугриков Сервер способен поддерживать комфортную игру для 1000 человек. Абонентская плата в месяц 50 тугриков для человека. Итого получается что для того чтобы окупить только железо и его обслуживание(без работы художников дизайнеров и остальных) нам понадобиться: 500000/(50*1000)=10(месяцев) 10*5000=50000/(50*1000)=1(месяц) Итого целый год мы только будет окупать железо. А если клиенту не верить совсем и реализовать все ресурсоемкие проверки и обсчет на стороне сервера, то тогда сервер будет способен обслужить в лучшем случае 500 человек. И тогда стает вопрос поднимать плату в два раза и потерять игроков или работать себе в убыток. И это мы не учил работу дизайнеров, художников, админов и остальных. А также замены и покупка вышедшего из строя оборудования и комплектующих. Вон близард чтобы лишнюю денюжку заработать продает старые сервера на которых крутились рилмы своим же игрокам на аукционах.
Ну так это расчеты в тугриках. Окупать оборудование в течение года — это вполне нормально. Вот на том же Rackspace можно получить виртуалку за 10 долл./мес. Пусть на ней считаются действия всего десяти игроков. И это уже получается всего по доллару с каждого на оборудование. А это розничные цены, да еще и на самые дешевые инстансы, ясно, что более мощные машины будут выгоднее + возможно, оптовые расценки.
Оставляя за скобками качество виртуалок у RackSpace, хотел бы сказать, что по-моему гораздо сложнее распараллелить игру на 1000 серверов с 10 пользователей на каждом, чем на 10 серверов с 1000 пользователей на каждом. Кроме того, значительно усложняется деплоймент, мониторинг, вот это всё.
Я это понимаю. Я беру расклад с виртуалками в качестве реперной точки для расчета цен, с целью показать, что даже при таком тупом раскладе оборудование получается очень дешевым на общем фоне, так что тот же Blizzard вполне может без особых затрат увеличить машинные ресурсы в полтора-два раза.
и опять неверно. Обычно сервер обслуживает территорию. Это проще в плане инфраструктуры. Например мы когда реализовали кластеризацию. У нас можно было запустить на разных машинах. 1) бд сервер 2) реалм сервер 3) логин сервер 4) чат сервер 5) ворлд сервер. Ворлд сервер в свою очередь можно было запустить еще на десятке машин и каждый сервер обслуживал бы свою територию. Обычно 1 шел на Калимдор, 1 на Азерот и еще 1 на данжи. Основная нагрузка конечно же идет на ворлд сервера и на реалм сервер, который занимается синхронизацией игроков между всеми ворлд серверами. У близарда примерно такая-же система. И когда на одной зоне появляется слишком много игроков, скажем 500 для карательного рейда, сервера близарда частенько уходят в даун. Не знаю как щас, но раньше это было очень часто. Делить игроков по количеству это иметь огромный геморрой с их синхронизацией относительно но друг друга. Это непосильная задача, абсолютно. Ну и конечно те виртуалки которые предлагает рэкспейс не потянут игровые сервера. Чудес не бывает.
вы берете неверную отправную точку. Если вам требуются небольшие вычислительные мощности, то да купить виртуалку самое то. Но если вы намерены развивать свой проект в течении долгого времени и поддерживать его. Гораздо дешевле купить оборудование, а не арендовать его. Делаю поиск по строке yandex.ru/yandsearch?clid=9582&text=dedicated+server&lr=1091 Беру первое же попавшееся предложение Сервер SuperMicro Intel Core 2 Quad Q6600 2,4 ГГц, 2 GB, 2 HDD