I know an mmo takes ages to make and I have that time, I am just wondering how to start programming a server that just sends for example map data to the client, have sprites walk around, nothing fancy. I have done some research on networking and I hope to do this in c/c++
How would I start a 2d mmorpg
Do you know C++ already?
Have you already made any simple game like tetris or pong?
Have you already made a single-player RPG?
Don't think of these as walls in your way, but stepping stones to build up to what you want to make. It saves time in the long run, because otherwise your MMO code would grow into a unwieldy mess while you are trying to learn and figure things out, and you might get frustrated at the vastly larger amount debugging and re-writing you'd have to do, compared to writing some 'throw-away' stepping-stone games to understand and learn how to write game architectures.
If you already know how to program games, then Beej's Networking Tutorial contains details of networking sockets at a lower level, and RakNet is now opensource and free.
Thanks for the links, and yes I have been doing c++ for a while,i made a small rpg and a few roguelikes. thanks for the networking tutorials :D
I'd suggest going to the forum's FAQ.
Items #0, 1, 3, 8, 28, 29, should all be especially useful. You'll note the links in SotL's post are also in those answers. The rest of the forum FAQ is good too, although some of the links are broken and a few of the answers are dated.
http://www.enchantedage.com/pymmo
It's Python, but replicating that code in C++ should be simple.
High level -- how it differs from a Solo game (you may have already done this mostly if you had done mutiplayer already )
Server is in the middle, assembles all the commands from the clients and then correlates the actions and their results (including any side effects of different players actions happening in close proximity) and the filters those results to send them to the clients which would be in range to see them.
NPCs behavior (and terrain changes) would be run on the Server.
Network traffic flows in and back out of the Server in the center
So you have to start slicing you solo program into the parts that would be in that center and the parts the client retains (like rendering and validating innputs)