Як пройти тетріс?

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Привіт друзі! Кілька місяців тому інтернетом широко поширилась історія про хлопця, який перший в історії зміг пройти тетріс* (мається на увазі конкретний тетріс на приставку NES). Гру, яку фактично неможливо пройти, розробники не закладали такої можливості — блоки просто починають падати з такою швидкістю, що гравці зазвичай не встигають їх розставити і програють.

Але, на щастя, в світі багато допитливих і терплячих людей (ідеальні якості для QA), які вирішили, що якщо грати в гру достатньо довго, то з великою імовірністю вона закрешиться сама, через старий та неоптимізований код. Це й буде метрикою успішного проходження. Головна задача — не програти завчасно.

Люди грали, але на певному рівні швидкість блоків ставала настільки високою, що контроллер не встигав реагувати на натискання кнопок! Для абсолютної більшості це був би кінець. Особисто я забив би.

Але один винахідливий хлопець придумав спосіб пришвидшити введення команд з контроллера — замість натискання на кнопки, він придумав Hypertapping — спеціальні постукування по контроллеру, що той інтерпретує як натискання кнопок. Мене такі історії надихають — придумати робити незвичні дії зі звичними речами, щоб обійти певні програмні чи апаратні обмеження. Бачу ціль, не бачу перешкод.

Через деякий час більшість професійних гравців (професійні гравці в тетріс! Ми живемо у фантастичному світі) стали використовувати такий спосіб гри. Але деяким гравцям навіть отриманої переваги стало замало, і був придуманий ще швидший метод введення — Rolling, що давав змогу, при тренуванні навички, досягати швидкості введення у 20 команд на секунду (дякую Олександру Хотемському за підказку)! Я дивлюсь ігри професіоналів у Starcraft 2, де однією з метрик є APM (actions per minute), і там топові гравці мають цей показник в районі 400, тобто ~6 команд на секунду.

Далі, коли в гру стало можна грати довго, ком’юніті почало дебажити та аналізувати код, щоб зрозуміти, як його можна закрешити (привіт, static analysis та white box testing). І врешті-решт, знайшли, що якщо на певних рівнях набрати певну кількість балів, гра впаде. А коли всі передумови багу і кроки відомі, залишається лише дрібничка — відтворити. Що і було зроблено!

Сподіваюсь, така винахідливість та цілеспрямованість вас змотивує на крутий root cause analysis! Never give up!

P.S. Подивився архів постів у блозі — роки 4 тому я дізнався про таку кібер-спортивну дисципліну як speedrun (швидкісне проходження гри). Як зрозуміло з назви — гравці змагаються один з одним, хто зможе швидше пройти гру. Витрачаючи на це сотні, якщо не тисячі годин! Найбільш видовищна для мене дисципліна спідрану — Glitch speedrun. Тип гри з використанням відомих багів та глюків гри. Гравці витрачають години, досліджуючи ігри і знаходять баги, які пропустили тестери і використовують їх для пришвидшення гри. найтиповіший баг — місця, в яких можна пройти крізь текстури та пропустити частину гри. Виснажлива тестерська робота, що також вимагає розуміння механіки ігор. Є навіть спеціальні техніки, що допомагають шукати подібні баги. Вірю, що вони вже використовуються компаніями-розробниками. Так спорт рухає науку вперед :)

P.P.S. Окрема розвага — уявляти, як розробники консолей та ігор дивляться на гравців, що спідранять та придумують свій спосіб взаємодії з їх іграми

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Мені таке подобається. Пошук таємних чи навіть секретних малоймовірно обираємих шляхів досягнення мети. Або досягнення власної мети у чужій грі. Бо інакше не цікаво і є відчуття що з тебе створюють зомбі.
У любій складній програмі безліч таких помилок можна віднайти. Якщо ви напишете, що є такі супер програми, де глітчів нема — я буду їми користуватися сам і рекомендувати іншим. Проте навряд чи такі існують — весь цей софт нині такий ненадійний та небезпечний, що юзати його це як долати прірву користуючись старою «тарзанкою».
Взагалі, вже не перший раз думаю про велику ймовірність глобального страйку юзерів всього цього програмного забезпечення яке останнім часом майже нічого не забезпечує окрім...
Втім, воно вже тут — фінансування розробки ШІ які вміють програмувати це про реалізацію бажання страйкувати використання людськихі девелоперских виробів.

у слові «людськихі» і зайва. Помилився.

так може оці всі... інтелектуальні зусилля... краще спрямувати на допомогу ЗСУ, на вирішення їхніх задач ? 🤔

Ці люди живуть у іншій реальності. Так — така реальність де не треба вбивати щоб тебе не вбили існує.

так може люди... оці інтелектуальні зусилля і спрямовують на допомогу ЗСУ, а в ігри грають, щоб кукухою не поїхати?

щоб кукухою не поїхати, можна пограти в той же тетріс... півгодини...
(ще краще поспати, або піти на прогулянку)

Ответ очевиден — написать свой, со своими правилами

Підписатись на коментарі