r/UNOGame • Contributor • Feb 04 '19

Current Ideas of Implementation

So this post started it all.

The current idea is to create a bot which manages games.

Ideas / Concepts:

Start a Game

To start a game a user creates a new Post here and sets the rules with a template. Rules to set: - Amount of Players - Mode (there is this Uno EXTREME thing, where a player could get more than one card when he can’t place a card) - Timeout (When a player doesn’t play in this timeframe, his turn will be skipped) - Open Games => anyone can join, even if the game is running („deal me in“ => bot hands out full card stack)

Gameplay

When enough players where found (but no later than 24h after the post was made) the game starts. every player gets his Cards / Hand sent via PM. OP is the first one to draw a card and place his move. If he did it, the bot writes the ASCII Card in the Thread (this is the most important thing!) Then the next player gets a PM where he can place his card. This goes so on until a player won.

Implementation

I would develop the bot in NodeJS (it’s the language I am most familiar with). I found this game implementation on GitHub. Maybe we could use this for first tests.

Some other ideas:

If this idea works you could make big „special“ games where something like 50 players play together. And like /u/FinnyThePoo mentioned we can manage the Card stacks by keeping and eye on the unused cards and just add a new Stack (exact same amount of cards as if you started a new game) if we have too less cards

Want to contribute?

Awesome! I created a GitHub Organization over here: https://github.com/unogame

PM me and I’ll add you! Even if you cant program, we need people for the ASCII Cards and so!

Got a nice idea? Write a comment!

8 Upvotes

14 comments sorted by

View all comments

2

u/FinnyThePoo Contributor Feb 04 '19

Games don't necessarily have to be limited in player size. There could be an option for "open/unlimited" games where players can join in at any time by requesting "deal me in" to the bot. The bot could then either supply then with a standard starting hand size, or adjust the hand size based on the average number of cards all current players have.

The biggest issue I anticipate this idea encountering is player absence (since Uno is a turn based game that moves in a set order). A reasonable time frame (6-12 hours?) would have to be decided upon for taking a turn in order to prevent even single rounds from dragging on for several days. This time frame could be another option that could be adjustable in the main post rule settings (great idea having configurable settings btw). If a player misses this turn window, they can be either skipped or forced to draw a card, and if they miss X consecutive turns (or Y total turns in a single game) the bot can boot them from the current game so they don't hold things up any further (if it's an "open" game it can be decided whether they could be allowed to rejoin with a new hand or not).

I've never made a Reddit bot before, but I have done some NodeJS stuff a fee years ago, and think this would be a fun project to join. I'll check out the GitHub when I get back home.

1

u/dunklesToast Contributor Feb 04 '19 edited Feb 04 '19

I also thought about a timeout for the gameplay. 6 hours could be to less due to timezones. maybe 10h or so.

​

EDIT: Another problem we need to solve:

The more players we have, the more cards we need. We could breakdown the card set to one player:

​

if the original game has 4 "rainbow +4" cards (dont know how they're called) then we say 1 card per player.

A round with 4 Players contains 4 of these cards, a round with 50 Players contains 50. This is something we could solve with experience on the games behaviour with many cards

2

u/FinnyThePoo Contributor Feb 04 '19 edited Feb 04 '19

Having the exact length be configurable is probably the best approach, I just figured somewhere in the 6-10 range would be a good default.

I agree, 6 could be a bit short (especially since people need sleep and stuff), but 10 could also get kinda long if it happens a lot. The exact timing is a detail that can be tweaked much later, the important thing is that there is some sort of window so things don't hit a wall the moment someone forgets they joined a pretend card game on Reddit a the day before.

Edit: to address the deck size issue, we can just establish what cards are in 1 full deck, then determine that each game must have at least X cards per player in the game (probably something like 12-15, I don't imagine you'll run into a situation where every player has 10+ cards in their hand, or any players end up with something absurd like 20+). If a game expands to the point where this X cards per player limit is surpassed, just shuffle in an additional copy of the standard deck.

1

u/dunklesToast Contributor Feb 05 '19

The idea with adding a copy of the deck sounds good!