lichess.org
Donate

The Chesslise Social Server Network (CSSN)

ChessChess botSoftware Development
Making it easier to find and challenge mutual chess friends

What is Chesslise?

If you haven't already read my previous blog about Chesslise you can read more about it here, but in summary, Chesslise is a Discord chess-based open-source application that makes Discord user-friendly for chess actions.

The Chesslise Social Server Network (CSSN)

The Chesslise Social Server Network is a free social network built on Discord (NOT a Discord server, an actual playing server on top of it via Chesslise app), allowing users to find new chess friends, connect with them, and create chess challenges among a group of connected mutual friendships. CSSN takes the concept of a chess community to the next level by blending social networking within a traditional chess match-making system. Unlike traditional chess platforms that primarily focus on finding random opponents or engaging in isolated games, CSSN fosters meaningful connections, making chess a shared social experience.

How CSSN Works

CSSN is built entirely within the Discord ecosystem, leveraging its social capabilities to enhance the chess-playing experience. It acts as a bridge between isolated players and like-minded chess enthusiasts, allowing them to:

  • Find New Chess Friends: Use the network to discover players with similar preferences, the preferences can be changed allowing you to be part of multiple networks at the same time
  • Find Mutual Connections: CSSN doesn’t just match players for games, it helps users build lasting relationships. You can send friend requests in Discord, start conversations in private messages, or join group chats to discuss strategies, analyze games, or just have a casual chess talk about similar preferences
  • Challenge in Mutual Networks: Instead of randomly playing strangers, CSSN allows you to create challenges among your network of friends or even friends of friends. This creates a sense of trust and familiarity that enhances the quality of gameplay.
  • Challenge in Open Network: CSSN also supports traditional matchmaking challenges where users can play globally, can find newer friends from global challenge networks as well as mutual friend networks, creating a connection between mutual networks and global networks.
  • Play more Chess: Users can select to play on Lichess directly or play on Lichess anonymous server, CSSN just acts as a network on top of Lichess to help in finding friends and challenges within a network.

The best way to understand CSSN is to see the below picture, where each person is a user connected to CSSN by running /connect and each edge (links) represents the friendships between 2 friends.


(A 2d representation of social network graph image credit mdpi)

Above CSSN provides the ability for e4(player e4) to play e2(player e2) even though they only know e6(player e6), e5(player e5), and e1(player e1), This mutual friend network makes games more fun and interesting as it's the real definition of playing a "friend" The fact that CSSN is built on top of Discord makes users reach more and more users as they start connecting to CSSN.

Why CSSN? You may ask.

Well it's obvious why we need a network, many chess players are part of communities on Discord and are looking for matches, to learn and find like-minded chess players with whom they can play a game. Though Discord servers/Group chats and friends sort of solve this problem the ability to play a mutual friend from far far in the network is almost impossible without CSSN as that level of friendship tracking can't be done by Discord itself, and chess playing servers like Lichess/Chess.com can't send a challenge within your friends mutual group either. Another important reason is that it answers the simple chess question: which one of my friends is available to play with me right now? This simple question which probably many chess players face day to day have answered by manually doing the work CSSN will do by itself, like either shooting a DM on Discord or calling a friend and asking them and if they agree (lucky!) then the game creation on Lichess/Chess.com is another big hassle as you did have to create those challenge links. Yeah, you already know what I'm talking about. This was a big problem I faced! While being an active chess learner, I always tried to play with my friends so we could go deep into the game afterward and have some fun in the game, like trying some piece odds or playing the openings we both knew. Finding this on normal chess servers is quite hard as I usually play random people who don't even want to say a causal "hi" in the chat, forget about asking them to play the 2-night defense against my caro so I can prep my caro lines! I don't blame Lichess or any chess server, because they are meant to be a chess-playing site than a find a friend website.


(Average Lichess user chat experience)

What if I don't have friends, How do I meet new friends?

No problem! CSSN uses a very similar technique to how you find chess posts on Instagram and other social media applications, but CSSN doesn't track or monitor you like those big tech companies (cough cough) it's quite simple, you set your preferences about your chess taste and CSSN does the rest of the job!
For now, the current preferences you set are the following:

  • Your Favorite Chess Player (Magnus Carlsen, Gukesh etc)
  • Your Favorite Chess Piece (Pawn, Knight, etc)
  • Your Favorite Chess opening (Queens Gambit, etc)
  • Your Chess playing style (Aggressive, etc)

Though there are thousands of preferences a chess player has the above are quite common in various chess players and answering the questions with preset answers gives CSSN some view of your chess taste and find new chess friends you might like to be friends with. Of course, friendships are mutual if you don't want to be someone's friend you can run /cancelfriendrequest or /removefriend, you can use /findfriend to find the friend CSSN recommends to you, and then to your Discord friend list. Gaming the CSSN system for self-promotion and spam is not allowed as users have the choice to block a friend by running /blockfriend this action completely blocks that player from pairing for challenges and new friendships, CSSN will automatically remove a user if their blocked count increases a lot.


(you run this command above to find a friend)


(When you find a new friend via CSSN)

How do Internal Network and Open network challenges work?

Creating a challenge is quite simple, after running /connect and letting CSSN know what are your preferences (blitz, bullet, rapid) you can start creating games via /seekchallenge command which uses your preferences to pair you in open or internal networks. To find a pairing in your friend networks run /pairchallengenetwork and for open networks run /pairchallenge. Finally, once you know the friend's username you can add them as Friends on Discord by going to the friend list and adding them as your friends, in DMs you and your new friend can start playing. The networks support both Lichess authenticated and Unauthenticated to allow players to play private games useful for training games and of course thanks to Lichess for the amazing chess public/private server they provide!


(/connect command allows you to set preferences when you join the network, you can change them via /setpreference)

What if I want to play on Other chess servers?

For now, CSSN only supports Lichess, because of Lichess's amazing API for creating open-ended challenges right from Discord becomes easy with the /play command, Though adding other servers is possible on CSSN, they were not added as creating challenges will become a hassle, and sort of defeat the CSSN's purpose of creating less friction and playing among friends. If Chess.com and other servers do provide an API to create and customize challenges like Lichess provides I'm happy to add it to CSSN, but for now, players can find the games and play on whatever other servers they want to play, In next few updates I plan to add users Lichess username in the challenge itself so people can play on Lichess directly if they prefer that way.


(The /play command players run after finding a friend or new challenge)

What's the magic behind CSSN?

Well, it's not magic as the tricks aka the source code are already available on Github. CSSN mainly uses graph traversal techniques like BFS(breadth first search) alongside a simple implementation of friend-to-friend and collaborative filtering algorithms to find internal challenges within a network and to recommend the next available friend within the open or internal network. Explaining every detail will just take forever so I have provided a mathematical graph that highlights the main part of CSSN's algorithm, of course, if you want to peek go to GitHub and search "BFS" and you should find the right class for its implementation


(Here the numbers or nodes can seen as players and links as friendships, when player 7 calls for a challenge player 1 can accept it by running /pairchallengenetwork, friendships also follow a similar pattern but instead, preferences are matched on a node-to-node basis. image credit geeksforgeeks)

How to start using CSSN?

Well, it's quite easy if you already have a Discord account you can go to Discover > Apps > type chess in the search bar > Install Chesslise (Or go here directly and hit install you would need a Discord account still) on your account as this will help you take CSSN anywhere with you and that's it! Run /connect and start playing, one note about the network since it is new there may be fewer pairings as CSSN just opened up, but don't worry hopefully more players join the network via this blog as well and older Chesslise users will become aware of it.

https://youtu.be/32hat-QBLd8?si=7KzXJGr4SIQhrlim
(This short demo I made to show how finding friends and challenges work, in the demo a user already created the challenge which I accepted and after I became friends with them I was able to challenge them in my network)

Future Plans, Conclusion

CSSN is a new way of playing and it will evolve as time goes by, one of the few updates that I'm planning to add to CSSN is the following

  • The addition of more popular chess players in player preferences gives chess fans more options to pick from (Friend matching)
  • Addition of more openings so players can find the right training partners for chosen openings like Caro Can, French, etc (Friend matching)
  • Addition of chess variants such as 960, 3 checks, etc for chess variant fans (Friend matching)
  • Possible website for viewing and creating challenges outside of Discord (Challenges)
  • More! You can join the Chesslise Discord dev server here and tell me any ideas I never got and would make CSSN a much better server, or any bugs you found in the CSSN server (User features)


(Adding new preferences as I type this blog post)

I hope chess players find this update more useful find newer friends and play more chess! You can also join the Chesslise team to get notified about newer updates to Chesslise and CSSN here

Hope you had a great read, hope I find you in my network ;)

Noob