Einen Webserver mit Portal 2 (Source-Engine) bauen
(youtube.com)Zusammenfassung
(Mit Gemini zusammengefasst und teilweise überarbeitet)
-
Portal-2-Engine in einen Webserver umwandeln
- Ein Experiment, bei dem mit der versteckten TCP-Konsolenfunktion der Source-Engine (Option
-netconport) direkt aus Portal 2 heraus Web-Seiten gehostet werden.
- Ein Experiment, bei dem mit der versteckten TCP-Konsolenfunktion der Source-Engine (Option
-
HTTP-Antworten über die Entwicklerkonsole verarbeiten
- Im Spiel wurde zwar ein TCP-Server geöffnet, doch die Entwicklerkonsole interpretiert Anfragen der Nutzer zunächst als Konsolenbefehle.
- Um HTTP-Anfragen als Konsolenbefehle des Spiels zu verarbeiten, wurden der
alias-Befehl der Source-Engine und VScript (eine von Valve entwickelte Skriptsprache) verwendet, sodass auf eingegebene Zeichenfolgen Antworten ausgegeben werden können.
-
Mehrfaches Routing implementieren
- Da die Spielkonsole URL-Pfade nicht unterscheiden kann, werden HTTP-Methoden (GET, POST usw.) und benutzerdefinierte HTTP-Header genutzt, um verschiedene Routen nachzuahmen.
- Damit wurde eine Lösung umgesetzt, bei der mit JavaScript Datenaktualisierungen in Echtzeit aus dem Spiel möglich sind.
-
Spielobjekte auf HTML-DOM und CSS abbilden
- Spielobjekte wie Würfel werden HTML-Tags und Attributen zugeordnet, sodass die Website tatsächlich „aufgestapelt“ wird.
- Ebenso werden Stilinformationen (CSS) so umgesetzt, dass jede Eigenschaft einem einzelnen Würfel entspricht und die Web-Seite visuell zusammengesetzt wird.
2 Kommentare
Das erinnert mich daran, wie in Comics oder Spielen der Vorgang des Eindringens in einen Server manchmal als Herumlaufen in einem virtuellen Raum dargestellt wird.
Es ist schon erstaunlich, überhaupt auf die Idee zu kommen, einen Webserver mit einer Game-Engine zu bauen, aber es ist ein unterhaltsames Video, weil es auch viele grundlegende Aspekte der Webentwicklung zumindest konzeptionell gut erklärt. Besonders gut fand ich den Teil, in dem mit den Würfeln aus Portal das DOM/CSS aufgebaut wird.