Флаттер - хорошая база для создания игры?

Я планирую создать мобильную игру. Ну, я подумал об использовании Флаттера. Конечно, это предполагает взаимодействие, проигрывание звуков, но никакой необычной физической системы. Считаете ли вы, что использование Flutter является хорошей идеей в этом случае (это подойдет для его изучения лучше) или это слишком рано для этого, и мне следует придерживаться игрового движка, который я тоже могу использовать?

заранее спасибо

7 ответов

Решение

https://play.google.com/store/apps/details?id=com.newsvoice.newsvoice - это пример приложения Flutter, уже опубликованного в магазине Play.

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

Недавно введенная система плагинов должна позволять реализовывать функции с отсутствующей прямой поддержкой в ​​Dart, с собственным кодом, не добавляя при этом особой сложности.

Смотрите также

Flame - простой игровой движок для Flutter. После ознакомления с файлом readme вы можете быстро запустить простую игру, и есть несколько уроков, документов и примеров. Он предоставляет вам спрайты (и спрайт-листы), аудио, текст, игровой цикл, систему на основе компонентов, обработку ввода, интеграцию box2d и многое другое.

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

Отказ от ответственности: я создал Flame.

Вы также можете зайти на https://github.com/vlidholt/flutter_sprites полную библиотеку спрайтов для Flutter. Специально для написания 2D игр. Существует также версия Box2D, написанная на Dart, которая работает с Flutter.

Некоторые разработчики в настоящее время играют с Flutter и получают интересные результаты. Смотрите здесь https://gfycat.com/HomelyFlickeringApisdorsatalaboriosa

Я думал о создании игрового движка ECS, который позволял бы легко переносить создание игр, написанных для Интернета, на Flutter. Я спроектировал все классы в моей голове:

  • Игра
  • Мир игры
  • GameSystem
  • TransformSystem (содержит данные о вращении / масштабировании / сдвиге)
  • Box2dPhysics
  • DraggableSystem
  • GameUtils
  • TweenLib
  • AssemblageLib
  • TileMapUtils
  • RenderSystemInterface

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

Есть две вещи, которые было бы сложнее портировать, и я пока не совсем понял.

Первое, как рисовать текст для таких вещей, как диалоговые окна, должно быть сделано по-разному между Web и Flutter. Возможно, должны быть FlutterTextSystem и WebTextSystem, которые несовместимы. Второе - это то, что я смогу запрограммировать систему WebRendererSystem на использование шейдеров GLSL, но на самом деле это невозможно сделать сейчас с Flutter. Любой общий интерфейс между двумя типами рендереров должен был бы обрезать объекты, чтобы приспособить Flutter.

На мой взгляд, Flutter - отличный кроссплатформенный SDK для многих целей и большой шаг в правильном направлении, когда дело доходит до разработки приложений. Однако он не предназначен специально для разработки игр, что может привести к проблемам во время разработки.

Тем не менее, есть множество примеров людей, которые разработали простые игры, такие как Fruit Ninja или Snake. Вообще говоря, вам всегда лучше пользоваться такими платформами, как Unity, которые специально предназначены для разработки игр, поскольку вам не нужно заботиться о таких вещах, как спрайты, обнаружение столкновений, физика, конвейеры рендеринга.

Если вы хотите узнать больше по теме, вы можете прочитать эту информативную статью.

Flame - это активный 2D-движок для Flutter. Они собираются выпустить версию 1 с нулевой поддержкой безопасности.

Помимо использования функций 2D-движка Flame, таких как поддержка физики, частиц и т. Д., Вы также можете использовать в игре виджеты MaterialApp, что делает ее гибкой.

Другие вопросы по тегам