Hallo, ich möchte darüber sprechen, wie ich zu meinem ersten relativ ernsthaften Spiel für iOS und Android gekommen bin.
Hintergrund
Zurück in der High School waren mein Freund und ich sehr gut im Informatikunterricht. Ich mochte es, verschiedene Probleme mit Programmierung zu programmieren und zu lösen. Außerdem habe ich Spiele immer geliebt, und ich war, wie viele Fans, von der gespenstischen Gelegenheit verführt, meine eigenen zu schreiben.
Wie es sein sollte, habe ich ein Interesse an anderen Programmiersprachen entwickelt und mich entschlossen, aus dem berüchtigten Pascal "herauszuwachsen". Meine Wahl fiel auf das berüchtigte Python, denn ich hatte von seinem breiten Anwendungsspektrum und seiner relativ einfachen Entwicklung gehört. Beim Lesen der relevanten Literatur bewegte ich mich ein wenig und löste für die Praxis Probleme aus
dem Euler-Projekt .
Tatsächlich wollte ich die ganze Zeit anfangen, etwas wirklich Ernstes zu tun, und zu einem bestimmten Zeitpunkt hatte ich das Gefühl, wenn nicht jetzt, dann nie.
Diese "ernsten" Spiele wurden, wie Sie vielleicht vermutet haben, zu Spielen.
Nachdem ich die PyGame-Bibliothek für diese Lektion gefunden hatte, machte ich mich an die Arbeit. Zunächst beschloss ich, etwas Banales zu üben. Tetris tat es dennoch nicht, erkannte aber, wenn auch nicht sofort, das gute alte Spiel "Leben", mit dem er sehr zufrieden war.
Leben

Dann schlossen sie sich meinen Kreationen an: einen fast fertigen DX-Ball, den ich mit Interesse auf meinem Onkelcomputer mitten in der Null spielte, eine Kopie von Supaplex in den Kinderschuhen (dieselbe Nostalgie) und im selben Zustand eine Arkade, die von der relativ modernen The Binding inspiriert war von Isaac.
Dx Ball '

Isaac '

Der Beginn der Studierenden und die ersten Impulse, eigene Projekte zu entwickeln
Mit der Zeit wurde mir etwas Unangenehmes klar: Ich beendete nichts von den Projekten, obwohl es anfangs mehr als genug Begeisterung gab. Und so ging es weiter: Immer weniger kehrte ich zu den alten Entwicklungen zurück, manchmal mit Begeisterung, nahm neue auf, aber das Ergebnis war eines.
Dann begann die schrecklichste Zeit im Leben eines jeden Studenten: die Prüfung. Die Programmierung ist in den Hintergrund getreten, aber nachdem ich die Prüfungen bestanden und an der St. Petersburg Polytechnic in die "Elektronik und Nanoelektronik" eingetreten war, kehrte ich zur Programmierung zurück. Darüber hinaus hat mich das Studentenleben ein wenig erschüttert und mir Verantwortung beigebracht, weshalb ich beschlossen habe, von nun an alle meine Projekte abzuschließen.
Und so habe ich beschlossen, etwas für Android zu schreiben. Alles blieb auf demselben Python stehen, da es das einzige war, was ich irgendwie wusste und woran ich mich festhalten konnte. Begann das Kivy-Framework zu lernen. Leider ist Python + Kivy, so sehr ich es auch nicht möchte, nicht die beste Option für die Entwicklung für Android, und mir wurde klar, dass ich nicht weit in diese Richtung gehen konnte.
Nachdem ich viel Zeit mit einer so einfachen Anwendung wie einem Test mit dem Abschluss mehrerer Optionen für das Endergebnis verbracht hatte, brachte ich dieses bescheidene Projekt dennoch zum Ende und lud es sogar auf GooglePlay hoch. Dann, im Zuge der Popularität der Schlacht zweier bekannter Rap-Schlachten, bot mein Freund an, einen Test zu diesem Thema durchzuführen, und bereitete ihm Fragen vor. So erschien unser erstes abgeschlossenes Projekt und ein Team von zwei Personen nahm den Namen „Aspid Dynamics“ an.

Die meiste Zeit wurde damit verbracht, Kivy und eine andere KivyMD-Bibliothek kennenzulernen, die Google Material Design-Elemente bereitstellte. Der Rest der Zeit wurde für das Zeichnen von Symbolen und zahlreiche Neugestaltungen aufgewendet (es stellte sich am Ende heraus, nicht sehr, aber es hätte schlimmer kommen können). Da ich nicht alleine gearbeitet habe, hat es den Entwicklungsprozess etwas erleichtert und mich motiviert.
Neuanfang
Das Ergebnis war nicht ganz das, was ich wollte, aber ich beschloss, weiterzumachen. Ich habe mir ein neues Entwicklungstool genau angesehen, nämlich die bekannte Unity-Engine. Die Wahl der weiteren Entwicklungsrichtung wurde schließlich getroffen, es bleibt (nur etwas), sich mit C # vertraut zu machen und die Fähigkeiten von Unity selbst zu erkunden. So kamen wir den Ereignissen nahe, die kürzlich stattfanden.
Nach wie vor habe ich beschlossen, etwas Unmögliches nicht sofort in Angriff zu nehmen. Die Idee war einfach: ein Spiel zu erstellen, in dem die Leute Wörter schreiben, die für eine vorgegebene Bedingung geeignet sind. Ein einfaches Beispiel: "Geben Sie die Wörter ein, die die drei Buchstaben" o "enthalten. Danach geben Sie beispielsweise" Glocke "ein. Anfangs schien die Idee nicht neu zu sein, aber nachdem ich den Spielemarkt überprüft hatte, fand ich solche Spiele nicht, was mich letztendlich vom Erfolg der Idee überzeugte.
Projekt „Word Expert“
Nachdem ich den trivialen, aber eingängigen Namen „Word Expert“ für das Spiel gewählt hatte, begann ich, den Entwicklungsprozess sorgfältig zu überlegen. Die Implementierung schien zumindest nach einer oberflächlichen Analyse unkompliziert. Vielleicht ist es so, wenn wir nur die grundlegende Mechanik formalisieren, aber mit detaillierter Betrachtung ist die Funktionalität wiederholt gewachsen und wurde erheblich erweitert.
Nachdem ich die Beschreibung des Projekts abgeschlossen hatte, begann ich begeistert, Punkt für Punkt umzusetzen. Die Hauptidee wurde sehr schnell wahr: Die Möglichkeit, Ebenen basierend auf mehreren Vorlagen zu erstellen, wurde hinzugefügt.
Vorlagen sind eine Art Grundlage für einige Kriterien, die ein Wort erfüllen muss, darunter: den Beginn eines Wortes auf einem "Teilstring", dh ein Buchstabe oder eine Folge von Buchstaben, der Inhalt des "Teilstrings" im Wort, der Inhalt von N Buchstaben, die Gleichmäßigkeit / Seltsamkeit der Anzahl der Buchstaben im Wort usw.
Ferner wurden die vom Spieler eingegebenen Wörter auf Übereinstimmung mit der Vorlage und das Vorhandensein im Wörterbuch überprüft. Die Punkte wurden abhängig von der Häufigkeit des Wortes vergeben, und ich begann, die Bestehensstufen abhängig von der Anzahl der Punkte festzulegen, die ich in 5 Minuten erhalten hatte. In den Standard-Levels des Spiels muss eine Person die maximal mögliche Anzahl von Wörtern eingeben, um die folgenden Levels bestehen zu können.
Wortexperte

