Hallo Habr! Seit fast anderthalb Jahrzehnten erstellen und entwickeln wir Webdienste. Sie kennen vielleicht einige von ihnen, haben Erfahrung im Gebrauch, lieben leidenschaftlich oder haben gemischte Gefühle, aber darum geht es jetzt nicht.
Wir hatten also zwei auf dem Markt bekannte Website-Builder - uCoz und uKit, über 90 Prozent der Registrierungen, die nie zur Erstellung einer eigenen Website konvertiert wurden, einen ehrgeizigen Wunsch, mindestens 5 Prozent dieser Zielgruppe zu retten, sowie zweieinhalb Personen im Team, die eine Art von Publikum haben Keine Erfahrung in der Spieleentwicklung. Nicht, dass es eine notwendige Versorgung für die Veröffentlichung des Spiels über die Webindustrie gewesen wäre ... Nun, Sie verstehen.

Der Beginn des gewundenen Pfades
59845 Codezeilen im Backend und 65675 Frontends. Mehr als 2 Jahre Entwicklung, Fehler und Deadlocks, 7 Schnittstellenoptionen. All dies liegt jetzt hinter uns, obwohl es lange dauern kann, bis wir in Träumen zu einem der Teammitglieder kommen.
Wie kam es, dass Leute und ein Unternehmen, das sich hauptsächlich mit Site Buildern befasst, plötzlich eine Online-Multiplayer-Strategie aufnahmen (und taten!) ? Auch wenn thematisch: über Websites und Webmaster?
Irgendwann stellten wir fest, dass uCoz als Produkt veraltet war, und dies war eines der Motive für die Entwicklung von uKit. Alles wäre in Ordnung, aber es stellte sich heraus, dass das Problem tiefer liegt und seine Wurzeln nirgendwo anders liegen, sondern in der menschlichen Psychologie. Es spielt weltweit keine Rolle, über welchen Site Builder gesprochen werden soll - uKit, uCoz, Wix, Tilda, Jimdo, LPmotor (verzeihen Sie alle anderen Kollegen, die ich nicht genannt habe, wir sind mehrere hundert, ich erinnere mich an alle, ich liebe alle). Die überwiegende Mehrheit der registrierten Benutzer wird niemals eine Website erstellen . Dies ist eine leicht zu überprüfende Tatsache. Es reicht aus, die Anzahl der Registrierungen (Anzahl ohne Bots) und die Anzahl der Domains / aktiven Clients zu vergleichen, die tatsächlich bedient werden.
Warum so? Eine gute Frage, auf der Suche nach einer Antwort, auf die wir unsere und nicht nur Benutzer angerufen haben. Weil morgen . Oder nächste Woche. Alles ist klar, alles ist bequem, aber es gibt keine Zeit. Es ist wie ins Fitnessstudio zu gehen.
Damals entstand ein einfacher Gedanke: Für diese Menschen, für ihre Anziehungskraft, haben wir bereits bezahlt, und nicht zu versuchen, zumindest einen Teil dieses Publikums zu retten, indem wir sie bei der Erstellung von Websites mitspielen lassen?
„Ich glaube, dass jeder, der irgendwie mit der Erstellung von Internetprojekten verbunden ist, im Rahmen dieser Wirtschaftsstrategie unbedingt mit dem Site-Management spielen sollte. Kein Wunder, dass sie sagen, dass Spiele etwas lehren können ... Dies ist einer der wenigen Fälle, in denen Sie einige der Prinzipien der Verwaltung eines Site-Teams und die Funktionen der Arbeit an vielen Sites wirklich verstehen können. Und für diejenigen, die gerade dabei sind, in diese Branche einzutauchen, ist es ein Muss, die im Spiel vorgestellten Mechanismen zu studieren! “
Dmitry G. aka Dimok (berüchtigt in den engen Kreisen des Runet-Webmasters, Bloggers)
Jeder möchte ein Spiel für sich selbst machen.
Lassen Sie mich niemand glauben, aber dies war wirklich nicht die Voraussetzung Nummer eins. Obwohl die Geschichte so alt ist wie die Welt. "Ich bin Musiker, lass uns ein Spiel für Musiker machen!", "Ich bin ein Spielentwickler, lass uns Game Dev Tycoon machen!" - es gibt viele Beispiele für solche Spielzeuge, insbesondere im Indie-Genre.
Game Dev Tycoon ist übrigens ein offensichtlicher Erfolg. Dies wird durch eine Reihe von Klonen belegt, die sich auf dem Mob entwickeln. Plattformen. Unsere Spiele sind grundlegend anders (andere Mechaniken, eine andere Einstellung), aber Web Tycoon wird am häufigsten mit ihnen verglichen.

