Introducing Neno - Final
Published: 2022-04-12 16:11:15

---
title: Introducing Neno - Final
published: true
date: 2022-04-01 02:19:08 UTC
tags: 
canonical_url: https://eman.hashnode.dev/introducing-neno-final
---

# Neno

I've introduced the game and a bit of an explanation of the decisions I had to make while developing this game.

In this article, I'll be going over the different game features.

**UPDATE: There game is now live at [Neno](https://neno.netlify.app/)**

## Project Structure

I've covered the project structure in the previous [part](https://dev.to/junubiman/introducing-neno-part-2-2mc3-temp-slug-2995903) of this article series. I also have a [README.md](https://github.com/Emmanuel-Melon/Neno/blob/dev/README.md) file with in-depth explanations of what each component in the project does.

**Copy the content of `.example.env` and then paste it in a new `.env` file in order to run this project locally.**

### DB structure

![Screenshot 2022-04-01 at 06.10.32.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648782662135/uHoFYzxRc.png)

## Game Components

### Authentication

The game currently supports authentication via (only on localhost due to issues with terms of service policies).

- Facebook
- Google

**I'm currently working on adding email/phone numbers. I'll also add the ability to play as a guest.**

![Screenshot 2022-04-05 at 23.37.34.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1649191068037/AZq1-MnCQ.png)

### Home

The home screen shows a menu where you can perform the following operations

- View game instructions
- Modify game settings
- Start a new game

![Screenshot 2022-04-05 at 23.32.29.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1649190764544/kWWIWbDuZ.png)

### Mode

Users can create rooms or join an existing room. You can only join public rooms at the moment. **Private rooms will need an invitation code**.

![Screenshot 2022-04-05 at 23.30.19.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1649190734334/1WmaltonR.png)

#### Creating Room

When a user creates a room, they immediately get redirected to the game lobby where they could chat with other room members until the game starts.

![Screenshot 2022-03-31 at 20.46.35.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648778834874/phKAnjkPf.png)

#### Joining an existing room

Users can browse a list of active rooms and join a room of their choice.

![Screenshot 2022-04-05 at 23.35.19.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1649190937068/Izky5E7ri.png)

### Game Lobby ⌚️

Users can chat with other members before the game starts. The host can customize the room's settings as well.

**Only the host can customize or start the game.**

![Screenshot 2022-04-05 at 23.36.45.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1649191022694/BNARzQh4l.png)

### Game Screen 🎮

Screen where user plays the quiz in real-time with their friends

![Screenshot 2022-04-01 at 04.01.15.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1648776214872/ccfi9Z_lN.png)

## Challenges 😩

I am having difficulties keeping the count down timer for each round in sync between the game players.

I know I'm supposed to store the timer state in the server but not sure how to keep it in sync. Will be addressing this issue over the weekend.

### Current Bottlenecks

- Implement words API.
- I need to be able to show a live leaderboard.
- Showing game events such as when a user joins or leaves a room.
- Implementing optimistic ui for a more interactive user experience.

## Planned Improvements 🏆

- Fixing the timer synchronisation issue
- Allow users to add friends so they could invite them into rooms they create.
- Implementing a leaderboard feature
- Solo and offline gameplay for when users have no connectivity.
- Animations and audio to make the game more interactive.
- Making it fully responsive (mobile version).
- Serving static assets via s CDN
- Refactor the logic in `GameScreen` to `useReducer`