Para poder acceder al contenido debes estar conectado
MG Virtual
Motor gráfico construido en Javascript enfocado principalmente para diseñar nuestros juegos.

Tutorial
Si quieres construir tu mismo el motor gráfico MG Virtual, puedes seguir este tutorial paso a paso.

Documentación MG Virtual
Dispones de la Documentación del motor gráfico para poder aprobechar al máximo su potencia.

Para poder acceder al contenido debes estar conectado
Demos de juegos hechos con MGVirtual

MG Virtual Link
Puedes usar el motor gráfico directamente desde nuestro servidor con estos links del archivo minimizado js y el estilo de inicio css:
    <script src="https://games.virtual.es/js/MGVirtuaL1.0.0.js"></script>
    <link rel="stylesheet" href="https://games.virtual.es/css/MGVirtuaL1.0.0.css">
				
Con este código añadido a tu HTML ya no tendrás que cargar todos los js del tutorial, pues lo hemos compilado para que ya puedas disponer de ellos.
Esta es la plantilla javascript con la que debes empezar a programar con el motor MGVirtual. En el capítulo 1 del tutorial "crear motor gráfico" está detallado paso a paso como se contruye.
<script>
		var loop = {
	    handle: CreateHandle(),
	    idEjecucion: null,
	    ultimoRegistro: 0,
	    aps: 0,
	    fps: 0,
	    iterar: function(registroTemporal){
	      loop.idEjecucion = window.requestAnimationFrame(loop.iterar);
	      loop.update(registroTemporal);
	      loop.play();
	      if(registroTemporal - loop.ultimoRegistro > 999){
	        loop.ultimoRegistro = registroTemporal;
	        console.log(loop.fps);
	        loop.aps = 0;
	        loop.fps = 0;
	      };
	    },

	    update: function(){
	      loop.aps++;
	    },

	    play: function(){
	      loop.fps++;
	      borrarCanvas();

	    },
	};

	var canvas = document.getElementById("canvas");
	var ctx = canvas.getContext("2d");
	Gizmos.ctx = ctx;
	Gizmos.enabled = true;
	var margen = 10;
	var canvasTop = (margen/2);
	var canvasLeft = (margen/2);
	var canvasWidth = window.innerWidth-margen;
	var canvasHeight = window.innerHeight-margen;

	function borrarCanvas(){
	  canvas.width = canvasWidth;
	  canvas.height = canvasHeight;
	}

	function ResizeWindow(){
	  canvas.style.top = canvasTop + "px";
	  canvas.style.left = canvasLeft + "px";
	  canvasWidth = window.innerWidth-margen;
	  canvasHeight = window.innerHeight-margen;
	  canvas.style.width = canvasWidth+"px";
	  canvas.style.height = canvasHeight+"px";
	};

	Concurrent.Thread.create(InitTimer);
	Keyboard.load();

	window.addEventListener("load", function(e){
	  ResizeWindow();
		loop.iterar();
	});

	window.addEventListener("resize", function(e){
	  ResizeWindow();
	});

</script>