flame_behaviors icon indicating copy to clipboard operation
flame_behaviors copied to clipboard

An implementation of the behavioral composition pattern for Flame. Built by Very Good Ventures 🦄

Flame Behaviors

ci coverage pub package style: very good analysis License: MIT Powered by Flame

Flame Behaviors applies separation of concerns to game logic in the form of Entities and Behaviors.

Developed with 💙 and 🔥 by Very Good Ventures 🦄


Flame Behaviors was created to make it easier to create scalable, testable games with a well-defined structure. It applies the separation of concerns to the game logic, in the form of Entities and Behaviors.

Imagine you want to build an old school Pong game. At its very core there are two objects: a paddle and a ball. If you have a look at the paddle, you could say its game logic is: move up and move down. The ball has the simple game logic of: on collision with a paddle reverse the movement direction.

These objects, paddles and balls, are what we call entities and the game logics we just described are their behaviors. By applying these behaviors to each individual entity we get the core gameplay loop of Pong: hitting balls with our paddles until we win.

By defining what kind of entities our game has and describing what type of behaviors they may hold, we can easily turn a gameplay idea into a structured game that is both testable and scalable.


Documentation 📝

View the full documentation here.

Packages 📦

Package Pub
flame_behaviors pub package
flame_steering_behaviors pub package

Quick Start 🚀

Installing 🧑‍💻

In order to use Flame Behaviors you must have the Flame package added to your project.

Adding the Package

# 📦 Add the flame_behaviors package from pub.dev to your project
flutter pub add flame_behaviors

Creating Entities and Behaviors

Use Flame Behaviors to define your game entities and how they behave. Or follow the Introduction to Flame Behaviors article to learn how to use the package!