Skip to content
This repository has been archived by the owner on Oct 4, 2020. It is now read-only.

Latest commit

 

History

History
192 lines (136 loc) · 14.1 KB

README.ru.md

File metadata and controls

192 lines (136 loc) · 14.1 KB

:globe_with_meridians: english | český | русский

План-ет-а Б (PWA игра) 🚀

Содержание

Скриншот

Описание

В этой ветке вы найдете обновленную версию моей победившей заявки в официальном, двухдневном, международном хакатоне Сообщества Flutter под названием "#Hack20".

Внимание: В соседней ветке находится оригинальная версия заявки.

В хакатоне фигурировало более чем 2665 участников, 650 команд, с 266 проектами. Написание кода было регулировано правилами хакатона, список остальных победителей а так же больше о правилах, на английском языке, вы можете посмотреть, на официальном веб сайте: flutterhackathon.com

Кстати: Игра так же была добавлена в специальный список на главной странице It's All Widgets!, 23 июля 2020 года.

Темы Официального хакатон Сообщества Flutter в 2020 году

  • 🌎 Спасение планеты (Экология / Что мы узнали во время пандемии)

  • 👾 Ретро / Киберпанк Будущее

Я решил работать над обеими темами и сделал простую псевдо-3D игру, напоминающую Wing Commander (1990г.). С интерфейсом в стиле Киберпанк / Железный человек, тематической музыкой и аудио эффектами. Вы можете играть в неё прямо в вашем интернет-браузере или установить на устройство для автономного использования, так как это это прогрессивное веб-приложение (PWA). Основное ядро этой игры было сделано в Rive (бывшее Flare).

Примечание: дизайн не зависит от размера экрана, так как вся графика тут векторная (не растровая), но я создавал её с учетом размера экрана примерно в 7-12'.

Ваша миссия состоит в том, чтобы, пролетая в космосе, искать так называемую "Планету Б" и определить пригодность этой планеты для жизни (щелчком мыши). Тут примерно дюжина планет, которые нужно проверить, но у вас мало топлива (для полутора минутного полёта). В конце миссии вы можете увидеть количество просканированных планет и запустить игру снова.

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

Вы можете посмотреть предварительное видео (с указанием основных функций), на английском тут:

План-ет-а БVimeo или YouTube

Спойлер о геймплее

В игре нет никакой Планеты Б (пригодной для жизни). И это главный смысл этой игры и её философская часть, связанная с темой "Экология"... Нам придётся позаботиться о Земле, которая у нас есть.

Инструкции

Как играть онлайн


⚠️ Важно! ПРЕЖДЕ ЧЕМ НАЧАТЬ!

Этот проект в виде прогрессивного веб-приложения будет работать только в новейших интернет-браузерах, с движком Chromium (Chrome, Edge и т.д.) версии 83 или более новым. Кроме того, я протестировал его на Firefox версии 77+, так что, возможно, игра запустится и там. Даже не пытайтесь запустить его на Safari, Internet Explorer и так далее - они не справятся с анимациями полёта!


ℹ️ Будет запущена новая версия, для просмотра оригинальной игры просто соберите проект из этой ветки локально.

Благодаря Codemagic, можно просто перейти по этой ссылке и запустить игру в вашем современном браузере:

https://hack20.codemagic.app

Как запустить локально

Предполагается установленный Flutter и браузер Chrome/Chromium. Для этого, просто введите следующие команды в терминале:

flutter channel master
flutter upgrade
flutter config --enable-web
git clone https://github.com/tsinis/plan_et_b.git
cd plan_et_b
flutter run -d chrome --release --dart-define=FLUTTER_WEB_USE_SKIA=true --dart-define=FLUTTER_WEB_USE_EXPERIMENTAL_CANVAS_TEXT=true

❗ Последняя строчка - самая важная! Пожалуйста, используйте эти метки. В противном случае анимации Rive будут отображаться некорректно.

Как собрать

Предполагается установленная версия Flutter версии 1.19 или выше. И так, просто введите следующие команды, из папки проекта в терминале:

  • Для Веба:
flutter config --enable-web
flutter build web --release --dart-define=FLUTTER_WEB_USE_SKIA=true --dart-define=FLUTTER_WEB_USE_EXPERIMENTAL_CANVAS_TEXT=true
  • Для macOS:
flutter config --enable-macos-desktop
flutter build macos --release
  • Для Андроид:
flutter build apk --split-per-abi
  • Для iOS:
flutter build ios --release --no-codesign

К сожалению на PC (Windows и Linux) не будет ни звука, ни музыки, потому что я не нашел для этих платформ хорошего плагина. Вы можете собрать игру для этих платформ без ошибок компиляции только после удаления из кода пакета аудио-плеера.

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

Список будущих дел

  • Создать игровое ядро.
  • Создать псевдо-3D интерфейс.
  • Добавить звуки и музыку.
  • Исправить аудио на платформах, отличных от Веб и Андроид.
  • Добавить предысторию и стилизовать меню под киберпанк.
  • Добавить иконки.

Лицензии

Этот проект выпущен в соответствии с условиями MIT лицензии. Все ресурсы (звуки, анимации и шрифты) лицензированы согласно лицензиям CC, и бесплатны для личного пользования. Вы можете найти все эти файлы лицензии LICENSE, внутри папок, с полным текстом этой лицензии, на английском языке.

Атрибуции

Изменения в музыкальном ассете: WAV файл был преобразован в MP3 (64 кбит/с), а пробелы в имени файла заменены подчеркиваниями.

Релизы

Вы можете найти бинарники (исполняемые файлы), для платформы Андроид, macOS и Веб в разделе Releases этого репозитория GitHub.

Технические данные

Большая часть кода покрыто комментариями.

Название Описание
Название фреймворка Flutter
Версия фреймворка 1.21.0-2.0.pre.60
Канал фреймворка мастер
Название языка Dart
Версия языка 2.9.0
Канал языка бета
Название ИСР Visual Studio Code
Версия ИСР 1.48.0
Канал ИСР предварительный
Название сторонней зависимости Auto Size Text
Пакет сторонней зависимости auto_size_text
Версия сторонней зависимости 2.1.0
Название сторонней зависимости Assets Audio Player
Пакет сторонней зависимости assets_audio_player
Версия сторонней зависимости 2.0.8+2
Название сторонней зависимости Rive (бывшее Flare)
Пакет сторонней зависимости flare_flutter
Версия сторонней зависимости 2.0.4
Название сторонней зависимости URL Launcher
Пакет сторонней зависимости url_launcher
Версия сторонней зависимости 5.5.0
Название сторонней зависимости Stateless Animation
Пакет сторонней зависимости sa_stateless_animation
Версия сторонней зависимости 1.0.1
Название сторонней зависимости Flutter Phoenix
Пакет сторонней зависимости flutter_phoenix
Версия сторонней зависимости 0.1.0
Архитектура Слушатель (без глобальных состояний)