Flutter Game Engine Flame Series Notas - 1. Visão geral do Flame Engine

insira a descrição da imagem aqui

Notas da série Flame do mecanismo de jogo Flutter
1. Visão geral do motor de chama

- Informações do artigo -
Autor: 李俊才(jcLee95)
Visite-me em: https://jclee95.blog.csdn.net
Email: [email protected] .
Shenzhen China
Endereço deste artigo: https://blog.csdn.net/qq_28550263/article/details/132119035

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

Seção anterior: " Nenhum " | Próxima seção: " Crie seu primeiro jogo com o Flame "


1. Status atual do desenvolvimento do jogo Flutter

Atualmente, a aplicação do Flutter no campo de desenvolvimento de jogos está aumentando gradualmente, especialmente para jogos 2D simples e alguns jogos 3D leves. Embora o Flutter esteja posicionado principalmente para aplicativos móveis e desenvolvimento de interface do usuário, seus poderosos recursos de desenho e animação também o tornam adequado para o desenvolvimento de jogos.

Em termos de desenvolvimento de jogos 2D, o Flutter fornece funções de desenho poderosas, permitindo que os desenvolvedores criem facilmente jogos 2D. Você pode usar o Canvas para desenhar interfaces de jogo personalizadas, lidar com a entrada do usuário e implementar a lógica do jogo.

Para jogos 3D, embora os recursos gráficos 3D do Flutter sejam relativamente fracos, alguns jogos 3D leves também podem ser implementados no Flutter. Atualmente, existem relativamente poucos desenvolvimentos de jogos 3D no Flutter, porque os mecanismos de jogos 3D especializados são mais poderosos e aplicáveis ​​a esse respeito.

O Flutter é construído no mecanismo gráfico Skia e seu foco principal está na interface do usuário e na animação da interface do usuário, em vez do desempenho do jogo altamente otimizado. Portanto, para jogos 3D complexos ou jogos que exigem maior desempenho, mecanismos de jogo tradicionais (como Unity, Unreal Engine etc.) podem ser mais adequados, mas você também pode optar por incorporar alguns mecanismos de jogo tradicionais em aplicativos Flutter.

No Flutter, mecanismos e bibliotecas de jogos populares incluem Flame , Flare , Unity for Flutter .

Entre eles:
(1) Flame é um mecanismo de jogo de código aberto para criar jogos 2D no Flutter . Ele fornece uma série de componentes fáceis de usar, como sprites, animações, detecção de colisão, etc., que ajudam a desenvolver jogos 2D simples, e é o assunto desta série de notas. Seu endereço oficial é: https://docs.flame-engine.org/ .

(2) Flare é uma ferramenta para criação de gráficos vetoriais e animações, cujo motor principal é escrito em C++ e SDL2, podendo também ser usado em Flutter. Embora não seja um mecanismo de jogo no sentido tradicional, você pode usar o Flare para criar animações de personagens complexas e integrá-las aos seus jogos. Seu endereço oficial é: https://flarerpg.org/

