Skip to content
This repository has been archived by the owner on Jan 10, 2023. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

⚠️ Attention: This repository has been archived and is now read-only!


Very Good Ranch πŸ¦„

coverage style: very good analysis License: MIT

Very Good Ranch is a demo game built with Flutter and Flame.

After a few initial explorations into game development, we wanted to push our skills further and figure out how we at VGV might standardize and approach game development in a way that mirrors our β€œboring” approach to app development. Very Good Ranch is the result of this effort!

How to play: Make unicorn friends at the Very Good Ranch! Keep your unicorns happy with the right food and enough love, and watch them grow.

Developed with πŸ’™ by Very Good Ventures πŸ¦„

πŸ•Ή Play Very Good Ranch

πŸ“š Read about how we built it

Demo video

Getting Started πŸš€

This project contains 3 flavors:

  • development
  • staging
  • production

To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:

# Development
$ flutter run --flavor development --target lib/main_development.dart

# Staging
$ flutter run --flavor staging --target lib/main_staging.dart

# Production
$ flutter run --flavor production --target lib/main_production.dart

*Very Good Ranch works on iOS, Android, Web, and Windows.

Running Tests πŸ§ͺ

To run all unit and widget tests use the following command:

$ flutter test --coverage --test-randomize-ordering-seed random

To view the generated coverage report you can use lcov.

# Generate Coverage Report
$ genhtml coverage/ -o coverage/

# Open Coverage Report
$ open coverage/index.html

Working with Translations 🌐

This project relies on flutter_localizations and follows the official internationalization guide for Flutter.

Adding Strings

  1. To add a new localizable string, open the app_en.arb file at lib/l10n/arb/app_en.arb.
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
  1. Then add a new key/value and description
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    "helloWorld": "Hello World",
    "@helloWorld": {
        "description": "Hello World Text"
  1. Use the new string
import 'package:very_good_ranch/l10n/l10n.dart';

Widget build(BuildContext context) {
  final l10n = context.l10n;
  return Text(l10n.helloWorld);

Adding Supported Locales

Update the CFBundleLocalizations array in the Info.plist at ios/Runner/Info.plist to include the new locale.




Adding Translations

  1. For each supported locale, add a new ARB file in lib/l10n/arb.
β”œβ”€β”€ l10n
β”‚   β”œβ”€β”€ arb
β”‚   β”‚   β”œβ”€β”€ app_en.arb
β”‚   β”‚   └── app_es.arb
  1. Add the translated strings to each .arb file:


    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"


    "@@locale": "es",
    "counterAppBarTitle": "Contador",
    "@counterAppBarTitle": {
        "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador"


A very good Flame game built by Very Good Ventures πŸ¦„







No releases published


No packages published