Flutter Game Engine Flame Series Notas- 1. Descripción general de Flame Engine

inserte la descripción de la imagen aquí

Motor de juego Flutter Notas de la serie Flame
1. Descripción general del motor de llama

- Información del artículo -
Autor: 李俊才(jcLee95)
Visítame en: https://jclee95.blog.csdn.net
Correo electrónico: [email protected] .
Shenzhen China
Dirección de este artículo: https://blog.csdn.net/qq_28550263/article/details/132119035

【介绍】:本文介绍Flame引擎安装和该模块的整体信息。

Sección anterior: " Ninguno " | Sección siguiente: " Crea tu primer juego con Flame "


1. Estado actual del desarrollo del juego Flutter

Actualmente, la aplicación de Flutter en el campo del desarrollo de juegos está aumentando gradualmente, especialmente para juegos 2D simples y algunos juegos 3D livianos. Aunque Flutter está posicionado principalmente para el desarrollo de aplicaciones móviles y UI, sus poderosas capacidades de dibujo y animación lo hacen adecuado para el desarrollo de juegos también.

En términos de desarrollo de juegos en 2D, Flutter proporciona potentes funciones de dibujo, lo que permite a los desarrolladores crear fácilmente juegos en 2D. Puede usar Canvas para dibujar interfaces de juego personalizadas, manejar la entrada del usuario e implementar la lógica del juego.

Para los juegos 3D, aunque las capacidades de gráficos 3D de Flutter son relativamente débiles, también se pueden implementar algunos juegos 3D ligeros en Flutter. En la actualidad, hay relativamente pocos desarrollos de juegos 3D en Flutter, porque los motores de juegos 3D especializados son más potentes y aplicables en este sentido.

Flutter se basa en el motor de gráficos Skia y se centra principalmente en la interfaz de usuario y la animación de la interfaz de usuario, en lugar del rendimiento del juego altamente optimizado. Por lo tanto, para juegos 3D complejos o juegos que requieren un mayor rendimiento, los motores de juegos tradicionales (como Unity, Unreal Engine, etc.) pueden ser más adecuados, pero también puede optar por integrar algunos motores de juegos tradicionales en las aplicaciones de Flutter.

En Flutter, los motores y bibliotecas de juegos populares incluyen Flame , Flare , Unity para Flutter .

Entre ellos:
(1) Flame es un motor de juegos de código abierto para crear juegos 2D en Flutter . Proporciona una serie de componentes fáciles de usar, como sprites, animaciones, detección de colisiones, etc., que ayudan a desarrollar juegos 2D simples, y es el tema de esta serie de notas. Su dirección oficial es: https://docs.flame-engine.org/ .

(2) Flare es una herramienta para crear gráficos vectoriales y animaciones. Su motor central está escrito en C++ y SDL2, y también se puede usar en Flutter. Si bien no es un motor de juego en el sentido tradicional, puedes usar Flare para crear animaciones de personajes complejas e integrarlas en tus juegos. Su dirección oficial es: https://flarerpg.org/

