Skip to content
/ thedeck Public

The Deck: An Open-Source, Cross-Platform, Mobile, Turn by Turn Card Game Engine in Flutter

License

Notifications You must be signed in to change notification settings

xajik/thedeck

Repository files navigation

alt text

The Deck

🕹️ Mobile multiplayer offline card games aggregator 🚀 👨‍💻 Written 💯 in Dart and Flutter 🔨

The inspiration for “The Deck” came from a situation many of us have experienced. Imagine gathering with friends for a game night, only to realize that nobody has the necessary cards. Frustrating, right? This dilemma sparked the idea of leveraging technology to create a solution.

alt text

The primary goal of “The Deck” is to provide a user-friendly and cooperative digital game environment for playing classic games that were usually played with cards on paper. One of the standout features of “The Deck” is its unique ability to assign one device as the “table” (a.k.a. deck). By placing this device in the middle of the group, all players can witness the real-time state of the cards. This adds a new level of immersion making it a truly captivating experience.

alt text

Gameplay

  1. Select a game 📚
  2. Connect to the room 🔗
  3. Start game 🚀
Image 3 Image 4 Image 5

Read more

Other

Contribute

Contribution is welcome 🤝

If you contributed and build a new Game, ping me if you wish it to be released on the store markets. [email protected]

Flutter

Setup

Use FVM to manage Flutter SDK version

  • install fvm with brew
  • Setup Flutter version from pubspec fvm use x.y.z
    • Read version here: fvmrc
  • run with fvm flutter run

MR / Pull Request

Naming convention, start commit description with:

  • (FEAT) - feature
  • (FIX) - bug fix
  • (CHORE) - refactoring, updating dependencies, etc
  • (TEST) - tests

Release

Android

  • For App Store release ⭐️
    • fvm flutter build appbundle --release
  • Fat APK with all ABI
    • fvm flutter build apk --release
    • Upload file to Play store
  • For split-abi APK testing
    • fvm flutter build apk --release --split-per-abi

iOS

  • Archive for App store upload ⭐️
    • fvm flutter build ipa --release
    • open file with Xcode, validate and upload
  • IPA file to drag & drop into iphone:
    • fvm flutter build ipa --release --export-options-plist="/Users/igor.steblii/Projects/foundation_tone/ft_fe/build/ios/archive/Runner.xcarchive/Info.plist"

Common errors

  • In case VS code fail with missing Cocoapods

    • fvm flutter clean + fvm flutter pub get + Reload VSCode
  • For normalize': Unicode Normalization not appropriate for ASCII-8BIT (Encoding::CompatibilityError)

  • Run: export LC_ALL=en_US.UTF-8

  • for wrong locale export LANG="en_US.UTF-8

  • Run locale if there is any C, then run export LC_ALL=en_US.UTF-8

  • For flutterfire script fails with "unhandle JSON exception"

  • Download json/plist form Firebase and update in respective folders (invertase/flutterfire_cli#30)

  • iOS Device require permission to connect to local network, which cannot be access from code. To emulate access query local IP address

  • Another way is to add permission to Info.plist to ask on app start:

    • NSLocalNetworkUsageDescription
    • Access to the local network required to create and connect to game rooms
  • For Error when reading 'lib/objectbox.g.dart': No such file or directory

    • Run: fvm flutter pub run build_runner watch --delete-conflicting-outputs

Tools

To generate a new Redux template see scripts

License

This project is licensed under the terms of the MIT license.

About

The Deck: An Open-Source, Cross-Platform, Mobile, Turn by Turn Card Game Engine in Flutter

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published