Erster Schmerz
Die Entscheidung ist getroffen, wir machen das Spiel. Er schrieb über die Teamerfahrung im ersten Absatz, außerdem sind die Jungs bereits mit laufenden Projekten beschäftigt, was nicht zumutbar ist, um sie abzureißen. Also was? Sie müssen die Arbeit also Fachleuten anvertrauen. Dies war unser erster wirklicher Schmerz.
In erster Linie wurde ein ehrlicher Versuch unternommen, ein gut entwickeltes Spieleentwicklungsstudio für die Entwicklung zu engagieren. Glücklicherweise war es möglich, Empfehlungen von Kollegen und Freunden zu dem Workshop zu erhalten, an die man sich besser wenden kann. Auf der Ideenebene gefiel das Projekt allen, und die Studios waren bereit, solche Arbeiten aufzunehmen.
Hier sind einige Szenarien, auf die wir später gestoßen sind:
- Ja, wir geben zu, unsere Spieler haben es nicht getan. Viel Glück mit dem Projekt!
- Willst du ein Browsergame? Lass es uns auf Unity machen, keine Frage. Und die Tatsache, dass der Benutzer das Plug-In im Browser installieren muss (damals war es nur so), ist kein Problem, es kostet fast jeden!
Zwei Studios bezahlten nicht das billigste Diz. Docks. Erhielt sehr umfangreiche Ergebnisse. Es wurde viel Arbeit geleistet, keine Fragen. Es ging jedoch nur um ein anderes Spiel. Vielleicht sogar gut, aber anders. Zur Beschreibung der am besten geeigneten Leute: "Egal, was die Russen tun, alles stellt sich als Kalaschnikow-Sturmgewehr heraus." Es war klar, dass die Leute daran gewöhnt waren und es in einem ihnen bekannten Genre mit bekannter und gut entwickelter Mechanik machen wollten, und deshalb waren sie im Diz figurativ. doc
Es gibt jedoch keinen Silberstreifen. Von dieser Phase des Studierens von Studio zu Studio haben wir einen, aber sehr wertvollen Namen herausgebracht. Der ursprüngliche Code war uWebmaster (das Spiel handelt von Webmastern, und wir sind es gewohnt, alles mit dem Buchstaben U zu bezeichnen). Eine offensichtlich relevantere Option wurde vorgeschlagen - Internet Tycoon, das sich dann in Web Tycoon verwandelte.
Der zweite Schmerz, mach es selbst
Als wir zugeben mussten, dass mit uns (oder mit uns) nichts mit den Studios funktioniert, beschließen wir, ein Haus zu bauen. Eine lange Auswahl der grundlegenden Person für den Prozess, des Spieledesigners, beginnt. Wer auf die Idee kam, interessierte sich zunächst für ein ähnliches Genre, besaß die notwendigen Kompetenzen usw.
Ich möchte nicht lange über ein sehr schwieriges Thema sprechen, wer sind diese Spieledesigner? Wie es notwendig ist und ob es notwendig ist, diz zu schreiben. Docks. Sollte ein Spieledesigner sein Spiel spielen, mit dem Publikum kommunizieren, ein Manager sein. Dies ist ein sehr eigenständiges und ganzheitliches Gespräch. Ich werde eines sagen: Heute haben das Projekt und das Team aus ganz anderen Gründen 4 Spieledesigner (darunter einen Junior) überlebt.
Die Rekrutierung war nicht an allen Fronten einfach. Lange Zeit war sein einziger Vertreter ein einsames Gameplay (eines der 4 oben genannten). Der Hauptgrund dafür ist das „Restprinzip“ mit relativ hohen Anforderungen. Das heißt, zuallererst brauchen Entwickler das Hauptprojekt, und dort wurden sie ziemlich erfolgreich eingestellt. Und der Techdir für das Spiel kristallisierte sich nicht heraus. Dies ist natürlich nicht möglich. Beschlossen zu tun - es zu tun. Aber wir haben lange auf diesem Rechen gearbeitet.
Selbst als der Techdir endlich auftauchte, war er lange Zeit sein eigener Teamleiter, Architekt und für ein komplettes Set ein Performer. Korrigierter Personalquatsch schwer. Es dauerte ungefähr sechs Monate, um ein vollwertiges Team zu bilden. So seltsam es auch scheinen mag, sie haben die längste Zeit nach einem Illustrator gesucht. Und plötzlich wurde unser Büroleiter zu ihnen.
Wenn wir ein bestimmtes Ergebnis zu diesem Teil der Geschichte zusammenfassen, können wir sagen, dass unser Spielteam vor 2 Jahren wirklich funktioniert hat. Wenig später wurde festgelegt, für wen Schnittstellen gezeichnet und für wen Code geschrieben und sogar Scrum eingeführt werden sollte, was für das gesamte Unternehmen bereits eine etablierte Praxis war.
Design und Schnittstellen
Jetzt sehen wir so aus:

