Blog
Neue Features für den Retro Carnage-Editor
📅 2025-04-22 - 🧔 Thomas
Der Asset-Manager des Retro Carnage-Editor hat in diesem Monat eine Reihe neuer Features bekommen.
Heute habe ich eine neue Eigenschaft für grafische Assets (Sprites) hinzugefügt, mit der man den Anker des Sprites konfigurieren kann, sofern das Sprite als Tile verwendet wird. Bei einem als Tile markierten Sprite wird der gewählte Bereich mit dem Sprite gefüllt, indem das Sprite wie eine Kachel immer horizontal und vertikal wiederholt wird.
Auf dem Screenshot sind die globale und lokale Verankerung im Vergleich zu sehen. Im oberen Bereich sind zwei überlappende Sprites mit globaler Verankerung dargestellt. Der überschneidende Bereich ist nahtlos gefüllt, womit sich mehrere Bereiche zu einem gemeinsamen Bereich mit durchgehender Textur verbinden lassen. Im unteren Bereich sind zwei überlappende Sprites mit lokaler Verankerung zu sehen. Die Textur ist nicht durchgehend, weshalb beide Bereiche gut zu unterscheiden sind.
Beide Arten von Verankerung haben ihre Vorteile:
- Aus Sprites mit globaler Verankerung lassen sich einfach durchgehende Formen erzeugen - etwa um mehrere Formen zu komplizierten Gebilden, wie Wegen, Bächen, Wäldern usw. zu kombinieren.
- Sprites mit lokaler Verankerung lassen sich immer dann nutzen, wenn Bereiche einen festgelegten Anfang und Ende haben. Im Beispiel ist dies der Sockel der Mauer. Der Bereich des Sprites kann so verschoben werden, wobei der Sockel der Mauer immer am unteren Ende des Bereiches verbleibt.
Vorab-Releases für März 2025
📅 2025-03-29 - 🧔 Thomas
Auch im März gibt es frische Vorab-Releases zum Download. Dieses Mal sogar im Doppelpack aus Spiel und Level-Editor.
Retro Carnage
Downloads
Was sich geändert hat
Features
- Improved screen layout of game screen (details)
Fehlerkorrekturen
- Fixed invisible controller option selection (details)
Sonstiges
- Updated asciinema recording of the build process (details)
Retro Carnage-Editor
Für den Retro Carnage-Editor steht ebenfalls ein aktualisiertes Vorab-Release bereit.
Downloads
Was sich geändert hat
In dieser Version sind über 80 Änderungen zusammengefasst. Darunter sind etliche nicht-sichtbare Verbesserungen des Codes, Bugfixes und kleine Verbesserungen.
Retro Carnage-Dekoration
📅 2025-03-26 - 🧔 Thomas
Heute wurde ich von einem lieben Arbeitskollegen mit einem Geschenk überrascht.
Der Retro Carnage-Schriftzug ist ziemlich groß, wie man auf dem Foto gut sehen kann. Bei Wärme wechselt der Kunststoff vorübergehend die Farbe - sehr cool. Ich hab' mich riesig gefreut; nochmals vielen Dank an Dich, Inan. Auf der Maker Faire im August wird das gute Stück sicherlich ein toller Hingucker auf dem Ausstellungstisch.
Aufnahmen von neuen Gegnern vorbereitet
📅 2025-03-16 - 🧔 Thomas
Als ich vor knapp fünf Jahren die ersten Aufnahmen für die Spieler-Avatare und Gegner gemacht habe, habe ich relativ wenig geplant und viel experimentiert. Ich habe eine Obstkiste mit Papier ausgekleidet, die Puppen in verschiedene militärische Outfits gesteckt und an Drähten aufgehängt. Die Puppen habe ich dann immer wieder neu positioniert und dann fotografiert. Auf diese Weise sind die rund 450 Aufnahmen entstanden, aus denen die Bewegungsanimationen der Figuren zusammengesetzt sind.
Learnings
Aus dieser Erfahrung habe ich einige Dinge gelernt:
- Hunderte von Bildern anzufertigen und nachzubearbeiten ist ein riesiger Aufwand.
- Der Winkel der Aufnahmen ist wichtig: Die Figuren bewegen sich im Spiel zwischen vielen anderen Elementen. Diese müssen alle aus dem identischen Winkel dargestellt werden.
- Die Ausrichtung und Position der Figur muss unbedingt identisch sein. Unterschiede in den Aufnahmen kann man zwar teilweise über Nacharbeiten der Bilder und Programm-Code ausgleichen, was aber deutlich aufwändiger ist.
- Für flüssige Bewegungen braucht es viele Aufnahmen. Aktuell sind es - je nach Figur und Ausrichtung zwischen 6 und 9 Aufnahmen. Das ist nicht ausreichend.
Neuer Ansatz
Stabiler Winkel von 45°
Für die ersten Aufnahmen vor fünf Jahren habe ich ein ziemlich wackeliges Handy-Stativ genutzt. Die Idee hat sich als wenig praktikabel herausgestellt, da es kaum möglich war die Position und Ausrichtung der Handy-Kamera stabil zu halten. Ich hatte eine ganze Weile darüber nachgedacht eine stabilere Halterung als Holz bauen, hatte gestern aber die Idee einen Prototypen aus Klemmbausteinen zu basteln. Das hat ertaunlich gut geklappt.
Stabile Ausrichtung und Position
Auf diesem Bild sieht man den ganzen Aufbau meines improvisierten Foto-Studios auf meinem Esstisch. Das Handy-Stativ habe ich auf einem Stapel Bücher platziert und auf die Spielzeug-Figur ausgerichtet. Die Spielzeug-Figur ist mit transparenter Schnur an einer einfachen Halterung aus Holz fixiert. Diese Halterung ist so auf einer drehbaren Platte platziert, dass die Figur immer genau im Zentrum der Platte gehalten wird. Damit kann der Winkel der Aufnahme sehr einfach angepasst werden. Die Figur bleibt also in Position, wärend Aufnahmen aus -90°, -45°, 0°, 45° und 90° geschossen werden können.
Verbesserter Workflow
Ich nutze nun eine einfache Fernsteuerung zum Auslösen der Aufnahme. Diese Bluetooth-Gadgets gibt es für kleines Geld. Die Fernsteuerung verhindert, dass ich durch ständiges Berühren des Bildschirms das Stativ verschiebe.
Die Aufnahmen fertige ich mit meinem Android-Handy an. Auf dem Handy habe ich die Next-Cloud-App installiert. Diese kopiert neue Fotos sofort in meine Next-Cloud-Instanz. Auf meinem Laptop habe ich Nextcloud-Desktop installiert und bekomme die Aufnahmen damit direkt in mein Arbeitsverzeichnis übertragen.
Da die Position der Spielzeug-Figur auf meinen Aufnahmen nun sehr stabil ist, kann ich die ersten Verarbeitungs-Schritte ebenfalls automatisieren. Zum Freistellen der Figur werde ich rembg nutzen. Das weitere Zuschneiden werde ich wahrscheinlich mit ImageMagick und GIMP erledigen.
Ergebnisse
Die ersten Probe-Aufnahmen sind schon ganz vielversprechend, finde ich:
Für die finalen Aufnahmen der Gegner werde ich den Aufbau wahrscheinlich noch etwas verschieben, um die Lichtverhältnisse zu verbessern. Ausserdem werde ich eine Seite Papier hinter den Roboter klemmen und so hoffentlich noch bessere Ergebnisse bei der automatischen Freistellung zu erzielen.
Migration von GitHub zu Codeberg
📅 2025-03-04 - 🧔 Thomas
Vor kurzem hat die zweite Amtszeit von Donald Trump begonnen. Wie von Trump selbst angekündigt und vorab erwartet wurde, hat er es innerhalb kurzer Zeit geschafft politische, gesellschaftliche und ökonomische Gewissheiten nicht mehr ganz so gewiss erscheinen zu lassen. Vor diesem Hintergrund liest man in IT-Medien immer häufiger Berichte und Kommentare über die digitale Souveränität Europas.
Die politischen Ereignisse der letzten Woche haben mich dann neugierig gemacht, ob ein Verzicht auf amerikanische IT-Dienstleistungen überhaupt möglich sind, und mich so zu einem Selbst-Experiment angespornt. Ich habe deshalb fast sämtliche Accounts, die ich direkt bei amerikanischen Unternehmen wie Amazon, Disney, eBay, GitHub, Netflix, Paypal und Co. hatte, gekündigt. Soweit es notwendig war, habe ich die durch europäische Angebote ersetzt. Zu 100% ist mein Experiment noch nicht abgeschlossen, da ich etwa für mein Android-Telefon auf einen Google-Account angewiesen bin. Auch für meinen Microsoft Azure-Account habe ich noch keinen gleichwertigen Ersatz gefunden.
GitHub zu ersetzen, war hingegen relativ leicht. Hiervon ist auch das Retro Carnage-Projekt betroffen, da ich die Organisation inkl. sämtlicher Repositories zu Codeberg.org migriert habe. Codeberg ist eine demokratische, gemeinschaftsgetriebene, gemeinnützige Softwareentwicklungsplattform, die von Codeberg e.V. mit Sitz in Berlin betrieben wird. Die Idee finde ich so überzeugend, dass ich direkt einen Mitgliedsantrag für den Verein gestellt habe.
Für Retro Carnage selbst hat der Umzug zu Codeberg.org nur wenige Auswirkungen. Ich werde in den kommenden Tagen die Referenzen in der Dokumentation und im Quelltext aktualisieren, in welchen auf GitHub.com verwiesen wird. Dies ist etwa bei meinem Fork von Pixel2 der Fall, auf welchen dann wiederum in Retro Carnage verwiesen wird. Ich hoffe, dass ich das alles bis zum Wochenende fertig haben werde.