1 of 12

CPSC 4170: Final Project Presentation�

Alex Edwards

CPSC 4170

2 of 12

Game description

Name title: Dice & Decks

Genre: Digital tabletop game

This genre is often a simulation of common real-life board games, and allows players to play online or against AI

3 of 12

Game description

In Dice & Decks, objectives are to:

  1. Play tabletop games against friends
    • Play Farkle against friends with local multiplayer
  2. Play tabletop games against AI
    • Play Farkle against one or more computer algorithms

4 of 12

Game information

Skill rating: Suitable for beginners or advanced players

Audience:

Suitable for players 10+

Although there is no gambling with real money in this game, some of the games in Dice & Decks may be used for gambling in casinos

5 of 12

Color Pallette

6 of 12

Game references

7 of 12

Entities – Player character

  1. Main character
    1. No player character is visible since the game is played in first person. However, originally free-roam mechanics were planned for this game, so the character would have needed to:
      • Be a simple low-poly 3D character avatar
      • Move using the CharacterController Unity component
      • Free-roam in the 3D environment when a tabletop game is not active, and can participate in the tabletop games by navigating UI menus

8 of 12

Entities - Items

  1. Dice
    1. Players roll 6-sided dice in Farkle
    2. Output is randomly-generated
  2. Tankard
    • Players roll the Farkle dice by flipping a typical tavern tankard with the dice inside

9 of 12

Game mechanics

Dice & Decks allows players to play various tabletop games in a casual or focused environment, depending on their preferred session style:

  • Local multiplayers: Players can add and name up to 8 players that can play the game locally
  • Game selection: Players can select which game they want to play with friends and/or AI. Only Farkle is implemented in the game right now, but games that are added to Dice & Decks in the future will be accessible on a select game screen

10 of 12

Modules

  1. Animations
    1. Animations were done by scripting the position and rotation of various objects
  2. Game algorithms
    • Farkle has its own algorithm implemented by me to handle player turns and scoring
  3. Multiplayer sessions
    • Multiplayer sessions are a work in progress, and is utilizing the package Netcode For GameObjects
  4. AI (playing against computer)
    • AI decision-making algorithms were utilized for Farkle AI players

11 of 12

Software architecture

TableGame

- playerTurn : Player

- EndTurn()

FarkleGame

- playerScores : Dict<Player, int>

- RollDice() : List<int>

- ScoreTurn() : int

Player

- isAI : bool

PokerGame

- playerChips : Dict<Player, int>

- highestBid : int

- DealCards() : List<Card>

- CheckHand()

- Check()

- Raise() : int

- Fold()

Card

- suit : Suit

- rank: Rank

GameManager

- StartGame()

- Update()

GameMultiplayerManager

- StartSession()

- JoinSession()

12 of 12

Unimplemented tasks

The following tasks were planned but did not get implemented due to time constraints:

  1. Multiplayer implementation
  2. Free-roam and physics interaction mechanics
  3. Poker implementations
  4. More games, such as Blackjack
  5. VR compatibility