Es ist eher ungewöhnlich für das Spiel und man könnte sogar sagen, dass es langweilig ist und keinen Spaß macht. Dies ist jedoch eine sinnvolle Wahl. Auf den ersten Blick sieht es eher wie ein Webportal aus als wie ein Spiel.
Leute mögen:

Als ich Bekannten Screenshots zeigte, hörte ich oft etwas wie: "Das ist also das Admin-Panel", "Ich dachte, es sind jemandes Statistiken, kein Spiel." Diejenigen, die unser Publikum sind, gingen sofort mit einem Knall. Sie wollten etwas wirklich Authentisches, keine Toons. Vielleicht verlieren wir einige Gelegenheitsspieler aufgrund des gewählten Stils, aber wir glauben an seine Prägnanz.
Er überzeugte schließlich, dass das Spiel nicht wie ein typisches Spiel aussehen muss, ein Blick auf Football Manager. Der Simulator sieht vielleicht nicht sehr verspielt aus, ist aber erfolgreich. Das ist das Genre.
Innerhalb des gewählten Stils gab es mehrere Optionen für die Grafik. Nachfolgend finden Sie verschiedene Lösungen von verschiedenen Designern.






Alles ist besser, wenn Sie AI hinzufügen
Spieler lieben Kosmetik. Wir haben es noch nicht implementiert, aber bereits gelernt, wie man aus einem Foto einen Avatar für einen Spieler generiert. Am interessantesten ist dies mit einem sehr innovativen spezifischen Ansatz für maschinelles Lernen und Modelltraining ohne Datensätze.
Es wird aus den Elementen unseres Avatar-Designers generiert und nicht aus einem Foto a la Prisma stilisiert. Und obwohl die Maschine keinen Mann in Bezug auf Qualität gewann, holte sie ihn in Bezug auf Qualität ein, was angesichts der Aufgabe als Erfolg angesehen wird.

