Я бы вам советовал начинать с чего-то более простого. SFML неплохо подходит для изучения. Я не работал с UE, но судя по примерам он слегка меняет плюсы, и скрывает то, как все работает. А на C++ не стоит писать, не понимая что происходит.
Ну и по хорошему, при работе с сотнями соединений стоит использовать какое-то асинхронное API. К сожалению я не большой специалист в Java, но возможно вы потратили всю память и с JVM случилось что-то плохое (странно что все просто не упало). www.mailinator.com/tymaPaulMultithreaded.pdf тут пишут что несколько сотен тредов это предел.
Redwhaler: Из математики стоит вспомнить линал, численные методы, аналитическую геометрию, статистику, теорвер. Не обязательно все сразу, но их знание может когда-нибудь вам пригодиться.
Qt замечательный фреймворк, да и на практике его используют достаточно часто. Плюс у него очень хорошая документация, что тоже полезно при обучении. Советую посмотреть на него еще раз.