noooo... wiesz... programy konsolowe (czy jak ty to nazywasz dosowe

), to tylko początek, żebyś mógł zrozumieć wszystkie mechanizmy rządzące tym językiem oraz programowanie obiektowym. Kiedy je poznasz, przejdziesz to pisania programów Windowsowych (czyli właśnie a'la gg, czy inne). Wtedy już będziesz musiał zakupić książkę najlepiej dedykowaną pod jakieś IDE, jak np Visual Studio 2005 (jest wersja darmowa dla hobbystów i studentów, do zastosowań niekomercyjnych, do ściągnięcia ze strony Microsoftu). Jeżeli o to Ci chodziło, to tam właśnie tworzysz metodą drag and drop menu oraz okna programu, a następnie oprogramowywujesz funkcje obsługujące odpowiednie zdarzenia. A do napisania takowego komunikator przydałoby się znać jakiś silnik sieciowy, bądź napisać własny (na np. na WinSock, ale znajomość wyspecjalizowanych bibliotek to już troche odległa przyszłość

).
Ja osobiście uważam, że C# nie jest dobrym wyborem na początek, radze zacząć od samego C++.
A propo gier, to miażdżąca większość jet właśnie napisana w C++, korzystając z odpowiednich bibliotek graficznych, typu DirectX czy OpenGL.
A jeżeli chodzi o Assemblera, to już zależy co chcesz robić. Jeżeli programować mikrokontrolery, to możesz się go nauczyć, ale w przeciwnym wypadku, to raczej nie jest to konieczne. Oczywiście pisząc kod w C++ możesz używać tak zwanych wstawek asemblerowych, czyli jakby takich podprogramików napisanych w asemblerze, które wywołuje twój główny program. Są one znacznie szybsze niż zwykły kod napisany w C++, ale raczej nie będziesz musiał ich nigdy używać, gdyż w przypadku większości amatorskich programów bądź gier, kod w C++ bez wstawek jest wystarczająco szybki.