Keep the data but encrypted. Let users send links that contain the pki info to decrypt the messages. Have that pki info generated client side.
Discord would only need to shuffle data, provide authentication, and provide the web app data down to the client. But every bit of user shared and generated content would be encrypted to them.
Matrix?
I only put ? Because I don't know what you mean of grouping your friends by game.
Like a server/channel where everyone in it is both your friend and a player of that game or a contact group that manage so you can see who is that.