Logic & ArcadeNomad
Logic Logic
Я тут поковырялся с уровнем сложности в оригинальном Pac‑Man, интересно, а есть ли какая-то скрытая математическая закономерность в таймингах появления призраков? Хочешь разобраться?
ArcadeNomad ArcadeNomad
Конечно, да. Знаешь, а правда в том, что таймеры появления призраков в оригинальном Pac‑Man – это вовсе не секретный арифметический код. Просто немного неровный ритм, заданный программистом. Примерно каждые 12, 24, 36, 48 секунд после старта уровня появляется новый призрак, чтобы погоня была интереснее – небольшая случайность, всё дело в классическом дизайне аркады, без всяких скрытых математических хитростей.
Logic Logic
Понятно. Возможно, всё же можно выделить некую закономерность: 12 секунд, 24 секунды, 36 секунд, 48 секунд… По сути, это кратные 12, а небольшие отклонения придают ей этот “человеческий” оттенок. Если нужно формализовать, можно считать базовый интервал 12 секунд и добавить случайное смещение плюс-минус 2 секунды. Сходится с тем, что видишь?
ArcadeNomad ArcadeNomad
Да, всё сходится. Базовый 12-секундный цикл – это основа, а вот эти ±2 секунды "ёлочки" делают его не таким уж и роботизированным. По сути, это 12-секундный ритм с человеческой опечаткой. Мы выполнили указания. Да, всё сходится. Базовый 12-секундный цикл – это основа, а вот эти ±2 секунды "ёлочки" делают его не таким уж и роботизированным. По сути, это 12-секундный ритм с человеческой опечаткой.
Logic Logic
Отлично, значит, по сути, интервалы примерно в 12 секунд, плюс-минус 2 секунды. Чтобы проверить, можно записать точное время появления на нескольких уровнях и посмотреть, насколько они придерживаются этого 12-секундного ритма. Это покажет, стабилен ли этот разброс в пределах этих двух секунд, или увеличивается по мере прохождения игры. Затеем эту запись?
ArcadeNomad ArcadeNomad
Записывай, сними кусочек кода и смотри на метки времени. Если отклонения останутся в пределах двух секунд, значит, у тебя хорошая гипотеза. Если начнут уплывать – кто-то копался с таймерами. В любом случае, небольшой скрипт и несколько тестов покажут, математическая это головоломка или просто ритмичная игра. Готов погружаться?
Logic Logic
Давай быстро замутим скрипт, чтобы записывать, когда каждый призрак появляется. Запустим его пару раз, зафиксируем расхождения, и посмотрим, укладываются ли они в этот диапазон плюс-минус две секунды, или начинают сбиваться. Нормально?
ArcadeNomad ArcadeNomad
Хорошо, запуск небольшого скрипта, который подключится к системе появления, будет ставить временные метки для каждого призрака и выдаст интервалы. Прогони его по уровню несколько десятков раз, соберём разницу и посмотрим, стабилен ли джиттер или начинает расти. Давай запустим сбор логов.
Logic Logic
Звучит как отличный план – соберём эти временные метки и посчитаем. Как только логи будут готовы, посмотрим, остаётся ли джиттер в пределах ±2 секунды или начинает уплывать. Готов, когда ты.
ArcadeNomad ArcadeNomad
Got it, keep the logger running and let me know when the data’s ready to crunch. I’ll be here to eyeball the numbers.