(3) Unity for Flutter es un potente motor de juegos en 3D compatible con la publicación multiplataforma. Aunque no es una solución nativa para Flutter , Unity brinda la opción de incorporar juegos en las aplicaciones de Flutter , mostrando así el contenido del juego de Unity en las aplicaciones de Flutter . El módulo flutter_unity_widget (la dirección del almacén es: https://github.com/juicycleff/flutter-unity-view-widget ) se usa para integrar unity en flutter y, según su introducción, está disponible en Android, iPad OS, iOS, plataformas web Todo funciona muy bien.

El siguiente blog registra cómo incrustar un juego de Unity en una aplicación Flutter , con imágenes y textos, los lectores interesados ​​pueden consultar: Cómo incrustar un juego de Android Unity en una aplicación Flutter : https://blog.codemagic.io/how - para-incrustar-un-juego-de-android-unity-en-una-aplicación-flutter/ .

2. Introducción a la situación general del Flame Engine

2.1 Acerca de la llama

Flame es el motor de juego más ligero y minimalista impulsado por Flutter. Proporciona algunas API simples y útiles, lo que permite a los desarrolladores desarrollar fácilmente juegos 2D basados ​​en Flutter . Dado que Flame usa la plataforma Flutter , puede usar varias funciones de Flutter , incluidas, entre otras, las ricas herramientas de interfaz de usuario de Flutter , las funciones multiplataforma, etc.

Según su presentación oficial, Flame es un motor de juego Flutter modular que proporciona un conjunto completo de soluciones remotas para juegos. Aprovecha la poderosa infraestructura provista por Flutter, pero simplifica el código requerido para construir su proyecto.

La dirección de documentación oficial de Flame es: https://docs.flame-engine.org/ .
inserte la descripción de la imagen aquí

En Flmae , se proporciona una implementación simple pero eficiente del bucle del juego, junto con la funcionalidad necesaria que pueda necesitar en su juego. Incluye entrada , imágenes , sprites , hojas de sprites , animaciones , detección de colisiones y sistema de componentes de llama ( FCS ) . _ _ _ _ _ _ _ _

2.2 Características de la llama

Las características principales del motor de juego Flame se resumen deliberadamente en los siguientes cuatro puntos:

  1. Primero, Flame se puede integrar a la perfección con Flutter . Si ya estás familiarizado con el entorno de desarrollo de Flutter, utilizar Flame te resultará muy sencillo. Flame no introduce ningún nuevo concepto de construcción, está completamente construido en el entorno nativo de Flutter;
  2. En segundo lugar, Flame tiene un excelente rendimiento de renderizado . De acuerdo con la presentación oficial y los comentarios de los desarrolladores, Flame tiene un rendimiento excelente y puede alcanzar FPS completos (fotogramas por segundo) en la mayoría de los dispositivos;
  3. Admite el desarrollo multiplataforma . Los juegos de Flame se pueden ejecutar en iOS y Android, e incluso en la web y el escritorio (aunque la web y el escritorio se encuentran actualmente en versión preliminar);
  4. Flame proporciona componentes de desarrollo de juegos básicos pero potentes . Flame tiene componentes incorporados comúnmente utilizados en el desarrollo de juegos, como Sprite (mapa de sprites), hoja de sprites, mapa de mosaicos y sistema de partículas.

2.3 Paquete de software independiente proporcionado oficialmente por Flame

módulo describir página de inicio
llama_audio Utiliza el paquete Audioplayers para proporcionar funcionalidad de audio.
Si desea reproducir música de fondo, sonidos ambientales, efectos de sonido, etc., agréguelo como una dependencia a su juego Flame.
https://pub.dev/packages/flame_audio
llama_forge2d Utiliza el propio puerto Box2D de Flame llamado Forge2D para proporcionar funcionalidad de física. https://pub.dev/packages/flame_forge2d
flame_tiled Esto proporciona integración con el paquete de módulos Tiled . https://pub.dev/packages/flame_tiled
llama_svg Este módulo proporciona integración con el módulo flutter_svg . https://pub.dev/packages/flame_svg

3. Instalación de llama

Instalar Flame es muy sencillo, principalmente requiere de varios pasos, veámoslo paso a paso.

Paso 1: Instala Flutter

Dado que Flame se basa en Flutter, debe asegurarse de que Flutter esté instalado y configurado correctamente antes de instalar Flame.

Si aún no lo ha instalado, visite la página de instalación oficial de Flutter ( https://flutter.dev/docs/get-started/install ) y siga los pasos de instalación.

Paso 2: crea un proyecto de Flutter

Puedes instalar Flame en un proyecto de Flutter existente o crear un nuevo proyecto de Flutter. El comando de creación específico es el siguiente:

flutter create my_game

Paso 3: Agregar dependencias de Flame al proyecto

Vaya a su proyecto Flutter y pubspec.yamlagregue la dependencia de Flame al archivo. Para versiones de dependencia específicas, visite la documentación oficial para ver la última versión. A continuación se muestra un ejemplo:

dependencies:
  flutter:
    sdk: flutter

  flame: ^1.8.1

Y ejecutar en la consola flutter packages getpara descargar e instalar dependencias.

Después de los pasos anteriores, Flame se ha instalado con éxito en el proyecto. Entonces puedes comenzar a usar Flame para construir tu juego.

4. Infraestructura de Flame

Antes de profundizar en cómo Flame desarrolla juegos, debemos comprender algunos conceptos básicos y componentes centrales de Flame. Esta sección resume seis conceptos en el marco de Flame, a saber, bucle de juego , componente , capa , procesamiento de entrada , gestión de recursos y detección de colisiones .

4.1 Bucle de juego

El bucle del juego es un concepto muy básico en el desarrollo de juegos. En realidad, es un proceso que se repite continuamente durante la ejecución del juego. Hay dos operaciones principales en el ciclo del juego: Actualizar y Renderizar. La actualización maneja la lógica del juego, como el movimiento de los personajes, la detección de colisiones, etc.; el renderizado es responsable de mostrar la pantalla del juego. Hay una Gameclase abstracta llamada Flame. Los desarrolladores deben heredar esta clase e implementar los updatemétodos correspondientes render.

4.2 Componentes

En Flame, los componentes representan todos los elementos del juego, como personajes, botones, imágenes de fondo, etc. Los componentes están diseñados siguiendo el principio de "la composición es mejor que la herencia". Esto hace posible lograr funciones complejas al combinar diferentes componentes durante el desarrollo del juego. Los componentes comunes en Flame incluyen: SpriteComponent(sprite), TextComponent(texto), AnimationComponent(animación), etc.

4.3 Capas

Flame admite la colocación de componentes en diferentes capas para efectos en cascada en el juego. Las capas lo ayudan a administrar la organización de su escena de juego y controlar el orden en que se dibujan los componentes.

4.4 Manejo de entradas

Flame proporciona funciones de manejo de entrada como tocar, arrastrar, hacer clic, etc. que se integran a la perfección con la plataforma Flutter. Puede agregar fácilmente detectores de eventos a los componentes para implementar funciones interactivas en el entorno de Flutter.

4.5 Gestión de activos

Durante el proceso de desarrollo del juego, se involucran muchos recursos, como imágenes, audio, etc. Flame proporciona un conjunto de mecanismos de administración de recursos que le permiten cargar, almacenar en caché y acceder a los recursos requeridos por el juego.

4.6 Detección de colisiones

Flame también es compatible con la detección de colisiones. Agregar componentes de detección de colisiones a los elementos del juego puede agregar condiciones de juicio para la lógica del juego, como colisiones entre personajes y enemigos.

Ahora debería tener una comprensión general de la arquitectura básica de Flame. En el proceso de desarrollo real, hay muchas más funciones avanzadas que nos esperan para explorar. En los próximos capítulos, profundizaremos en cómo crear escenas, personajes, interacciones y otras funciones interesantes en Flame.

5. Ejemplos de proyectos sobre Flame

Puede encontrar una gran cantidad de ejemplos de Flame en la página https://examples.flame-engine.org . Los elementos de la página del sitio web son los siguientes:

inserte la descripción de la imagen aquí
Entre ellos, haga clic en "Navegación" a la izquierda para ver un directorio organizado en función de diferentes puntos de conocimiento: el
inserte la descripción de la imagen aquí
botón de descripción a la derecha puede abrir la introducción o la guía del proyecto de juego actual: el
inserte la descripción de la imagen aquí
botón "Ver fuente" puede ver la fuente del código del proyecto actual, que generalmente abre la dirección de la página github del proyecto actual a través del navegador:
inserte la descripción de la imagen aquí
el botón "Vista previa del dispositivo" puede seleccionar el dispositivo y las propiedades del dispositivo de la vista previa del juego:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_28550263/article/details/132119035
Recomendado
Clasificación