Match3 игра на Processing. Вступление

  • match-three game
  • processing

Привет. После реализации базового функционала блога я решил, что было бы неплохо сделать игру, основанную на механике Match3. Игры подобного жанра являются отличными убийцами времени, а так же позволяют занять себя между кодинг-сессиями, пока обдумываешь решение какой-то проблемы.

Основным требованием к разрабатываемой игре является возможность запуска на Android, т.к. именно на нем я буду играть большую часть времени. Т.к. основная сфера моей деятельности — разработка серверной логики для приложений, я сразу же отказался от традиционных инструментов для разработки мобильных игр, т.е. от Swift и каких-то нативных штук для Android (я даже не знаю, что есть для разработки).

Изначально я хотел делать игру на javascript, т.к. для мобильных платформ можно использовать Service Worker, что позволит создать PWA приложение, для которого не будет нужно постоянное подключение к интернету, но которое будет реализовано на более-менее знакомом для меня стеке. Однако, попробовав сделать пару прототипов, я понял, что мне не хватает нормального ООП и типизации (первый прототип был на jQuery, второй был реализован на технологии Canvas).

В итоге, я вспомнил, что есть такая классная штука, как Processing, которая позволяет делать простые приложения на упрощенной версии Java, избавляя разработчика от низкоуровнего программирования (взаимодействие с ОС, рендер окошек, рисование фигур и вот это вот все). Кроме всего прочего, есть версия Processing для Android, которая дает возможность обрабатывать мультитач-события и предоставляет набор функций даже для поддержки AR.

Об этапах разработки и каких-то решениях, которые ко мне будут приходить в процессе, я планирую писать посты, для которых я выделю отдельную категорию, чтобы можно было легко следить за прогрессом.

Ссылки, которые могут быть полезны:

• Что такое PWA (Progressive Web Application): https://developers.google.com/web/progressive-web-apps

• Статья о PWA на Хабре: https://habr.com/ru/post/418923/

• Штука, которую я использовал в jQuery-прототипе, чтобы Drag'n'drop работал на телефонах: https://github.com/furf/jquery-ui-touch-punch

• Processing: https://processing.org/

• Processing for Android: https://android.processing.org/