Algunas de esas cosas, como colores y gotoxy() las puedes simular con los codigos ANSI. Enviando una secuencia especial de caracteres al terminal de texto (con un printf o cout) puedes cambiar colores, posicion del cursor, borrar pantalla, etc. Buscate una tabla completa de códigos por internet.
Desde C++, por ejemplo
#define ESCAPE ((char)27)
cout << ESCAPE << "[31;44m" << endl;
pones las letras rojas sobre fondo azul.
ncurses es una libreria especial de unix/linux que permite partir un terminal de texto en varias ventanas (todo en modo texto y dentro del terminal original) y luego permite algo de control sobre ellas. No es demasiado complicado, pero requiere que le eches un ojo al man o a algún tutorial para saber cómo va.
Se bueno.