61 ms·
The Deck: An open-source cross-platform multiplayer card game engine in Flutter
- egypturnash 2y agoThe 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 2y agoLeaving 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 2y agoSeriously, 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.
- kevindamm 2y agoThis project maybe gains potential when the number of games it can play far exceeds the number you can bring physically to a game night, especially if predicting which games people will want to play is difficult with that group or at that time. A feature to allow users to create their own game rules for playing and sharing would be a great addition, IMO. Neither of these points changes the mind of anyone who would rather play with the physical board game, but I think the ideal market for this is probably not that group.
- sram1337 2y agoReally? 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 2y agoI mostly meant the effort involved in writing it.
- 999900000999 2y agoHave 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 2y agoOn 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.
- deleted 2y ago[deleted]
- igor_st 2y agoI agree
- david422 2y agoThere 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 2y agoNice 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 2y agoI 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 2y agoServerpod and Dart Frog are both pretty good backend Dart frameworks, what are you looking for?
- blopker 2y agoDart 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 2y agoYou 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.
- deleted 2y ago[deleted]
- tomw1808 2y agoI 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 2y agoIf 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 2y agoLet'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 2y agoPhysical 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.
- deleted 2y ago[deleted]
- ncruces 2y agoI've wanted to do something like this for about a decade. Good job!
- IshKebab 2y agoHuh do you have a license for Dixit?
- deleted 2y ago[deleted]
- mdaniel 2y agoI had never heard of it before, but if others are similarly interested https://boardgamegeek.com/boardgame/39856/dixit 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/86c2219d7c2aba47edd616cbd2ad0d6a3de8a773/thedeck_common/lib/src/game/dixit/dixit_game_deck.dart#L87 https://github.com/xajik/thedeck/blob/86c2219d7c2aba47edd616...
- IshKebab 2y agoI 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 2y agoWhen 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 2y agoYou may be interested in Tabletop Simulator from Berserk Games, which is on Steam and has VR mode.
- unification_fan 2y agoAh 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 2y agoI’m building what you thought it was. DM to beta test!
- snarf21 2y agoI'm interesting in learning more. I don't see contact info in your profile.
- unification_fan 2y agoI am also very much interested.
- mmanfrin 2y agoSame. 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 2y agoHahaha yup right on I'm there now
- igor_st 2y agoI don't think there are any hard dependencies to deploy it on the web, tho have not tried. Might need to find a few alternative packages. I agree that `engine` is a strong word - still early days :)
- enduser 2y agoThe main project website is cropped horizontally and vertically (bottom) on iOS Safari
- deleted 2y ago[deleted]
- igor_st 2y agoThanks, I will take a look
- satyrnein 2y agoThis 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.
- adamredwoods 2y agoAn obvious answer is to play the physical game, but I also wonder if people are starting to adapt to virtual tabletop games? Virtual tangible? How intriguing!
- IggleSniggle 2y agoI've been playing a city builder game in mixed reality called Spacefolk City recently, and having experienced moving around little interactive pieces in that context, I think they only reason this isn't common is because having mixed reality devices on hand isn't common. Feels totally natural, way better than a shared TV or something: better a board game, but honestly for MANY games they would be better in a mixed reality setup where the computer can do all the calculations and setup for you. Many great games just have too much setup time.
- satyrnein 2y agoSounds interesting, I'll have to look into that. I'll say that the shared TV was better in one respect: it was right-side-up for more than just one person!
- satyrnein 2y ago
- Hortinstein 2y agoI 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 2y agoNot 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 2y agoWas hoping [0] would have a flutter web version running. Now that would be cross platform. [0]: https://getthedeck.com https://getthedeck.com
- account-5 2y agoThis 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 2y agothis 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!
- milesrout 2y agoIt isn't getting any "hate" at all unless some comments have been deleted that I cannot see. It has some very mild conceptual criticism from two top level comments.
- pkstn 2y agoNice! Also check out my multiplayer deck of cards on just pure web: https://deck.of.cards https://deck.of.cards Hope to finish the new version soon
- frenchie4111 2y agoVery 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)
- igor_st 2y agoThanks, just updated Readme with more screenshots!
- donio 2y agohttps://virtualtabletop.io/ 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 https://github.com/ArnoldSmith86/virtualtabletop
- sawyna 2y agoI 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 2y agoMaybe 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.
- igor_st 2y agoYes, for now, it supports only the local network. But... I think I can deploy server to make it online as well
- sawyna 2y agoThat'd be amazing!
- pcioshill 2y agoCheck out playingcards.io or VirtualTableTop. These do exactly that, although the interface is a bit cumbersome on mobile
- mococa 2y agoI will never trust on a Google technology.
- rmrf100 2y agowell, I think that's not necessary, Google have a lot of good technology.
- igor_st 2y agoAuthor here. Thanks for the feedback, I'll update the content, especially the readme! More details on the implementation are here (same content) https://dev.to/ilbets/game-night-just-got-a-digital-upgrade-the-deck-67p https://dev.to/ilbets/game-night-just-got-a-digital-upgrade-... https://medium.com/@igorsteblii/game-night-just-got-a-digital-upgrade-the-deck-unique-cooperative-game-simulator-98e9db13c0f6 https://medium.com/@igorsteblii/game-night-just-got-a-digita...
- lukeh 2y agoNot to hijack the thread but, I'm building a personal monitor mixer (AoIP in, headphone out) with the control plane written entirely in Swift and the UI in Flutter. It works very nicely and we get an iOS/Android remote for free. https://forums.swift.org/t/an-embedded-audio-product-built-with-swift/77671 https://forums.swift.org/t/an-embedded-audio-product-built-w...
- mdaniel 2y agoHow in the world is this "not hijacking the thread" when your thing is not even related to shared gaming experiences, and almost certainly is not cross platform? Did you chime in just because you wrote something in Flutter? To carry this further, were you hoping that some DJ who likes playing card games would stumble upon this post and pivot onto your thing? If you're proud of it, submit it as its own Show HN
- bsimpson 2y agoIt's disappointing that Steam doesn't have a free publishing option for open source apps. The $100 publishing fee can be enough to relegate a game to GitHub rather than Steam, and I'd much rather install from Steam than figure out how to use an AppImage or whatever got posted to a GitHub Releases page. There's enough weird anime porn garbage on Steam that I think they can handle a few hundred/thousand open source games of varying quality.
- gagzilla 2y agoThis looks really cool. A while ago I was thinking of putting together something similar but for very different reasons but this would enable bringing them to life much more easily. Have you published as yet, how to create a new game on this?