Skip to content

KiwiSingh/Cards-Against-TV

Repository files navigation

Cards Against TV

Cards Against TV Logo

A local, pass-the-remote party game for iPhone, iPad, Apple TV and Android, inspired by Cards Against Humanity. Built with SwiftUI for tvOS, and rewritten in Kotlin for Android, the game features multi-card prompts, per-turn custom answers, rotating judges, and a first-to-5 win condition.

Features

  • Local multiplayer with pass-the-remote gameplay on Apple TV and Android TV.
  • Local multiplayer with pass-the-device gameplay on Android phones and tablets.
  • Multi-card prompts: play 1–N answers when the black card’s pick value is greater than 1.
  • In-round custom answers: players can add up to 20 custom cards per game.
  • Clear visual highlights for active players and judges.
  • Rotating judge each round; the first player to reach 5 points wins.

Requirements (tvOS)

  • tvOS 17.6 or later (officially tested only on tvOS 26)
  • Xcode 15 or later
  • Swift 5.7 or later
  • Deck JSON included in the app bundle as cah-all-compact.json. You can find the original source here.

Requirements (iOS/iPadOS)

  • iOS/iPadOS 15.6 or later
  • A computer (unless your device is jailbroken)
  • Sideloadly, TrollStore or ESign for signing and sideloading

Requirements (Android)

  • Android 10 or later
  • A working brain

Setup (tvOS)

From source

  1. Create a new tvOS SwiftUI app in Xcode.

  2. Clone the GitHub repo and add cah-all-compact.json to your project (ensure “Copy items if needed” and target membership are checked).

  3. Replace the default app entry point with the provided Cards_Against_TVApp.swift.

  4. Set up the app icon using the included image assets:

    • The folder Assets.xcassets contains the image assets you're gonna need for getting the app to show up on your Apple TV's homescreen.
    • Background must be opaque; Front must match the slot’s pixel size.
  5. Build and run on an Apple TV simulator or device.

From IPA

  1. Make sure Sideloadly is paired with your Apple TV device
  2. Drag the IPA into Sideloadly
  3. Sign and install
  4. Enjoy!

Setup (iOS/iPadOS)

From IPA

Using Sideloadly (non-jailbroken devices)

  1. Connect your iPhone or iPad to your MacBook or PC with a USB cable
  2. Drag the Portable Edition IPA into Sideloadly
  3. Sign and install
  4. Enjoy!

Using ESign (non-jailbroken devices with working certs)

  1. Download the Portable Edition IPA to your iPhone or iPad
  2. Import the file into ESign
  3. Use Import app library
  4. Sign the IPA
  5. Install
  6. Enjoy!

Using TrollStore (jailbroken devices)

  1. Download or AirDrop the file to your iPhone or iPad
  2. Install using TrollStore
  3. Enjoy!

Setup (Android)

  1. Enable installing from unknown sources
  2. Download the APK
  3. Install the APK
  4. If prompted by Play Protect, hit "Install without scanning"
  5. Enjoy!

How to Play

  • Choose the decks to play the game with. By default, all decks are selected.
  • Choose the number of players and enter names one by one.
  • Each round presents a black prompt card with a “pick” value. Non-judging players submit answers in turn.
  • When multiple cards are required, players select them in order or enter custom responses.
  • The judge reviews anonymized submissions and selects a winner.
  • The first player to 5 points wins the game.

JSON Deck Format

The deck file uses a simple format:

{
  "white": ["An answer.", "Another answer."],
  "black": [
    { "text": "Why can't I sleep at night?", "pick": 1 },
    { "text": "I got 99 problems but _ ain't one.", "pick": 1 }
  ]
}
  • white contains the answer cards.
  • black contains prompt cards with text and a pick value.

Screenshots (tvOS)

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6

Screenshots (Android TV)

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6

Screenshots (iOS)

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6

Screenshots (Android)

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6

To-do

  • Add animations

  • Make card text smaller

✅ Add deck selector (idk if this is doable though)

Troubleshooting

  • Deck not found: Ensure the JSON file is named cah-all-compact.json and included in the app target.
  • Parse error: Make sure the JSON is valid UTF-8.
  • App Icon errors: The icon assets are included in Assets.xcassets.
  • Can't type player names on iOS build: Dismiss and restart the app.

Credits

crhallberg for his amazing JSON Against Humanity project

License

This is a fan-made, non-commercial project inspired by Cards Against Humanity. Please respect the original content’s licensing and attribution requirements.

ko-fi

About

A basic Cards Against Humanity tvOS, iOS/iPadOS, and Android app, with local, pass-the-remote/pass-the-device multiplayer

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors