Um ein Traumteam zusammenzustellen, in einem Atemzug ein Meisterwerk zu spielen, das die Spitzen sprengt. Oder, wie es sich für ein einzelnes Genie gehört, ein Spielphänomen über Nacht zu konstruieren und in die Welt zu bringen, ist ein Spiel ein Magnet für Geld und Ruhm. Wie sich im Raucherraum und bei verschiedenen IT-Meetings herausstellte, quälen solche dunklen Fantasien nicht nur jüngere Studenten, sondern auch respektable Onkel. Es ist nur schwieriger für sie, es zuzugeben.
Wie kann man ein Entwickler sein, dessen Karriereweg so weit von einem Spieleentwickler entfernt ist wie der Hobbiton vom Schwarzen Tor? Schütteln Sie die Besessenheit ab und beenden Sie schließlich die Bibliothek, die im Lebenslauf so trumpfen würde. Aber wenn Sie Ihre eigenen Träume begraben - nicht Ihren Weg, willkommen bei Katze. Sie finden eine ehrliche Geschichte darüber, wie Kick aus der IT-Welt vor einem Spiegel und gefüllten Blutergüssen geübt hat. Die Geschichte des Spiels, von der Gliederung bis zur Veröffentlichung.

Von vagen Gedankenmustern bis zu einem fertigen Konzept
In erster Näherung lautete der Plan wie folgt: In einer minimalen Zeit, um den Spielentwicklungszyklus zu durchlaufen, dessen letzte Phase die Veröffentlichung einer vollständigen Version ist.
Angemessene Zeitlimits und die Notwendigkeit, das Spiel zu veröffentlichen, tragen dazu bei, die typische Falle zu vermeiden, die auf Noobs in der Spielentwicklung wartet: das Image des "Traumspiels" zu verfolgen! Meistens verwandelt sich das „ideale“ Konzept, wenn es konkretisiert wird, in ein Projekt, das außerhalb der Reichweite eines Indie-Teams liegt. Die Idee wird zu einer Unvollkommenheit, die früher oder später schüchtern „in der Tabelle“ versteckt wird.
Um den unrühmlichen Misserfolg bei der Entwicklung eines U-Boot-Simulators oder eines Online-3D-Shooters zu vermeiden, ist es besser, ein einfaches Spiel anzuhalten und zu veröffentlichen. Einfachheit bedeutet übrigens nicht eine primitive Hallo-Wort-Spielhalle, einen abgeschnittenen Schlangenklon und andere Variationen von nicht spielbarem und nicht originellem Handwerk.
Vier in einer Reihe Farm mit Butlern, Pflanzen vs. Hamster ... Welche exotische Idee als Testball? Vielleicht etwas über Bälle. Und da dies der erste Pfannkuchen ist, lassen Sie das Spiel in 2D flach sein. Das Motto aller zweifelhaften Ereignisse ist weniger vernünftig, auf den Punkt. Daher wurde die erste relativ vernünftige Idee behoben. Eine Skizze einer wilden Mischung aus Billard und Airhockey im Umfeld einer alten Zivilisation:
SpielkonzeptDies ist die Anordnung der Bälle (Zengs) mitten im Spiel. Der Spieler zielt auf eine Zeng-Katze in einem Zeng-Krokodil, um ihn in eine von sechs Taschen zu hämmern und einen starken Spezialeffekt der Explosion zu sehen. Der erste, der alle feindlichen Zenges vom Feld schlägt, ist Etsvatsephala (ein großartiger Kerl). Oh ja. Die Kulisse der alten Zivilisation befindet sich immer noch hinter den Kulissen.
Mehl der Wahl: Zielplattform und Toolkit
Nachdem das Konzept des Spiels allgemein umrissen worden war, war es nicht schwierig, die Plattform und die Tools zu bestimmen.
Der Blick auf den PC-Markt droht Probleme mit Online-Vertriebsdiensten. Nehmen Sie mindestens das
Steam Direct- System zur Veröffentlichung im beliebten Steam Store. Für die Hinzufügung jedes Produkts wird eine
Steuer von etwa 6.000 Rubel erhoben, und vom Zeitpunkt der Zahlung bis zum Versand bis zur Veröffentlichung muss ein Monat vergehen, in dem die Mitarbeiter von Valve "sicherstellen, mit wem sie es zu tun haben". Die Moderation des Spiels vor der Veröffentlichung dauert weitere fünf Tage.
Die Zusammenarbeit der Indie-Igrodela mit GOG.com, einem weiteren Riesen der digitalen Distribution, beginnt mit dem Ausfüllen
eines Fragebogens zum Spiel. Es dauert einige Zeit, bis das Spiel vom Store geprüft wird, und das Risiko einer Verweigerung der Veröffentlichung ist recht hoch: Das Spiel scheint möglicherweise nicht einzigartig genug zu sein, basiert nicht oder entspricht nicht anderen Kriterien ...
Der gesunde Menschenverstand schreibt vor, dass es sinnvoll ist, Monster wie Steam oder GOG.com zu kontaktieren, wenn Sie ein fertiges (oder fast fertiges) Produkt von angemessener Qualität haben. Die Veröffentlichung des Spiels für ein mobiles Publikum ist jedoch eine schnellere und kostengünstigere Option. Natürlich weise ich auf Android hin: Eine einmalige Zahlung von
25 US-Dollar für die Aktivierung eines Entwicklerkontos und den Zugriff auf die Google Play Developer Console ist billiger als die
jährlichen 99 US-Dollar für Apples Sparschwein für die Veröffentlichung im Apple Store. Ich habe seit jeher ein Google Play-Entwicklerkonto, das den Ausschlag für Android gab.
Was Android betrifft, befinden sich die Draufgänger, die sich auf einer rutschigen Entwicklungsspur für diese Plattform befinden, häufig an einem Scheideweg: ob sie ein Spiel in Canvas erstellen, die OpenGL-API erlernen oder sich mit einer vollwertigen Spiel-Engine befassen möchten. Für mich gab es nicht einmal eine Wahl: Es war viel verlockender, die Maus in der schönen GUI-Engine zu tragen, als die Nacht in einem Debugger zu verbringen und zu untersuchen, warum die Szene entweder nicht skaliert und dann einfriert.
Offensichtlich war es notwendig, einen Motor zu wählen, der die Anforderungen erfüllt:
- Die Möglichkeit, Spiele für die Veröffentlichung unter Android zu portieren
- Kostenlos
- Niedrige Eintrittsschwelle
- Prototyping-Geschwindigkeit
- Frische, klare Dokumentation oder eine aktive Community
Nach einigen Suchanfragen erregten drei Engines Interesse: Cocos2D, Unreal Engine und Unity. Cocos2D beeindruckt durch seine Leichtigkeit und C ++ als Entwicklungssprache, aber das Schreiben eines Spiels verspricht keine Schnelligkeit. Eine schwierige Wahl zwischen Unreal Engine und Unity endete mit dem Sieg von Unity: Bei der ersten Bekanntschaft schien es für einen Anfänger einfacher zu sein, diese Engine zu verstehen. Was ist zumindest ein schickes
Online-Tutorial zum Erstellen von 2D-Spielen wert?
Für den Indie-Entwickler ist Unity im Rahmen des persönlichen Tarifplans kostenlos verfügbar. Unternehmen, deren Jahresumsatz oder Betrag mehr als 100.000 US-Dollar beträgt, werden gebeten, ein kostenpflichtiges Abonnement zu nutzen. Nun, sobald, also sofort, aber vorerst Personal starten.
Über die Entwicklung eines Spiels allein: Wo die Zeit verschwindet
Aufgrund des Wechsels zwischen verschiedenen Plattformen und Engines auf dem Computer wurden Unity 2017, Visual Studio Community und Android Studio registriert. Übrigens stehen die offiziellen Unity-Builds
für die Installation unter Linux zur Verfügung, und mein openSUSE Leap kann problemlos installiert werden. Der größte Teil der Entwicklung des Spiels wurde jedoch unter Windows durchgeführt, da Photoshop vorhanden ist. Und der einzige Entwickler des Teilzeitprojekts ist der einzige Designer, der dem Gamedev-Prozess einen besonderen Pfeffer verleiht.
Beispielsweise mussten Sie häufig zwischen zwei Aufgaben wechseln: Schreiben von Code und Zeichnen von Grafiken. Sobald der Entwicklungsprozess durch die Notwendigkeit blockiert wurde, der Szene neue Grafiken hinzuzufügen, war es notwendig, alles und das Design zu verschieben. Um diese Prozesse zu parallelisieren, wurden "Stubs" -Bilder aktiv verwendet, irgendwie skizziert und bis zum letzten Ersetzen vollwertiger Grafiken.
Phasenweise Entwicklung von GrafikenEs gab auch Treffer in der kreativen Sackgasse, als die Grafiken, die als endgültig angesehen wurden, eine Ablehnung durch den Autor oder die Spieler hervorriefen und es nicht klar war, wie die Situation behoben werden sollte. Die Praxis hat gezeigt, dass einige neue Konzeptzeichnungen dazu beitragen, die Sackgasse zu überwinden. Sie geben entweder an, in welche Richtung Sie das Bild wiederholen oder es vollständig ersetzen sollen.
In jedem Fall wird eine große Menge Kunst nicht in die Endmontage des Spiels gelangen, und das ist normal. Denn aus einer Menge erfolgloser Skizzen wird eine geboren, die jeder betrachtet und sagt: „Ja, das ist es. Das gleiche Alpaka. "
Das gleiche AlpakaUnd hier ist das Spielfeld nach zahlreichen Iterationen des Remakes:
Screenshot des SpielfeldesEs stellte sich heraus, dass von 72 Stunden etwa 40 nur für Zeichnen und Entwerfen aufgewendet wurden. Die verbleibende Zeit wurde für den Entwicklungs- und Testzyklus aufgewendet, der durch drei Faktoren beschleunigt wurde:
Checkpoint-Bereitschaft des Spiels zur Veröffentlichung. Ein Spiel, bei dem sich die Funktionalität nicht schämt, als abgeschlossen zu betrachten, bereit für den Benutzer, der es zum ersten Mal sieht? Hört es auf, so zu sein, wenn Sie ein oder zwei Funktionen aufgeben? Ohne die zuvor kompilierte und mental übersetzte schreibgeschützte TK könnte das Spiel für Ewigkeiten verbessert und weiterentwickelt werden. Während sie ihre Eindrücke mit den Spielern diskutierten und ihre eigenen Ideen hervorbrachten, erschien fast jede Stunde eine neue Wunschliste und speicherte dann die Liste der Funktionen für den Kontrollpunkt.
Ablehnung eines schönen Codes. Man kann damit argumentieren, dass diese Praxis sowohl für das Projekt als auch für den Entwickler als schädlich angesehen werden kann, und ich stimme den meisten Argumenten zu ... Aber die Tatsache ist klar: Wenn das Projekt klein ist und die Zeit knapp wird, tritt die Reinheit des Codes in den Hintergrund. Die Hauptsache ist, dass der Quellcode immer noch verstanden werden kann. Aber der Spaghetti-Code und die Fettkopie sind nicht so schädlich, wenn Sie keine doppelte Portion bestellen.
Bereich für laufende Teile. Wurde die Zeit für die Explosion aufgewendet, aber sie gewinnt immer noch nicht den Preis für die besten visuellen Effekte? Sind die Kuriositäten in der Sprite-Animation erst jetzt sichtbar, weil andere Objekte auf sich aufmerksam gemacht haben? Komplexe Abschnitte debuggen, Spezialeffekte optimieren, Animationen ausführen ... Für solche Ereignisse besteht ein guter Ansatz darin, den interessierenden Block so weit wie möglich zu isolieren und ihn in einem sauberen Projekt (oder zumindest in einer separaten Szene) zu platzieren. Erstens werden dadurch die Nebenwirkungen anderer Spieleinheiten beseitigt. Zweitens hilft es, sich auf die aktuelle Aufgabe zu konzentrieren und zu experimentieren, ohne das Risiko einzugehen, etwas in der Nachbarschaft durcheinander zu bringen und zu zerbrechen. In einer separaten Szene war es beispielsweise praktisch, die Parameter der Auswirkungen von Explosionen anzupassen, wenn ein Zeng auf eine Tasche traf, und im Testprojekt Optionen zum Texturieren des Hintergrunds auszuwählen.
Fehler, die nie tödlich wurden
Kompromisslose Stürze beim Open Beta-Test, Nullreferenz ¬ - Ostereier in der Nähe der Linien mit der Phrase "// TODO", die wie Wasser durch Ihre Finger rutschen, Fehler ... Die traurige Tatsache: Die meisten Fehler sind das Ergebnis von Nachlässigkeit und mangelndem Besitz des Instruments. Unity verfügt über eine detaillierte Dokumentation, und das aus gutem Grund. Viele der technischen Lösungen von Unity sind nicht offensichtlich. Das Verstopfen der Dokumentation führt zu zusätzlichen Stunden des Debuggens und Umherwanderns in Google ... und bringt Sie zurück zur Online-Dokumentation.
Meine Damen und Herren, hier sind die „Top 3“ der wohlschmeckendsten und zeitaufwändigsten Fehler, die den Entwicklungsprozess von El Zengo geschmückt haben. Sie sind insofern neugierig, als es sich um Sonderfälle typischer Probleme handelt, die während der raschen Entwicklung des Zeitmangels für eine detaillierte Untersuchung des Themenbereichs auftreten.
3. Es funktioniert nicht wie ich will
Oh, wie viel Zeit wurde für das Debuggen von Simulationen der Kollision von Zengs verschwendet ... Natürlich funktioniert in Unity die gesamte Berechnung der Bewegung von Körpern sofort. Und im rohen Prototyp des Spiels wurde es eifrig ausgenutzt: Zenges rollten ohne Schwerkraft über die Bühne, prallten voneinander und von den Seiten ab, und es gab keine Frage ihrer Flugbahn nach den Kollisionen. Aber der entscheidende Moment kam, um die Zengi-Vektoren zu zeichnen, und plötzlich stellte sich heraus, dass der tatsächliche Abprall der Zenges voneinander (der graue Bogen im Screenshot) sich von dem erwarteten unterscheidet (weiße Linie):
Erwartete und tatsächliche Zenga-SprungpfadeZeng weicht aufgrund zu großer Reibung und des daraus resultierenden Torsionsmoments vom beabsichtigten Weg ab, dessen Ursache vorerst ein Rätsel blieb. Tatsache ist, dass jedes Zeng ein GameObject ist, das beim Laden der Szene generiert wird, zu dem die 2D-Komponenten Rigidbody 2D und Circle Collider hinzugefügt werden.
Rigidbody, ein „fester Körper“, definiert die Physik des Verhaltens eines Objekts in der Spielwelt: Masse, Widerstand, Schwerkraft und andere nützliche Eigenschaften. Collider - die Komponente, die für die Berechnung der Objektgrenzen und Kollisionen mit anderen Körpern verantwortlich ist. Beide Komponenten haben die Eigenschaft „Material“ zum Einstellen des Reibungs- und Elastizitätskoeffizienten.
Bei der Behebung des falschen Sprunges von Zengs kam es auf die Frage an: Wenn zwei Komponenten an gameObject, Collider und Rigidbody angehängt sind und jede von ihnen die Eigenschaft „Material“ hat, welches Material wird angewendet?
Materialeigenschaften von Collider und Rigidbody in UnityWenn für Collider kein Material definiert ist, wird das Rigidbody-Material verwendet. Wenn es festgelegt ist, wird die Prioritätseigenschaft des Colliders angezeigt. Für Material, das nicht explizit angegeben ist, verwendet der Rigidbody ein Material mit Standardwerten für Elastizität und Reibung. Somit war der Fehler die falsche Annahme, dass die Rigidbody-Eigenschaft mit Reibung nahe Null mit dem angegebenen Collider-Material angewendet werden würde. Und sie war den Samstagabend wert.
2. Es verhält sich auf verschiedenen Geräten unterschiedlich.
Beim Rendern von Textschatten trat zufällig ein unterschiedliches Verhalten auf Geräten mit unterschiedlichen Versionen der API auf. Der Szene wurde ein Text mit dem Namen des Spiels hinzugefügt. Die Shadow-Komponente wird an den Text angehängt:
Schattenkomponente zum Text in Unity hinzugefügtDunkle Farbe, Transparenz. Es schattiert den Text auf allen Geräten perfekt ... mit Ausnahme des alten Android mit API 15, auf dem der Schatten hartnäckig hellblau statt blau aussah:
Falsch gezeichneter Schatten in der SpieloberflächeEs war nicht möglich, die Ursache des Fehlers und die Abhilfemaßnahmen schnell zu bestimmen, daher musste der Schatten aus Gründen der Entwicklungsgeschwindigkeit aufgegeben werden.
Fazit: Bleiben Sie wachsam. Auf verschiedenen Geräten können sogar die trivialen Elemente des Spiels unterschiedlich aussehen und funktionieren. Dies äußert sich oft in kaum wahrnehmbaren Kleinigkeiten.
1. Es startet nicht auf einem bestimmten Gerät
In der Nacht vor der Veröffentlichung (oder wie ist es üblich, solche Geschichten zu starten?) Wurde festgestellt, dass das Spiel auf einem der Smartphones grundsätzlich nicht starten möchte. Ich musste mich dringend an den Debugger klammern und sehen, was schief gelaufen ist.
Das Spiel wird von Natur aus zwangsweise im Querformat gestartet. In Unity 2017 ist die Standardeinstellung für die Ausrichtung (Bearbeiten -> Projekteinstellungen -> Player -> Ausrichtung) dafür verantwortlich:
Festlegen der Bildschirmausrichtung in UnityBeim Exportieren in ein Projekt für Android Studio wird die Einstellung für die Standardausrichtung in die im Manifest angegebene Eigenschaft screenOrientation umgewandelt:
android:screenOrientation="landscape"
Es scheint, dass was schief gehen könnte? In der Tat ist der Flug auf allen Geräten normal ... Mit Ausnahme von Android 8.0.0 (API 26), auf dem die Anwendung beim Start abstürzt, mit der Ausnahme:
java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
Dies wird behoben, indem die Transparenz in dem in styles.xml angegebenen Stil deaktiviert wird:
<item name="android:windowIsTranslucent">false</item>
Absolut versehentlich erkannter Absturz, der zur Moral führt: Die Richtigkeit des Vorgangs muss auf allen von der Anwendung unterstützten APIs überprüft werden.
Über Werbung und Monetarisierung oder "Heute habe ich viel verstanden"
Nachdem ein dickes Bündel Werbematerial für die Platzierung im Android Store vorbereitet worden war, fand unter den freudigen Schreien eines Programmierers und Designers eine Veröffentlichung statt. Es wurde jedoch schnell klar, dass es neben dem Namen des Spiels im Play Store unmöglich war, es zu finden. El Zengo ruhte wie eine versunkene Galeone mit goldenen Dublonen irgendwo am Grund des Ozeans der Spiele und wartete auf seinen Taucher ... Anscheinend tauchen die Taucher nicht so tief.
Null Downloads pro Woche widersprachen den Erwartungen. Bemerkung: Erwartungen waren keine unbegründeten Fantasien, sondern beruhten auf realen, wenn auch veralteten Erfahrungen. Bereits 2014, als Google Play aktiv expandierte und neue Entwickler anlockte, veröffentlichte der Autor ein beispielloses Logikspiel. Und obwohl der Hauptzweck der Veröffentlichung der persönliche Gebrauch für Partys mit Freunden und Kollegen war und das Design zu wünschen übrig ließ, verlief das Spiel überraschend reibungslos. Sie tauchte in der Nachrichtenabteilung auf, von wo aus sie nach Kategorien in Russland und den Nachbarländern an die Spitze der Spiele kroch. Und das alles ohne die geringste Anstrengung.
Seitdem ist Google Play überfüllt mit Anwendungen, Entwickler haben begonnen, riesige Summen für die
Evakuierung von unten nach oben bereitzustellen, und versucht, das Spiel bekannt zu machen, damit ein potenzieller Nutzer es finden und in ein
Unternehmen geraten kann.
Elefantengeschäft. Prince wartet auf ein ungeplantes AbenteuerFirmen, die Werbedienste, Videobewertungen von YouTube, Bewertungen auf Spieleportalen, Werbung auf verschiedenen Plattformen anbieten ... Wenn Sie bezahlte Werbung absolut nicht ablehnen, werden Sie angenehm überrascht sein, wie viele Möglichkeiten es gibt, ein paar Gehälter mit Stil loszuwerden. Aber wie effektiv sind sie, in welchen Kombinationen und Proportionen die beste Wirkung für ein bestimmtes Spiel erzielt wird? Die Frage bleibt offen.
Versuchte kostenlose Methoden, darunter Themen in Spielforen, mäßig freche PR in sozialen Netzwerken und zügellose Propaganda im Kommunikationskreis, brachten bescheidene Ergebnisse. Die Schlussfolgerung bietet sich an: Wenn Sie wirklich über die Werbung für das Spiel nachdenken, tun Sie dies im Voraus und weisen Sie die entsprechenden Ressourcen zu. Gleichzeitig können alle Anstrengungen auf Null reduziert werden, wenn Sie nicht mit den Markttrends und den Merkmalen der Zielgruppe Schritt halten.
Nachwort
Ist es möglich, das Spiel in ein paar Monaten selbst oder in einem kleinen Team zu veröffentlichen, ohne die Arbeit und das Privatleben zu beeinträchtigen? Und das ohne Selbstüberwindung und "Triumph des Willens" über Schlafmangel. Ja ganz! Mit modernen Engines, einer IDE und einem Stackoverflow ist dies einfacher als je zuvor.
Aber wenn die Entwicklung eines Indie-Spiels kein Selbstzweck ist und Fragen zu seiner Förderung und Monetarisierung auftauchen, dann ... gibt es Nuancen. Promotion - ein Monster mit drei Köpfen: eine separate Wissenschaft, in der eine kleine Fehleinschätzung bereits ein Verlust ist; ein kontinuierlicher Prozess, der einer ständigen Überwachung bedarf; Schwarzes Loch für Zeit, Mühe und Geld.
Und schließlich. Bei der Indie-Entwicklung geht es nicht nur um Code, Grafiken und einen Geometriekurs, den man gerne noch einmal lesen würde. Es ist auch eine Kommunikation mit begeisterten Menschen, die bereit sind, Feedback zu hinterlassen und sogar mit purer Begeisterung am Projekt teilzunehmen. Zum Beispiel gab der Entwickler eine Menge Ratschläge und Kritik zum Gameplay und zur Benutzeroberfläche, der generell cool ist, wenn es um gelegentliche Kills geht. Und die Musik für die zweite Version von El Zengo wurde von dem Komponisten erstellt, der das Spiel mochte. Wenn Sie sich anstrengen und suchen, gibt es sicherlich diejenigen, die das Spiel testen und eine Bewertung abgeben möchten. Und mit einer guten Auswahl an Werkzeugen und der Einhaltung der einfachen Regeln des Lüfters aus der Entwicklung werden die Inspiration aus der Veröffentlichung und das nicht schwache Pumpen von Erfahrung einfach bereitgestellt.