# O Poder do Flutter no Desenvolvimento de Jogos Mobile

Quem nunca pensou em desenvolver um jogo 😮‍💨 ? Acredito que todo desenvolvedor no início de carreira já pensou também em ser um desenvolvedor de jogos, mas construir jogos não é tão fácil quanto pensamos.

Na construção de jogos é preciso considerar coisas como colisões, gravidade, animações, movimentos, física, mapa de pontuações, sons, efeitos etc. O que requer ferramentas especializadas em resolver isso pra gente na construção de um jogo.

### **O que é Flutter?**

Flutter é um kit de ferramentas (SDK) de interface de usuário e de código aberto criado pela Google em 2015, sendo lançado oficialmente em 2018.

Com ele, é possível criar diferentes aplicativos bonitos e multiplataformas (Android, iOS, web e desktop) usando a linguagem de programação Dart e uma única base de código, ou seja, sem precisar escrever o código separadamente para cada sistema ou plataforma.

### **Desenvolvimento de Jogos com o Flutter Casual Game Toolkit 💙**

Durante o Google I/O 2022, foi lançado o [Flutter Casual Game Toolkit](http://flutter.dev/games), um conjunto oficial de ferramentas para dar suporte aos criadores de jogos casuais em Flutter.

Jogos que são semelhantes a aplicativos como jogos de tabuleiro, jogos de cartas, quebra-cabeças e jogos de estratégia onde tendem a responder à entrada do usuário, como tocar em um cartão ou digitar um número ou letra.

O Flutter, que originalmente ganhou destaque no desenvolvimento de interfaces de usuário atraentes, agora oferece recursos para criação de jogos.

## **Benefícios no uso do Flutter para desenvolver jogos**

* **Simplicidade:** O Flutter é bem mais simples de se utilizar e aprender do que engines maiores como por exemplo Unity e Unreal para criação de jogos 2D casuais e se você já faz apps com ele já está a um passo de fazer jogos também pois pode aproveitar vários conceitos que você já sabe.
    
* **Ecossistema**: No Flutter temos um rico ecossistema de ferramentas e libs como persistência de dados, reprodução de vídeo ou áudio e ferramentas de monetização como firebase admob.
    
* **Multiplataforma:**  Com o Flutter, você escreve o código uma vez e ele roda em todas as plataformas, o que pode economizar dinheiro pois não há custos adicionais para atingir novos públicos.
    
* **O Flutter é rápido**: O Flutter compila o código de máquina nativo para aplicativos rápidos e animações bonitas. Ao contrário de outras bibliotecas de IU que dependem das bibliotecas de sistema, o Flutter usa seu próprio conjunto de widgets com código nativo compilado a partir do código Dart.
    
    Isso resulta em alto desempenho, permitindo que você tenha controle total sobre os pixels na tela e alcance taxas de quadros de 60 a 120 por segundo (FPS), o que é impressionante
    
* **Suporte do Google**: Possui suporte oficial do google, o que proporciona qualidade nos conteúdos e na ferramenta, documentação sempre atualizada e investimento constante na comunidade.
    

### **Flame Game Engine**

![](https://lh3.googleusercontent.com/pgA_TAdg_ZRLFS_v8m8waOpYCtSlesKOwmCs89URXqZtoFdY6x1wpk4dv12sib_DaryffbyQvChrKHGqQ0nP7qpDenAFc2XhU2a7yy5Rwc-gGkJTATLKrGzDZqdpA3OYbtT0KoLlErpoUxXtUBPItnI align="left")

O [Flame](https://www.youtube.com/watch?v=tEqVyJNOroI) é uma engine de jogo de código aberto feita por brasileiros sobre o Flutter, que fornece várias ferramentas de desenvolvimento de jogos, como detecção de colisão e animação de sprite para jogos 2D e Game Loops.

No ano passado, milhares de jogos Flutter foram publicados. Por exemplo, Lotum, a empresa de jogos por trás do popular jogo de quebra-cabeça de palavras 4 [Pics 1 Word](https://flutter.dev/showcase/lotum) , reescreveu o jogo inteiro em Flutter utilizando o flame

### **Bonfire**

[Bonfire](https://bonfire-engine.github.io/) é um (RPG Maker) construído pelo brasileiro [Rafael Barbosa](https://www.linkedin.com/in/rafael-almeida-7667a063/) em Flutter sobre a engine de jogos FLAME 🔥 mostrada acima  para criar jogos 2D no estilo RPG.

O Bonfire implementa uma série de classes comumente necessárias para um jogo estilo RPG, incluindo Jogador, NPC, Inimigos, bem como recursos específicos do jogo, como câmeras, manipulação de entrada, iluminação e muito mais.

Ele é capaz de carregar mapas Tiled do popular editor de mapas Tiled de código aberto ( tutorial disponível aqui ), bem como criar mapas processualmente.

Confira essa [live](https://www.youtube.com/watch?v=vrhJTdwiXBg&t=3s) que eu fiz com o Rafael em 2021, onde ele mostra e explica como criou e utiliza o bonfire para criar um jogo de RPG em Flutter.

![](https://bonfire-engine.github.io/_media/example.gif align="center")

### **Exemplo de alguns jogos feitos com Flutter:**

* [**Kelimelik**](https://play.google.com/store/apps/details?id=com.he2apps.kelimelik&hl=en_US&gl=US)**,** tinha 4,4 estrelas no Google Play com mais de 370.000 avaliações e 5.000.000 de instalações no momento da redação deste artigo!
    
* [Chess Variants - Omnichess](https://play.google.com/store/apps/details?id=club.omnichess),  tinha 4,0 estrelas no Google Play com mais de 300 avaliações e 10.000 de instalações no momento da redação deste artigo!
    
* [Air Hockey - Classic](https://play.google.com/store/apps/details?id=com.ignacemaes.airhockey),  tinha 4,7 estrelas no Google Play com mais de 900 avaliações e 100 mil de instalações no momento da redação deste artigo!
    
* [Pinball](https://pinball.flutter.dev/#/) - escrito por Very Good Ventures (VGV) e lançado no Google I/O 2022, foi construído em Flutter, você pode ler sobre o processo de construção dele jogo nesse [link](https://medium.com/flutter/i-o-pinball-powered-by-flutter-and-firebase-d22423f3f5d) 🔗.
    
* [I/O FLIP](https://flip.withgoogle.com/#/):  um jogo de cartas projetado por IA desenvolvido pelo Google, criado para o Google I/O 2023. A lógica de jogo e a interface do usuário do I/O FLIP são construídas sobre uma base fornecida pelos recursos do Flutter Casual Games Toolkit. Você pode ler um pouco mais sobre como ele funciona aqui nesse [link](https://developers.googleblog.com/2023/05/how-its-made-io-flip-adds-twist-to.html) no blog de desenvolvedores da Google.
    
* ![Four phones side by side showing the I/O FLIP game, including drop-downs to select classes and powers for cards and various card battles.](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZmDvq09ts1AdXCHkEWNTlXj-e8jxSlwizVFmRowL42_RqTL_4v9PgsTKlRoK506jDFlu6qbwgHsCpos0erARIc9yOO2ms6-3YmTeKRTJQ2VsZMQhpE-9YhiOgrKahEFKwqBxXOef-6keqaMziU9W4AfUbCZjTtUsYZwEOY07S7VhBUcSHdZ9cFkID/s1600/IOFLIP%20gif.gif align="left")
    

Se você quiser mais exemplos pode consultar [aqui](https://codingwithtashi.medium.com/flutter-for-game-development-ecdb57a61876) uma lista de jogos da Flutter Awesome.

### **Como Iniciar no desenvolvimento de jogos com Flutter?**

**Domine o básico do Flutter:**

Antes de se aventurar no desenvolvimento de jogos, certifique-se de entender os conceitos básicos do Flutter, como widgets, layouts, gerenciamento de estado e navegação. Há muitos recursos e tutoriais disponíveis online para ajudá-lo a aprender esses conceitos.

**Escolha uma biblioteca ou framework de jogos:**

Para criar jogos com Flutter, você precisará de uma biblioteca ou engine de jogos que facilite o processo. Minha indicação é o Flame/Bonfire pois a google tem apoiado bastante.

**Aprenda sobre a lógica de jogos:**

É importante entender os conceitos fundamentais da lógica de jogos, como loop de jogo, colisões, física básica e gerenciamento de objetos no jogo\*\*.\*\*

**Comece com um projeto simples:**

Comece com um jogo simples para ganhar experiência. Pode ser algo como um jogo de quebra-cabeça ou um jogo de memória. Comece pequeno e, à medida que ganha mais confiança, você pode se aventurar em projetos mais complexos.

E pra finalizar vou listar abaixo alguns bons tutoriais para lhe ajudar a desenvolver seu primeiro jogo.

1. **Tutorial escrito:** Siga este [tutorial](https://codelabs.developers.google.com/codelabs/flutter-flame-game?hl=pt-br#0) escrito passo a passo da google para criar seu primeiro jogo de vibração usando o Flame.
    
2. **Tutorial escrito:** [https://blog.codemagic.io/flutter-flame-game-development/](https://blog.codemagic.io/flutter-flame-game-development/)
    
3. **Tutorial em vídeo**: Siga este [tutorial](https://www.youtube.com/watch?v=zGgeBNiRy-8) escrito passo a passo no canal do Flutter para criar seu primeiro jogo.
    

### Conclusão

O desenvolvimento de jogos em Flutter é algo relativamente novo mas muito promissor e usar-lo é uma maneira emocionante de aproveitar todas as vantagens da ferramenta.

Agora, você tem todas as ferramentas necessárias para colocar aquela sua ideia de jogo em prática! 😅 Não deixe o tempo passar e comece ainda hoje. O cenário está pronto para receber suas criações.

A Google tem feito constantes investimentos no Flutter e inclusive estão fazendo diversos conteúdos sobre o [tema](https://www.youtube.com/watch?v=hRUncGtVyvY) no canal oficial deles para incentivar a comunidade a desenvolver seus próprios jogos.

Confira a página oficial dedicada ao [desenvolvimento de jogos](https://flutter.dev/games) em Flutter, onde você pode aprender mais sobre o assunto.

Obrigado por ler até aqui.😁

Espero que você tenha percebido o grande potencial do Flutter. Estou realmente animado com o futuro do Flutter e suas possibilidades.

Espero que você tenha gostado! Se tiver alguma dúvida ou contribuição, deixe nos comentários!

**Referências:**

[https://bonfire-engine.github.io/#/](https://bonfire-engine.github.io/#/)

[https://flame-engine.org/](https://flame-engine.org/)

[https://medium.com/flutter/announcing-the-flutter-casual-games-toolkit-c22e401d8fee](https://medium.com/flutter/announcing-the-flutter-casual-games-toolkit-c22e401d8fee)

[https://developers.googleblog.com/2023/05/how-its-made-io-flip-adds-twist-to.html](https://developers.googleblog.com/2023/05/how-its-made-io-flip-adds-twist-to.html)

Me siga para estar sempre por dentro dos próximos artigos ou assine a neswletter no meu [blog](https://ianoliveira.dev/) 🚀

### **🌐 Minhas redes sociais 🌐**

[GitHub](https://www.github.com/iang12) | [LinkedIn](https://www.linkedin.com/in/ianoliveirag12/) | [Instagram](https://www.instagram.com/ianoliveira.dev/) | [Twitter](https://twitter.com/ianoliveirag12) | [Medium](https://medium.com/@ianoliveirag12)
