Игровой сервер это слишком круто, попробуйте начать с реализации чата с сервером, клиентом и одной общей комнатой, без всяких приватов.
Эта задача позволит столкнуться со многими проблемами многопоточности, но при этом ясна, понятна и проста.
Кроме этого я бы рекомендовал почитать различные статьи на тему потокобезопастного создания объектов (в основном singleton), методы борьбы с deadlock, ну и про различные методы синхронизации потоков (синхронизация метода/блока, симафор).
Я сам больше пишу на Java, но думаю что тут не должно быть разночтений.