У вас должен быть клиент, сервер и протокол взаимодействия клиента с сервером.
В простейшей части клиент соединяется с сервером, авторизуется и тут уже вступает игровая-бизнес логика.
Сервер принимает соединение, авторизует игрока (идентифицирует его) и тут опять же вступает игровая-бизнес логика на сервере.
Протокол однозначно должен идентифицировать все действия клиента и все ответы сервера.
Т.о. последовательно общаясь сервер и клиент реализуют игровую ситуацию.
Внутри сервера логика должна быть гораздо сложнее клиентской, т.к. сервер реализует не только правила самой игры, но и всяческие проверки на "дурака", чтобы клиент не мог читерить. Также сервер должен организовать взаимодействие между игроками. В простейшем случае это некая игровая комната, а внутри неё 2 и более игроков создают игровую ситуацию по правилам игры.
Если хотите писать сервер с нуля, то рекомендую посмотреть в сторону Erlang.
Там за каждого клиента может отвечать свой процесс, за игровую комнату тоже. И т.о. вся реализация игры сводится к правильной посылке сообщений от процесса-игрока, к процессу-комнате и обратно с реализацией игровой логики внутри процесса-комнаты.
В целом вот так. Если будет нужна помощью в Erlang, или написании такого сервера могу помочь. В том числе и ответами на данном ресурсе.