Vielleicht interpretiere ich einige Statements hier nicht richtig. Ich kenne mich weder mit Spielen noch mit Scriptsprachen wirklich aus. Aber es klingt, als wäre es wichtig, zu unterscheiden, zwischen einer Scriptsprache, mit der man ein Spiel „konfiguriert“, und der Engine an sich. Ganz grob um den Unterschied zwischen
var enemy = loadResource("enemy.gltf");
moveAlongPath(enemy, myPath);
...
und
glUniform3fv(directionLocation, 1, lightDirection);
glUniform4fv(ambientColorLocation, 1, ambientColor);
...
Ich habe einige meiner ersten Schritte in C-Programmierung übrigens mit QuakeC – Wikipedia gemacht 
Ich meine, vorher war das Spiel ja voll unrealistisch: Wenn man mit der Double-Shotgun und Quad-Damage einen Rottweiler zerschossen hat, ist der in genauso viele Brocken zerplatzt, wie ein Shambler. Da hab’ ich für den Shambler einfach die throwGib
-Funktion per Copy+Paste ca. 20 mal eingefügt
)
*einen Schluck aus einem Wasserglas nimmt*
*was von „nur noch die Typsicherheit“ liest*
*das Wasser prustend über den Tisch spuckt* 
„Nur“ noch die Typsicherheit?!? Das ist doch (mit) das wichtigste. Im Moment ist JavaScript einfach nur eine „Sprache“, mit der man Maps füllen und auslesen kann. Mehr nicht.
var someObject = {
name: "Foo",
age: 12
}
someObject.age = "Not a Number";
someObject.mane = "The result of a typo";
someObject.value = 0;
if (!someObject.value) {
console.log("Value is undefined or null or 0 or the empty string, who cares...");
}
Ich find das grauslig.
Aber das kann jeder sehen, wie man will