2P by GN⁺ | ★ favorite | 댓글 1개
  • The Deck은 종이 카드로 하던 클래식 게임을 디지털 환경에서 함께 플레이하기 위한 모바일 멀티플레이어 오프라인 카드 게임 애그리게이터임
  • 핵심 기능은 한 기기를 table/deck으로 지정해 그룹 가운데 두고, 모든 플레이어가 카드의 실시간 상태를 볼 수 있게 하는 방식임
  • 플레이 흐름은 게임 선택 → 방 연결 → 게임 시작의 3단계로 구성됨
  • 프로젝트는 Dart와 Flutter로 작성됐고, App Store와 Play Store 배포 링크를 제공함
  • 기여자는 새 게임을 만들 수 있으며, 스토어 마켓에 출시하길 원하면 프로젝트 측에 연락하라는 안내가 포함됨

The Deck이 해결하려는 상황

  • The Deck의 출발점은 친구들과 게임 밤을 하려 모였지만 필요한 카드가 없는 상황임
  • 목표는 종이 카드로 하던 클래식 카드 게임을 사용자 친화적이고 협동적인 디지털 게임 환경에서 플레이하게 하는 것임
  • 프로젝트 설명은 The Deck을 모바일 멀티플레이어 오프라인 카드 게임 애그리게이터로 소개함

플레이 방식과 핵심 경험

  • 한 기기를 table 또는 deck으로 지정해 그룹 가운데 놓을 수 있음
  • 모든 플레이어는 이 중앙 기기를 통해 카드의 실시간 상태를 볼 수 있음
  • 이 방식은 카드 상태를 공유하는 협동형 플레이 환경을 만드는 데 초점을 둠

게임 진행 흐름

  • Gameplay는 세 단계로 제시됨
    • 게임 선택

    • 방 연결

      • 게임 시작

구현과 배포

더 읽을거리와 문서

개발과 기여

  • 기여를 환영하며, 새 Game을 빌드한 기여자는 스토어 마켓 출시를 원할 경우 연락하라는 안내가 있음
  • Flutter SDK 버전 관리는 FVM 사용을 권장함
    • brewfvm 설치
    • fvm use x.y.zpubspec의 Flutter 버전 설정
    • .fvmrc에서 버전 확인
    • fvm flutter run으로 실행
  • MR/Pull Request 커밋 설명은 다음 접두어를 사용함
    • (FEAT) - 기능
    • (FIX) - 버그 수정
    • (CHORE) - 리팩터링, 의존성 업데이트 등
    • (TEST) - 테스트

릴리스와 오류 대응

  • Android 릴리스 명령이 제공됨
    • App Store 릴리스용: fvm flutter build appbundle --release
    • 전체 ABI 포함 Fat APK: fvm flutter build apk --release
    • split-abi APK 테스트: fvm flutter build apk --release --split-per-abi
  • iOS 릴리스 명령이 제공됨
    • App Store 업로드용 아카이브: fvm flutter build ipa --release
    • iPhone에 드래그 앤 드롭할 IPA 생성 명령도 포함됨
  • 공통 오류 대응에는 Cocoapods, 로케일, flutterfire, iOS 로컬 네트워크 권한, objectbox.g.dart 생성 문제가 포함됨
  • 새 Redux 템플릿 생성은 scripts를 참고하라고 안내함
  • 프로젝트 라이선스는 MIT

댓글과 토론