(3) Unity for Flutter é um poderoso mecanismo de jogo 3D que oferece suporte à publicação multiplataforma. Embora não seja uma solução nativa para Flutter , o Unity oferece a opção de incorporar jogos em aplicativos Flutter , exibindo assim o conteúdo do jogo Unity em aplicativos Flutter . O módulo flutter_unity_widget (o endereço do warehouse é: https://github.com/juicycleff/flutter-unity-view-widget ) é usado para incorporar a unidade no flutter e, de acordo com sua introdução, está disponível no Android, iPad OS, iOS, plataformas Web Tudo funciona muito bem.

O blog a seguir registra como incorporar um jogo Unity em um aplicativo Flutter , com imagens e textos, os leitores interessados ​​podem consultar: Como incorporar um jogo Android Unity em um aplicativo Flutter : https://blog.codemagic.io/how - para-incorporar-um-android-unity-game-in-a-flutter-app/ .

2. Introdução à situação geral do motor Flame

2.1 Sobre a Chama

O Flame é o mecanismo de jogo mais leve e mínimo desenvolvido pelo Flutter. Ele fornece algumas APIs simples e úteis, permitindo que os desenvolvedores desenvolvam facilmente jogos 2D baseados no Flutter . Como o Flame usa a plataforma Flutter , você pode usar várias funções do Flutter , incluindo, entre outras, as ricas ferramentas de interface do usuário do Flutter , recursos de plataforma cruzada e assim por diante.

De acordo com sua introdução oficial, o Flame é um mecanismo de jogo Flutter modular que fornece um conjunto completo de soluções remotas para jogos. Ele aproveita a poderosa infraestrutura fornecida pelo Flutter, mas simplifica o código necessário para criar seu projeto.

O endereço da documentação oficial do Flame é: https://docs.flame-engine.org/ .
insira a descrição da imagem aqui

No Flmae , é fornecida uma implementação simples, mas eficiente, do loop do jogo, junto com a funcionalidade necessária que você pode precisar em seu jogo. Incluindo entrada , imagens , sprites , folhas de sprite , animações , detecção de colisão e sistema de componente de chama ( FCS ) . _ _ _ _ _ _ _ _

2.2 Características da Chama

As principais características do mecanismo de jogo Flame são deliberadamente resumidas nos quatro pontos a seguir:

  1. Primeiro, o Flame pode ser perfeitamente integrado ao Flutter . Se você já conhece o ambiente de desenvolvimento Flutter, usar o Flame será muito fácil. O Flame não apresenta nenhum novo conceito de construção, é totalmente construído no ambiente Flutter nativo;
  2. Em segundo lugar, o Flame tem excelente desempenho de renderização . De acordo com a introdução oficial e o feedback dos desenvolvedores, o Flame tem excelente desempenho e pode atingir FPS (quadros por segundo) completos na maioria dos dispositivos;
  3. Suporte ao desenvolvimento de plataforma cruzada . Os jogos Flame podem ser executados em iOS e Android, e até mesmo na web e no desktop (embora a web e o desktop estejam atualmente em pré-visualização);
  4. O Flame fornece componentes de desenvolvimento de jogos básicos, mas poderosos . O Flame possui componentes integrados comumente usados ​​no desenvolvimento de jogos, como Sprite (mapa de sprite), folha de sprite, mapa de blocos e sistema de partículas.

2.3 Pacote de software independente fornecido oficialmente pela Flame

módulo descrever pagina inicial
flame_audio Ele usa o pacote Audioplayers para fornecer funcionalidade de áudio.
Se você quiser reproduzir música de fundo, sons ambientes, efeitos sonoros, etc., adicione-o como uma dependência ao seu jogo Flame.
https://pub.dev/packages/flame_audio
flame_forge2d Ele usa a própria porta Box2D do Flame chamada Forge2D para fornecer funcionalidade física. https://pub.dev/packages/flame_forge2d
flame_tiled Isso fornece integração com o pacote do módulo Tiled . https://pub.dev/packages/flame_tiled
flame_svg Este módulo fornece integração com o módulo flutter_svg . https://pub.dev/packages/flame_svg

3. Instalação da chama

A instalação do Flame é muito simples, requer principalmente várias etapas, vamos ver passo a passo.

Etapa 1: instalar o Flutter

Como o Flame é construído no Flutter, você precisa garantir que o Flutter esteja instalado e configurado corretamente antes de instalar o Flame.

Se você ainda não o instalou, visite a página oficial de instalação do Flutter ( https://flutter.dev/docs/get-started/install ) e siga as etapas de instalação.

Etapa 2: criar um projeto do Flutter

Você pode instalar o Flame em um projeto Flutter existente ou criar um novo projeto Flutter. O comando de criação específico é o seguinte:

flutter create my_game

Etapa 3: adicionar dependências do Flame ao projeto

Vá para o seu projeto Flutter e pubspec.yamladicione a dependência do Flame ao arquivo. Para versões de dependências específicas, visite a documentação oficial para ver a versão mais recente. Abaixo está um exemplo:

dependencies:
  flutter:
    sdk: flutter

  flame: ^1.8.1

E execute no console flutter packages getpara baixar e instalar as dependências.

Após os passos acima, o Flame foi instalado com sucesso no projeto. Então você pode começar a usar o Flame para construir seu jogo.

4. Infraestrutura do Flame

Antes de mergulhar em como o Flame desenvolve jogos, precisamos entender alguns conceitos básicos e componentes principais do Flame. Esta seção resume seis conceitos na estrutura do Flame, ou seja, loop de jogo , componente , camada , processamento de entrada , gerenciamento de recursos e detecção de colisão .

4.1 Loop de jogo

O loop do jogo é um conceito muito básico no desenvolvimento de jogos, na verdade é um processo que é repetido continuamente durante a execução do jogo. Existem duas operações principais no loop do jogo: Atualizar e Renderizar. A atualização lida com a lógica do jogo, como movimento do personagem, detecção de colisão, etc.; a renderização é responsável por exibir a tela do jogo. Existe uma Gameclasse abstrata chamada Flame. Os desenvolvedores precisam herdar essa classe e implementar os updatemétodos correspondentes render.

4.2 Componentes

No Flame, os componentes representam todos os elementos do jogo, como personagens, botões, imagens de fundo, etc. Os componentes são projetados seguindo o princípio de "a composição é melhor que a herança". Isso possibilita a obtenção de funções complexas combinando diferentes componentes durante o desenvolvimento do jogo. Componentes comuns no Flame incluem: SpriteComponent(sprite), TextComponent(texto), AnimationComponent(animação), etc.

4.3 Camadas

O Flame suporta a colocação de componentes em diferentes camadas para efeitos em cascata no jogo. As camadas ajudam você a gerenciar a organização da cena do jogo e controlar a ordem na qual os componentes são desenhados.

4.4 Manipulação de entrada

O Flame fornece funções de manipulação de entrada, como tocar, arrastar, clicar, etc., que são perfeitamente integradas à plataforma Flutter. Você pode facilmente adicionar ouvintes de eventos a componentes para implementar funções interativas no ambiente Flutter.

4.5 Gestão de Ativos

Durante o processo de desenvolvimento do jogo, muitos recursos estão envolvidos, como imagens, áudio e assim por diante. O Flame fornece um conjunto de mecanismos de gerenciamento de recursos que permitem carregar, armazenar em cache e acessar os recursos necessários para o jogo.

4.6 Detecção de Colisão

O Flame também oferece suporte à detecção de colisão.Adicionar componentes de detecção de colisão aos elementos do jogo pode adicionar condições de julgamento para a lógica do jogo, como colisões entre personagens e inimigos.

Agora você deve ter uma compreensão geral da arquitetura básica do Flame. No processo de desenvolvimento real, há muitas funções mais avançadas esperando por nós para explorar. Nos próximos capítulos, veremos como criar cenas, personagens, interações e outros recursos interessantes no Flame.

5. Exemplos de projetos sobre o Flame

Você pode encontrar um grande número de exemplos do Flame na página https://examples.flame-engine.org . Os elementos da página do site são os seguintes:

insira a descrição da imagem aqui
Entre eles, clique em "Navegação" à esquerda para ver um diretório organizado com base em diferentes pontos de conhecimento: o
insira a descrição da imagem aqui
botão de descrição à direita pode abrir a introdução ou orientação do projeto de jogo atual: o
insira a descrição da imagem aqui
botão "Visualizar fonte" pode ver a fonte do código do projeto atual, que geralmente abre o endereço da página github do projeto atual por meio do navegador: o
insira a descrição da imagem aqui
botão "Visualização do dispositivo" pode selecionar o dispositivo e as propriedades do dispositivo da visualização do jogo:
insira a descrição da imagem aqui

Acho que você gosta

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