Hola, es bastante sencillo. Lo unico que necesitas es un timer (setInterval()) y ir añadiendo letra por letra. Te dejo un ejemplo que acabo de improvisar xD
function maquina(contenedor,texto,intervalo){
// Calculamos la longitud del texto
var longitud = texto.length;
// Obtenemos referencia del div donde se va a alojar el texto.
var cnt = document.getElementById(contenedor);
var i=0;
// Creamos el timer
timer = setInterval(function(){
// Vamos añadiendo letra por letra y la _ al final.
cnt.innerHTML = cnt.innerHTML.substr(0,cnt.innerHTML.length-1) + texto.charAt(i) + "_";
// Si hemos llegado al final del texto..
if(i >= longitud){
// Salimos del Timer y quitamos la barra baja (_)
clearInterval(timer);
cnt.innerHTML = cnt.innerHTML.substr(0,longitud);
return true;
} else {
// En caso contrario.. seguimos
i++;
}},intervalo);
};
Para usarlo solo necesitas un DIV u otro contenedor y el texto.
<div id="maquinas"></div>
<script>
var texto = "Hola mundo..";
// 100 es el intervalo de milisegundos en el que se escribirá cada letra.
maquina("maquinas",texto,100);
</script>
Vista previa / DemoEspero que te sirva =)
Saludos