Berserk Boy ist ein Paradebeispiel dafür, wie die GameMaker Studio-Engine moderne Pixelkunst maximal ausreizen kann, indem sie mit Titeln wie Mega Man X und Sonic der 16- und 32-Bit-Ära huldigt. Sein visueller Stil zeichnet sich durch hochgesättigte Farben und extrem schnelle Animationen aus, begleitet von Bewegungsunschärfeeffekten, die an Action-Klassiker erinnern. In diesem Artikel analysieren wir die Entwicklungstechniken, die dieses Ergebnis ermöglichen, von der Erstellung von Sprites in Aseprite bis zur Echtzeit-Leistungsoptimierung in GameMaker. 🎮
Optimierung von Sprites und Bewegungsnachzieheffekten in Aseprite und GameMaker 🚀
Um dieses Gefühl von Flüssigkeit und Geschwindigkeit zu erreichen, greift das Team von Berserk Boy auf eine gesättigte, aber begrenzte Farbpalette zurück, was das Gewicht der Sprites reduziert und das Rendern in GameMaker erleichtert. In Aseprite wird mit Keyframes gearbeitet, die dann manuell interpoliert werden, wodurch Animationen mit 12 bis 15 Bildern pro Sekunde entstehen, jedoch mit einem sehr präzisen Timing, damit das menschliche Auge Kontinuität wahrnimmt. Der Nachzieheffekt wird durch Bewegungsspur-Sprites (Trail Sprites) erzielt, die als temporäre Oberflächen mit abnehmender Deckkraft gezeichnet werden. In GameMaker wird dies mit der Funktion draw_sprite_ext implementiert, deren Alpha-Wert bei jedem Step reduziert wird, während die vorherigen Positionen der Spielfigur in einer Warteschlange (ds_queue) gespeichert werden. Um die Leistung zu erhalten, wird die Länge der Warteschlange auf 8 oder 10 Einträge begrenzt und die Verwendung von hochauflösenden Oberflächen vermieden. Zudem wird empfohlen, für die Spuren den Mischmodus bm_add zu verwenden, da dieser die Farben intensiviert, ohne den Bildschirmpuffer zu übersättigen.
Lektionen aus den 90ern für die moderne Entwicklung 💡
Berserk Boy zeigt, dass Pixelkunst nicht nur Nostalgie ist, sondern eine intelligente technische Wahl. Durch die Begrenzung der Palette und die Verwendung kleiner Sprites (Tile-Größe 16x16 Pixel) wird die GPU-Last reduziert und GameMaker kann mehrere Gegner und Partikel ohne Frame-Einbrüche verarbeiten. Der Verweis auf Sonic und Mega Man X ist kein Zufall: Beide Titel verwendeten lebendige Farben, um den Spieler visuell zu führen, und Berserk Boy wendet dasselbe Prinzip mit kontrollierten Sättigungseffekten an. Für unabhängige Entwickler liegt der Schlüssel darin, der visuellen Klarheit Vorrang vor der grafischen Komplexität zu geben und Werkzeuge wie Aseprite zu verwenden, um modulare Sprites zu erstellen, die in verschiedenen Animationen wiederverwendet werden können. So wird ein schneller, sauberer und funktionaler Stil erreicht, der ideal für 2D-Actionspiele ist.
Als Indie-Entwickler: Welche Techniken der Pixelkunst und schnellen Animation habt ihr in Berserk Boy mit GameMaker Studio implementiert, um einen so flüssigen Kampf zu erreichen, ohne die Retro-Ästhetik zu opfern?
(PS: Shader sind wie Mayonnaise: Wenn sie gerinnen, fängt alles wieder von vorne an)