Zum Hauptinhalt springen
Getly

Benötigt Unity 2020.3 oder neuer · Kostenlos

Getly Publisher für Unity

Ein Unity-Editor-Paket. Es prüft den Asset-Ordner, den Sie verkaufen wollen, und reicht den Eintrag anschließend als Entwurf ein, ohne dass Sie den Editor verlassen. Es ist kostenlos, und es ist das erste Produkt, das Getly für sich selbst veröffentlicht hat.

Das Problem, gemessen

Ein .unitypackage ist undurchsichtig bis zum Moment des Imports, und der ist auch der Moment, in dem es zu spät ist. Dieses Werkzeug gibt es wegen eines Fehlers im Besonderen: Der Käufer öffnet die Demo-Szene, und an jedem Objekt steht „Missing (Mono Script)“ — weil der Autor es in dem einen Projekt getestet hat, in dem diese Skripte zufällig vorhanden waren. Als wir anfingen, lagen auf Getly 48 .unitypackage-Dateien in 8 Shops, und keine einzige davon war je von irgendetwas gelesen worden.

Jede Entscheidung, und was sie gekostet hat

01

Die Prüfung läuft zweimal, und nur eine Hälfte entscheidet

Warum

Im Editor sieht sie, was kein Server sehen kann — ob die Skript-GUID eines Prefabs sich wirklich auflöst, welche Importeinstellungen eine Textur hat, wie der Compiler eine Datei liest. Aber sie läuft auf dem Rechner des Verkäufers, in einem Paket, das er ändern kann. Ihrem Bericht zu vertrauen hieße: Das Tor ist das, was eine Kopie unseres Codes auf einem fremden Rechner sagt. Also berät der Editor, und Getly entscheidet, indem es die hochgeladenen Bytes liest.

Was es gekostet hat

Zwei Implementierungen derselben Regeln, in zwei Sprachen, die auseinanderlaufen können. Ein generierter Katalog und ein Test, der bei Abweichung fehlschlägt, sind der Preis dafür, dass beide ehrlich bleiben.

02

Sechs Prüfungen blockieren die Veröffentlichung. Zehn nie.

Warum

Eine blockierende Prüfung heißt, dass der Käufer etwas Kaputtes bekommt; ein Hinweis heißt, dass das Asset funktioniert und besser sein könnte. Die blockierende Liste zu erweitern heißt, mehr Verkäufern abzusagen, also wird das bewusst entschieden und bei sechs gehalten. Wer sein Asset besser kennt als unsere Regeln, muss es trotzdem ausliefern können.

Was es gekostet hat

Fünf der sechs findet der Server selbst. Die sechste — ein Prefab, das auf ein Skript zeigt, das nicht im Paket liegt, genau der Fall, mit dem dieses ganze Werkzeug anfängt — braucht den Editor, denn eine GUID aufzulösen kann nur Unity. Wer den Weg ohne Installation nimmt, bekommt die anderen fünf und diese eine nicht, und das sagen wir lieber, als den Weg etwas anderes nahelegen zu lassen.

03

Das Tor sieht auf die Dateiendung und sonst auf nichts

Warum

Die Unity-Prüfung sieht auf die Dateiendung und sonst auf nichts, sie kann also ein .unitypackage ablehnen und sonst nichts: Jeder Eintrag, der beim Start schon existierte, blieb unberührt, und niemand, der etwas anderes als Unity-Arbeit verkauft, musste eine neue Regel von uns lernen. Sie ist nicht mehr das ganze Tor — die später hinzugekommene Blender-Prüfung muss Archive öffnen —, aber die Unity-Hälfte betrifft weiterhin nur Unity.

Was es gekostet hat

Ein Unity-Asset, das in einer .zip ausgeliefert wird, ist nicht abgedeckt. Das haben wir hingenommen, statt das Tor Meinungen über Hunderte von Archiven bilden zu lassen, über die zu urteilen ihm nicht zusteht.

04

