1. Нужно уметь ловить пакеты с твоего компьютера на сервер и обратно. Для этого есть специальные программы - снифферы, или анализаторы пакетов сети, другими словами wireshark, tcpdump и т.п.
А с помощью дебагера(IDA pro) можно узнать какой код выполняется при нажатии например на кнопку "войти".
2. Нужно уметь дешифровывать пакет если он зашифрован.
3. Нужно знать какой пакет когда отправляется, т.е. что отправляется при логине, что отправляется во время игры и т.п.
4. На основе протокола, полученного из трёх предыдущих действий пишешь свой сервер, который посылает нужные пакеты.
Думаю по каждой известной игре уже есть готовые хотя бы наполовину протоколы серверов и т.п. и есть готовые хотя бы наполовину сервера и их разработчики - общайся побольше с ними, узнаешь много нового и сможешь им помочь.
Например вот исходники одного изв серверов WOW
https://github.com/mangoszero/server
Вот немного о протоколе WOW
dvlabs.tippingpoint.com/blog/2007/06/28/decoding-t...
Для реверс инжиниринга нужно уметь использовать IDA Pro и т.п. дебагеры-дизассемблеры
Вот пара статей как примерно пользоваться такими инструментами
https://habrahabr.ru/users/drmefisto/topics/
Фокус в том что можно поискать в исходниках клиента что происходит при нажатии на кнопку "войти" и т.п.
В статьях у DrMefisto есть про то как делать кейгены или быстро крякать - принцип тот же. Вот в этой статье довольно подходящий пример
https://habrahabr.ru/post/255935/
Для начала попробуй повторить то что показывает DrMefisto - это даст тебе большее понимание что и как, затем возьми какую нибудь казульную игру, типа фермы какой нибудь, которая отправляет пакеты на свои сервера и попробуй получить все пакеты от клиента к серверу и наоборот с помощью wireshark.
Затем попробуй сделать свой сервер к которому можно подключить клиент.
Возможно есть способы слушать с помощью дебагера какие команды выполняет клиент(а значит узнать какие пакеты отправляет) при нажатии на ту или иную кнопку во время игры, но тут я не силен.