Book Image

Building Games with Flutter

By : Paul Teale
Book Image

Building Games with Flutter

By: Paul Teale

Overview of this book

With its powerful tools and quick implementation capabilities, Flutter provides a new way to build scalable cross-platform apps. In this book, you'll learn how to build on your knowledge and use Flutter as the foundation for creating games. This game development book takes a hands-on approach to building a complete game from scratch. You'll see how to get started with the Flame library and build a simple animated example to test Flame. You'll then discover how to organize and load images and audio in your Flutter game. As you advance, you'll gain insights into the game loop and set it up for fast and efficient processing. The book also guides you in using Tiled to create maps, add sprites to the maps that the player can interact with, and see how to use tilemap collision to create paths for a player to walk on. Finally, you'll learn how to make enemies more intelligent with artificial intelligence (AI). By the end of the book, you'll have gained the confidence to build fun multiplatform games with Flutter.
Table of Contents (17 chapters)
1
Part 1: Game Basics
5
Part 2: Graphics and Sound
11
Part 3: Advanced Games Programming

Building the game for the web and desktop

As mentioned in the introduction, if you launched our game in Google Chrome, you would notice that the map and UI are drawn incorrectly and are in the wrong places. So, what is going on here?

The larger screen size that is changing constantly when we resize the screen is confusing our game, which currently thinks the size is fixed and the initial positions of our components are set relative to our fixed screen size. Because of this confusion, the graphics can look weird and our previously working touch events can now get confused because of this new screen size.

The solution to this is to ask the game to tell us when the screen is resized, and for us to use the new screen size to recalculate the positions of all our components. To make this more straightforward, we are going to mathematically calculate the boundaries of our game so that we know where the top, left, right, and bottom of our map are in relation to our new screen size, and...