Im Dezember letzten Jahres haben wir auf der Games Gathering 2017-Konferenz einen
Bericht erstellt, in dem wir darüber sprachen, ob Unternehmen, die in der Spielebranche tätig sind, ihre eigenen Engines schreiben müssen.
Einheit angesichts einer Vielzahl von Spiel-Engines
Warum in der modernen Welt, in der es Giganten wie Unity gibt, etwas Eigenes tun, ihre eigenen Spiel-Engines schreiben?
Hier ist eine Folie mit Daten von Unity Technologies zur Verwendung verschiedener Game-Engines im Jahr 2017. Nächstes Jahr wird sich die Situation, wie Sie verstehen, ändern. Was uns hier interessiert, sind 41%, also Motoren unseres eigenen Designs. Wenn Sie sich die 5 größten Unternehmen ansehen, die auf der Konferenz vertreten sind, hat jedes seine eigene Engine. Es stellt sich heraus, dass in den meisten Unternehmen, die die Spielebranche vertreten, eine Art interne Entwicklung verwendet wird. Dies ist nicht immer die vernünftigste Entscheidung der Welt, aber sie ist es.
Aus welchen Basistechnologien können Unternehmen, die ein Spielprojekt entwickeln möchten, wählen?
Armee der sieben Nationen
Die Pyramide, die Sie auf der Folie sehen, kann sowohl nach oben als auch nach unten fortgesetzt werden. Es schränkt Sie absolut klar ein. Unten - das Betriebssystem, noch niedriger - einige grundlegende Technologie. Oben finden Sie Add-Ons über Engines, ein vorgefertigtes Toolkit, das mit Spielen wie Neverwinter Nights-Tools geliefert wird. Was auch immer Sie tun, auf die eine oder andere Weise, Sie befinden sich in dieser Sache.
Angenommen, ich möchte mich auf der zweiten Ebene dieser Pyramide befinden. Alle Wege führen jedoch schließlich zur Spitze der Pyramide. Wir werden etwas aus dem vorhandenen verwenden, aber es ist sehr wichtig, dass wir in der oberen linken Ecke der obersten Ebene der Pyramide sehen können, dh Motoren unseres eigenen Designs.
Jetzt analysieren wir die Zeit, den Aufwand und das Geld, die für die Entwicklung des Spiels erforderlich sind.
Zurück zu den Grundlagen
Wenn das gesamte auf der Folie angezeigte Kreisdiagramm ein Spiel ist, ist die Engine der blaue Sektor. In einer idealen Welt können Sie bei der Entwicklung eines Spiels diesen blauen Sektor herausnehmen und dort rot, gelb oder grün platzieren. Sie können ein großes "U" in ein anderes großes "U" ändern oder ein kleines "x" nehmen, und was Sie auswählen, funktioniert genau dort. In Wirklichkeit ist dies nicht so, aber wir sollten danach streben. Ein ähnliches Bild ist bei realen Projekten in der Spielebranche ständig zu beobachten. Es kommt auch vor, dass das gesamte Diagramm von der Engine belegt wird, dies gilt jedoch nur für einige Demoprodukte.
In diesem Fall werden Geld, Zeit und alles andere auf diese Weise verteilt. Was auch immer Sie tun, Sie müssen sich mit allem befassen, was in den grünen Bereich des Diagramms fällt. Es ändert sich nicht von Motor zu Motor. Wenn Sie über ausreichende Ressourcen verfügen, um den gesamten Prozess der Arbeit an einem Spielprojekt zu unterstützen, ist die Entwicklung der Engine daher nicht so teuer. Wenn jedoch jemand im Unternehmen über die Entwicklung eines eigenen Motors spricht, wird er höchstwahrscheinlich auf bestimmte Einwände stoßen. Betrachten Sie sie.
Mythischer Mannmonat
Angenommen, Sie möchten eine eigene Engine erstellen und den Entscheidungsträger darüber informieren. Als Antwort werden Sie über dasselbe hören, was auf der Folie zu sehen ist: "Sie werden es für eine lange Zeit tun, es ist sehr riskant, es ist irrational, es wird uns nicht helfen, unsere Ziele zu erreichen." Was kann beantwortet werden? Der Punkt hier ist, dass alle diese Einwände, mit Ausnahme der letzten, der Kritik nicht standhalten.
Lange Entwicklung des Motors? Wenn die Entwicklung mit einer eigenen Engine jedoch schneller verläuft, ist dies kein Argument. Vielleicht weiß im Allgemeinen niemand, was „rational“ ist. Daher sind alle diese Einwände sehr subjektiv.
Der letzte Punkt, ob Ihr Motor zur Erreichung der Ziele beiträgt, ist sehr wichtig. Wenn Sie dank eines Zuschusses von Unreal 4 Geld verdienen möchten, müssen Sie wahrscheinlich keine eigene Engine erstellen, da dies nicht zu diesem Ziel führt. Wenn Sie ein Ziel haben, in dessen Rahmen Sie bestimmte Technologien bearbeiten müssen, müssen Sie keine eigene Engine schreiben - Sie müssen das nehmen, was ist. Es ist jedoch keineswegs immer möglich, vorgefertigte Motoren effektiv einzusetzen. Warum schreiben Sie trotzdem Ihren eigenen Motor?
13 Gründe warum
Wann brauchen Sie vielleicht einen eigenen Motor? Lassen Sie uns diese Folie nach Punkten analysieren:
- Time-to-Market - Time-to-Market für ein Produkt. Das ist wirklich ernst. Die Hälfte der Motoren, die heute in großen Unternehmen eingesetzt werden, wurde genau deshalb entwickelt, weil zu dem Zeitpunkt, als dieses Unternehmen schnell eine Nische besetzen musste, die Entwicklung seiner eigenen schneller war, als etwas anderes zu nehmen und zu beherrschen.
Hier ist eine Geschichte für dich. Ein Unternehmen hatte eine Aufgabe für Programmierer auf der Website, die ungefähr so aussah: „Leute, wenn Sie mit uns arbeiten möchten, schreiben Sie bitte Asteroids, die auf der Android-Plattform ohne Verwendung externer Bibliotheken ausgeführt werden sollten. Wir glauben, dass 8 Stunden für Sie ausreichen. Die Zeit ist gekommen. " Dann wurde die Zeit auf 12 Stunden erhöht. Vielleicht sieht es lustig aus. Zuerst habe ich das von außen gesehen, dann habe ich mir diese Firma angesehen und mich gebeten, Ihnen zu erzählen, was sie in Form einer Antwort auf diese Aufgabe gesendet haben. Wie sich herausstellte, haben mehr als zweihundert Programme die Auswahl bestanden, dh diese Programme wurden gestartet und funktionierten. Das heißt, wenn Sie plötzlich "Asteroids" für Android veröffentlichen möchten, gibt es mindestens 200 Personen, die dies in 8 Stunden tun können. Ich sage nicht, dass es verkauft werden kann. Aber ich erzählte diese Geschichte der Tatsache, dass der Motor tatsächlich sehr oft Time to Market ist. Sagen wir einfach, weil Sie so kleine Bedürfnisse haben, dass Sie die Dokumentation für dasselbe Unreal länger studieren werden, als nur Ihre eigenen zu nehmen und zu erstellen.
- Herr der Plattform ist der Meister der Plattform. Es gibt Plattformen, für die es keine vorgefertigten Werkzeuge gibt. Zum Beispiel STB, Set-Top-Box (digitaler Fernsehempfänger) - eine Box für Kabelfernsehen, die bei jedem dritten Amerikaner auf dem Tisch liegt.
Warner hat 120 Millionen Nutzer dieses Dienstes. Wenn Sie dort Software schreiben, einschließlich Spiele, haben Sie einen Dollar aus der Box. Das sind 120 Millionen Dollar pro Jahr. Gleichzeitig kann niemand außer Ihnen für dieses Ding schreiben. Da es kein DirectX gibt, gibt es überhaupt nichts. Wenn Sie Programme für STB schreiben können, dann sind Sie der Meister der Plattform, Sie haben diese 120 Millionen Dollar pro Jahr. Warum schreibst du nicht deinen eigenen Motor?
Es ist klar, dass wir jetzt mehr über so etwas wie Konsolenspielzeug sprechen, aber in einigen Situationen kann dies dennoch notwendig sein. Hier zum Beispiel Spielautomaten. Natürlich gibt es jetzt hauptsächlich Computer. Aber vor uns liegt ein separates Eisengerät und ein riesiger Markt, für den es durchaus möglich ist, etwas Eigenes zu schreiben.
Wir können sagen, dass wir an Telefonen interessiert sind, aber wir sprechen über Millionen von Dollar. Warum nicht für andere Geräte schreiben? Dafür gibt es absolut klare Gründe.
Oder wir haben zum Beispiel die neuesten Smartwatches. Das SDK ist noch nicht bei ihnen angekommen, niemand versteht, was mit ihnen zu tun ist, und wenn Sie selbst ein Qualitätsprodukt für sie schreiben können, dann verdienen Sie beispielsweise einen Dollar mit jedem solchen Gerät. Wenn sie zwei Millionen verkauft werden - dann bekommen Sie zwei Millionen Dollar. Das zu schreiben ist nicht schwierig, aber dafür müssen Sie Ihre eigene Engine erstellen, da es keine Fremden gibt und Hersteller solcher Geräte keine öffentlichen Engines für die Entwicklung für sie herstellen.
- Schwache, aber stolze Geräte sind kleine, aber stolze Geräte. Wenn Sie Spiele für Mobiltelefone erstellen, zumindest einige Statistiken sammeln, wissen Sie, dass mit Hardware von Apple-Geräten alles mehr oder weniger normal ist, aber mit der Android-Plattform ist es nur eine Katastrophe.
Die Hälfte der Geräte auf dem Markt basiert auf dem ARM Mali-400-Chipsatz, jedes Budget-Telefon ist ein Mali-400. Und wenn Sie für das bezahlt werden, was Sie mit Telefonanwendungen tun, sollten Sie für diese kleinen, aber stolzen Geräte schreiben, die den Markt noch nicht verlassen werden und ihn sehr bald verlassen werden.
Darüber hinaus können Sie beim iPhone zumindest einige Wetten auf den Fortschritt abschließen. Zum Beispiel wird erwartet, dass Unreal unter dem iPhone 10 funktioniert, obwohl es bis dahin noch einige iPhone 12, 15 oder 17 geben wird. Im Falle der Welt im Allgemeinen ist es jedoch schwieriger, kurzfristig Fortschritte zu erzielen. Weil das Upgrade von Geräten sehr langsam ist.
Wenn Sie ein wettbewerbsfähiges Bild wünschen und es sehr wichtig ist, entscheiden Sie sich nicht für Geräte mit geringem Stromverbrauch. Beachten Sie jedoch, dass alle modernen Motoren nicht sehr klein sind. Wenn Sie kein wettbewerbsfähiges Bild wünschen, berücksichtigen Sie dementsprechend die Fähigkeiten schwacher Telefone. Wenn Sie sich beispielsweise in einer Situation befinden, in der Sie nicht an den schnellsten Geräten interessiert sind und beispielsweise der einzige Distributor in Portugal oder Brasilien sind, müssen Sie darüber nachdenken.
- Eigene Sprache für eigene Ideen - eigene Sprachen für eigene Ideen. Wenn Sie den Motor selbst herstellen, können Sie dieses Konzept verwenden. Tatsache ist, dass das Hauptproblem unserer Branche darin besteht, dass die Domäne des Spieledesigners die Philologie ist. Er denkt in gewöhnlicher Sprache. Er kann nichts anderes tun. Aber der Programmierer denkt im Programmierbereich und es gibt eine Lücke zwischen ihnen. Infolgedessen kostet eine bestimmte Iteration, die kontinuierlich wiederholt werden muss, beispielsweise zwei Dollar. Und Sie geben dieses Geld ständig aus.
Standardmotoren versuchen, alle abzudecken. Tatsächlich sehen wir, wie sie versuchen, natürliche Domänen von Sprache zu Sprache und von Raum zu Raum zu transformieren. Aber für alle. Und Sie haben Ihre eigenen Ideen, und Sie können sie direkt umsetzen und Ihre eigenen Tools erstellen. Es ist klar, dass all dies in Form von Plug-Ins über vorhandene Motoren hinaus möglich ist, aber sein Motor eröffnet völlig andere Möglichkeiten.
- Einzigartige Mechanik = Einzigartige Motoren - Einzigartige Mechanik = Einzigartige Motoren. Meine Freunde haben Minecraft im fünfzehnten Jahr mit Unity geschrieben. Gab es irgendeinen Grund, dies alles zu tun - eine offene Frage. Aber sie wählten den Motor und machten sich an die Arbeit. Der Motor störte sie jedoch offensichtlich sehr. Es war schwer für sie. Sie hatten sehr lange Iterationen. Nachdem wir sie konsultiert hatten, schrieben sie buchstäblich in drei Tagen ihren eigenen Render. Darüber hinaus ist der Rest des Codes, der beispielsweise für den Aufbau der Welt verantwortlich ist, natürlich nicht verschwunden. Es hörte einfach auf, in C # zu sein, hörte auf, in Einheit zu sein. Und die Arbeit begann zu kochen. Ich weiß nicht, ob sie es geschafft haben, Geld damit zu verdienen, aber die wichtigste Schlussfolgerung aus dieser Geschichte ist, dass sie Unity anfangs nicht verwenden mussten.
Das heißt, es gibt eine große Anzahl von Mechanikern, für die Standard-Universalmotoren nicht geeignet sind, nur weil sie für alles ausgelegt sind. Wenn Sie sich also morgen etwas Besonderes einfallen lassen, eine Art komplexer Voxelmechanismen, ist die Arbeit mit Standardmotoren für Sie unpraktisch. Das heißt, es gibt Mechaniken, für die Standardmotoren nicht geeignet sind und die unabhängig voneinander recht einfach zu implementieren sind.
- Das Spiel ist kein Rendering - das Spiel ist alles andere - das Spiel ist kein Rendering, das Spiel ist alles andere. Wir haben bereits darüber gesprochen. Wenn Ihr einziges Problem darin bestand, etwas zu zeichnen oder beispielsweise Sound für ein Spiel mit mehreren Plattformen zu verwenden, konnten Sie ähnliche Geschichten in der zuvor besprochenen Pyramide sehen. Wenn Sie sagen: "Ich möchte Sound auf drei Plattformen abspielen", brauchen Sie dafür kein großes "U" - ein kleines "c" reicht aus.
Wir haben die Gründe für die Entwicklung unseres eigenen Motors berücksichtigt. Lassen Sie uns nun näher darauf eingehen, welche Vorteile das Unternehmen mit der Entwicklung eines eigenen Motors bietet.
Die Vorteile der Entwicklung eines eigenen Motors
Berücksichtigen Sie die Vorteile der Entwicklung Ihres eigenen Motors auf der Grundlage der auf der Folie vorgebrachten Hauptideen:
- Kaufen ist oft besser als Hypothek - Kaufen ist oft Hypotheken vorzuziehen. Spieleentwicklung ist sowieso Geld. Es gibt Möglichkeiten zur Monetarisierung, bei denen der Kauf nicht nur besser ist als eine Hypothek, sondern nur die einzige Option.
Wenn jemand an mobilen Technologien gearbeitet hat, dann verstehen Sie alles. Wenn auf der Box am Motor steht: "10 Prozent der Lizenzgebühren", dann ist dies kategorisch inakzeptabel. Sie werden nicht so viel verdienen. Sie können einen Gewinn von hundert Prozent erzielen, aber Sie arbeiten aus zwei heraus. Das heißt, wenn Sie Lizenzgebühren haben, ist dies ein rein wirtschaftlicher Grund für den Verzicht auf den Motor. Aber ich muss sagen, dass drei oder besser gesagt - zwei der derzeit beliebtesten Motoren - nur eine Frage der Abzüge sind. Das heißt, diese Option verschwindet sofort.
- Spezifität ist auf lange Sicht besser als Universalität - über große Entfernungen sind spezialisierte Werkzeuge immer besser als universelle. Offensichtlich ist Universalität immer langsamer, weniger produktiv und weniger spezifisch als spezielle Dinge. Ein Motor, der für eine bestimmte Aufgabe geschrieben wurde, wird besser und schneller damit umgehen als ein universelles Werkzeug. Spezialwerkzeuge sind auf lange Sicht viel rentabler als Universalwerkzeuge.
- Tools und Pipelines werden innerhalb von Pipelines und Entwicklungswerkzeugen entwickelt, die intern erstellt wurden. Jeder Motor, der von Personen außerhalb Ihres Unternehmens erfunden wurde, wird von mehreren Dingen geleitet. Das erste sind Best Practices. Das heißt, der Motor eines anderen Unternehmens konzentriert sich nicht darauf, wie Ihr Künstler malt, sondern darauf, wie Künstler malen, ideal aus ihrer Sicht. Es ist möglich, dass Ihre Künstler anders malen. Sie haben ihre eigene Pipeline und sie sind erfolgreich.
Sie haben zwei Möglichkeiten: Entweder trainieren Sie sie unter dem Gesichtspunkt der Best Practices neu, wie Sie sollten, oder verwenden Sie Ihre eigenen. Es gibt einfache Beispiele. Angenommen, Sie sagen: "Wir importieren 3D-Modelle." Sie wissen nicht, was auf der anderen Seite ist. Daher benötigen Sie ein Zwischenformat. Zwischenformat sei FBX. FBX-Fehler, die jeder kennt, der dies tut. Und Sie können nirgendwo hingehen, da Sie nicht wissen, was dort getan wird. Sie werden keine Plug-Ins für 450 3D-Modellierungswerkzeuge schreiben.
Wenn Sie in Ihrem Unternehmen arbeiten, können Sie dieselbe Pipeline implementieren, die Sie bereits haben, und darauf setzen, was Sie tun. In der Tat ist dies sehr wichtig. Tatsache ist, dass dies alles mit der Entwicklungszeit und folglich mit den Kosten zu tun hat. Wenn Sie zu Hause entwickeln, können Sie daher über die bereits vorhandene Pipeline verfügen. Andernfalls haben Sie ein Dokument mit dem Namen "Die Regel zum Hochladen von 3D-Modellen und Erstellen von Materialien für Künstler", das mehr als ein falsches Designdokument ist.
- Reaktionszeit - Reaktionszeit. Wir sprechen über die Reaktionszeit des Motorenherstellers auf Ihre Anfragen, über die Möglichkeit, den Motor mit neuen Funktionen auszustatten, und über die betriebliche Erforschung neuer Technologien.
Sagen wir, im nächsten Büro sind Leute, die den Motor herstellen. Jeder, der versucht hat, den Fehler in der Universal-Engine zu beheben, dh Unity oder Epic in den Bug-Tracker zu schreiben, weiß, dass es besser ist, nicht einmal zu starten. Und wenn die Entwickler im nächsten Büro sitzen, können Sie sie kontaktieren und das Problem in 15 Minuten lösen.
Gleiches gilt für den Vorschlag neuer Funktionen, sofern Sie dazu berechtigt sind. Das Studium neuer Technologien wird auch durch den Einsatz eigener Motoren vereinfacht.
Angenommen, Ihr Programmierer ist zu einer Konferenz gegangen und hat dort einen Vortrag über etwas Neues gehört. Er hat es sofort versucht, Sie haben eine Idee zu diesem neuen und Sie wissen, ob Sie es brauchen oder nicht. Sie können direkt reagieren, um etwas Interessantes aus der Welt der Wissenschaft auszuprobieren. Dies bedeutet übrigens, dass das Unternehmen möglicherweise eine Person hat, die als „Forscher“ bezeichnet wird. Gleichzeitig können Sie über dasselbe Unwirkliche recherchieren, da es in der Quelle enthalten ist.
- Leistung - Leistung. Die Spielebranche ist immer Produktivität. Der erste Ansatz zur Erzielung einer hohen Leistung ist die Verwendung kundenspezifischer Lösungen. Je spezifischer die Lösungen sind, desto produktiver sind sie. Der zweite Ansatz - übrigens auch, Liebes - ist die Optimierung von vorgefertigten Motoren. Wie genau das aussehen wird - hängt stark von diesen Motoren ab.
Die Entwicklung eines eigenen Motors ist nicht nur von Vorteil. Dies sind auch Risiken. Betrachten Sie sie.
Risiken im Zusammenhang mit der Entwicklung Ihres eigenen Motors
Berücksichtigen Sie die Risiken, die mit der Entwicklung und Verwendung unserer eigenen Motoren verbunden sind:
- Entwicklungszeit - Entwicklungszeit. Dieses Konzept überschneidet sich mit dem, worüber wir gesprochen haben, wann wir in den Markt eintreten sollen. Die Entwicklung des Motors kann sehr lang und schnell genug sein. Die Entwicklungszeit des Motors trägt jedoch in jedem Fall zur Gesamtentwicklungszeit des Projekts bei. Daher ist dies auch ein Risiko. Zum Beispiel kenne ich Teams, in denen die Entwicklungszeit des Motors gegen unendlich geht.
- Endfälle der Lieferantenverriegelung - Endfälle der Bindung an den Lieferanten. Dies gilt nicht nur für große, sondern auch für kleine Unternehmen. Nehmen wir an, Sie haben Vasya eingestellt, er hat den Motor geschrieben, sich dann verliebt, Sie verlassen, und niemand versteht, was er geschrieben hat. Infolgedessen haben Sie eine schlechtere Anbietersperre als Google. Weil Sie immer noch einen Brief an Google schreiben können, obwohl sie nicht antworten werden, aber hier mit dem Abgang des Programmierers war alles vorbei. Das Ergebnis ist Entwicklungsverlust und andere unangenehme Folgen. Sie müssen diese Risiken vermeiden können.
- Das Rad neu erfinden - die Erfindung des Rades. Der Punkt ist, dass wir in einer Welt leben, in der Sie immer noch Fahrräder erfinden. Bei der Entwicklung des Motors stellt sich heraus, dass die Fahrradfabrik vom Spielcode auf den Motorcode übertragen wird, obwohl sie nicht dorthin gehören.
- Geschlossenes Ökosystem - ein geschlossenes Ökosystem. Alles, was innerhalb des Unternehmens getan wird, gehört zu diesem Unternehmen.Ich kenne eine Reihe von Unternehmen, die so etwas wie eine eigene Skriptsprache haben. Es kann sich um eine Art XScript handeln, das nur als Teil ihrer Lösung funktioniert.
Programmierer, die diese Technologie kennen, können tatsächlich nichts mehr tun. Dies kann als einer der Faktoren angesehen werden, die zur Bindung von Mitarbeitern beitragen. Daher hängt die Antwort auf die Frage, ob es gut oder schlecht ist, ob der Einsatz eigener Technologien ein Risiko darstellt, von der jeweiligen Situation ab. Zum Beispiel versuchen wir, die Konzepte unserer eigenen Erfindung nicht zu verwenden. Ich kenne zum Beispiel eine Firma, die Lua mit stark typisierter Pascal-Syntax hat. Es kann gemeistert werden, aber dieses Wissen ist tot, wie Griechisch. Wir bemühen uns so sehr, nicht zu handeln.Das Hauptproblem des Lebens, des Universums und all das
Betrachten Sie ein sehr wichtiges Thema. Welche Ressource wird hauptsächlich benötigt, um Ihren eigenen Motor zu entwickeln? Eine Ressource, ohne die es keinen Sinn macht, darüber nachzudenken, ob Sie Ihren eigenen Motor bauen sollen oder nicht. Die Antwort darauf ist natürlich nicht 42. Die Frage ist, was nötig ist, um zumindest sagen zu können: "Ja, wir haben zumindest etwas, wir können anfangen, etwas zu tun." Die Antwort auf diese Frage lautet, dass Programmierer benötigt werden, um Ihre eigene Engine zu entwickeln.Programmierer
Um Ihre eigene Engine zu erstellen, benötigen Sie Programmierer. Wenn Sie es nicht wissen, googeln Sie den Unterschied zwischen den Wörtern "Entwickler" (Entwickler) und "Programmierer" (Programmierer). Es ist sehr wichtig. Entwickler sind die Hauptgruppe. Die Spielebranche ist so organisiert, dass die meisten Leute darin nicht als Programmierer bezeichnet werden können. Sorry, aber sie sind Entwickler. Entwickler können den Motor nicht richtig herstellen. Wenn Sie sich den Unterschied zwischen dem ersten und dem zweiten ansehen, machen die Entwickler die Spiele und die Programmierer die Werkzeuge. Entwickler stellen ein Produkt her, das Unternehmen verdient mit dem Produkt, aber die Tools müssen von Programmierern erstellt werden, sonst funktionieren sie einfach nicht.Einerseits ist es jetzt eine sehr offene Welt. Zum Beispiel kenne ich den Code von Unreal 4 und CryEngine, er ist offen. Jeder, der es wissen will, kann den Unity-Code herausfinden, es gibt eine große Menge relevanter Materialien. Dies bedeutet, dass jemand, der Programmierer ist und Englisch liest, dies tun kann. Dort gibt es keine Raketenwissenschaft. Andererseits sind Programmierer, die auf Englisch lesen, sehr schwer zu finden, wie sich herausstellte. Daher müssen Sie wissen, wo sie gefunden werden, Sie müssen in der Lage sein, sie zu rekrutieren, zu verwenden und zu fördern. Wenn Sie wissen wie, können Sie bereits an Ihren Motor denken. Wenn Sie solche Leute nicht haben, werden Sie immer noch keinen Erfolg haben. Beispiele hierfür sind Dunkelheit. Es ist nicht so, dass es schlechte und gute Lösungen gibt. Es gibt nur Dinge, die anfangs nicht funktionieren können.Programmierer müssen in der Lage sein, Mitarbeiter einzustellen. Wissen, wie man mietet - Sie können einen Motor bauen. Sie wissen nicht, wie Sie einstellen sollen - dann müssen Sie etwas fertig machen. Das Lustige ist außerdem, dass Sie, wenn Sie etwas Fertiges nehmen, als großes Unternehmen immer noch zwei Leute von diesen Programmierern brauchen, die auf Englisch lesen.Wenn Programmierer für die Entwicklung der Engine benötigt werden, haben wir sofort einige Fragen. Wo kann man nach Programmierern suchen? Wie organisiert man ihre Arbeit? Worauf sollte ich achten, wenn ich über die Entwicklungspfade von Spielefirmen nachdenke?Technische Epidemie
Nun ist es angebracht, an einen anderen Aspekt der Arbeitssuche zu erinnern, der hauptsächlich große Unternehmen betrifft. Solche Unternehmen verfolgen verschiedene Ansätze bei der Personalrekrutierung.Erstens können Sie Leute rekrutieren, joons, Praktika arrangieren und sie, indem Sie sie im Unternehmen schulen, irgendwie auf das richtige Niveau bringen. Dies ist ein normaler Ansatz. Gleichzeitig werden viele technologische Probleme gelöst, da es einfacher ist, eine gemeinsame Sprache mit einer Person zu finden, die zunächst die Unternehmenskultur wahrnimmt und bestimmte Technologien studiert.Zweitens gibt es einen Ansatz, den wir grundsätzlich bekennen. Wie funktioniert Kefir? Er macht alles zu sich selbst. Du nimmst Milch, wirfst Kefir dorthin - und es gibt keine Milch, alles wird zu Kefir. Für uns sieht es so aus: "Leute, lasst uns 5 starke Programmierer nehmen, es wird ein internes Technologiezentrum sein." Und ich sage allen, wenn Sie es sich leisten können, eine RnD-Abteilung zu betreiben, wenn Sie ein großes Unternehmen sind, dann tun Sie es. Lassen Sie sie aus geldpolitischer Sicht nicht einmal etwas Nützliches tun. Wenn ein Unternehmen seine Position auf dem Markt gestärkt hat und sich die Frage stellt, wo es expandieren soll, kann die Einrichtung einer RnD-Abteilung die Antwort auf diese Frage sein. Wenn ein Unternehmen bereits reich ist, bedeutet dies keinen Geldverlust, da es bereits so viel Geld für die Effizienz verliert, an der unsere Spielebranche jetzt arbeitet, dass es die Forschungskosten einfach nicht bemerkt.Betrachten Sie nun den Ansatz, dass das Unternehmen ein Team organisiert, das den Motor oder einige andere interessante Dinge herstellt. Das ist Arbeit für die Zukunft. Sie können Interviews führen, sagen, Sie geben Geld, Sie haben eine interessante Aufgabe, Sie machen einen Motor. Sie können aus Bewerbern auswählen, Menschen gehen zu Ihnen und innerhalb des Unternehmens herrscht immer eine solche Atmosphäre, in der Sie Ihre Ziele motivieren, ermutigen und dadurch erreichen können.Zum Beispiel habe ich einige Module, die von Lebensmittelunternehmen entwickelt werden, weil sie es brauchen. Das heißt, eine Physik wurde befohlen, und anstatt einige unserer eigenen Dinge zu sägen, sagen wir: „Lass es uns tun. Wir haben uns nur gemeinsame Schnittstellen ausgedacht, die etwas verallgemeinert sind, und Sie werden es tun. “ Und als Teil typischer Aufgaben ist dies sehr gut. Das heißt, es ist im Prinzip gut, Technologie innerhalb des Unternehmens zu verbreiten.Wenn das Unternehmen bereits so groß ist, dass es sich leisten kann, etwas Interessantes in sich selbst zu tun, zahlt es sich auch unter dem Gesichtspunkt des Geldes aus. Wenn Sie können, versuchen Sie es daher. Es kann so aussehen, wie Sie möchten - sagen wir, Ihr eigener unwirklicher Zweig wird erstellt und dort verarbeiten wir alles so, wie Sie es möchten. Zum Beispiel habe ich in einem der Unternehmen einen Browser erstellt, der in 2,5 Megabyte Speicher passt. Und er hat gearbeitet. Warum - ich weiß es nicht, aber es war unendlich interessant.Oben haben wir das Problem der Spielefirmen erwähnt, nämlich die Organisation einer effektiven Interaktion zwischen Programmierern und Designern. Lassen Sie uns näher auf dieses Problem eingehen.Zwei Welten
Es ist an der Zeit, Ihnen den Arbeitsplatz unseres Spieledesigners zu zeigen. Das ist ein echtes Bild. Hier wird eine Demo gezeigt, die Implementierung von Verhalten, etwas später werden wir näher darauf eingehen.In der Spielebranche existieren zwei Welten nebeneinander. Die Menschen konzentrieren sich entweder auf die Lösung technologischer Probleme oder auf die Erzählung. Und in der Mitte - eine Art Handwerk. Das heißt, es gibt praktisch keine Werkzeuge. Wörter, Wörter, Wörter - Knallcode. Wieder die Wörter - und wieder der Code. Wir glauben, dass wir Tools benötigen, mit denen wir uns mit dem verbinden können, was sich aus der Arbeit am Spiel ergibt, einem Spieledesigner, Manager und anderen Mitarbeitern, die keine Programmierer sind.Auf der Folie sehen Sie den Verhaltensbaum, den Verhaltensbaum. Im Prinzip ist dies eine Sache, die nur aus Wikipedia stammt, aber vor uns wurde sie von Unreal von dort übernommen. Daran ist nichts auszusetzen. Die Dokumentation hierfür befindet sich auf der Unreal-Website. Es war für uns nicht schwierig, eine geeignete Oberfläche zu erstellen, die mit den Funktionen von Unreal kompatibel ist. Das heißt, Sie können jedes Beispiel von der Anryl-Aktionsseite nehmen, ein Beispiel für das Verhalten selbst, da das Format ziemlich gleich ist. Schreiben Sie es so um, und es wird funktionieren. Dies bedeutet, dass ich mein Leben leichter gemacht habe, ich schreibe keine Dokumentation. Und es gibt viele solcher Dinge.Im Beispiel auf der Folie passiert etwas, eine Krabbe rennt, fängt jemanden, im Allgemeinen spielt es keine Rolle. Im Inneren löst der Programmierer Probleme, die wie "Gehe zu ...", "Schießen auf ...", "Berechnen der Entfernung" aussehen - und das ist alles. Alle anderen Verhaltensweisen werden in diesem Editor von einer Person geschrieben, die absolut nichts mit Programmierung zu tun hat. Und das funktioniert im Gegensatz zur Übersetzung von Text in Code. Apropos Gleichgewicht, sagen wir mal. Was ist Gleichgewicht? Dies sind 15 Faktoren, die geändert werden können. Und hier ist das Verhalten, nicht die Koeffizienten.Das heißt, das Verhalten des „Patrouillierens“ wird beispielsweise vom Spieledesigner und nicht vom Programmierer beschrieben. Dies bedeutet, dass wir den Schritt getan haben, den die meisten Menschen nicht tun. Sie schreiben einfach in ein Designdokument: „Patrouillen“. Und ein Programmierer kann dies auf 50 verschiedene Arten übersetzen. Was patrouilliert überhaupt? Und hier schreibt der Spieledesigner genau, was er meint. Und das ist ein Sieg, meine Freunde. Dafür benötigen Sie Ihre eigenen Werkzeuge. Um den Übergang von der verbalen Definition Ihres Visionärs, der das Spiel sozusagen in seinem Kopf sieht, zu Programmierern zu glätten. Andernfalls werden sie keine Programmierer mehr sein, Entwickler werden und ihr ganzes Leben lang das Gras jäten.Zusammenfassung
Zusammenfassend. Wir haben über Gründe gesprochen, Ihren eigenen Motor zu schreiben. Wenn Sie auf veraltete Geräte zurückblicken, ist dies weder gut noch schlecht. Das heißt, Sie möchten, dass Ihre Spiele auf einer bestimmten Reihe von Geräten ausgeführt werden, die von kommerziellen Engines nicht mehr unterstützt werden. Gleichzeitig möchten Sie modern aussehen. Wie erreicht man das? Schreiben Sie Ihre eigenen.Möchten Sie eine Plattform besitzen? Haben Sie ein bestimmtes Projekt, für das einfach keine universellen Lösungen erforderlich sind? Oder haben Sie im Gegenteil ein sehr großes und komplexes Projekt mit einem bestimmten Bild? Auch in diesen Situationen können Sie an Ihren Motor denken. Gleichzeitig benötigen Sie Ressourcen, um Ihre eigene Engine zu erstellen. Und Ressourcen sind Programmierer.Wenn Sie also Gründe haben, Ihre Engine zu schreiben, und über die Ressourcen verfügen, nehmen und schreiben Sie.Fragen und AntwortenFrage
Was ist der Wert Ihres Motors, wenn Sie ihn in Bezug auf Geld und Arbeit bewerten?
→ Antwort
, , , . , . , , . , , Lua, , JavaScript , . , , , , , — . . — 3D, , . , , «» 8 , , , .
?
Die Antwort
, . . , . , Lua, , , , Qt — .
, Lua, -, , ?
Die Antwort
Ja, das ist es. Tatsächlich arbeiten wir daran, dies in Open Source zu integrieren, Dokumentation, ein Montagesystem und Beispiele zu schreiben.
Frage
Unser Unternehmen hat sehr ähnliche Ansichten wie Sie und wir haben auch interessante Probleme. Ich würde gerne wissen - wie hoch ist Ihr Verhältnis der Arbeitskosten für ein Spiel, für eine Engine, für Werkzeuge? Das heißt, wie viele Leute arbeiten zum Beispiel an einer Engine, an einem Spiel, wie viele Spiele verwenden eine Engine?
Die Antwort
Wir haben jetzt zwei Motoren, die vorherige und die neue. Das heißt, dies ist kein Refactoring. Dies ist ein völlig neuer Motor. Wenn wir über Arbeitskosten sprechen, können wir sagen, dass unser Unternehmen groß ist, etwa 500 Mitarbeiter beschäftigt, Programmierer etwa 250, 5 Büros. Das Projektteam arbeitet an Spielen. Ein Projekt ist eine Art Spiel, an dem sich eine Reihe von Menschen beteiligen. Das Motorenentwicklungsteam ist ein separates Team. Dies ist der gleiche Kefir, über den ich gesprochen habe, Eliteeinheiten, es gibt ein bisschen anderes Geld und Ansätze zur Teambildung. Jetzt sind wir der Entwicklung etwas voraus. Zwei neue Spiele mit einer neuen Engine. Dies ist ziemlich schmerzhaft, da sich die Entwickler des Spiels nicht sehr wohl fühlen, weil sie in einer Situation arbeiten, in der ihnen buchstäblich etwas genommen werden kann und explodiert. Und wir haben ein Motorteam - das sind 6 Leute. Produktbefehle sind im Durchschnitt eine Person von vier Programmierern, sie überschneiden sich nicht.
Frage
Mit Motor meinen Sie auch Werkzeuge?
Die Antwort
Ja, wir haben ein separates Tool-Entwicklungsteam. Wir hatten ein sehr schlechtes Beispiel. Sehr schlecht gestaltete GUI-Tools. Weil jeder normale Programmierer denkt, dass es sehr einfach ist. Wir haben versucht, es auszulagern. Weil es klar ist - Sie geben die vollständige Benutzeroberfläche an, Sie haben alles, Sie sagen: "Erstellen Sie ein Fenster, zeichnen Sie Schaltflächen - und das war's." Aber dieses Unterfangen ist gescheitert, also arbeiten wir selbst schmerzhaft mit Qt zusammen, weil es für uns wichtig ist, dass dies auf allen drei Desktop-Plattformen funktioniert. Deshalb machen wir es selbst. Und wir haben 6 Leute, die sowohl den einen als auch den anderen und den dritten machen. Aber wir sind den Produktanfragen immer noch etwas voraus.
Frage
Ist es realistisch, Ihren Motor jetzt zu verkaufen?
Die Antwort
Nein. Jetzt können Sie Ihren Motor nicht mehr verkaufen. Sie können das Ökosystem verkaufen. Das heißt, es ist unmöglich, an dem Schema „Gib mir Geld und ich werde dir einen Motor geben“ zu arbeiten. Achten Sie darauf, wie viele Unternehmen wir über einen eigenen Motor verfügen und wie viele von ihnen Motoren verkaufen. In der Tat verkauft keiner von ihnen Motoren. Für den Anfang ist dies ein ziemlich großer Kopfschmerz unter dem Gesichtspunkt, dass es in ein Produkt verwandelt werden muss. Was innerhalb des Unternehmens für Sie funktioniert, kann in keiner Weise verkauft werden. Sie sollten mindestens eine Dokumentation schreiben, die andere verstehen. Sie müssen nur eine Armee von Freiwilligen einstellen, die dieses Geschäft evangelisieren. Und es ist nicht klar, was Sie davon bekommen werden. Und wenn Sie mit dieser Engine ein Handyspiel machen, ist es durchaus möglich, als Millionär aufzuwachen. Um solche Dinge zu tun, muss man ein Fan sein, man muss sicher sein, dass man es tut. Ich habe über die Gründe gesprochen, die zur Entwicklung Ihres Motors führen können, und hier haben Sie noch einen Grund. Nehmen wir an, Sie denken, Sie machen den Motor besser als Unreal. Wenn ja, gehen Sie auf den Markt. Aber ich denke nicht, dass ich es besser machen werde als Unreal.
Frage
Ich verstehe, dass Ihre neue Engine C ++ und Lua ist?
Die Antwort
Ja, C ++, Lua und mehr JavaScript.
Frage
Warum C ++? Gab es irgendwelche Optionen oder wussten Sie genau, was Sie nehmen würden?
Die Antwort
Schau, da ist so ein Mod. Jede zweite Person, die Sie treffen, sagt Ihnen: "Golang" oder sagt Ihnen: "Rost". Und wenn es jetzt wäre, würde ich im Grunde denken. Wenn Sie jedoch als Leiter des Motorenentwicklungsprozesses zum Unternehmen kommen und dies vor einem Jahr war, müssen Sie einige Pläne erstellen und daher den Punkt „Read about Go“ in diese Pläne aufnehmen. Hier ist Leistung wichtig, aber in C ++ arbeiten wir schon lange, wir wissen, wie man es benutzt.
Warum benutzen wir Lua? Da es sich um eine unterschätzte Sprache handelt, eignet sie sich hervorragend zum Einbetten. Warum Javascript? Weil es passiert ist. Denn es gibt nichts auf dem Markt außer V8 und Webkit. Und das sind Monstroiden. Wie gesagt, wir haben einen Browser entwickelt, der 2,5 Megabyte Speicher belegt. Es gibt eine JavaScript-Engine, die alle Tests besteht. Wir haben es und deshalb - JavaScript. So können Sie beispielsweise diejenigen nehmen, die JS kennen und Websites auf React geschrieben haben.
Frage
Sagen Sie mir, verwenden Sie den Verhaltensbaum nur, um das Verhalten zu steuern, oder verwenden Sie ihn, um die Spielmechanik zu steuern und den Spielfortschritt zu fördern?
Die Antwort
Nun zum Verhalten, aber wir haben noch einige alternative Mechaniken. Wir haben zum Beispiel immer noch Petri-Netze mit einem Editor, und hier ist das Problem etwas anders, nämlich, dass Petri-Netze einem Spieledesigner schwer zu erklären sind. Es gibt einige andere Dinge mit Editoren, mit denen Sie beispielsweise eine endliche Zustandsmaschine zeichnen können. Und wir versuchen, daraus etwas zu machen. Jetzt muss ich die Leute, die Skripte schreiben, dazu bringen, es in dieser Form zu schreiben. Der Verhaltensbaum hat also funktioniert, und der Rest wurde noch nicht in den Workflow aufgenommen.
Frage
Wie schwierig ist es, die zukünftige Technologieentwicklung vorherzusagen? Das heißt, wie schwierig ist es, das Auftreten einiger Fallstricke und dergleichen vorherzusagen?
Die Antwort
Im Moment sehe ich ein Problem. Jetzt sieht die WebAssembly-Technologie interessant aus. Flash ist tot. Natürlich wollen wir woanders im Web veröffentlichen. Das Portieren eines Spiels, beispielsweise von Unity nach WebGL, ist eine Aufgabe, die nicht mit einem Klick auf eine Schaltfläche gelöst werden kann. Das heißt, jetzt schauen wir uns WebAssembly an und es ist noch nicht klar, ob dies der Standard sein wird oder nicht. Beginnen Sie jetzt damit oder warten Sie. In der Mobiltechnologie passiert auch nichts Besonderes. Bisher gibt es keine singulären Explosionen, aber wenn doch, werden wir uns vorbereiten.
Am Ende möchte ich sagen, dass mit einem normalen modularen Design, mit einem normalen Design, und ich hoffe sehr, dass sie bei uns normal sind. Wenn neue Technologien auftauchen, können Sie einfach die alten aus dem Motor entfernen, die neuen dort einsetzen und alles wird funktionieren.