TrivBot Logo

TrivBot

Details

The TrivBot was a project that came about from a discussion with a friend about automated streams like radio stations, aquariums, etc. I wanted to create something similar that would also be engaging and enjoyable for other people which eventually turned into the idea of a trivia bot. Taking that premise and idea I created TrivBot, a fully interactive, automated, stream bot that serves up trivia questions, handles user responses, stores user guesses, and stores user scores for leaderboards and statistics. It ran 24/7 for about two months during which time it ran phenomenally. Unfortunately, I couldn’t continue using the VPS provider that the bot was hosted on as there were concerns from the provider regarding bandwidth usage. I decided that it was a fun experiment but it was time to put the project to rest for the time being.

Future planned features included the ability to vote on the category of questions, have bonus rounds, and add more to the presentation layer through animations and sound effects. These features were experimentally implemented and the project was eventually re-created in Unity to accommodate the animation and audio elements.

The primary intent of the TrivBot was to be a fully interactive streaming bot that I could host somewhere and promptly forget about. In order to accomplish this, I decided to write the bot in C# utilizing the .NET WPF project type so I could control its logical flow while still presenting a nice visual experience for the viewers. To bring trivia content to the TrivBot without actively managing it, I used a remote web API provided by OpenTrivia. The bot also used the Twitch IRC API to intercept user commands and process them locally.

Other features about the TrivBot:

  1. Microsoft Speech Synthesis was used to read the trivia questions to viewers.
  2. SQLCE, and then later SQLite due to deprecation, was used as the local database with a custom async wrapper built over the .net API.
  3. The bot had a small CPU, RAM, and storage footprint, and automatically handled its own API token renewals. This allowed it to run for weeks without any issues or the need to intervene.

Unfortunately, at this time, the source code for the TrivBot is private with no plans on releasing it. There might be a day in the near future where I decide to dust it off and re-deploy it on Twitch or I might eventually open the repository up on GitHub for the public.