[HN Gopher] The Deck: An open-source cross-platform multiplayer ...
       ___________________________________________________________________
        
       The Deck: An open-source cross-platform multiplayer card game
       engine in Flutter
        
       Author : igor_st
       Score  : 185 points
       Date   : 2025-02-08 15:47 UTC (7 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | egypturnash wrote:
       | _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._
       | 
       | This feels like a _lot_ of work compared to popping down to the
       | corner store for a pack of cards.
        
         | jsnell wrote:
         | Leaving aside the efficency of the solution, I find it hard to
         | believe that the problem is all that frequent. Yes, there are
         | people who don't keep around decks of cards or other basic game
         | components. But do those people organize game nights?
        
           | egypturnash wrote:
           | Seriously, I feel like if you say "hi I am Having A Game
           | Night" then this kinda implies that you're gonna bring along
           | some games to wherever you're getting your friends to gather,
           | maybe they'll bring some too.
        
         | sram1337 wrote:
         | Really? It looks like everyone just opens the app, one person
         | hosts, and everyone scans their phone. Done. Works over wifi.
         | No "searching" for the hosted server.
         | 
         | 20 seconds vs. 30 minutes to drive to the store and back.
        
           | egypturnash wrote:
           | I mostly meant the effort involved in writing it.
        
           | 999900000999 wrote:
           | Have Doordash drop off a deck.
           | 
           | This feels like a "neat, but why" project. Odds are the app
           | is going to be difficult to use compared to a real deck.
        
         | jancsika wrote:
         | On the other hand, it would be prohibitively expensive to, say,
         | auction off the whitespace of each card to the highest bidder
         | in a realtime auction.
         | 
         | With apps players may get this functionality right out of the
         | box.
        
       | david422 wrote:
       | There was an old android app called "Flick Hearts" (2011) that
       | had the same concept of a center table (tablet) and individuals
       | playing on their phones. I always thought it was pretty
       | imaginative for the time, haven't really seen it since.
        
       | blopker wrote:
       | Nice work! I'm happy to see the server is in Dart, no Firebase!
       | 
       | I wish the Dart server ecosystem was more mature though. Being
       | able to compile Dart into a static binary is so nice for
       | deployment.
        
         | hoppp wrote:
         | I wrote some dart servers years ago, there is a nice framework
         | called aqueduct that makes it very easy and productive.
         | 
         | I stopped using it because I needed to make money and my work
         | was with nodejs.
        
         | satvikpendem wrote:
         | Serverpod and Dart Frog are both pretty good backend Dart
         | frameworks, what are you looking for?
        
           | blopker wrote:
           | Dart is crazy because it runs on every platform, compiles to
           | native, has real parallelism via isolates, native async, and
           | native type safety.
           | 
           | There's not really a backend that takes advantage of all
           | that. In theory, one server binary could handle REST, web
           | sockets, background workers, and have generated type safe
           | client packages for every platform. Dart also has a great
           | Rust ffi story. It would be great to see that leveraged.
           | 
           | ServerPod is a great start, but it's really Flutter focused.
           | The web apis feel like second class.
           | 
           | Additionally, database management isn't a solved problem yet.
           | ServerPod uses yaml to define models, and the other main
           | option is just a Prisma wrapper. Dart needs something like
           | Drizzle.
        
             | satvikpendem wrote:
             | You could state the same thing as your first sentence for
             | e.g. Rust or many other languages, I personally only see
             | Dart being useful if you already have a Flutter app and you
             | don't want to learn another language, and to have shared
             | types easily, similar to fullstack web devs using
             | TypeScript for their React and Node apps.
             | 
             | I personally use Rust backends and Flutter frontends for my
             | apps. I'd use pure Rust for the entire thing but Rust
             | frontends are nowhere near the capabilities and maturity as
             | Flutter, but I use FFI like flutter_rust_bridge and rinf at
             | least, as you mention.
        
       | tomw1808 wrote:
       | I think its an awesome showcase project, no doubt - I starred it
       | and bookmarked it, probably like so many others.
       | 
       | However, I would never use it as a game. Ever.
       | 
       | One of my primary objectives playing card games with a group of
       | people in a local setting is the social aspect. It means: no
       | phones. I find it utterly asocial to sit there in a group of
       | people all with their phones in their hand staring at the phone,
       | then at some point getting distracted with doom scrolling
       | instagram. Its so disturbing. Maybe I am old (40), I don't doubt
       | that. Maybe I reach that point where I simply "don't get it"
       | anymore. But I stand by it. It's not for me. Maybe I am alone,
       | but I doubt that.
        
         | sejje wrote:
         | If you're playing cards, people are going to be staring at
         | their [cards] in their hand staring at the [cards].
         | 
         | In this case, your cards are digital. Presumably you can choose
         | some people who just want to play cards, not doomscroll
         | instagram.
        
           | tomw1808 wrote:
           | Let's talk card games then, because a lot of the card games
           | are strategy.
           | 
           | It's how you interact with the cards.
           | 
           | You are not staring in your cards. Maybe you are sorting the
           | cards. You are observing what other people are doing with
           | their cards. Sometimes you are just glancing at cards and
           | putting them back on the table (e.g. poker).
           | 
           | Everything vanishes with a phone doing that for you. It takes
           | away the magic of card games for me.
           | 
           | Again, I am strictly speaking of myself, but if I go with a
           | group of people to play cards and then they pull out their
           | phones, I'll simply leave the table and go home or do
           | something else.
        
             | mikehotel wrote:
             | Physical cards also allow you to practice shuffling and
             | card handling in general improving dexterity.
             | 
             | Electronic cards would allow you to play more widely
             | (presumably we all don't walk around with a deck in our
             | pockets). But I don't often get into spontaneous card
             | games. They are usually planned and at a location with easy
             | access to decks.
        
               | tomw1808 wrote:
               | There are games made specifically for the phone I could
               | imagine to pull out in a group of people, but its not
               | card games. It's games which specifically benefit from a
               | multi-touch device like a phone or the graphics or the
               | gyro or other sensors. Games you cannot play without a
               | phone. Would also be weird to play counter strike without
               | a computer.
               | 
               | Especially card games are offline games for me. They're
               | (my personal) go-to tech detox social thing and doing
               | that with phones is simply weird for me. That's maybe why
               | I felt so strong to make this point.
               | 
               | Again, awesome project. Maybe its for some, but not for
               | me.
        
               | tinix wrote:
               | what about accessibility, someone who can't shuffle or
               | has bad dexterity...
               | 
               | too much negativity in this thread!
               | 
               | if you have nothing nice to say just don't say anything
               | at all.
        
               | tomw1808 wrote:
               | I was long thinking if I should comment on this or not...
               | 
               | First of all, I feel bad that my comment before
               | apparently conveyed the wrong message: The project is
               | well executed, code wise. It was (most likely?) a ton of
               | work and I did not mean to comment anything negative
               | towards the project at all.
               | 
               | Second, if anything in that project would have hinted
               | even a tiny inch towards more inclusivity in card games,
               | I would probably never had said anything. But it doesn't.
               | 
               | The project markets itself as solving a problem I never
               | heard of anyone ever had ("a situation many of us have
               | experienced") and therefore does not resonate with me or
               | most likely anyone I ever played cards with in all-
               | nighters. Instead, it would've been a buzzkill to play on
               | the phone. But ok, I (or anyone I played with) might not
               | be the target group. As I said, it was my personal
               | opinion and that's what I expressed.
               | 
               | but then ... "if you have nothing nice to say don't say
               | anything at all" ... because?
               | 
               | Shutting my mouth there would basically equal to a lie. I
               | am not a liar and I am not becoming one just because my
               | criticism is making anyone uncomfortable.
               | 
               | I am that kind of person who is telling people if they
               | have spinach between their teeth, I tell people if they
               | sat accidentally on a chewing gum and I definitely tell
               | people if I think they are solving a non-existent problem
               | (or their marketing message is not on par). Last time I
               | checked, that is what this platform is for. If criticism
               | makes people uncomfortable, great. Uncomfortable is where
               | the comfort zone ends.
               | 
               | Mind you, at no point I got rude or personal or
               | unreasonable, I hope. I stated its my opinion. My
               | personal one. Based on my experience. And at no point I
               | mentioned the code was bad, or at any point I was
               | downtalking the devs, insulting or otherwise. Instead I
               | respect their work to the utmost level. But I simply do
               | not understand the problem they solve, instead it goes
               | against what I experienced in my life. And on this
               | platform I sure hope this is something that is not only
               | allowed, but very welcome.
        
         | mikehotel wrote:
         | This is a good point. We are easily distracted, especially when
         | waiting for people to take their turn. The device based
         | distractions can be stopped by using Guided Access. It can
         | temporarily lock a device to one app, and block notifications
         | from popping up.
        
       | IshKebab wrote:
       | Huh do you have a license for Dixit?
        
         | mdaniel wrote:
         | I had never heard of it before, but if others are similarly
         | interested https://boardgamegeek.com/boardgame/39856/dixit
         | 
         | I would guess the assets[1] would be more legally problematic
         | versus the game mechanics, which AIUI are only subject to
         | patent claims, not copyright
         | 
         | 1:
         | https://github.com/xajik/thedeck/blob/86c2219d7c2aba47edd616...
        
           | IshKebab wrote:
           | I was more thinking about the name. You are free to clone
           | game mechanics and use different assets, but you can't say
           | "play Dixit" unless you actually have permission to use that
           | name.
        
       | sntran wrote:
       | When VR was starting to gain attraction, I had this idea of a
       | virtual playing card deck. Everybody joining the game could move
       | the phone around to see the virtual cards either on their hand or
       | on the surface chosen as the "table". The idea came from the need
       | to play cards in the hall of college department without showing
       | that we were playing cards.Unfortunately, my college education
       | did not equip me enough skills to make that happen. I'm glad that
       | somebody else made this. Looks very nice!
        
         | kybernetikos wrote:
         | You may be interested in Tabletop Simulator from Berserk Games,
         | which is on Steam and has VR mode.
        
       | unification_fan wrote:
       | Ah I thought this was about computer games. For a second I
       | thought that it was an engine to build arbitrary cross-platform
       | card games with solid online multiplayer. But this seems rather
       | specific, and cross-platform only means "Android/iOS" which is a
       | stretch since they both run on the same kind of devices.
        
         | menzoic wrote:
         | I'm building what you thought it was. DM to beta test!
        
           | snarf21 wrote:
           | I'm interesting in learning more. I don't see contact info in
           | your profile.
        
           | unification_fan wrote:
           | I am also very much interested.
        
         | mmanfrin wrote:
         | Same. I feel like it's almost a rite of passage of anyone who
         | has built sideproject card games/hex games t think about
         | building their own little engine (especially after spending
         | time on red blob game's tutorials).
        
           | johnecheck wrote:
           | Hahaha yup right on I'm there now
        
       | ncruces wrote:
       | I've wanted to do something like this for about a decade. Good
       | job!
        
       | enduser wrote:
       | The main project website is cropped horizontally and vertically
       | (bottom) on iOS Safari
        
       | satyrnein wrote:
       | This is very cool! Somewhat similar, I recently bought a Nintendo
       | Switch version of Ticket to Ride, which supports using a
       | "companion app" on other devices to show each player their
       | private hand.
       | 
       | However, one unfortunate bit is that the board (in my case, the
       | TV connected to the Switch) is "read-only" and you don't interact
       | with it, unlike real life. You pick which card to play on your
       | phone, and then place it onto the board _also on your phone_. So
       | basically, all the action is on your phone, and the central board
       | is kind of an afterthought. It doesn 't feel as much like
       | interacting with a shared space as I was hoping.
       | 
       | I'm not really sure how to solve that. I thought of some weird
       | stuff (like, maybe after you pick your card, your phone is just a
       | touchpad controlling the card as it now moves around on the big
       | screen) but nothing seemed practical.
        
       | Hortinstein wrote:
       | I thought this was an incredible well executed/engineered
       | art/commentary on using an incredible amount of technology to
       | create a similar....likely sub par experience to getting a deck
       | of cards for <10 dollars
       | 
       | I love it!
        
       | satvikpendem wrote:
       | Not sure if the author is on this post but how was it like
       | working with Flutter? Does this project run on web and desktop as
       | well as mobile. Also, I'd look into replacing fvm with puro or
       | mise instead, both are much faster.
        
       | kolanos wrote:
       | Was hoping [0] would have a flutter web version running. Now that
       | would be cross platform.
       | 
       | [0]: https://getthedeck.com
        
       | account-5 wrote:
       | This looks cool, well done.
       | 
       | Incidentally it's also one of the few times I've seen a
       | dart/flutter project on the front page of HN, and even had some
       | non-critical comments, so again well done.
        
       | tinix wrote:
       | this is getting a lot of hate here, surprisingly: people saying
       | this is antisocial or you should just go to the store and buy a
       | deck of cards, etc...
       | 
       | about 10 years ago my wife and I wanted to make a card game
       | something like a twist on cards against humanity or madlibs, that
       | could be played in person or remotely. I built a back-end and
       | protocol for organizing and conveying cards and such, and she got
       | all the content put into the backend, and my buddy started on a
       | mobile front end. my vision was to build it very abstractly, like
       | a card game framework, so it could be any card game (and users
       | could even make their own games). one mode was to use a tablet as
       | the deck on the table and then everyone can hold their hand on
       | their phones.
       | 
       | unfortunately, life got in the way, priorities changed, and we
       | never finished it.
       | 
       | I had this idea that we could sell/license packs of card content
       | by actual physical card game publishers... phase 10, uno, CAH,
       | etc...
       | 
       | don't let the jerks here get you down, I for one appreciate this
       | project (in spirit, haven't looked at the code) and might try to
       | use it to finish our game one day.
       | 
       | thank you for sharing!
        
       | pkstn wrote:
       | Nice! Also check out my multiplayer deck of cards on just pure
       | web: https://deck.of.cards
       | 
       | Hope to finish the new version soon
        
       | frenchie4111 wrote:
       | Very awesome project, can't wait to get a chance to try it out.
       | 
       | I feel like you would benefit from having a real-life photo of
       | "The deck" feature. Your description does it justice, but your
       | graphic does not. (To me)
        
       | donio wrote:
       | https://virtualtabletop.io/ is another option for this, web
       | based. It's sort of like a 2D Tabletop Simulator.
       | 
       | Source: https://github.com/ArnoldSmith86/virtualtabletop
        
       | sawyna wrote:
       | I got really excited to play a custom card game with my friends
       | who are spread across the world. Was looking to see how I can add
       | my own game, but when I downloaded the app to try out some sample
       | games, I see that all the players have to be connected to the
       | same WiFi. Does this mean the app is only for games played in
       | person but on phone?
        
         | tomaytotomato wrote:
         | Maybe try some sort of private VPN/LAN network tool?
         | 
         | I remember back in the day I used to use Hamachi to play Xbox
         | LAN with my friends in different universities.
        
       ___________________________________________________________________
       (page generated 2025-02-08 23:00 UTC)