Bitcoin

Wolfenstein3D-ähnlicher Raycaster in Windows Batch: Ein technisches Meisterwerk der besonderen Art

Bitcoin
Show HN: A Wolfenstein3D-like raycaster made in Windows Batch

Ein tiefgehender Einblick in die Umsetzung eines Wolfenstein3D-ähnlichen Raycasters mithilfe von Windows Batch. Erfahre, wie die Grenzen der Batch-Skriptsprache kreativ überwunden wurden, um ein beeindruckendes Spielerlebnis zu schaffen.

Die Idee, einen Raycaster im Stile des legendären Wolfenstein3D mit den begrenzten Mitteln von Windows Batch zu programmieren, scheint auf den ersten Blick fast unmöglich. Windows Batch, eine Skriptsprache, die traditionell dazu dient, einfache Automatisierungen und vorgegebene Abläufe auf Windows-Systemen umzusetzen, ist weder für komplexe mathematische Berechnungen noch für Echtzeit-Grafik geeignet. Dennoch hat ein Entwickler namens Nikolas Thornton mit seinem Projekt „batch-raycaster“ bewiesen, dass diese scheinbare Grenzen durchaus kreativ zu umgehen sind und dass Batch-Skripte mehr Möglichkeiten bieten, als man gemeinhin annimmt. Dieses Projekt ist ein beeindruckendes Beispiel für technische Raffinesse, Programmierkunst und das Potenzial von minimalistischen Tools im Bereich der Spieleentwicklung. Was genau steckt hinter dem Projekt? Ein Raycaster ist eine Grafik-Rendering-Technik, die genutzt wird, um 3D-ähnliche Umgebungen darzustellen, indem Strahlen von einem Punkt in verschiedene Richtungen ausgesendet und dabei Kollisionen mit Objekten festgestellt werden.

Klassische Spiele wie Wolfenstein3D machten sich diese Technik zunutze, um aus einer 2D-Map ein immersives dreidimensionales Spielerlebnis zu bieten – zu einer Zeit, als echte 3D-Grafikhardware entweder nicht vorhanden oder zu teuer war. Heute ist der Raycaster als eine Art Brückentechnologie zwischen 2D und 3D bekannt, die dennoch sehr charmant und technisch elegant wirken kann. Die Besonderheit an „batch-raycaster“ ist, dass dieser Raycaster komplett in Windows Batch geschrieben wurde – ohne externe Bibliotheken, keine Unterstützung für Fließkommazahlen und ohne eingebaute trigonometrische Funktionen, die typischerweise für die mathematischen Berechnungen benötigt werden. Stattdessen wurden Tricks und Workarounds eingesetzt, um solche Funktionen approximativ zu simulieren und die nötigen geometrischen Berechnungen durchzuführen. Das Resultat ist ein Spiel, das zwar keine Echtzeit-Grafik erzeugt, aber in jedem Schritt ein Bild rendert, das den Eindruck von Bewegung und Tiefe vermittelt.

Die technische Herausforderung lag vor allem darin, die extrem limitierte Umgebung von Batch zu nutzen. Batch-Skripte sind vor allem für sequenzielle Befehlsketten und einfache Variablenmanipulationen ausgelegt und verfügen im Gegensatz zu modernen Programmiersprachen über keine nativen Rechenoperationen auf Gleitpunktzahlen. Stattdessen wurde ein Diskreter-DDA-Algorithmus (Digital Differential Analyzer) angewandt, der auf ganzzahligen Operationen basiert und für das Raycasting besonders geeignet ist. Nikolas Thornton setzte hierbei kreative Techniken ein, um die notwendigen Berechnungen durch ganze Zahlen zu ersetzen, und erschuf so eine Simulation des klassischen Raycastings. Die Steuerung des Spiels ist an das klassische Wolfenstein3D angelehnt, wobei die Eingaben nicht über Tastatur-Events, sondern über die Batch-interne Eingabefunktion „set /p“ erfolgen.

Das bedeutet, dass der Spieler Kommandos eingibt, die dann verarbeitet werden, um die Position und Blickrichtung zu verändern sowie um Bewegungen anzustoßen. Die Umsetzung mag im Vergleich zu heutigen Spielen minimalistisch erscheinen, doch sie verleiht dem Projekt eine einzigartige Aura und verändert die Perspektive auf die Möglichkeiten von Skripten auf der Windows-Befehlszeile. Ein wichtiger Aspekt für die Verwendung ist die Kompatibilität. Das Spiel ist speziell für die Windows 10-Kommandozeile optimiert, mit modernem „conhost“ oder Windows Terminal, wobei die Schriftart auf Consolas eingestellt wird. Da Unicode-Zeichen für die Darstellung genutzt werden, können Probleme auftreten, wenn das System keine Unicode-Unterstützung bietet oder eine veraltete Eingabeaufforderung genutzt wird.

Hierfür gibt es im Repository auch alternative Versionen, die auf reine ASCII-Zeichen setzen, um die Anzeige zu ermöglichen. Darüber hinaus bietet das Projekt die Möglichkeit, eigene Karten zu erstellen und einzuspielen. Die Karten werden über einfache Textdateien definiert, in denen verschiedene Zeichen unterschiedliche Elemente abbilden. Der Punkt (.) steht beispielsweise für leeren Raum, während andere Zeichen Wände oder die Spielerposition bestimmen.

