Hyper Engine
Ich arbeite aktuell an der Hyper Engine, eine in TypeScript implementierte Game Engine. In diesem ersten Artikel möchte ich euch darüber informieren und die nächsten geplanten Schritte erörtern. Das Projekt wurde für einen speziellen Einsatzzweck gestartet und hat mittlerweile ein Eigenleben entwickelt, aber gleich dazu mehr.
Hyper Engine
Interessierte Leser können sich gleich den Code anschauen und probieren, man findet den aktuellen Stand auf meinem GitHub Account. Was ist die Hyper Engine und warum entwickle ich diese?
Story behind
Seit einigen Wochen arbeite ich mehr oder weniger Intensiv an einer Neuentwicklung meines Lieblingsprojekt der letzten Jahre, meinem Racing Manager. Die alte Version ist aktuell unter racing-manager.com für alle frei zugänglich und den Source Code habe ich vor einiger Zeit veröffentlicht. Der alte PHP Code ist zwar lauffähig, müsste aber gründlich gewartet werden. Ich habe mich jedoch entschlossen die ganze App in einem Microservice Umfeld komplett neu aufzusetzen. Als Technologie dient ASP.NET Core mit einigen Features wie einem Identity Server und einer möglicherweise irgendwann mal frei zugänglichen API. Das Backend kann man so relativ schön neu erstellen, am Frontend bleibt dann aber doch eine wenig moderne formularbasierte Darstellung. Das muss komplett in einer aktuellen „Engine“ neu erstellt werden damit man die Features aktueller Browser ausreizen kann. Die Simulation soll nicht nur Tabellenfreaks ansprechen sondern auch grafisch ansprechende spannende Momente liefern.
Was ist Hyper?
Hyper ist aktuell eine in Entwicklung befindliche Engine implementiert in TypeScript. Aktuell können Primitive (Quader und Dreiecke) und Sprites in 2D gerendert werden. Einem Tutorial folgend entwickelt und mit zusätzlichen Features erweitert ist diese rudimentäre Engine nun eine mögliche Basis um Rennen für meinen Manager darzustellen. Das Projekt ist in Visual Studio Code entwickelt, kann also unabhängig der Plattform genutzt werden.
Roadmap
Ich verfolge aktuell 2 Ziele mit der Engine:
- Umsetzen einer realistischen Darstellen der Rennen für meinen Simulator
Es sollen sich mehr Spieler finden, die spannende Rennen und Saisonen erleben. - 3D-Fähigkeit
Ich möchte eine solide Basis haben mit der ich schnell Szenen in 3D im Browser abbilden kann und Demos realisieren kann. Eventuell ist eine Darstellung der Rennen langfristig in 3D auch ein realistisches Ziel.
Als inoffizielles Ziel verfolge ich diese Engine auch als Open Source Projekt für andere interessierte Entwickler zu erstellen. Ob das funktioniert wird sich zeigen.
Fazit
Das war ein erster kurzer allgemeiner Einblick in meine aktuellen Tätigkeiten und meine Bemühungen eine eigene Engine zu erstellen. TypeScript hat mich völlig unerwartet begeistert. Ich konnte mir bisher nicht vorstellen näher in der Frontend Entwicklung Fuß zu fassen und schon gar nicht etwas mit JavaScript zu implementieren. TypeScript hat diese Hürde entfernt und es macht sehr viel Spaß mit einer neuen Sprache endlich Ideen vieler Jahre praktisch umzusetzen.