Sie können es erfüllen, ohne irgendetwas zu installieren

Warum

Das Tor greift beim Übergang in den Verkauf, und es gab Verkäufer mit aktiven Unity-Assets lange bevor es das Werkzeug gab. Wäre die Installation der einzige Weg, müsste jemand, der seit Monaten verkauft, ein Editor-Paket herunterladen, um ein Update zu veröffentlichen. Also läuft dieselbe Prüfung auch von der Produktseite aus.

Was es gekostet hat

Zwei Einstiegspunkte in denselben Kern, und eine Schaltfläche, deren Reichweite mit dem Tor Schritt halten muss — was uns einmal misslungen ist und wofür es jetzt einen Test gibt.

05

Der API-Schlüssel liegt in den Editor-Einstellungen, nie im Projekt

Warum

Ein Schlüssel, der neben Ihrer Arbeit liegt, ist ein Schlüssel, den Sie irgendwann in ein Paket exportieren und verkaufen. Die Editor-Einstellungen liegen außerhalb des Ordners, den Sie paketieren, er kann also nicht versehentlich mit dem Asset mitreisen.

Was es gekostet hat

Die Editor-Einstellungen gelten pro Rechner und pro Betriebssystem-Benutzer, nicht pro Projekt, und der Schlüssel liegt dort im Klartext. Ein Verkäufer an einem zweiten Rechner meldet sich erneut an, und wer diesen Betriebssystem-Zugang hat, ist als dieser Shop angemeldet. Das haben wir einem Zugangsschlüssel vorgezogen, der sich in einem Paket exportieren und verkaufen lässt.

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

„Jedes Unity-Asset auf Getly wird geprüft, bevor es live gehen kann.“

Die Wahrheit

Falsch, und wir haben es auf die Seite geschrieben, deren ganzes Argument lautet, dass wir prüfen. Das Tor greift beim Übergang in den Verkauf, die 48 .unitypackage-Dateien, die schon im Katalog hingen, waren also nie gelesen worden. Wir haben es vor dem Start zu „ab jetzt“ umgeschrieben und einen eigenen Zähler dafür ergänzt, wie viele wirklich gelesen wurden — heute 1.

Für Ihren Eintrag

Absolute Wörter — jedes, immer, vollständig, garantiert — sind die Stellen, an denen eine Beschreibung am ehesten lügt, und sie sind für einen Käufer am leichtesten zu widerlegen. Sagen Sie, was für den nächsten Verkauf stimmt, nicht, was Sie sich für alle wünschen.

Wir schrieben

Eine Prüfung, die unsere eigene Dokumentation beanstandete.

Die Wahrheit

Die Prüfung auf absolute Pfade schlug bei der Datei an, die die Prüfung auf absolute Pfade erklärt, weil in dieser Datei ein Beispielpfad steht. Sie hätte bei jeder README angeschlagen, die einem Verkäufer sagt, er solle Pfade wie /Users/… entfernen. Drei Korrekturen: Das Muster verlangt jetzt ein Benutzersegment und etwas dahinter, Dokumentationsdateien sind ausgenommen, und die Formulierung enthält keinen vollständigen Pfad mehr.

Für Ihren Eintrag

Testen Sie Ihr Produkt an dem, worauf es am ehesten angewendet wird, nicht an dem, womit Sie es gebaut haben. Unseres fand sein eigenes Handbuch.

Wir schrieben

Ein Hinweis zu leeren Ordnern, der das Falsche beurteilte.

Die Wahrheit

Er sah auf das Dateisystem. Ein Ordner, der nur eine .gitkeep enthält, ist auf der Platte nicht leer und kommt im Projekt des Käufers leer an, weil Unitys Exporter diese Datei nicht mitnimmt. Maßgeblich musste sein, was der Exporter erzeugt, nicht was der Verkäufer im Finder sieht.

Für Ihren Eintrag

Prüfen Sie, was der Käufer bekommt, nicht was Sie haben. Ihr Ordner, Ihr Projekt und Ihre Platte sind alles Dinge, die der Download nicht mitbringt.

