Showing posts with label discord. Show all posts
Showing posts with label discord. Show all posts

10 March 2020

Designing A Gaming Bot For Discord (Initial Approach)

Whelp, I made it. I figured out all the things I wanted to figure out before writing a blog post about making a gaming bot for discord. So, without further ado, let's get into it.

Prologue

When I say gaming bot, I'm not talking about a discord bot connected with your game. Instead, I mean a bot, which responds to user commands. You can compare it to a text RPG. Before making it, I used an approach that I can only advise you to do too. But, make your own decision after reading it.

The Approach

Planning to use any preexisting platform for your game requires you to brainstorm the possibilities. Like with different hardware (mobile games versus PC games), not every game mechanic works. Looking at the input and output methods that are available to us and analyzing these tools allows us to build the game's horizon.

Familiarizing Yourself With The Platform

Discord is a modern chat platform. It allows users to interact with each other on servers, in groups or private chats. All of those three have both voice and text capabilities. The latter also features emojis. Whose are of use to react to others or for usage in your message. Reactions can also be taken back and reapplied.
Additionally, the text message can contain attachments, which will be displayed if they're video, audio, or graphic files. Else they appear as a download instead. URLs are displayed similarly, except for downloads, which are shown as previews instead.
With the ability to edit, delete, and format your messages, there are even more possibilities for bots to do their charm. Unfortunately, we are more limited than that.

Familiarize Yourself With The API

In the end, even a limitless platform restricts the game or bot with its API.
Luckily, all elements listed before, which a text-based RPG would require, are implemented in the API. I could go into the API in detail, but I think I'll leave that for another post when I write about the gaming bot and the design choices in more detail. Anyways, let's look at the capabilities we have for the game.

Screenshot of my RPG Bot
Using Emojis as an input method.

The Input

The primary input we get is user messages. We can search for specific patterns in there or use the API

calls to filter for commands. Another one we can get is through reactions from users to the bots messages allowing us to use arrow emojis to flip through pages of content, for example. While this doesn't sound like much, they are already powerful tools in our tool belt.

The Output

Screenshot of my RPG Bot
Using embed for layout and emojis for
graphics.
There's a lot we can do output wise. From sending simple messages showing content to formatting them, using embeds to implement layouts, emojis to represent graphics, or even posting generated or resource images. Given the list of Discord features, there's a lot more than these I came up here now. But, it is a start if you don't have one yet.

Conclusion

Well yeah, this is the approach I choose when developing games for hardware or platforms that aren't as familiar. I hope it helps you make better design choices. And maybe I'll post about my gaming bot? We'll see in the future.

Discord Dhuum challenge. Anyone?[1]

[1]https://itrunsdoom.tumblr.com/



18 November 2019

Discord Game Bots: From Video Back To Text?

So, I've sort of managed to switch from playing MMORPGs to... discord bot games. Honestly, I didn't even know these existed until now. And no, I'm not talking about the games you play on discord like counting to infinity.

Why Discord

Discord has grown to be a favorite software for many gamers and non-gamers. It combines the ability to talk to people on a server like on Teamspeak, with the ability to share and post information and have private chats like on Skype. With features, such as reactions, embedded audio, images, and videos, and more, I can't deny that I love it myself. The developer interface makes it easy to create your own bots and connect them to your application. This allows for all kinds of abilities such as news, user commands, easier moderating, administration, or... games. With gamers on discord, is it far fetched to have discord bots that feature games?

My Experience With The Bots

So, the three bots I looked at are called OwO, Yui, and Tatsumaki. Each provides some similar, some different, and some completely different commands. I'm not gonna focus on the other ones besides anything related to the game. This means currency commands, game commands, and quests or dailies. The order in which I'm going through these will be from the lowest to highest content.

Yui

Screenshot of the Yui
 Profession Commands
 on Nyaa Langs/kiss Lingo Discord
Yui is a Discord bot written in Java. It features a daily giving you currency as well as commands to level up different professions such as mining, fishing, and chopping. Using it is pretty straight forward actually. Unfortunately, the currency has no use except for a leaderboard. The profession commands give you some respective "Experience" as well as money. Leveling up a skill, thereby increases experience and currency gained by 1%. After a while, the word "Depleted" will be contained in the bot's message, which decreases the chance for higher experience gain and seems to make it impossible to get currency. As much as I would like to get into more detail... this is pretty much it. So, let's move on to something more complete.


Screenshot of the Tatsumaki
Tamagotchi like game
 on Nyaa Langs/Kiss Lingo Discord

Tatsumaki

Tatsumaki is a Discord bot written in Javascript. It contains a lot of features such as experience and leveling by chatting, reputation, searching on the internet, and managing roles. Most prominently, it has a Tamagotchi like game called Tatsugotchi. You start off by entering the  " t!tg " command. This will give you the next command to buy your first one. If you repeat the last command now, you will see the room some status bars and your pet. Thanks to the hint you're shown then, you will know that you have to feed, play, and clean it. It's not necessarily intuitive that the command is the same but with the respective words behind it. (e.g. "t!tg play"). From here on out, it's pretty much just take care of it and train it to level up. You can use the daily currency you get to buy a new one, with the chance of it being rarer. Or use it to have your Tatsugotchi being taken care of automatically. There are also quests you can do each day but are really simplistic. At first, I assumed it would be necessary to have a scale on those bars. Later on, I found out entering the commands takes care of the whole bar making a scale unnecessary. That's quite nice, but let's look at something bigger.

OwO

Screenshot of an on-going
 battle from OwO
on the Nyaa Langs/Kiss
Lingo Discord
Now we're entering the RPG category. Do you like Pokemon? What about RPG? You might love this. The premise is quite simple. You hunt for animals that are put into your zoo. From there on out, you can create a team, sacrifice, or sell them. There are six stats, multiple items, different roles, different weapon bonuses, and - of course - leveling. I'm not going into the detail oh how to play it because that would be worth its own blog post. I have noticed myself, however, that playing this game is tedious if you don't know all the commands. Figuring them out is difficult, and there's no introduction. The website doesn't mention all and how to use them. It actually feels like a step back from what we have learned about game design over the years. This gives OwO a high entry curve. And yet it is still a full-fledged round-based Discord RPG. As there isn't much information about this one, it seems like a good topic for a future theorycrafting post.

Conclusion

So, through the Discord API and interface, we can have players interact with these bots. This is quite interesting and asks questions like, in which ways can the user interact? How can we show information? Which stimuli can we give the user? Where are the limits? And much much more. For now, I'm gonna leave this as is.


About Me

My photo
I'm a M.Sc. Games Engineer and I created this blog to share my ideas, theorycrafting, thoughts and whatever I'm working on or doing.