Geometry: Circle
Schließlich hat man sonst nichts zu tun
Die Zeit, in der Videospiele auf Modulen festgebrannt waren und nach dem Einschalten der Konsole anstandslos liefen, hatte etwas magisches. Es gab meistens keine Tutorials, keine Erklärungen, höchstens vielleicht eine Option, auf der man die Steuerung umstellen konnte oder einen Hinweis, wie die Tasten belegt waren. Mehr brauchte man nicht.
Im Rahmen eines anderen Projekts, dessen Spritegrafik ein wenig an diese Zeit erinnern soll, benötige ich Kollisionserkennung. Es ist ab einer gewissen Anzahl von Partikeln und Komplexität der Figuren nicht mehr trivial die Berechnungen in JavaScript auszuführen. Aus diesem Grund wollte ich abseits des Projekts ein paar Sachen testen, um einen Einstieg in die Kollisionserkennung zu erhalten und die gewonnenen Erkenntnisse später in das Hauptprojekt einfließen zu lasten.
Geometry: Circle ist das Resultat dieses Tests. Es ist, wie der Name schon sagt, ein auf Kreisen basiertes Spiel, wodurch sich die Kollisionsabfrage äußerst angenehm gestaltet: sollte der Abstand zweier Partikel, welche sich gegenseitig beeinflussen können, niedriger sein als die Summe ihrer Radien, so berühren sie sich. Da dies relativ einfach zu bewerkstelligen war habe ich anschließend noch Partikelmodifikatoren eingebaut, welche die Schüsse des Spielers entweder anziehen oder aber wegdrücken.
Interessant ist leider auch, dass die Berechnungen, obwohl sie nicht optimiert sind, im Schnitt eine nicht messbare Zeit brauchen (0ms), das Zeichnen hingegen meistens mindestens 3ms benötigt. Erst bei einer großen Anzahl von Partikeln und Modifikatoren lässt sich der Aufwand eienr Aktualisierung des Spiels überhaupt messen, allerdings ist auch dann der grafische Aufwand um einiges höher.
Geometry: Circle enthält nur diese Art der Kollisionsabfrage, zukünftige Versionen müssen aber in der Lage sein, komplexere Kollisionsabfragen zu überprüfen und, wegen der sich daraus ergebenden Leistungsminderung, eine höheren Grad der Optimierung vorweisen. Mit einer Verbesserung bei den JavaScript-Engines der einzelnen Browser dürfte die Zukunft auch weitere interessante HTML5-Spiele für den Spieler unterwegs zu bieten haben. An dieser Stelle ein kleiner Hinweis: das Spiel sollte nicht von einem Smartphone gespielt werden, Nutzer eines mobilen PCs ohne Netzbetrieb sollten den Sound ausschalten, dadurch wird die CPU-Last immens gesenkt.
Viel Spaß beim Spielen :).
