Skip to content

Online round-based trivia game taking place in Antarctica. Choose from multiple playable characters with various abilities. Capture territories from other players with engaging trivia questions. Scoring is based on the amount of territories and points you own.

Notifications You must be signed in to change notification settings

AleksandarGT/PenQuiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

PenQuiz

PenQuiz is a trivia PvP game which is set in Antarctica. Game offers multiple playable characters with various abilities that help the player throughout the game. The game consists of 3 different stages with multiple rounds and requires 3 people per match to play. Capture territories from other players with engaging trivia questions. Scoring is based on the amount of territories and points you own.

This repository contains documentation and information regarding the PenQuiz project.

Table of contents

  1. Source
  2. Features
  3. How to play?
  4. Game rules
  5. Game characters
  6. Architecture
  7. Backend stack
  8. Frontend stack
  9. In game pictures

Source

Features

  • Engaging trivia battles
  • Multiple playable characters
  • Public matchmaking
  • Private lobbies
  • Game bots
  • Match history and statistics
  • Submit your own questions to the game
  • Login with Google account
  • Admin panel

How to play?

Visit https://penquiz.netlify.app/ and create a free to play account.

For android devices please download the app and install it from here.

Game rules

Game characters

Currently there are 4 playable characters in PenQuiz. Most of the characters are free to play, however some are premium and require to be purchased first before the user has the option to play them. Each champion has different in-game abilities.

Wizard

Can remove 2 of the wrong answers in a multiple choice question. Ability can be used total of 3 times per game.

Scientist

Can narrow down the number choice question answer. Ability can be used 3 times per game.

Viking

Can fortify his capital against attacks, increasing the amount of required consecutive wins for the enemy. Ability can be used a total of 2 times per game.

King

Has a permanent 10% score bonus multiplier when you capture a territory (Premium character)

Architecture

The backend consists of 3 microservices which utilize RabbitMQ and GRPC to communicate with each other and send messages via SignalR to the frontend React Native application.

Backend stack:

  • NET 6
  • SQL Server / PostgreSQL (Entity ORM)
  • CockroachDB
  • SignalR
  • GRPC
  • JWT Authentication
  • RabbitMQ
  • Docker
  • Kubernetes
  • Azure App Services

Frontend stack:

  • React Native
  • Expo SDK 44
  • SignalR Client
  • JWT Authentication
  • Google auth
  • Native-base
  • Netlify

Communication between Microservices

Embracing eventual consistency pattern, we use the RabbitMQ message bus to send messages between the microservices and we "pull" for any missing data whenever a microservice starts.

In game pictures

Game map screen

Dashboard screen

Character screen in lobby

Game lobby screen

Login screen

About

Online round-based trivia game taking place in Antarctica. Choose from multiple playable characters with various abilities. Capture territories from other players with engaging trivia questions. Scoring is based on the amount of territories and points you own.

Resources

Stars

Watchers

Forks