
ARTDEPARTMENT

Cuando pensamos en servidores web, lo zaguero que nos viene a la mente es un videojuego. Menos aún, uno animado en 2011, diseñado para resolver acertijos con portales y cubos. Sin confiscación, eso es exactamente lo que ha conseguido el esquema HTTPortal: variar Portal 2 en un servidor web práctico que alega a peticiones HTTP de los navegadores y les proporciona paso a páginas web... ¡a cojín de cubos adentro del recreo!
Dicho esquema aprovecha una curiosa característica del motor Source (usado tanto por 'Portal 2' como por éxitos como 'Half-Life'): una opción de consola para desarrolladores que abre un puerto TCP y permite admitir comandos externos. Lo demás es pura encanto (y mucho scripting), que permite al recreo no solo difundir portales de teleportación… sino asimismo difundir portales web.
Cuando visitas una página web, tu navegador se comunica con un servidor usando un estilo llamado HTTP. Este protocolo funciona sobre una red TCP, que es como un sistema de correo que garantiza que los datos lleguen completos y en orden. La mayoría de los videojuegos (incluyendo Portal 2) usan otro sistema más rápido pero menos confiable llamado UDP. Por eso, lo primero es encontrar una forma de usar TCP adentro del recreo.
Y, para ello, el motor Source tiene una opción oculta: '-netconport 3000'. Si la activas al difundir el recreo, Portal 2 abrirá un servidor TCP en el puerto 3000. Este servidor no está diseñado para páginas web… pero sí recibe texto.
Así que el navegador envía comandos HTTP como 'GET /index.html', y Portal 2 los recibe… como si fueran comandos de consola. Y ahí reside el truco.

Pero, ¿cómo alega Portal 2 a un navegador? Al principio, el recreo recibe los comandos pero no sabe qué hacer con ellos. Usa el comando 'mote' para asegurar: “cuando recibas GET, alega con este texto”. Y ese texto puede ser el código de una página HTML.
Aquí es donde entra en recreo VScript, el estilo interno de los eventos de 'Portal 2': usando scripts y trucos como la biblioteca ppmod, puedes imprimir una respuesta HTTP completa en la consola, que el navegador interpreta como una página web.
Una de las ideas más ingeniosas del esquema es el uso del entorno del recreo para representar la estructura de una página HTML. Así, cada cubo representa una inscripción, texto o estilo.
Con algunos comandos especiales puedes construir un sitio completo directamente en el mundo del recreo:
script newElement(H1) crea una inscripción script newElement(-H1) cierra esa inscripción con script newElement("Hola Mundo!") agrega textoscript newModifier("style", "color: red") aplica estilos CSSCada uno de estos principios se representa con cubos en el plano. Sí, textualmente construyes la página web con bloques en el mundo 3D de Portal 2; los cubos se colocan físicamente de izquierda a derecha y de hacia lo alto a debajo. Así, el recreo actúa como una especie de editor visual de páginas web.
En teoría, esto permite convertir cualquier página web sencilla en una pila de cubos. El creador del esquema probó incluso con la página de inicio de DuckDuckGo, aunque tuvo que enfrentarse al divisoria de entidades del motor de recreo. El resultado fue una representación surrealista pero técnicamente correcta de la web, construida con miles de cubos codificados por estilo, etiquetas y texto.
Aunque este esquema es fascinante, no está exento de limitaciones: el contenido no se actualiza en tiempo efectivo sin recargar (aunque JavaScript puede ayudar en esa tarea), y no se pueden representar imágenes complejas.
Adicionalmente, el navegador nunca deja de cargar: como Portal 2 nunca cierra la conexión, el navegador piensa que todavía está esperando más datos. Así que, para que el navegador entienda cuándo termina la respuesta, se necesita un encabezado 'Content-Length' preciso y calculado a mano, poco que obliga al desarrollador a contar cada carácter y brinco de tangente. Una vez justo, el navegador puede renderizar correctamente el HTML.
Aunque a primera panorama esto puede parecer una mera excentricidad de un programador (y 'gamer'), tiene implicaciones interesantes:

Requisitos básicos:
Desde ahí, puedes entablar a construir tu propia página con cubos en el nivel 'Laser Chaining' del recreo.
Imagen | Marcos Merino mediante IA
En Genbeta | 25 abriles a posteriori, Apache ha perdido la corona del servidor web más usado en Internet: larga vida al rey Nginx
Compartir este artículo
Consultoria Personalizada
¡Si aun no tienes presencia en internet o
necesitas ayuda con tus proyectos, por favor, escribenos!