Was es nicht tut

  • Es ist kein Malware-Scanner. Ein Makro in einem echten Dokument passiert es unberührt.
  • Es beurteilt nicht, ob Ihr Asset gut ist. Nur, ob es funktionsfähig ankommt.
  • Es ist nur für Unity. Eine Blender-Version gibt es; für Unreal, Photoshop oder Cinema 4D gibt es nichts.
  • Pakete über 150 MB werden als ungeprüft vermerkt und können trotzdem veröffentlicht werden. Einem Verkäufer wegen unserer eigenen Grenze abzusagen hieße, ihm unsere Beschränkung in Rechnung zu stellen.

Wie wir uns überzeugt haben

Die Testdateien hat Unity gemacht, nicht wir

Jedes Testpaket wurde von Unitys eigenem Exporter im Headless-Betrieb erzeugt. 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.

Ein Prüfstand, der es installiert und die Knöpfe drückt

Ein Skript legt ein Projekt an, kompiliert das Werkzeug, führt den Validator aus und endet mit einem Fehlercode, sobald sich die Befunde ändern. Die Unit-Tests lesen echte exportierte Pakete; der Prüfstand deckt den Teil ab, den ein Unit-Test nicht sehen kann — dass die Sache kompiliert, und dass ein Druck auf den Knopf das tut, was der Code nahelegt.

Eine saubere Testdatei ist wichtiger als eine kaputte

Es ist leicht zu beweisen, dass ein Prüfwerkzeug einen Mangel findet, und leicht zu vergessen zu beweisen, dass es bei guter Arbeit still bleibt. Ein Validator, der bei einem gut gemachten Asset anschlägt, bringt Verkäufern bei, ihn zu ignorieren, und das ist schlimmer als gar kein Validator.

Der Eintrag selbst

Die Beschreibung beginnt mit dem, was es verhindert

Nicht damit, was das Werkzeug ist — sondern damit, was ohne es mit Ihnen passiert. Der erste Absatz ist die „Missing (Mono Script)“-Geschichte, denn das ist der Satz, den ein Unity-Publisher wiedererkennt. Dann die vollständige Liste dessen, was die Veröffentlichung blockiert, dann klar gesagt, was es nicht tut.

Das Titelbild sagt in Thumbnail-Größe, was die Sache ist

Die erste Fassung war unser Maskottchen, was ehrlich ist und einem Käufer nichts sagt — es ist dasselbe Bild auf jeder Seite dieser Website. Das jetzige zeichnet das Produkt: ein Paket, das untersucht wird, mit dem Wort von Hand geschrieben statt einem reproduzierten Logo, denn eine fremde Marke in generierter Grafik nachzubilden ist zugleich eine Rechtsfrage und ein garantierter Murks.

Es ist kostenlos, und nichts daran wird verkauft

Für das Werkzeug Geld zu nehmen, das fremde Assets verkäuflich macht, hieße, für den eigenen Qualitätsanspruch Geld zu nehmen. Es ist außerdem der Einstieg: Installiert ist das Werkzeug für uns mehr wert als verkauft.

Eine Datei, ersetzt statt angesammelt

Jede Veröffentlichung ersetzt den vorherigen Download, statt eine Version hinzuzufügen, zwischen denen niemand wählen möchte. Der Käufer bekommt den aktuellen Build, und es gibt keine Seite, auf der er raten muss, welcher der aktuelle ist.

Es ging durch unser eigenes Tor, und unser eigenes Tor lehnte es ab

Beim Veröffentlichen läuft dieselbe Prüfung, die jeder Verkäufer besteht — den eigenen Eintrag auszunehmen wäre das am wenigsten Vertretbare, was uns zur Verfügung steht. Es kam mit einem Hinweis zurück: keine Demo-Szene, die ein Editor-Werkzeug nicht hat. Wir haben den Befund stehen lassen, statt für uns selbst eine Ausnahme einzubauen.