# Latest Projects: Digital Art, Game Clones, Eucledea Clone, learning the new discord.js

Latest Collab: Circle Soup 2

Simon and Abhay created this “Circle Soup 2” yesterday, an interactive digital painting where you can control the number and type of circles and even the type of movement. In the short video above, Simon explains the UI.

This Month’s Game Clones

Simon has also been busy making clones of a few more games. He successfully cloned “The Only Outlaw” by PolyMars, but didn’t want to make a video about it as he says he finds the original name and idea of the game too creepy. In Simon’s version, it’s just clicking on the square that is the odd one out, while in the original game, it’s eliminating a figure wearing the T-shirt color that is banned. Simon hates violence in games. In the video below, I have recorded myself play Simon’s version. The game becomes increasingly difficult as the number of randomly moving squares increases and the field of vision shrinks. Simon says it was very hard to do the calculations for the code, he had to be precise down to one pixel. He also thinks this is a great game to check for color blindness!

Two more game clones he has been working on are Color Switch modes “Block” and “Dungeon”.

Euclidea Clone

This is a very impressive solo project that Simon has taken upon himself but paused for the time being: making a clone of his favorite geometry editor Euclidea. In the video, he is showing how far he has managed to get.

I just want to make a version of Euclidea that doesn’t have a goal. It can be used to draw circles, lines and line segments. I have implemented the intersection tool to look for the point of intersection between two lines. I used the line intersect line function that I have previously used in my Paper.io clone and our Processing Birthday Sketch, a general purpose thing that checks if a line intersects another line.

What I haven’t implemented yet is line intersect circle and circle intersect circle. The math is difficult. I partially learn how to create those tools by doing the Euclidea puzzles. Some of the easier ones I actually already know how to do.

I also don’t have the move tool yet. All the other tools are combinations of other tools.

Discord Bots

One more thing Simon has been working on very intensely over the past two weeks together with his peers on the Coding Train server has been learning to work with the new version of discord.js

Discord has a service that allows you to create bot apps and it also has an API (something that allows bots to send messages). On its own, API is difficult to work with. To make it easier, someone has come up with discord.js which makes it easier to send a request to Discord. Instead of making a generic API call, you can just ask discord.js to send a message in a specific channel and it will do that. What’s changed is the way discord.js works. Discord.js is now not that easy anymore, you have to register commands and it’s just a bit more of a complicated process to, say, reply to a command.

The reason why Discord changed it is because they introduced slash commands: a neater UI showing you a list of commands every time you hit slash. You click on a command from the list and specify the needed arguments. Previously, you had to use a prefix and sometimes you had to guess it in order to register as a command. And then you didn’t see the list of commands because Discord didn’t know it was a command. It just thought it was a plain old message. So you had to implement a help command into the bot which would show the list of commands separately and it was all just a mess to work with. So Discord decided to implement a built-in slash command system and that allowed for a better user experience but the development became more difficult.

Simon and Abhay have already made a test bot and used it to practice slash commands. Now Simon says they’re ready to make the actual bot that will be responsible for time management on their server (help them manage their time between working on their collabs and playing games together).