[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)