:globe_with_meridians: english | český | русский
В этой ветке вы найдете обновленную версию моей победившей заявки в официальном, двухдневном, международном хакатоне Сообщества Flutter под названием "#Hack20".
Внимание: В соседней ветке находится оригинальная версия заявки.
В хакатоне фигурировало более чем 2665 участников, 650 команд, с 266 проектами. Написание кода было регулировано правилами хакатона, список остальных победителей а так же больше о правилах, на английском языке, вы можете посмотреть, на официальном веб сайте: flutterhackathon.com
Кстати: Игра так же была добавлена в специальный список на главной странице It's All Widgets!, 23 июля 2020 года.
-
🌎 Спасение планеты (Экология / Что мы узнали во время пандемии)
-
👾 Ретро / Киберпанк Будущее
Я решил работать над обеими темами и сделал простую псевдо-3D игру, напоминающую Wing Commander (1990г.). С интерфейсом в стиле Киберпанк / Железный человек, тематической музыкой и аудио эффектами. Вы можете играть в неё прямо в вашем интернет-браузере или установить на устройство для автономного использования, так как это это прогрессивное веб-приложение (PWA). Основное ядро этой игры было сделано в Rive (бывшее Flare).
Примечание: дизайн не зависит от размера экрана, так как вся графика тут векторная (не растровая), но я создавал её с учетом размера экрана примерно в 7-12'.
Ваша миссия состоит в том, чтобы, пролетая в космосе, искать так называемую "Планету Б" и определить пригодность этой планеты для жизни (щелчком мыши). Тут примерно дюжина планет, которые нужно проверить, но у вас мало топлива (для полутора минутного полёта). В конце миссии вы можете увидеть количество просканированных планет и запустить игру снова.
Примечание: Игра была создана в течение двух дней одним человеком. В ней нет сложной игровой механики, это просто концепция с приятным антуражем, которая может кого-то вдохновить.
Вы можете посмотреть предварительное видео (с указанием основных функций), на английском тут:
Спойлер о геймплее
В игре нет никакой Планеты Б (пригодной для жизни). И это главный смысл этой игры и её философская часть, связанная с темой "Экология"... Нам придётся позаботиться о Земле, которая у нас есть.
Этот проект в виде прогрессивного веб-приложения будет работать только в новейших интернет-браузерах, с движком Chromium (Chrome, Edge и т.д.) версии 83 или более новым. Кроме того, я протестировал его на Firefox версии 77+, так что, возможно, игра запустится и там. Даже не пытайтесь запустить его на Safari, Internet Explorer и так далее - они не справятся с анимациями полёта!
ℹ️ Будет запущена новая версия, для просмотра оригинальной игры просто соберите проект из этой ветки локально.
Благодаря Codemagic, можно просто перейти по этой ссылке и запустить игру в вашем современном браузере:
Предполагается установленный 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, внутри папок, с полным текстом этой лицензии, на английском языке.
- Тип ассета: Заголовочный шрифт. “Corruptor Clean LDR” от Michał Nowak “Neoqueto” лицензирован в соответствии с лицензией CC BY-NC-SA 3.0.
- Тип ассета: Заголовочный шрифт. “Corruptor LDR” от Michał Nowak “Neoqueto” лицензирован в соответствии с лицензией CC BY-NC-SA 3.0.
- Тип ассета: Текстовый шрифт. “Polentical Neon” от Jayvee D. Enaguas “Grand Chaos“ лицензирован в соответствии с лицензией CC BY-SA 3.0.
- Тип ассета: Музыка, “SCI FI HORROR OPENING MASTERED” от Michael Dunn “21bakerstreet” лицензирован в соответствии с лицензией CC BY 3.0.
Изменения в музыкальном ассете: 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 |
Архитектура | Слушатель (без глобальных состояний) |