Announcing the Flutter Casual Games Toolkit
A starter kit of resources to help you get from concept to launch
For most developers, Flutter is an app framework. But there’s also a growing community around casual game development, taking advantage of the hardware-accelerated graphics support provided by Flutter.
Over the past year, thousands of Flutter games have been published. For example, Lotum, the game company behind the all-time popular word puzzle game 4 Pics 1 Word, rewrote the entire game in Flutter. Flame, a community-driven open-source game engine built on top of Flutter, has been steadily growing both its contributors and users.
To understand how we might provide better support, we interviewed several developers who have successfully built and released Flutter mobile games. We asked what they love about creating games using Flutter, and their answers revealed several themes:
- Flutter is simple to learn and easy to use for building UIs and casual games
- Flutter allows them to look into the framework source code (no “black boxes”) and have full control of the canvas
- Flutter has an open ecosystem where you can find (and leverage) many useful packages, plugins, and libraries
- Flutter is portable — you write your code once and the game compiles to be multiplatform by default
Meanwhile, study participants mentioned that the biggest challenge in creating a Flutter game is finding resources and learning materials to get started and integrate with platform gaming services. To address these needs, we’re releasing a new starter toolkit to accelerate your game development.
The Flutter Casual Games Toolkit offers a specialized template (developed by Filip Hracek) that you can use to build your own game. This starter project provides pre-built “bells & whistles” such as a main menu, a settings page, sound support, and so on, but leaves the fun part to you: building the game!
To get started, check out the video tutorial on how to use the game template. It gives you a step-by-step guide on building a Tic-Tac-Toe game (also available for download from the iOS/Android stores). To see all the nitty-gritty details that Filip experienced as he developed the game, check out his raw dev log.
In addition to the common UI and functional elements you might need for a game, you get pre-integrated modules and sample code for critical services required for game development. For example, the game template integrates the Apple Game Center and Google Play Games Services so you can easily display features like leaderboards and achievements.
If you plan to monetize your game, the template uses the Google Mobile Ads SDK, and shows you how to implement sample Ads. The template also uses the In-App purchase package allowing you to offer players additional content in your game like premium experiences, digital goods, and subscriptions.
Lastly, the game template includes Firebase Crashlytics, so you can gain more insights into any crashes or errors that might occur in your game. All the source code for the game template can be found in this Flutter samples repository on GitHub.
Flutter Game Discord Channel
One of the strengths of Flutter is its helpful and welcoming community. To chat with other Flutter game developers, ask questions, and share best practices, consider joining the dedicated game channel on r/FlutterDev’s Discord server! Big thanks to Flutter community member @Miyoyo for helping create this community space to support Flutter game developers! (By the way, if you are already a member of the r/FlutterDev community, here is a direct link.)
Google Ads and Cloud Credits
If your game needs Cloud or Firebase services, or you want to promote your game to more users with Ads, you can get up to $900 in credits offered by the Google Ads and Cloud teams (terms and limits apply)!
Start with mobile, but go beyond
We’ve learned from past research that the majority of Flutter games today are casual mobile games, so we prioritized mobile scenarios when designing the Flutter Casual Games Toolkit.
Meanwhile, we recently added support for the community-driven game engine Flame on DartPad, so you can explore building games with Flame on DartPad without downloading the SDK. What’s more, the web-based pinball game, written by Very Good Ventures (VGV) and launched at Google I/O, was built in Flutter using the Flame engine! To learn how the pinball game was created, check out the Pinball article from the VGV team or view the code.
Game development is a new but exciting scenario for Flutter! Going forward, we hope to add more codelabs and other resources to help you develop your games. This is our first attempt at making it easier for you, and we are fully aware that there may be many areas for improvement. We’ve recently started collaborating with community member @wolfenrain to triage game-related issues. Please file an issue (or vote on an existing issue) on GitHub if you need product features that you hope the Flutter SDK can better support.
Please check out the dedicated game development page, where you can learn more about the above-mentioned resources, and also find links to documentation, and references to libraries, packages, and tools recommended by game development experts in the Flutter community.
Since the launch of Flutter 1.0, you have continued to amaze us with great apps, and now we can’t wait to see what exciting games you will launch with Flutter!