Hello, guest! Please register or log into the forum, or continue lurking.
If you are here to donate or learn more about donations, click the "DONATE" button on the top. This will take you to a page with all of the donor rewards.

Narrator Info Post

The Narrator is a a role madness online version of Mafia, similar to Town of Salem or Epicmafia. However, unlike other versions of Mafia, the Narrator has been designed to be played however you enjoy mafia, whether that be In Real Life, via your favorite browser, Discord, or, your home forum mafia. The Narrator is also the most customizable version of online Mafia in existence.

Currently, I'm looking to connect with anyone that would be interested in expanding the project, whether you're a developer, designer, artist, a mafia community organizer, or just want to provide feedback. It's long past time I ditch the one man team I've got going.

How it all started
The Narrator started back in the day, as a way for me to host more flavorful mafia games in college, without the need for me to sit out, and without the need for extended nighttimes. A first pass was made as a Slack bot, but in 2016, I made a website/UI for it. Since then, it has expanded also into Discord, and as an integration into other forums.

Current Feature set includes

74 unique abilities

Support for multiple mafia, cult, mason, architect chats

Custom hidden roles, such that the spawn list is hidden from the players until the end of the game

Custom roles with customizable abilities

Abilities tied to teams

Support for hidden attribute settings

Customizable faction/team settings

20 Predefined setups that auto add/remove roles from a game based on the player count. This is very important for getting games started QUICKLY.

Nighttime system to determine who controls the faction ability if teammates don't agree

System of alliances to handle complex win conditions

Support for game theming with regards to item/feedback text, death flavor stories, and role names

Leaderboard for personal/global best win rate, games played, best roles, point count

Ability to review previous games you've played, including a breakdown of what happened each night

ITA/day punch support

Preferring a role

Partial support for giving dead people a way to be 'omniscient' about what's going on in the game.

Last Will support

Automated tests that test all the abilities and most of the features above

An automated process that's running thousands of games per hour to detect possible bugs/crashes I might have not have accounted for

System for choosing a more balanced setup vs a less balanced setup, and how to tell the difference between the two

Support for host-chosen hidden roles, to not necessarily rely on the above

Tech Stack (for those of you that are interested)

Game logic written in Java and tested with JUnit

Web layer written in ExpressJS and tested with mocha

Database in RDS using MariaDB

Discord written with javascript and tested with mocha

UI written with JQuery and webpack, and tested with Cypress (wish to move to React/Redux)

Linted using eslint

CI/CD using gitlab's free service (Would like to go to Github and CircleCI)