Auf diese Weise ist das Spiel nicht nur ein technisches Experiment, sondern auch eine kreative Spielwiese für Nutzer, die eigene Umgebungen gestalten und erkunden möchten. Die einfache Struktur der Karte ermöglicht auch experimentelle Leveldesigns und trägt zur Langlebigkeit des Projekts bei. Neben dem originären Batch-Skript existiert auch eine optimierte Version, die schneller läuft – jedoch auf Kosten der Lesbarkeit des Codes. Diese Kompromisse spiegeln die Anforderungen und Herausforderungen wider, denen sich Entwickler bei der Arbeit in solcher Umgebung stellen müssen: Performance gegen Verständlichkeit und Wartbarkeit der Skripte. „batch-raycaster“ zeigt eindrucksvoll, wie man konzeptionelle Schranken mit Feinfühligkeit und technischem Geschick überwinden kann.

Das Projekt ist eine Art Hommage an die frühe Ära der Computergrafik und ein glänzendes Beispiel für experimentelles Programmieren, das zum Nachdenken darüber anregt, was mit scheinbar eingeschränkten Mitteln alles möglich ist. Für Interessierte bietet der Entwickler zudem eine ausführliche Analyse des Projekts an, die näher auf die Funktionsweise eingeht und die Besonderheiten sowie die Gründe hinter manchen Implementierungsentscheidungen erklärt. Diese Transparenz spricht sowohl technisch ambitionierte Nutzer als auch Fans der Computergeschichte an. Zusammenfassend ist der Wolfenstein3D-artige Raycaster in Windows Batch ein faszinierendes Projekt, das technische Kreativität und Begeisterung für Retro-Gaming verbindet. Die gelungene Umsetzung in einer unerwarteten Sprache wie Batch eröffnet neue Perspektiven für Hobbyprogrammierer und Spielentwickler und zeigt, dass Innovation auch in den ungewöhnlichsten Kontexten entstehen kann.

Dieses Projekt stellt damit nicht nur eine spielerische Herausforderung dar, sondern gleichzeitig einen wertvollen Beitrag zur digitalen Bastelkultur und zur Belebung von Programmierideen abseits der Mainstream-Pfade.

Automatischer Handel mit Krypto-Geldbörsen Kaufen Sie Ihre Kryptowährung zum besten Preis

Als Nächstes
Show HN: Kameo – a toolkit for creating interactive web forms in rich text
Samstag, 28. Juni 2025. Kameo: Das innovative Toolkit für interaktive Webformulare in Rich Text

Kameo ist ein modernes Werkzeug zur Erstellung und Darstellung interaktiver Webformulare im Rich-Text-Format. Es verbindet die Flexibilität von ProseMirror mit leistungsfähigen Features für dynamische Formulare und unterstützt moderne Webtechnologien, was es zu einem spannenden Tool für Entwickler und Content-Ersteller macht.

The MAGA revolution threatens America's most innovative place
Samstag, 28. Juni 2025. Wie die MAGA-Revolution das innovativste Zentrum Amerikas gefährdet

Die finanziellen Einschnitte und politischen Veränderungen durch die MAGA-Bewegung bedrohen Bostons Wissenschafts- und Innovationslandschaft, eines der bedeutendsten Technologie- und Forschungszentren der USA.

Returning several values from a function in C++ (C++23 edition)
Samstag, 28. Juni 2025. Mehrere Werte aus einer Funktion in C++ zurückgeben – Moderne Ansätze mit C++23

Erfahren Sie, wie Sie in C++ mit den neuesten Standards mehrere Werte aus Funktionen zurückgeben können. Von std::pair über std::tuple bis hin zu std::expected und std::optional – moderne Techniken vereinfachen die Programmierung und verbessern die Fehlerbehandlung.

Biden Diagnosed with Metastatic Prostate Cancer
Samstag, 28. Juni 2025. Joe Biden und die Diagnose: Metastasierter Prostatakrebs – Was bedeutet das für den Präsidenten und die Öffentlichkeit?

Die Diagnose von metastasierendem Prostatakrebs bei Joe Biden wirft wichtige Fragen zu Gesundheit, Behandlung und Auswirkungen auf sein Amt auf. Ein umfassender Überblick über die Krankheit, Therapiemöglichkeiten und die Bedeutung für das politische Leben des US-Präsidenten.

Hong Kong Police Bust $15M Crypto Money Laundering Ring
Samstag, 28. Juni 2025. Hongkong zerschlägt Kryptowährungs-Geldwäschering im Wert von 15 Millionen US-Dollar

Die Polizei in Hongkong hat einen bedeutenden Geldwäschering aufgedeckt, der Kryptowährungen nutzte, um illegal erworbenes Geld in Millionenhöhe zu verschleiern. Dieser Beitrag beleuchtet die Ermittlungen, die Taktiken der Täter sowie die weitreichenden Auswirkungen auf die Finanzwelt Hongkongs.

YouTube's new ads will ruin the best part of a video on purpose
Samstag, 28. Juni 2025. YouTube Peak Points: Neue Werbeformate zerstören die besten Momente in Videos

YouTube führt mit ‚Peak Points‘ ein neues, KI-gestütztes Werbeformat ein, das gezielt die spannendsten Momente in Videos unterbricht. Dieses Vorgehen stößt bei Nutzern auf heftige Kritik, da es das Erlebnis erheblich beeinträchtigt und die Freude an den Inhalten mindert.

Collatz's Ant and Similarity of Landscapes
Samstag, 28. Juni 2025. Collatz's Ameise und die faszinierende Ähnlichkeit von Landschaften: Ein tiefer Einblick

Eine umfassende Analyse der Collatz-Ameise und deren Landschaften. Erforschen Sie, wie Stoppzeiten, maximale Entfernungen und der Zeitpunkt des Erreichens dieser Entfernungen Zusammenhänge in scheinbar chaotischen Trajektorien aufdecken und warum manche Landschaften überraschende Ähnlichkeiten aufweisen.