Sonic PHP

Sonic для Master System (1991), переписаний на PHP і доступний безкоштовно в браузері: шість зон, боси, бонусні рівні та перегони з ботами.

Комп’ютер, телефон або геймпад · нічого не треба встановлювати · без реєстрації

Sonic, згорнутий у клубок біля кілець Green Hill, на шляху краб

Увесь 8-бітний Sonic

Бігайте, стрибайте, збирайте кільця, розбивайте бонусні монітори й добирайтеся до вказівника наприкінці кожного акту. Шість зон по три акти, бос наприкінці кожної зони, бонусні рівні, повні кілець і пружин, і фінал гри.

Гра запам’ятовує ваш найкращий час і «привида» найкращого заїзду, який можна побити наступного разу. У налаштуваннях: ЕПТ-фільтр екрана, швидкість PAL або NTSC, французька чи англійська мова та програвач музики.

Карта острова перед Green Hill із життями Sonic
Карта острова між двома зонами.

Шість зон

Кожна зона має свої декорації, пастки й боса. Знімки екрана гри в такому вигляді, як вона працює в браузері.

Green Hill: пагорби в клітинку, пальми та кільця
Green Hill · акт 1
Bridge: скелі й колодний міст над водою
Bridge · акт 1
Jungle: водоспад посеред лісу та платформи
Jungle · акт 1
Labyrinth: різьблені зелені блоки під водою
Labyrinth · акт 1
Scrap Brain: завод на тлі міста на заході сонця
Scrap Brain · акт 1
Sky Base: сині балки вночі
Sky Base · акт 1
Доктор у літальній машині над Sonic наприкінці Green Hill
Перший бос · Green Hill, акт 3
Бонусний рівень: зірки, кільця й пружини
Бонусний рівень · кільця й пружини
Перегони вчотирьох по Green Hill, таблиця результатів угорі праворуч
Перегони вчотирьох проти трьох ботів.

Проти ботів

У режимі MULTIPLAYER змагайтеся з 1–4 гонщиками під керуванням комп’ютера (до 5 у режимі прапора) в зонах гри за чотирма правилами:

Перегони: першим дістатися вказівника. Прапор: утримувати його найдовше. Кільця: зібрати найбільше. Детматч: залишитися останнім.

Хочете позмагатися зі справжніми гравцями? Це є в повній версії.

Повна версія: sonic.mimichat.fr

Ця гра створена на основі Sonic PHP, оригінальна повна версія якого доступна на sonic.mimichat.fr. У ній є все, що ви бачите тут, і ще:

  • мережева гра до 6 гравців: перегони, прапор, кільця або детматч;
  • публічні кімнати й приватні з кодом із 4 літер; вільні місця займають боти;
  • чат у кімнатах і під час гри;
  • повтори кожної партії;
  • версія для комп’ютера (нативний PHP), яка заходить в ті самі кімнати, що й браузери.
Грати онлайн ↗

Керування

Клавіатура

← → бігти
↑ дивитися вгору, ↓ згорнутися в клубок
Пробіл стрибок
Enter меню й пауза
Esc повернення до заставки

Геймпад

Хрестовина або стик — бігти, A, B, X або Y — стрибок, Start — меню й пауза, Select — повернення до заставки.

Телефон

Ліворуч хрестовина для бігу; праворуч JUMP для стрибка й ROLL для клубка, START — пауза, MENU — повернення до заставки. Тримайте телефон горизонтально.

▶ Грати зараз

Як це зроблено

Sonic PHP повністю написаний на PHP: фізика, об’єкти, вороги, боси, камера й боти. Рівні, графіку та цикли кольорів декодовано з оригінального картриджа, а музику отримано запуском звукової програми Z80 із гри в емуляторі.

Тут гру перенесено на рушій JumPHP: той самий код працює у вікні на комп’ютері й у браузері, де PHP скомпільовано в WebAssembly. Логіка гри оригінальна; через JumPHP проходять лише зображення, звук, керування й збереження.

Код: sonic-jumphp (ця версія) і sonicGamePhp (повна версія).

Екран-заставка з логотипом і меню START, MULTIPLAYER, OPTIONS, BEST TIMES
Екран-заставка та її меню.

Запитання

Чи потрібно щось встановлювати?

Ні: гра працює в браузері, на комп’ютері й на телефоні. Під час першого завантаження вона завантажує близько 25 МБ (PHP у WebAssembly, рівні, графіку й музику), потім усе зберігається в кеші.

Чим відрізняється від повної версії?

Повна версія додає мережеву гру до 6 гравців, кімнати, чат і повтори. Ця — та сама гра, перенесена на JumPHP, для гри наодинці або проти ботів.

Чи зберігається мій час?

Так: найкращий час, «привиди» та налаштування залишаються у вашому браузері.

Чи можна грати поза браузером?

Так, із JumPHP і Docker: bin/jumphp run sonic відкриває гру у вікні зі звуком. Дивіться репозиторій на GitHub.