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

Making enemies chase the player

There are two main challenges associated with making enemies chase the player that we need to overcome, making the player believe the enemy is showing intelligence and is hunting them down. They are as follows:

  • The first is that the player is near enough to the enemy so that the enemy may see or hear them. You don't want enemies to start chasing players when they are on the other side of the map, otherwise, the effect is lost and isn't believable.
  • The second is that the enemy is facing the player when they start chasing. If the enemy is walking in the opposite direction, the player might be able to sneak past them without the enemy noticing. So we won't make them chase when they are not even facing the player.

To overcome these challenges, we will track the distance between the player and enemy at every update, which happens 60 times per second. If the distance between them is below a certain value, and if the angle...