🎲 🎩 Эволюция рандома в Тетрисе: от «хаоса» к «мешку»
🎲 🎩 Эволюция рандома в Тетрисе: от «хаоса» к «мешку» Оригинальный Тетрис Алексея Пажитнова использовал настоящий генератор псевдослучайных чисел (ГПСЧ). Каждая из 7 фигур имела шанс 1/7 появиться следующей. 🌞 Но, как игровая механика, такой, близкий к хаосу рандом показал существенный недостаток – «засухи» – периоды, когда нужная фигура не выпадала по 15-20 ходов. Пользователями это воспринималось, как несправедливость и ломало игровой опыт. Nintendo в своей версии Тетриса для NES добавила алгоритм защиты – «одиночный взгляд назад» (one-piece lookback) – если генератор случайным образом выбирал ту же фигуру, что только что выпала, система перебрасывала этот результат один раз. Но это не решило проблему полностью так как алгоритм не отслеживал общее распределение фигур на длинной дистанции. Поэтому математически длинные «засухи» все равно были неизбежны и случались регулярно (например, вероятность засухи I-фигуры длиной более 20 ходов составляла около 3.3%). 💡 Решение проблемы оказалось донельзя простым и изящным: в современных стандартах Тетрис используется система «7-Bag». Представьте мешок, в котором лежат все 7 фигур. Игра достает их по одной случайным образом, пока мешок не опустеет, а затем наполняет его снова. И вуаля – рандом «выглядит естественно» и не выбивает игроков из состояния потока, которым славится Тетрис. ☝ Из этой истории можно вынести следующий урок: механики реальной жизни зачастую плохо вписываются в игры. Игроки оценивают справедливость системы субъективно. Иногда искусственное ограничение хаоса (как в этой системе или в системе «Coyote Time» в платформерах) помогает играм ощущаться более справедливыми и отзывчивыми.