Making Chat Bots Seem More Human

When I first started working on Dicecord I got a great piece of advice: “The best dicebot feels like another player at the table.” This is something I really took to heart and a trait I’ve been looking to improve on. I have been testing a new version of the dicebot for the past few weeks which adds a feature tying into this pillar.

Before we talk about this new feature let’s talk about how I have been attempting to achieve this so far: the personality system. The bot doesn’t just roll dice but in certain situations comments on the result. The idea here was to allow the bot to take part in the table banter along with the other players. It’s been a pretty well received system over all and has created some fun stories.

For example, in my own game I wanted my extremely petty character to use a spell to unlock an office to make someone else seem irresponsible. The roll was an exceptional success and triggered one of the mage themed responses, making it seem like the bot was sarcastically praising my petty abuse of magic. It was a really fun moment that made the bot feel more human; my friends even took the time to commend the bot on its sick burn!

So, on to the new feature. A little while after that game I was checking out a best practices list for chat bots and realised that I could create a unique command prefix for the bot by having it check for @mentions of itself. This freed up my system for parsing chat commands. For example, rather than checking whether the message started with “!!roll” I could see whether it contained the word “roll”. This in turn allowed users to not just shout some command at the bot, but phrase their commands in terms of a natural language sentence. From “!!roll 4” to “@Dicecord roll 4 dice for me please.”

What really surprised me is how this minor change ended up doing so much for my “make the bot feel like a player” pillar. Almost immediately, my friends started talking to the bot like it was a human. They were elated by the simple novelty of it! In fact, my error logs showed others on the beta trying out various ways to avoid the efficient syntax available to try for a more human interaction instead. Combined with the personality system this led to the appearance of banter going back and forth between the players and the bot.

After seeing that in action, I incorporated the same approach in a Slack FAQ bot I made for my devcom volunteer group. Despite that being a pretty boring purview for a bot the users have a ton of fun “chatting” to it by phrasing questions and followups as though they were having a conversation with a human. It’s as though being able to speak to the bot like a human allows the user to attach human qualities to it and the response seems to validate that act. Dicecord’s bot having it go that bit further to make a quip adds an extra layer to this interaction, adding stronger foundations to the facade. I’m not saying that the Dicecord Bot is going to be passing any Turing tests soon, but for roleplayers who already practice suspension of disbelief it’ll do just fine.

Going forward, I will make responses for common non-roll related messages given to the bot. Starting with something simple like a “You’re welcome!” if thanked I guess.

The beta can currently be accessed here and I’ll be updating the main version in a few days.

This entry was posted in Dicecord and tagged . Bookmark the permalink.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.