Паузы в играх
Я играю только в старые игры: те, которые были популярны, когда мне было 13-17 лет. В основном это эмулятор PlayStation и ранний PC. Играя сегодня, наблюдаю забавные вещи, на которые не обращал внимания раньше. Например, паузы или перезарядка оружия.
Далеко не везде пауза останавливает мир полностью. Например, в старой сеговской игрушке General Chaos есть прикол: если бросить гранату и нажать паузу, она спокойно долетает и наносит урон. При этом работает анимация урона и смерти врага. За счет этого можно пройти игру одним бойцом.
В игре Parasite Eve 2 на PlayStation был мощный лазер (насадка на карабин “Javelin”). Лазер хорош, но с большим интервалом между выстрелами. Однако если выстрелить и нажать паузу, то за это время его отпустит, и после паузы можно стрелять снова. С точки зрения игры лазер спамит непрерывно.
В игре Alien Shooter 2 на PC нечто схожее с переключением и перезарядкой. Есть ракетница по принципу “мощно, но редко”. Пока она перезаряжается, можно переключиться на другое оружие и пострелять из него, а потом вернуться к ракетнице — она будет готова к выстрелу.
В Quake 2 на PlayStation был прикол с путаницей патронов от одного оружия к другому. Если во время стрельбы переключиться с шоги на рейл и обратно, то рейл тратил дробь, а шога — обедненный уран.
Почему так происходит? Хоть я ничего не понимаю в играх, но хотя бы предположу. Пауза ставит логический флаг, при котором игровой цикл не обновляет объекты. А перезарядка оружия и некоторые другие вещи работают от прерывания процессора. Другими словами, процессору говорят: через две секунды выполни код, который находится по этому адресу. Таймер можно только отменить, но не продлить. Поэтому даже если мир заморожен, через две секунды сработает код, который снимет с оружия статус “перезадяка” и выставит ему нужное число патронов. Отсюда такие приколы.
Морали нет, просто вспомнилось.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter