Zum Hauptinhalt springen
Getly

Benötigt Blender 4.2 oder neuer · Kostenlos

Getly Publisher für Blender

Eine Blender-Erweiterung. Sie liest Ihre Datei so, wie das Blender des Käufers sie lesen wird, sagt Ihnen, was kaputtgeht, und behebt mit einem Klick, was zu beheben ist. Jede Prüfung läuft offline, ohne Konto; die Anmeldung ist ein getrennter, optionaler Schritt.

Das Problem, gemessen

Eine .blend speichert Pfade, keine Dateien. Beim Autor öffnet sie sich einwandfrei, weil seine Texturen noch auf seiner eigenen Platte liegen; der Käufer öffnet sie, und jede Oberfläche ist flach magenta. Heute trägt Getly 25 aktive Blender-Produkte in 6 Shops und genau eine .blend-Datei im gesamten Katalog, weil Verkäufer Archive ausliefern.

Jede Entscheidung, und was sie gekostet hat

01

Das Tor öffnet das Archiv, statt die Dateiendung zu lesen

Warum

25 der 25 aktiven Blender-Produkte kommen als .zip. Ein Tor, das an der Endung hängt — so wie das für Unity —, hätte bei fast keinem davon angeschlagen. Das Archiv zu öffnen ist auch das, was die wichtigste Prüfung richtig statt bloß streng macht: Eine Textur, die nicht in die .blend eingebettet ist, ist kein Mangel, wenn sie im selben Download direkt daneben liegt.

Was es gekostet hat

Ein Zip-Leser, auf Bytes, die ein Fremder hochgeladen hat, mit allen Grenzen, die das verlangt. Er erklärt etwas erst dann zum Archiv, wenn wirklich eine .blend oder ein Erweiterungs-Manifest darin liegt, damit die Hunderte gewöhnlicher Zips im Katalog einmal gelesen und dann in Ruhe gelassen werden.

02

Sie behebt, denn ein reiner Melder verliert gegen einen Menüpunkt

Warum

Blender liefert Report Missing Files, Make Paths Relative und Pack Resources seit Jahren mit. Ein Werkzeug, das nur wiederholt, was die sagen, konkurriert mit etwas bereits Installiertem und verliert auf jeder Achse, die Kosten der Installation eingeschlossen. Dieses führt dieselben Schritte in der richtigen Reihenfolge mit einem Klick aus — Pfade werden vor dem Einbetten relativ gemacht, damit späteres Entpacken einen funktionierenden Pfad hinterlässt statt des absoluten vom Anfang — und sagt danach genau, was es geändert hat.

Was es gekostet hat

In das Projekt eines anderen zu schreiben ist eine ernste Sache. Deshalb listet sie auf, was sie ändern wird, bevor sie irgendetwas ändert, und sie speichert die Datei nie: Sie sehen sich das Ergebnis an und speichern selbst.

03

Jede Prüfung läuft offline, ohne Konto

Warum

Das Werkzeug muss die Installation auch für jemanden wert sein, der nie etwas auf Getly verkaufen wird. Ein Validator mit angehängtem Laden ist eine Anzeige, und Blenders eigenes Erweiterungs-Repository — ein kostenloser, offizieller Kanal in der Anwendung selbst — würde ihn als solche lesen.

Was es gekostet hat

Wir erfahren nichts darüber, wer es installiert und was es findet, solange sich die Nutzer nicht anmelden. Die Prüfliste ist deshalb an Dateien kalibriert, die wir selbst erstellen, und nicht daran, worauf Verkäufer tatsächlich stoßen.

04

Eine Datei, die wir nicht lesen können, gilt als „nicht geprüft“, nicht als Ablehnung

Warum

Ein handgeschriebener Leser für ein selbstbeschreibendes Format trifft irgendwann auf eine Blender-Version, die er nicht versteht. An diesem Tag muss das Ergebnis „wir konnten das nicht prüfen“ lauten und nicht „jeder Blender-Verkäufer wird abgelehnt“. Die eine Ausnahme ist eine Datei, die überhaupt keine .blend ist — die öffnet Blender ebenfalls nicht, und genau das soll dem Käufer erspart bleiben.

Was es gekostet hat

Eine absichtlich beschädigte Datei kommt durch. Die erstatten wir lieber zurück, als in der Woche einer neuen Blender-Version die Plattform für alle stillzulegen, die Blender-Arbeiten verkaufen.

05

Sie steht unter GPL, die Prüfungen sind also forkbar — und genau deshalb entscheidet der Server

Warum