Neue Probleme und unerwartete Lösungen
Alles wäre in Ordnung, aber es stellte sich heraus, dass es ziemlich schwierig ist, viele Level anders zu machen. Wieder nahm mein Freund die Aufgabe auf, mir zu helfen, und als ich in den Vierzigern war, bestand das Problem nicht nur darin, dass die Ebenen schwer vorstellbar sind, sondern dass wir aufgrund einiger sprachlicher Merkmale der menschlichen Wahrnehmung zu oft bestimmte Buchstaben und Buchstaben gewählt haben Muster, die andere hartnäckig ignorieren.
Dies wurde rechtzeitig bemerkt und es wurde versucht, die Kontrolle über mich selbst zu stärken, aber es gab nicht die gewünschten Ergebnisse, so dass ich die Häufigkeiten für die Verwendung von Buchstaben und Mustern in unseren Ebenen berechnen und aufzeichnen musste. Danach wurde es viel einfacher, auf sich selbst aufzupassen, aber am Ende wurden nur 60 Levels absolviert.
Aufgrund der Tatsache, dass die Notwendigkeit, Ebenen zu erfinden, die Entwicklung behinderte, sowie aufgrund der oben beschriebenen Probleme, entschied ich mich, einen Ebenengenerator zu implementieren, der eine vernünftige Aufgabe basierend auf unseren Vorlagen erstellen würde. Ich konnte keine Korrelation zwischen der Anzahl der Wörter, die der Zuordnung entsprechen, ihrer Häufigkeit und der Anzahl der Punkte finden (dies bedeutete, dass die Ebenen ebenfalls ausgeglichen werden mussten - manuell).
Anscheinend liegt dies an der Tatsache, dass Wörter unter bestimmten Bedingungen einfacher sind, selbst wenn es weniger davon gibt. Zum Beispiel tauchen im Bewusstsein ganz einfach Wörter auf, mit der Bedingung, auf einem Teilstring zu beginnen, zum Beispiel die Wörter auf 'ba'. Es ist, als würden wir uns diesen Anfangszustand "ba" sagen, und das Gehirn vervollständigt ihn leicht mit vielen Worten: "Tank", "Bank", "Banane" usw.
Wenn die Bedingung jedoch nicht mehr als 4 Vokale und genau 8 Buchstaben enthält, nimmt die Auswahlgeschwindigkeit offensichtlich ab, obwohl es 6-mal mehr solcher Wörter gibt. Wenn wir auf einigen Vorlagen ein Wort finden, befinden wir uns in einem ganzen Cluster (zum Beispiel: Wenn wir mit dem Wort "Lehrer" enden, können wir sehen, dass viele Berufe wie "Baumeister", "Fahrer" und "Fahrer" enden usw.). Wenn es keine Verbindung gegeben hätte, hätte nichts diese Worte vereint, dann hätten wir durch eine einfache Suche in unserem Kopf viel weniger erraten.
Polieren, neue Modi, letzte Feinheiten
Der erstellte Generator hat die Erstellung von Levels wirklich deutlich erleichtert, und mein Freund und ich haben bereits Hunderte erreicht, indem wir die Anzahl der Level schrittweise erhöht haben. Es war inspiriert vom Erfolg des Generators bei der Erstellung der Levels, für die wir uns entschieden haben, einen neuen Spielmodus einzuführen.
Es war "Überleben", wo Sie Wörter eingeben müssen, bis der Timer abläuft. Der Unterschied zum klassischen Modus besteht darin, dass der Spieler hier vor der Aufgabe steht, ein Wort in N Sekunden gemäß einer bestimmten Bedingung einzugeben. Nach erfolgreicher Erfüllung der Bedingung wird eine neue Aufgabe generiert und der Timer verlängert.
Später haben wir beschlossen, dass wir Multiplayer hinzufügen müssen, um den Inhalt ständig zu pflegen. Natürlich ist es viel interessanter, Ihren Wortschatz in der Pause mit einem Freund zu messen oder online mit einem Fremden zu spielen. Der "klassische" Mehrspielermodus impliziert einen Wettbewerb um die Anzahl der Punkte, die in einer bestimmten Zeit erhalten wurden. Ziemlich lange mit der Implementierung des Spiels über das Netzwerk beschäftigt, habe ich immer noch 2 entsprechende Multiplayer-Modi herausgefunden und beendet.
Viele Probleme im Entwicklungsprozess haben uns Design gebracht. Der Hauptfang war, dass ich selbst weit davon entfernt war, Designer zu sein, mein Freund auch nicht über die erforderlichen Fähigkeiten verfügte und ich ein angemessenes Bild machen wollte. Ein dritter Bekannter erklärte sich bereit, mir zu helfen, aber nach mehreren Entwürfen, die nicht zu Ende gebracht wurden, konnte er nicht weitermachen.
Infolgedessen habe ich durch wiederholte Verarbeitung und Sammlung von Rückmeldungen von Freunden selbst die endgültige Version des Designs entwickelt.
Spielveröffentlichung, Pläne für die Zukunft
Ursprünglich sollte der Word-Experte nur aufgrund des begrenzten Budgets in den Play Market eintreten, aber mein Freund half mir, die notwendigen 99 US-Dollar für die Veröffentlichung im AppStore zu bekommen.
Wir planen, das Spiel zu ergänzen und zu aktualisieren. Zusätzliche Levels, Erfolge, Spielerbewertungen und vieles mehr. Vielleicht machen wir eine englischsprachige Lokalisierung, die im Kontext dieses Spiels etwas teuer ist.
Vielen Dank für Ihre Aufmerksamkeit an alle, die diesen langen Beitrag gelesen haben.
Mit freundlichen Grüßen
Aspid Dynamics Team.