{"id":13550420,"url":"https://github.com/VeryGoodOpenSource/flame_behaviors","last_synced_at":"2025-04-03T00:33:51.715Z","repository":{"id":37949884,"uuid":"487958957","full_name":"VeryGoodOpenSource/flame_behaviors","owner":"VeryGoodOpenSource","description":"An implementation of the behavioral composition pattern for Flame. Built by Very Good Ventures 🦄","archived":false,"fork":false,"pushed_at":"2024-12-19T20:51:43.000Z","size":164,"stargazers_count":68,"open_issues_count":2,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-30T16:13:24.534Z","etag":null,"topics":["architecture","dart","flame","flutter","flutter-package","game-development"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/flame_behaviors","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VeryGoodOpenSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-02T19:02:02.000Z","updated_at":"2025-02-26T16:29:41.000Z","dependencies_parsed_at":"2023-02-13T02:15:52.316Z","dependency_job_id":"776b20a8-b45a-4cd4-87bf-62b733f8eb78","html_url":"https://github.com/VeryGoodOpenSource/flame_behaviors","commit_stats":{"total_commits":64,"total_committers":7,"mean_commits":9.142857142857142,"dds":0.515625,"last_synced_commit":"6772c9f06cba978c5c64897fc589103c9b815587"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fflame_behaviors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fflame_behaviors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fflame_behaviors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeryGoodOpenSource%2Fflame_behaviors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VeryGoodOpenSource","download_url":"https://codeload.github.com/VeryGoodOpenSource/flame_behaviors/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916733,"owners_count":20854511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architecture","dart","flame","flutter","flutter-package","game-development"],"created_at":"2024-08-01T12:01:32.842Z","updated_at":"2025-04-03T00:33:49.519Z","avatar_url":"https://github.com/VeryGoodOpenSource.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Flame Behaviors\n\n[![ci][ci_badge]][ci_link]\n[![coverage][coverage_badge]][ci_link]\n[![pub package][pub_badge]][pub_link]\n[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link]\n[![License: MIT][license_badge]][license_link]\n[![Powered by Flame][flame_badge_link]]([flame_link])\n\nFlame Behaviors applies separation of concerns to game logic in the form of Entities and Behaviors.\n\nDeveloped with 💙 and 🔥 by [Very Good Ventures][very_good_ventures_link] 🦄\n\n---\n\nFlame Behaviors was created to make it easier to create scalable, testable games with a \nwell-defined structure. It applies the\n[separation of concerns][separation_of_concerns] to the game logic, in the form of \n[Entities](#entity) and [Behaviors](#behavior).\n\nImagine you want to build an old school [Pong game](https://en.wikipedia.org/wiki/Pong). At its \nvery core there are two objects: a paddle and a ball. If you have a look at the paddle, you could say \nits game logic is: move up and move down. The ball has the simple game logic of: on collision with \na paddle reverse the movement direction.\n\nThese objects, paddles and balls, are what we call entities and the game logics we just described \nare their behaviors. By applying these behaviors to each individual entity we get the core \ngameplay loop of Pong: hitting balls with our paddles until we win.\n\nBy defining what kind of entities our game has and describing what type of behaviors they may hold, \nwe can easily turn a gameplay idea into a structured game that is both testable and scalable.\n\n---\n\n## Documentation 📝\n\nView the full documentation [here](https://github.com/VeryGoodOpenSource/flame_behaviors/tree/main/docs).\n\n## Packages 📦\n\n| Package                                                                                           | Pub                                                                                                      |\n| ------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |\n| [flame_behaviors](https://github.com/verygoodopensource/flame_behaviors/tree/main/packages/flame_behaviors)         | [![pub package](https://img.shields.io/pub/v/flame_behaviors.svg)](https://pub.dev/packages/flame_behaviors)         |\n| [flame_steering_behaviors](https://github.com/verygoodopensource/flame_behaviors/tree/main/packages/flame_steering_behaviors)         | [![pub package](https://img.shields.io/pub/v/flame_steering_behaviors.svg)](https://pub.dev/packages/flame_steering_behaviors)         |\n\n\n## Quick Start 🚀\n\n### Installing 🧑‍💻\n\nIn order to use Flame Behaviors you must have the [Flame package][flame_package_link] added to your project.\n\n### Adding the Package\n\n```shell\n# 📦 Add the flame_behaviors package from pub.dev to your project\nflutter pub add flame_behaviors\n```\n\n## Creating Entities and Behaviors\n\nUse Flame Behaviors to define your game entities and how they behave. Or follow \nthe [Introduction to Flame Behaviors][flame_behaviors_article] article to learn how to use\nthe package!\n\n[ci_badge]: https://github.com/VeryGoodOpenSource/flame_behaviors/workflows/flame_behaviors/badge.svg\n[ci_link]: https://github.com/VeryGoodOpenSource/flame_behaviors/actions\n[coverage_badge]: https://raw.githubusercontent.com/VeryGoodOpenSource/flame_behaviors/main/coverage_badge.svg\n[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license_link]: https://opensource.org/licenses/MIT\n[pub_badge]: https://img.shields.io/pub/v/flame_behaviors.svg\n[pub_link]: https://pub.dartlang.org/packages/flame_behaviors\n[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg\n[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis\n[very_good_ventures_link]: https://verygood.ventures/?utm_source=github\u0026utm_medium=banner\u0026utm_campaign=CLI\n[flame_link]: https://flame-engine.org\n[flame_package_link]: https://pub.dev/packages/flame\n[flame_badge_link]: https://img.shields.io/badge/Powered%20by-%F0%9F%94%A5-orange.svg\n[separation_of_concerns]: https://en.wikipedia.org/wiki/Separation_of_concerns\n[flame_behaviors_article]: https://verygood.ventures/blog/build-games-with-flame-behaviors","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeryGoodOpenSource%2Fflame_behaviors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVeryGoodOpenSource%2Fflame_behaviors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeryGoodOpenSource%2Fflame_behaviors/lists"}