Die Blender Foundation behandelt die Python-API als Teil von Blender, alles darauf Gebaute wird also GPL-kompatibel ausgeliefert. Das heißt: Unsere Prüfliste und unser Anmeldeablauf sind für jeden lesbar und forkbar. Wir haben das nicht umgangen; es ist genau der Grund, warum Getly die hochgeladenen Bytes erneut liest, statt einem Bericht aus einem Programm zu vertrauen, das der Verkäufer kontrolliert.

Was es gekostet hat

Nichts im Client ist ein Burggraben. Bleiben die Serverseite und das Urteil, das in der Prüfliste steckt — und die Lizenz berührt weder das eine noch das andere.

Was wir zuerst falsch gemacht haben

Diese Fehler wurden gefunden, bevor ein Käufer sie gesehen hat — nur deshalb können wir sie aufschreiben. Sie stehen hier, weil die Entscheidungen weiter oben weniger lehren als die Fehler.

Wir schrieben

Ein Pfad-Scanner, der jede gut gemachte Datei abgelehnt hätte.

Die Wahrheit

Der Plan war, die entpackten Bytes nach rechnergebundenen Pfaden zu durchsuchen, so wie das Unity-Prüfwerkzeug Textdateien durchsucht. Die Messung an echten Dateien erledigte ihn in einer Minute: Jede .blend, die Blender schreibt, enthält einen eigenen /Users/…-Pfad, und ein korrekt EINGEBETTETES Bild speichert den absoluten Quellpfad des Autors in der Datei. Der Scan hätte bei fehlerfreier Arbeit am heftigsten angeschlagen. Der Leser wertet jetzt die Typbeschreibung der Datei selbst aus und liest benannte Felder aus benannten Strukturen.

Für Ihren Eintrag

Testen Sie Ihre Idee an einem guten Beispiel, bevor Sie sie bauen. Beschwert sie sich über etwas, von dem Sie wissen, dass es richtig ist, dann ist die Idee falsch — nicht das Beispiel.

Wir schrieben

Ein Leser, der bei jedem mit Finder gebauten Archiv abstürzte.

Die Wahrheit

macOS schreibt beim Komprimieren neben jede echte Datei eine Begleitdatei, abgelegt in einem parallelen __MACOSX-Ordner und benannt ._yourfile.blend. Ihr Name endet auf .blend, und eine .blend ist sie nicht. Der Leser nahm sie auf und warf einen Fehler, was die Prüfung für jeden Mac-Verkäufer auf der Plattform kaputtgemacht hätte. Ein selbst zusammengebautes Testarchiv hätte das nie gezeigt; das mit dem echten Werkzeug gebaute zeigte es sofort.

Für Ihren Eintrag

Bauen Sie Ihre Testdateien mit dem Werkzeug, das Ihr Käufer benutzt, nicht mit dem bequemen. Unsere funktionierten nur, weil wir aufgehört haben, Archive von Hand zusammenzusetzen.

Wir schrieben

Eine 407-KB-Datei, die als 1 236 Bytes zurückkam und gut aussah.

Die Wahrheit

Blender komprimiert mit Zstandard in mehreren aufeinanderfolgenden Frames. Der Standard-Dekompressor gibt den ersten Frame zurück und hört auf — kein Fehler, keine Warnung, nur ein gültig aussehender Header und fast nichts von der Datei. Wir haben es nur bemerkt, weil ein Test die komprimierte Kopie mit ihrem unkomprimierten Zwilling verglich.

Für Ihren Eintrag

Die teuersten Fehler sind die, die wie Erfolg aussehen. Vergleichen Sie gegen ein bekannt gutes Ergebnis, nicht gegen „hat es einen Fehler geworfen“.

Wir schrieben

Ein Abzeichen „Prüfung bestanden“, das für eine Datei bürgen konnte, die niemand geöffnet hatte.

Die Wahrheit

Zwei Wege schreiben einen Bericht für eine Datei, die wir bewusst nicht gelesen haben — über der Größengrenze, und eine, die unser Leser nicht auswerten konnte. Beide speichern eine leere Befundliste, und „keine Befunde“ wurde weiter hinten als „nichts falsch“ gelesen. Falsch ausgezeichnet war noch niemand, aber der nächste Verkäufer, der bei einem großen Paket auf „Prüfen“ drückt, wäre es gewesen. Der Bericht hält jetzt fest, ob wir die Datei tatsächlich geöffnet haben.

Für Ihren Eintrag

