Hi. no pro here but some things for thought.
You will be needing a Database for client data, logon, password Alias name, thing like that. You will need a Good database key for each reacord for fast finding of client logon info.
What protocol you want to use TCP, UDP, some other.
Encryption RSA Private and Public Key encryption for password sending.
You will need to sign each data packet or thing sent over your connection for validation.
You will need to monitor network for DOS attacks and things(TimeAttacks).
You will need to maintain the servers integrity dueing an attack its all you can do.
Have a Banned List.
Time stamp your clients database records so you can remove long idel accounts.
You will need a file transfer mechanism.
Some things I'm currently using
Boost::asio base networking
boost lockfree queue sacrifice memory for efficiency (have your self a real time message system good for robots)Send and Recieve Queue's
Design your server so it could take advantage of having a pool of servers connected
GoogleProtocol buffers for serialization of messages
Zlib for compression
Cryptopp for encryption
I set up a 2 key pair system 1 key pair is for password encryption the other is a smaller key but safe for signing the packets
SQLite for data base
So far time spent on the above server is. Started on this date 3.2.15 and it is now 13.8.15 wow been that long this is part time but also have spent some long hours in it.
Im at the stage where clients can create account edit them, Join Create rooms(games) and send and recieve map file, And start and a game to the point that it loads up.