I thought it was a great project ...(requested purpose aside)... As it's really just an online card game that could be used anywhere depending on how you skin it (no pun intended). But I know nothing of game programming so I'd be useless for anything except maybe testing if that would help.
However TBH - I was a bit reluctant to click the link at work, and I keep forgetting to check into it when I get home.
-Stoic Joker
Cards Against Humanity clones do exist, in fact
I am hosting one on a server right now with a card expansion specifically related to the Chaturbate site. However, due to the somewhat lucrative nature of the site, people do not wish to venture outside of the confines of "Chaturbate" as there is potential to expose their identities as well as the other site taking time away from the model they are viewing. It's like Las Vegas: what happens on Chaturbate stays on Chaturbate.
I had a really fancy website with a form where users to could interact with the model and fellow users. The site was up and promoted for 2 months straight, with less than a handful of people who joined and no one posted a single post. It just does not work. And also, for security purposes, you can not use external Javascript... that would make my life so much easier as
already existing backend APIs exist to the official card databases in pure Javascript.
For those who would simply like to play with Javascript on the site for the pure interest of programming, Chaturbate offers a
testbed server. For those who wish to emulate the testbed with multiple users, there is also a
private testbed which allows you to act/post/tip as multiple users at once. I have found the private server a little more useful for deugging, but testing on the official testbed to ensure comparability.
UPDATE: Code is too large to post, but here are the rules!
Spoiler
You're a bad person. But that's okay, so are we, so let's laugh a bit, okay?
Chaturbate Against Humanity is a Cards Against Humanity clone with similar rules.
To draw a white card, a user must tip a predefined amount of tokens. The white card is always automatically drawn for the broadcaster, which you can not see.
The broadcaster can choose if the player can see the white card or not, however.
After enough users have played their white cards, the black card is drawn and a vote is cast. The choice with the most votes at the end of a predefined number of minutes wins a prize. If no votes are made when the timer goes off, the broadcaster wins by default.
Prizes and winners are listed in the setup box below the cam's viewing area.
The Setup:
Number of players - Should be obvious. Takes 2 tango, but too many is a crowd.
Tokens to Play - This is not your money maker. This is your bait. Users must pay to play, and it's the only way to win prizes.
Minimum Tokens To Vote - Just because 1 token = 1 vote doesn't mean you should get nickled to death. You can put a minimum bid on white cards by aetting the vote to something high, but not higher than the play cost.
Minutes To Vote - Depends on how full your room is and how juicy your prizes are. Shorter wait makes the game go fast but gives out more prizes.
Can Users See Their White Card - The benefit to let users see their white card: Users can essentially silent auction bid on the prize by voting for their own card using tokens. Enough people in the game, you can get a bidwar going!
The benefit to NOT let users see their white card: If users don't know which card is theirs, they blindly vote for your card or another user's card.
Allows the chance for cheapscates to play to win prizes though.
Enable Grey Play - If enabled, get this, and hear me out here, greys will be able to play the game using the "/vote" command. This allows broadcasters to ineract with the greys in some small way.
Greys are allowed 1 vote (1 token's worth) per round. This can allow the greys to break ties, as well as play in general. Good to entice them to buy tokens and participate.
Prizes - This is where the app really stands out. Up to 10 prizes using percentages and averages. A prize, like a kiss, a smile, or a thank you, should be used in the 90 percentile.
A flash, request, song change, and other smaller prizes should be in the 60 to 50 range. Videos, snapchat, kik, skype should be in the 20 to 30 range.
Password shows, custom videos, and small instant-shows should be in the 10 or less range.
Here is how the caluclation works with an example:
Kiss 90%; Flash 70%; 1 video 60%; 2 videos 40%; snapchat 30%; 5 videos 10%; Password show 1%;
When a prize is called, all the numbers are added up: 90+70+60+40+30+10+1=301
The odds of getting a kiss with this many prizes will be 90 out of 301 (90/301 or 29.9%).
The odds of getting a password show is 1 out of 301 (1/301 or 0.003% making it ULTRA RARE).
So feel free to go nuts with the prizes, you've got 10 slots to work with and you can make prizes as common or as rare as you want.
Make certain prizes ULTRA-COMMON by using the same prize in multiple slots!
Commands:
Users:
/rules - Shows the rules.
/prizes - Shows the prizes.
Boring.
Broadcaster & Mods:
/goal - You can set a countdown goal in addition to the game. Annotation is as follows:
/goal token-amount-in-digits The Title of The Goal here
For example, "/goal 1000 Bra off" will produce a message that says "A new goal of "Bra off" has been set for 1000 tokens"
/changegoal - Same as /goal, but changes the current goal title and amount
/adjust - Mistakes happen. That's probably why most of us were born. But oh well, things can be adjusted.
If someone complains they mis-voted or if they just didn't make a selection when they tipped, you can use the /adjust command.
Annotation is as follows:
/adjust number-of-votes #of-white-card reason
For example, "/adjust 100 1 User forgot to vote" will produce a message that says "The card "Card Text Here" has been adjusted by 100 votes by broadcaster for the following reason: User forgot to vote"
You can also use negative numbers for the vote amount to take away votes. Use this power responsibly.
/addcpu - Find humans to be boring? Need another player but no one is tipping? Use /addcpu to add a computer played card who will win a prize, but it goes to no one.
Broadcaster only:
/debug - You cheeky fucker, you're cheating! Debug mode shows you who has what cards, including your own. Type the command again to disable it.
To-Do List:
-Add a better multi-goal handler
-Add custom black and white cards so models don't have to copy the App's code and edit it to make their own custom decks.
-Better code management of the prizes.
-Add auto distribution of prizes such as usernames directly to the user who won without having to PM the user.
-Handle bots that assign emojis to users properly
Sad Edit: Just because you understand the game, it's rules, and how it works does not mean everyone else will. Playtesting has a 100% failure rate, no one likes the complexity and are frustrated they can't understand how it works.
Preview:
DONE: Chaturbate[NSFW site] Game in Javascript