Чтобы запустить приложение, перейтиде по ссылке https://bomberman2d.netlify.app/
Firebase — это платформа Google для мобильной и веб-разработки, которая помогает предпринимателям создавать, улучшать и масштабировать свои продукты приложений. Платформа предлагает набор инструментов, которые значительно упрощают процесс разработки продукта.
- Готовая база данных Firestore — это удобная база данных, размещенная в облаке, гибкая и масштабируемая с точки зрения размера. Предоставляет автономный доступ и обновления в реальном времени, которые позволяют им работать над адаптивными приложениями без подключения к Интернету.
- Бесплатно Платформа не взимает плату за большинство своих услуг и требует выбора тарифного плана только после достижения определенного объема памяти базы данных.
- Понятная документация Firebase имеет хорошо подготовленную техническую документацию, которая упрощает работу с предлагаемыми услугами и делает их более доступными для пользователей. Присутствует информация об интеграции, доступности и поддерживаемых технологиях.
- Легкость интеграции Простота интеграции и быстрая настройка. Готовые API-интерфейсы, предлагаемые платформой, позволяют быстро добавлять новые функции. Простой пользовательский интерфейс позволяет реализовать в приложении такие функции, как аутентификация.
-
Хранение данных неудобно Основная проблема — ограниченные возможности запросов. Нельзя запрашивать более одного ключа за раз, и служба не предоставляет способ фильтрации данных. Это потому, что вся БД представляет собой файл JSON и не имеет ничего общего с форматом хранения SQL. Формат также исключает возможность моделирования данных.
-
Ограниченная миграция данных Firebase не предоставляет инструмент миграции, позволяющий легко переносить данные пользователя, и, тем самым сильно ограничивает миграцию данных. Это делает пользователей зависимыми от платформы, и в случае изменения концепции серверной базы нет возможности перенести приложение в другой источник.
-
Android в центре Firebase не предоставляет одинаковых возможностей для приложений Android и iOS. Он по-прежнему больше ориентирован на Android, и это единственная система, которая получает большинство выделенных услуг и возможностей. Что касается iOS, она была обеспечена закрытой бета-поддержкой для устройств iOS, но включает в себя очень простой набор тестов.
Phaser - это игровой фреймворк для создания браузерных 2D игр. Phaser эффективно и быстро обрабатывает 2D графику, так как использует библиотеку Pixi.js для рендеринга, которая признана одной из самых лучших для отрисовки 2D графики, как для Desktop, так и мобильных браузеров, которые поддерживают HTML5 (Canvas, WebGL). Основная направленность Phaser - мобильные браузеры, поэтому он очень хорошо оптимизирован для них и, как следствие, на Desktop браузерах Phaser работает очень быстро.
-
Редакторы Phaser имеет визуальный редактор MightyEditor, который упрощает разработку. А так же имеет инструмент Phaser SandBox, который позволяет экспериментировать с какими-либо возможностями фреймворка или собственным кодом и сохранять ссылку для демонстрации кому-либо вашей работы или для демонстрации проблемы.
-
Загрузка ассетов Фреймворк позволяет одной строкой кода загружать ассеты: рисунки, звуки, spritesheet'ы, tilemap'ы, содержимое JSON и XML файлов (парсятся автоматически).
-
Физика Phaser использует 3 встроенных физических движка: Arcade Physics (очень легковесный и отлично подходит для очень слабых устройств), Ninja Physics (продвинутый движок с завязкой на тайлы) и движок p2.js с поддержкой full-body спрайтов.
-
Спрайты Легко работать со спрайтами: перемещение, поворот, масштабирование, анимирование, столкновения и т.д. Спрайты имеют полную поддержку работы с ними с помощью мышки и тачпада: drag & drop, зажима (snap) и определение pixel perfect клика.
-
Группы Объединение спрайтов в группы (паки) для пуллинга и повторного цикла использования (recycling). Это даёт оптимизацию и удобство работы. Например, можно создать группу "Bullets" и одной командой проверить столкновение объекта этой группы с объектом из группы "Aliens", если было столкновение, то сработает callback функция.
-
Анимации Phaser поддерживает классические анимации на spritesheet'ах, а также анимаций из файлов: Texture Packer, Flash CS6/CC JSON (как Hash, так и Array форматы) и Starling XML.
-
Системы частиц В Phaser встроена система частиц под названием Arcade, которая позволяет легко создавать эффекты с частицами, такие как: взрывы, дождь, дым, огонь и т.д. Например, вы можете закрепить эммитер к объекту, который движется.
-
Камера Phaser имеет возможности легко управлять камерой, перемещать её по игровому Миру или она может следовать за спрайтом.
-
Ввод Для Phaser'а неважно получает ли игра ввод с многокнопочной мышки, сенсорного экрана или геймпада - работа с устройствами ввода осуществляется единообразно.
-
Звук Phaser поддерживает и WebAudio и устаревший HTML Audio. Он автоматически обрабатывает ситуацию, когда мобильное устройство уходит в режим блокировки. Phaser берёт на себя всю сложную работу со звуком на мобильных устройствах.
-
Tilemap'ы Phaser загружает тайлы, отрисовывает их и обрабатывает столкновения с ними с помощью всего нескольких строк кода. Он поддерживает файлы CSV и файлы из Tiled Map Editor, обрабатывая тайлы со слоёв этого редактора. Он имеет мощные функции для работы с тайловыми картами в реальном времени: поменять (swap), заменить (replace), удалить, добавить, обновить и т.д.
-
Масштабирование игры под разные устройства Phaser имеет встроенный инструмент (под названием Scale Manager), который позволяют адаптировать вашу игру под любое разрешение. Он контролирует отношение сторон экрана, максимальное и минимальное масштабирование и полноэкранный режим.
-
Система плагинов Разработчики Phaser'а стараются, чтобы Phaser имел все необходимые встроенные возможности, но при этом был легко расширяемым за счёт плагинов, которые разработчики игр создают для своих проектов. Как правило, разработчики игр делают доступными свои плагины для сообщества Phaser.
- Недоработки в новой верии Последняя версия — Phaser 3 — еще сырая.
- Плагины не бесплатны Плагины и утилиты к движку стоят в среднем 20$ и поддерживают только Phaser 2.
- Неочевидные настройки У второй версии движка есть неочевидные настройки, которые трудно изменить — например, скорость движения объектов автоматически подстраивается под FPS
Vite.js - это один из инструментов для настройки сред разработки. Чаще всего используется в связке с фреймворками React и Vue. Однако функционал не ограничен только их поддержкой - Инструмент способен работать как в связке с фреймворками React и Vue, так и с ванильным JavaScript и различными библиотеками, написанным на нем. В отличии от многих других вспомогательных инструментов Vite легко встраивается через терминал и может быстро разворачиваться при необходимости.
- Простой запуск сервера Хороший нативный запуск сервера. Простота установки и настройки
- Минимизация приложения Hot Module Replacement (HMR) позволяет приложению не занимать много пространства
- Много полезных настроек из коробки Поддержка TypeScript’a, JSX, SaSS, CSS ну и многих других ещё языков или инструментов для разработки
- Оптимизация билда Оптимизированный build приложения, то есть когда мы уже собираем само приложение для рабочего сервера - то оно уже оптимизированное
- Полезные плагины Универсальные плагины, которые используются в разных средах разработки dev и build
- Гибкие API Гибкие API, которые поддерживают полностью TypeScript
Не обнаружено
Netlify – это одна из наиболее продвинутых платформ для веб-разработки, помогающая программистам публиковать проекты в сети. Этот сервис упрощает жизнь пользователям благодаря автоматизированным инструментам тестирования, сборки и размещения приложений и сайтов в интернете.
netlify-cli — интерфейс командной строки для запуска сервера для разработки (инициализации бессерверных функций) и "деплоя" приложения на Netlify
- Простота использования Устанавливается одной коммандой в коммандной строке. Чтобы задеплоить сайт, нужно всего лишь запустить один скрипт в командной строке и следовать инструкциям
- Бесплатно Netlify и его интерфейс командной строки - бесплатный сервис
- Модульный подход к разработке Netlify исповедует модульный подход к разработке, помогая предпринимателям и программистам забыть о настройке внушительной части бэкенд-аспектов и внедрения собственных серверных решений.
- Решение для небольших проектов Netlify идеально подходит для небольших команд или для разработчиков-одиночек, не способных самостоятельно создать инфраструктуру для своего ресурса, но при этом желающих отправить свою работу в интернет (чтобы показать заказчику, например, или для дополнительного тестирования).
- Дополнительные конфиги Не всегда правильно обрабатывает билд. При деплое SPA требует создания специального файла netlify.toml для обеспечения перехода по страницам
- Не всегда доступны имена Часто желаемое им сайта не всегда доступно для названия. Многие звучные имена для сайтов уж заняты, и нужно постараться, чтобы придумать имя, которое еще свободно. Кроме того в названии сайта всегда присутствует netlify app
TypeScript — это язык программирования, в котором исправлены многие недостатки JavaScript. Код на TypeScript выглядит почти так же, как и код на JS. Код на TypeScript компилируется в JS и подходит для разработки любых проектов под любые браузеры — тем более что можно выбрать версию JS, в которую будет компилироваться код. TypeScript — проект с открытым исходным кодом, поэтому он очень быстро развивается.
- Типизация Поскольку в JavaScript нет типов, контролировать и проверять все параметры и переменные, которые мы используем, бывает довольно сложно. В то же время очень легко сделать ошибку в коде, например, забыть объявить переменную, случайно вызвать несуществующую функцию или передать в качестве параметра переменную, которая сломает весь код. TypeScript похож на JavaScript, но он поддерживает типы. Это упрощает чтение кода и помогает избежать ошибок, которые могут превратить отладку в кошмар.
- Поддержка новейших функций JavaScript Еще одна интересная особенность TypeScript заключается в том, что он позволяет использовать последние функции JavaScript. Не все современные браузеры могут понять такой код, в котором использованы новейшие функции, и, как правило, чтобы сделать это возможным, нужно включать дополнительные инструменты, такие как Babel. Однако компилятор TypeScript сделает всю тяжелую работу сам. Поскольку TypeScript можно установить в наш проект через npm, при обновлении версии у нас автоматически будут появятся все новые возможности.
- Поддержка IDE Большинство современных IDE очень полезно использовать при кодировании. TypeScript является типизированным языком, а поэтому IDE предоставит вам подсказки по коду.
- Совместимость с браузером Совместимость с браузером – это одна из самых полезных функций. Можно забыть о проблемах совместимости: компилятор творит чудеса – он может сам преобразовать ваш код и сделать его совместимым со всеми современными браузерами. Другими словами, по умолчанию код, который выдает компилятор TypeScript, является ES5-совместимым, а все современные браузеры понимают ES5 JavaScript.
-
Возможно в будущем устареет Нативная технология никуда не денется, она с нами будет всегда. А вот все то, что надстраивается над ней, имеет обыкновение устаревать и умирать.
-
Снижает скорость разработки Иногда нужно быстро написать рабочий код, а здесь приходится тратить много времени на типизацию
-
Тяжелее поддерживать Если не уделять должного внимания поддержке, то с ростом колличество типов также многократноо вырастет. Это ухудшит читаемость и поддерживаемость кода
-
Требует компиляции Это существенно замедляет сборку. Ощутимо на больших проектах. При запуске сборки вылажят наружу множество ошибок связанных с Typescript
-
Ложное ощущение безопасности Разработчики считают, что использовани Typescript позволит им минимизировать ошибки, однако на практике всё оказывается не так просто, и колличество оибко в некоторых случаях только растет
-
Повышает порог входа По сути надо изучить новый язык.
Sass — это метаязык (язык для описания другого языка), который упрощает и ускоряет написание CSS-кода. Его часто называют препроцессором CSS — это означает, что Sass имеет свой синтаксис, из которого генерирует CSS-код, понятный любому браузеру.
Препроцессор Sass помогает:
- сделать CSS-код понятнее и проще. Его легче масштабировать, обновлять и поддерживать;
- расширить функциональность. С помощью Sass можно использовать CSS-константы, встроенные функции, вложенные правила, примеси (смешанные стили), наследование и так далее;
- избежать многократного повторения одинаковых фрагментов кода. Это экономит время разработчика, уменьшает объем файлов стилей и ускоряет обработку страниц.
- Полная совместимость с CSS Sass полностью совместим со всеми версиями CSS. Мы уделяем серьезное внимание совместимости, поэтому вы можете легко использовать любые доступные библиотеки CSS.
- Богатая функциональность Sass может похвастаться большим количеством возможностей, чем любой другой язык расширения CSS. Команда Sass Core бесконечно работает не только для поддержания этих возможностей, но и для того, чтобы быть впереди.
- Опыт Sass находится в активной разработке более 8 лет.
- Поддержка индустрией Снова и снова сообщество разработчиков выбирает Sass как главное средство написания CSS.
- Большое сообщество Sass активно поддерживается и разрабатывается консорциумом высокотехнологичных компаний и нескольких сотен разработчиков.
- Фреймворки Есть бесконечное количество фреймворков, построенных на Sass. Compass, Bourbon и Susy - это только несколько примеров из всего количества.
- Порог вхождения Разработчику понадобится некоторое время на изучение возможностей препроцессора.
- Усложняет взаимодействие в команде Если над одним сайтом работает много человек, то им нужно использовать один препроцессор. Некоторые используют Sass, другие обычный CSS для редактирования файлов напрямую. Это усложняет работу над сайтом.
- Можно потерять возможность использования встроенного инспектора элементов Есть шанс потерять возможность использовать встроенный в браузер инспектор элементов.