hey there Doxa,
As to Steam, I won’t comment, because I don’t know what it will provide you. yet to make a “clan/guild/family” system, for it to be robust, will need access to a database/filesystem of some form, in order to retain the information, as to the “clans” members, and any hierarchical structure that the “clan” is capable of.
The best would probably be a relational database, that you can create and delete tables on the fly, where, Such that you have
Members Game Name, Member Game Id, Member Join Date in the clan, Member Rank in the Clan (leader, subleader, etc), Member access to the clan bank (if you are going to have this), Time/Date Member was last seen, etc
None of this is really specfic to UE4, until you start using Slate/UMG to display information, or if you wish to keep the current location in the game for display to other members. Basically, you would need a TCP/IP connect going back to your game server, to interact with the database (queries, updates, deletes, etc). UE4 also provides the ability to handle the TCP/IP connection for you as well.
You can implement, most of the security for this, be reducing transactions down to only sending from the client, the requests as a Transaction type (i.e. each Transaction type is a integer if you wish), which the server then validates that the requested Transaction is authorized for the connected user. Parameters could also be sent along with the transaction type, but first the server validates access, and returns either thumbs up or down, for the entire transaction, and if it’s thumbs up, then also sends along any response that the client needs.
While this is not everything that you could potentially wish to do, it’s enough to get you started. I.E. what are the windows/panes going to look like to display to the clan members, how are my tables going to be maintained, how will I go about inserting/deleting/updating rows (where a row, would be a clan member let’s say, with the above lists of attributes/tuples comprising the row). Will I create a seperate table to represent all clans, or will hte mere presence of a “clan name” in the table constitute a clan having been created (I would highly suggest a seperate table to represent the abstract concept of a clan itself, such as Clan Name, Clan ID, Clan creation date, MOTD Message for all clan members, etc).
This should be enough to get you started. Hope this helps.