Об игре Mario.js — World 1-1 Remake
Mario.js — это клон первого уровня игры для NES, который разработчик Garrett Johnson написал как упражнение по созданию игровых движков. Под капотом нет никакого игрового фреймворка: главный цикл, прокрутка, обнаружение столкновений, анимация спрайтов и порядок отрисовки написаны вручную на чистом JavaScript.
Благодаря этому уровень World 1-1 отлично подходит для повторного прохождения — именно он научил целое поколение играть в платформеры без единой строчки обучающего текста. Первый Goomba учит прыгать, первый блок с ? — бить по предметам снизу, а трубы показывают, что в мире могут быть спрятаны секреты.
Заметки самого автора объясняют устройство игры: враги становятся активными чуть раньше, чем появляются на экране, коллизии немного щедрее, чем сами спрайты, а слои рисуются в строгом порядке — фон, декорации, предметы, враги, снаряды, поверхность, игрок и, наконец, трубы, чтобы Mario мог в них заходить.
Управление
| Клавиша | Действие |
|---|---|
| ← → | Ходьба |
| Z | Бег |
| X | Прыжок |
| ↓ | Войти в трубу / присесть |
Особенности
- Попиксельно точная планировка World 1-1, включая скрытую трубу и флагшток
- Движок с частотой 60 кадров в секунду, написанный с нуля без фреймворков
- Коллизии в стиле оригинала и активация врагов незадолго до их появления на экране
- Грибы, огненные цветы, звёзды, монеты и разбиваемые кирпичи
Советы
- X — прыжок, Z — бег. Во многих компьютерных играх всё наоборот, так что пальцам нужно немного привыкнуть.
- Удерживайте Z, прыгая с верха финальной лестницы, чтобы схватиться за флагшток как можно выше.
- Попробуйте нажать ↓ на трубах — одна из них ведёт в особое место, как и в оригинале.
- Если клавиши не срабатывают, один раз щёлкните внутри игры: фрейму нужен фокус клавиатуры.