Die Technologie selbst hat Pläne zu entwickeln. Diese Geschichte verdient einen eigenen Beitrag oder gar keinen, und sie wird sicherlich auf Habré sein. Wenn jemand sehr ungeduldig ist, klopfen Sie an die PM, wir werden die Gelegenheit geben, damit persönlich zu spielen.
Englisch zuerst, zuerst mobil
Je näher wir der Veröffentlichung kamen, desto mehr wurde uns klar, dass unser Spiel perfekt auf mobile Geräte passt. Irgendwo noch besser als auf dem Desktop. Gleichzeitig haben uns unsere Browser-Spieler während des Testzeitraums mit dem Publikum sehr zufrieden gestellt. Sie führten aktive IT-Gespräche im Chatroom des Spiels, schrieben Bots, um das Spiel zu automatisieren, und wählten unsere undokumentierte API aus.
Ursprünglich wurde das Spiel mit der Idee entwickelt, dass wir derzeit einen Browser verwenden. Darin testen wir die Mechanik, das Gleichgewicht und sammeln dann dank der eingebetteten API schnell native Anwendungen. Die Realität hat Anpassungen vorgenommen.
Es gab keine Zeit oder kein Budget mehr für diesen wunderbaren Plan. Gleichzeitig waren fast alle Verlage, mit denen wir gesprochen haben, hauptsächlich an Mobilgeräten interessiert und boten an, zu ihnen zu kommen, wenn wir eines haben.
Es war notwendig, Kompromisse einzugehen, da wir auf Cordova einige Monate lang iOS- und Android-Anwendungen zusammengestellt haben. Es ist klar, dass sie nicht Standard sind (obwohl sehr anständig), aber Sie können ganz bequem spielen. Und es ist möglich, die Hypothese "wie es geht" absolut genau zu testen.
Probleme mit dem App Store
Mit Apple und Moderation im App Store musste ich ein bisschen ringen. Zunächst gab es einen Entwurf mit der Motivation: „Sie sind eine Webanwendung. "Apple-Geräte haben Safari und leben darin. Machen Sie sich keine Sorgen." Aber wir haben es gewonnen.
Dann musste ich leider aufgrund der Anforderungen von Apple die auffällige Spielwährung Bitcoin in Webcoin umbenennen. Fairerweise haben sie Recht, Irreführung ist wirklich möglich. Obwohl für uns die Empfindungen nicht gleich sind.
In Bezug auf Lokalisierungen sind wir völlig bereit, ein englischsprachiges Publikum anzusprechen. Es ist jedoch einfacher und billiger für uns, unseren russischsprachigen Markt zu verbessern und zu testen. Daher haben wir bisher nur in Russland begonnen, aber in ein oder zwei Wochen erwarten wir, dass wir zuerst zu English First zurückkehren.
Technische Punkte
Migration von React und Redux zu Vue und Vuex
Ich verstehe, dass wir jetzt auf das dünne Eis möglicher Holivars treten, daher werde ich sofort reservieren, dass wir nichts auferlegen oder behaupten, wir stimmen wissentlich zu: „Sie wissen einfach nicht, wie man sie kocht“. Dies ist nur eine Beschreibung unseres Weges, Gründe für die Wahl und Erfahrung.
Die erste Revolution bei der Entwicklung des Spiels war der Übergang von React und Redux zu Vue und Vuex, wenn auch recht weich.
Wir im Unternehmen versuchen, alle Produkte auf ungefähr demselben Technologie-Stack zu entwickeln. Dies ist in erster Linie eine Frage des gesammelten Fachwissens und in diesem Fall eines einfachen Transfers zwischen Entwicklungsteams. Grundlegend für uns heute: NodeJS, React und MongoDB.
Ein Spiel mit einer Menge Daten und Verbindungen zu erstellen, war bei NoSQL anfangs dumm. Infolgedessen war es eine Woche lang blutig, dass wir alle dorthin migriert sind, aber das Wichtigste zuerst.
Warum hat sich auf halbem Weg von React zu Vue gewechselt?
Das Aufkommen des neuen Spieledesigners veränderte die zentrale Spielmechanik, was zu einer ernsthaften Änderung der meisten Schnittstellen im Spiel führte. Die neuen Mechaniken wurden schnell als Prototypen für Vue entwickelt. Das Kriterium für diese Wahl war die niedrige Schwelle für den Einstieg in die Technologie. Im gleichen Zeitraum haben wir ein Vektorsystem für Verkehrswachstum, Gewinn und Energie eingeführt. Vorher haben sie einfach Daten rechtzeitig geschrieben, aber nicht mit den Änderungsraten gearbeitet.
In Verbindung mit React haben wir zunächst Redux verwendet. Die Verbreitung wuchs sehr schnell - jede Benutzeraktion mit einer Website im Spiel erstellte einen neuen Eintrag. Dementsprechend mutierte die ganze Geschichte und Getter wurden erzählt, und sie hatten infolgedessen komplizierte Berechnungen von Verkehr und Gewinn - all dies verlangsamte sich schrecklich. Natürlich könnten Sie MobX nehmen, die Berechnungslogik wiederholen, aber dieser Moment fiel mit ernsthaften Änderungen in der Mittelmechanik zusammen, es war irgendwie nicht vorher. Oder die Sterne fielen zusammen. Während sie versuchten, Probleme in Redux durch die Verbindung mehrerer Parteien zu lösen, funktionierte in Vuex alles sofort und wurde ohne unnötige Gesten in eine beliebige Anzahl von Submodulen unterteilt.
Die Syntax Zucker und die Flexibilität von Vue haben uns wirklich "getroffen". Um beispielsweise regelmäßig einen Wert in einer Komponente zu aktualisieren, werden jetzt Eigenschaften berechnet
foo() { return bar + baz; }
schreibe
foo() { return (this.oneTick, bar + baz); }
In der Eigenschaft this.oneTick, die reaktiv ist und einmal pro Sekunde aktualisiert wird, ist ein wenig Magie verborgen. Dadurch wird die Komponente gerendert, wenn sich das Ergebnis des Ausdrucks bar + baz ändert.
Datenbankmigration
Vom Backend aus hatten wir eine kleine und eine große Migration. Ursprünglich wurde das Projekt unter MySQL durchgeführt. Da es schnell ging, dachte ich einfach, dass wir Relais und andere Freuden brauchen. Danach sind wir ein bisschen gereift und haben ziemlich schmerzlos auf PostgreSQL umgestellt.
Umfangreicher und komplexer war der Wechsel zu MongoDB. Die Entscheidung war auf einfache Skalierbarkeit und relativ höhere Leistung zurückzuführen. Während des zweiten Zuges gab es trotz des Vorhandenseins von ORM viel mehr Probleme. Die Einrichtung des Standard-ReplicaSet und von AutoFailOver dauerte jedoch nur eine Stunde.
Ein paar Worte zu Verlagen
Zunächst warten wir auf sie. Bisher hat nur Mail.Ru zuversichtlich an uns geglaubt. Vielen Dank Kollegen dafür. Sehr bald werden wir herausfinden, wie unsere Browserversion ihre Zielgruppe erreicht.
In intelligenten Büchern und Podcasts heißt es, dass Verlage irgendwo auf halbem Weg kommen müssen und nicht in der Veröffentlichungsphase. Wir haben uns im Voraus unterhalten und sind im November zu DevGamm gegangen.
Was haben wir erwartet:
"Ja, ok, wiederholen Sie dies und das, und hier sind wir und unser Fachwissen!"
Was wir haben:
"Es ist cool, eine frische und ungewöhnliche, interessante Umgebung, aber wie fängt man an und es wird Monetarisierungstechniken geben - komm."

Im Allgemeinen hat uns die Theorie gescheitert. Versuche zu verstehen, warum dies geschah, gaben die Antwort: "Sie haben einen Nicht-Standard, also hier ist es."
Hand aufs Herz, ich werde sagen, dass es meiner Meinung nach nicht so viele Nicht-Standard gibt, aber sie wissen es besser.
Im Allgemeinen reagieren Vertreter des Spielentwicklers positiv auf uns. Es ist zu sehen, dass der Markt die nächsten "Kill the Dragon" und "Conquer the Castle" satt hat. Obwohl dies eine verzerrte Wahrnehmung von Menschen von innen sein kann.
Finale
Mit einem so dornigen, krummen Weg kamen wir zu einem weichen Mittagessen. Dies ist nicht der Fall, wenn die Gewinner nicht beurteilt werden, und es kann noch nicht als Sieg bezeichnet werden. Daher warten wir in den Kommentaren auf Ihr Feedback und Ihre Fragen. Wir werden umgehend auf alles reagieren!
Wenn Sie bereit sind, eine Zusammenarbeit anzubieten, sind wir sogar bereit, darüber nachzudenken.