Hacker News 의견들
  • 서버가 Dart로 되어 있고 Firebase가 아니라서 반가움
    다만 Dart 서버 생태계가 더 성숙했으면 좋겠고, Dart를 정적 바이너리로 컴파일할 수 있는 건 배포에 정말 매력적임

    • 몇 년 전에 Dart 서버를 만들었는데, Aqueduct라는 프레임워크가 꽤 좋고 생산성도 높았음
      돈을 벌어야 해서 결국 Node.js 일로 옮기면서 쓰지 않게 됨
    • ServerpodDart Frog 둘 다 꽤 괜찮은 Dart 백엔드 프레임워크인데, 구체적으로 어떤 걸 찾는지 궁금함
    • Dart와 Go 둘 다 Google이 만들었다는 점을 생각하면, Google 내부 서버는 그냥 Go를 주로 쓸 것 같음
    • Dart는 꽤 좋지만 생태계가 아직 성숙하지 않다는 데 동의함
  • 정말 멋짐. 비슷하게 최근에 Nintendo Switch용 Ticket to Ride를 샀는데, 다른 기기에서 “동반 앱”을 써서 각 플레이어의 비공개 패를 보여주는 기능이 있었음
    아쉬운 점은 보드, 내 경우엔 Switch가 연결된 TV가 읽기 전용이라 실제 보드게임처럼 상호작용하지 않는다는 것임. 어떤 카드를 낼지 휴대폰에서 고르고, 그 카드를 보드에 놓는 것도 휴대폰에서 처리함. 결국 모든 행동은 휴대폰에서 일어나고 중앙 보드는 덤처럼 느껴져서, 기대했던 공유 공간과의 상호작용 느낌이 약했음
    해결책은 잘 모르겠음. 카드를 고른 뒤 휴대폰이 터치패드처럼 동작해서 큰 화면 위의 카드를 움직이는 식도 떠올렸지만, 실용적으로 보이지는 않았음

    • 뻔한 답은 실제 물리 보드게임을 하는 것이지만, 사람들이 가상 테이블탑 게임에 적응해 가는지도 궁금함. 가상 촉각 게임이라니 흥미로움
    • iPhone 이후 Adobe가 Flash를 어떻게 포지셔닝할지 고민하던 때가 떠오름
      여러 기기를 써서 하나의 경험을 공유하는 콘셉트가 있었는데, 공용 요소와 개인 요소를 각기 다른 기기에 나눠 쓰는 보드게임 예시와 비슷했음
      20년이 지난 지금도 이런 방식이 여전히 신기한 시도에 머문 건 아쉬움. Nintendo도 Switch용 탱크 게임이 있었던 것 같지만, 모두가 각자 게임 사본과 Switch를 가져야 해서 못 해봤음. 실제로 사람들이 이런 방식으로 플레이하는 걸 출시한 곳은 Jackbox 정도밖에 못 봄
      적응형 디자인은 아직 충분히 활용되지 못했고, 모든 것이 지표와 상업성에 최적화되면서 좋은 디자인이 자주 묻혀버림
  • 멋지고 잘 만들었음
    HN 첫 페이지에서 Dart/Flutter 프로젝트를 보는 일이 드문데, 비판적이지 않은 반응까지 있어서 더 잘된 일처럼 보임

  • VR이 관심을 끌기 시작할 때 가상 카드 덱 아이디어가 있었음
    게임에 참여한 모두가 휴대폰을 움직여 손패나 “테이블”로 정한 표면 위의 가상 카드를 볼 수 있게 하는 구상이었음. 대학 학과 건물 복도에서 카드놀이를 하면서도 카드놀이 중인 티를 내지 않으려던 필요에서 나온 아이디어였음
    아쉽게도 대학 교육만으로는 그걸 만들 기술이 충분하지 않았는데, 누군가 실제로 만든 걸 보니 반갑고 보기 좋음

    • Steam에 있는 Berserk Games의 Tabletop Simulator를 보면 좋을 수 있음. VR 모드도 있음
  • 2011년에 Flick Hearts라는 오래된 Android 앱이 있었고, 중앙 테이블은 태블릿으로 두고 각자는 휴대폰으로 플레이하는 같은 개념이었음
    당시로서는 꽤 상상력이 좋다고 생각했는데, 이후로는 비슷한 걸 거의 못 봄

  • 피드백 고맙고, 특히 README를 포함해 내용을 업데이트하겠음
    구현 세부 내용은 아래에도 있음
    https://dev.to/ilbets/game-night-just-got-a-digital-upgrade-...
    https://medium.com/@igorsteblii/game-night-just-got-a-digita...

  • 10달러도 안 되는 카드 한 벌을 사는 것과 비슷하거나 어쩌면 더 못한 경험을 만들기 위해 엄청난 기술을 투입한, 아주 잘 실행된 예술적 논평처럼 느껴졌음
    그래서 마음에 듦

  • https://virtualtabletop.io/도 이런 용도로 쓸 수 있는 웹 기반 선택지임. 2D Tabletop Simulator 같은 느낌임
    소스: https://github.com/ArnoldSmith86/virtualtabletop

  • 전 세계에 흩어진 친구들과 커스텀 카드 게임을 하고 싶어서 꽤 기대했음
    내 게임을 어떻게 추가할 수 있는지 보려 했는데, 샘플 게임을 해보려고 앱을 내려받아 보니 모든 플레이어가 같은 Wi-Fi에 연결되어 있어야 했음. 이 앱은 직접 만나서 휴대폰으로 플레이하는 게임 전용이라는 뜻인지 궁금함

    • 개인 VPN/LAN 도구 같은 걸 써보면 될지도 모름
      예전에는 다른 대학에 있는 친구들과 Xbox LAN 게임을 하려고 Hamachi를 썼던 기억이 있음
    • playingcards.io나 VirtualTableTop을 확인해보면 좋음. 정확히 그런 용도이긴 한데, 모바일에서는 인터페이스가 조금 번거로움
    • 지금은 로컬 네트워크만 지원함. 하지만 온라인으로도 가능하게 서버를 배포할 수 있을 것 같음
  • 작성자가 이 글을 보고 있는지는 모르겠지만, Flutter로 작업하는 경험이 어땠는지 궁금함
    이 프로젝트가 모바일뿐 아니라 웹과 데스크톱에서도 동작하는지도 궁금함. 그리고 fvm 대신 puro나 mise로 바꾸는 것도 살펴보면 좋겠음. 둘 다 훨씬 빠름