„Wir haben nichts gefunden“ und „wir haben nicht nachgesehen“ haben dieselbe Form und entgegengesetzte Bedeutung. Überall, wo Ihr Eintrag eine Prüfung nahelegt, muss er die beiden auseinanderhalten können.

Was es nicht tut

  • Es ist kein Virenscanner. Eine .blend kann Python enthalten, und die Prüfung sagt Ihnen, wenn ein Skript zum Ausführen beim Öffnen markiert ist — eine Tatsache über die Datei, kein Urteil über Sie.
  • Es beurteilt nicht, ob Ihr Asset gut ist. Nur, ob es funktionsfähig ankommt.
  • Es kann nicht sagen, ob ein Render zu den Bildern in Ihrem Eintrag passt. Es kann Ihnen sagen, dass die Datei kein Licht enthält, mit dem man sie nachstellen könnte.
  • Es ist nur für Blender. Eine Unity-Version gibt es; für Unreal, Photoshop oder Cinema 4D gibt es nichts.

Wie wir uns überzeugt haben

Blender hat jede Testdatei geschrieben

Keine einzige Testdatei wurde von Hand zusammengesetzt. Das ganze Risiko eines Formatlesers liegt darin, dass das Format nicht so ist wie angenommen, und eine handgebaute Testdatei schreibt die Annahme zweimal fest, statt sie einmal zu prüfen. Diese Disziplin hat drei verschiedene Fehler gefunden, bevor einer davon ausgeliefert wurde.

Mehr Tests prüfen, was NICHT abgelehnt werden darf, als das, was abgelehnt werden muss

Eine Datei mit eingebetteten Ressourcen, eine .blend neben ihrem Texturordner, ein mit Finder gebautes Archiv, ein prozedurales Material, eine Materialbibliothek ganz ohne Objekte. Zu beweisen, dass ein Prüfwerkzeug Mängel findet, ist die leichte Hälfte; zu beweisen, dass es bei guter Arbeit still bleibt, ist die Hälfte, die entscheidet, ob es überhaupt jemand weiter liest.

Der Prüfstand hat selbst einmal gelogen, und das zu finden war es wert

Er meldete PASSED, während eine Zusicherung fehlschlug, weil ein Python-Skript, das innerhalb von Blender mit einem Fehlercode endet, die Shell nicht erreicht. Ein Test, der nicht fehlschlagen kann, ist schlimmer als kein Test, also ist das Urteil jetzt eine Markerzeile, nach der die Shell sucht — eine fehlende Zeile zählt ebenfalls als Fehlschlag —, und der Prüfstand wird gegen einen absichtlich kaputten Build geprüft.

Der Eintrag selbst

Die Beschreibung beginnt mit dem Erlebnis des Käufers, nicht mit unserem

Sie öffnet mit der magentafarbenen Oberfläche, denn das ist das, was ein Blender-Autor sofort wiedererkennt und wahrscheinlich schon einmal genau so ausgeliefert hat. Dann, was die Veröffentlichung blockiert, dann die ehrliche Antwort auf „Blender hat doch Pack Resources“ — der Einwand, den jeder erfahrene Verkäufer zuerst bringt.

Das Titelbild zeichnet den Fehler, nicht das Werkzeug

Eine Lupe könnte zu jedem Marktplatz gehören. Dieses zeichnet eine Textur, die aus einer Datei entwischt, und das Maskottchen, das nach ihr greift — in Thumbnail-Größe lesbar und buchstäblich das, was das Produkt verhindert. Das Wort ist von Hand geschrieben statt ein kopiertes Logo.

Kostenlos, und obendrein GPL

Alles, was auf Blenders Python-API aufbaut, wird GPL-kompatibel ausgeliefert, der Quelltext ist also lesbar und forkbar. Dafür Geld zu nehmen hieße, für den eigenen Qualitätsanspruch Geld zu nehmen.

Ein Archiv, gebaut von Blenders eigenem Builder

Der Download wird von dem Erweiterungs-Builder erzeugt, den Blender mitliefert, und nicht von Hand gezippt — daher wissen wir auch, dass das Manifest gültig ist, denn der Builder verweigert ein ungültiges.

Unser eigenes Prüfwerkzeug fand ein echtes Problem in unserem eigenen Paket

Beim Veröffentlichen läuft dasselbe Tor, das jeder Verkäufer passiert. Es kam mit einem Befund zurück: Das Archiv hatte kein README, was eine unserer eigenen zwölf hinweisenden Prüfungen ist. Wir haben das Paket repariert statt die Prüfung, und das dabei entstandene README ist jetzt das, was der Eintrag und das Erweiterungs-Repository beide zeigen.