Wie können Nicht-Indie-Entwickler aufhören, das Rad neu zu erfinden?

8

Es scheint, als ob der Status Quo in der Spielebranche darin besteht, die meiste Software intern zu schreiben, möglicherweise ohne die Engine, wenn Sie eine der rund zehn großen verwenden. Bevor ich hier gearbeitet habe, war ich größtenteils ein Open-Source-Entwickler, daher scheint mir diese Einstellung geradezu verrückt zu sein. Gibt es eine gute Möglichkeit, wie wir alle aufhören können, Dinge wie Protokollbetrachter, Netzwerkdiagnose und Patching-Systeme zu erstellen?

coderanger
quelle

Antworten:

15

Wir können aufhören, das Rad neu zu erfinden, indem wir ... aufhören, das Rad neu zu erfinden. Verwenden Sie externe Bibliotheken, Spiele-Engines usw.

Ich habe das Gefühl , dass die Menschen tun , das Rad neu zu erfinden:

  • Vermeiden Sie Urheberrechte, Lizenzgebühren usw. für Bibliotheken oder ausgeliehenen Code
  • Vermeiden Sie es, für eine Spiel-Engine zu bezahlen (für ein volles AAA-Spiel kann dies enorm teuer sein)
  • Machen Sie sich mit der gesamten Codebasis vertraut - das Hinzufügen externer Bibliotheken, das Verknüpfen mit Spiele-Engines usw. bedeutet nur, dass Sie mehr Code kennenlernen und möglicherweise warten müssen
  • Wenn Sie Ihren gesamten Code selbst schreiben, können Sie ihn speziell für Ihr Spiel optimieren
  • Dieser Code kann dann auf Wunsch an andere lizenziert, für andere Projekte usw. wiederverwendet werden, während Sie die proprietäre Kontrolle behalten
Sean James
quelle
Dem stimme ich zu! Ich selbst musste einige Dinge neu erfinden, um patentierten Code zu vermeiden, und ich musste vermeiden, für eine Spiel-Engine zu bezahlen, und schließlich habe ich oft Probleme, die nicht meine Schuld sind (wie mein aktuelles Spiel mit 3 Fehlern, einer davon ist der Die Physik-Engine hat ein kontraintuitives Verhalten ... das heißt, ich muss ihre Quelle gründlich lesen ... Die andere ist, dass der Mixer scheinbar eine willkürliche Möglichkeit hat, Prioritäten zu wählen, und schließlich die Game-Engine selbst mit Karteneditor. zufällig segfaults wenn ich eine Karte entlade ... Wieder dieser mittlere Code Sweeping ...)
Speeder
Die Frage ist eher eine soziale, wie können wir das fördern? Gibt es zum Beispiel Tools zum Patchen, die spielunabhängig sind? Es gibt einige zugrunde liegende Algorithmen und Bibliotheken für die Datenmanipulation (rsync-Algorithmus, zlib), aber ich weiß nichts, was bis zu einer Benutzeroberfläche reicht.
Coderanger
1
Sie haben es versäumt, während der Release-Krise tatsächlich Probleme in Bibliotheken zu beheben, ohne die Bearbeitungszeit eines Drittanbieters für dessen Closed Source berücksichtigen zu müssen, und die Bibliotheken für Ihren genauen Anwendungsfall zu optimieren. Die können ziemlich wertvoll sein.
Mondschatten
1

Es hängt davon ab, ob. Ich denke, es gibt tatsächlich eine ganze Menge Middleware da draußen, die verwendet wird, ... wenn Sie bereit sind, dafür zu bezahlen.

Gleichzeitig ist es manchmal einfach, etwas zu hacken, um ohne so viele externe Abhängigkeiten sehr schnell zu werden, wenn der Umfang klein ist.

Ich denke, im oberen Preissegment müssen Sie Unternehmen wie EA und Ubisoft mit anderen großen Softwareunternehmen wie Apple, Google, Facebook vergleichen.

Sie alle schreiben eine sehr große Menge an benutzerdefiniertem Code, wenn es Alternativen gibt, weil sie einen Wettbewerbsvorteil erzielen möchten.

Wie @Sean James sagte, gibt es rechtliche Gründe und eine Vielzahl anderer Gründe, aber ich denke, selbst wenn es keine Straßensperren gäbe, würden erfinderische Softwareunternehmen immer noch kundenspezifische Alternativen zu gängigen vorhandenen Softwarekomponenten entwickeln, wenn sie glauben, sie könnten sie verbessern.

Ich stimme jedoch auch zu, dass es immer Raum gibt, einige Projekte zu starten, von denen wir alle profitieren könnten. Ich denke zum Beispiel, wir müssen COLLADA durch etwas viel Einfacheres ersetzen, das auf JSON basiert. Vielleicht etwas, das nur beliebige Netze handhabt, aber sonst nichts. Ich denke, wir brauchen wirklich ein besseres Netzformat.

Jonathan Fischoff
quelle
Das Schreiben einer eigenen Middleware bietet nicht nur den Wettbewerbsvorteil, sondern auch internen Support. Dies kann in Zeiten großer Krisen oder wenn sich ein Fehler nicht reproduzieren lässt, ohne Ihr gesamtes Spiel zu übergeben, nützlich sein.
Kaj
Nicht zu erwähnen, ob die Game-Engine-Firma gekauft wird oder ihr Code raubkopiert wird, die Liste geht weiter. Abhängig von jemand anderem Code ist eine Haftung, die schwer zu quantifizieren sein kann, gibt es nicht viele Benutzer, was bei vielen spezialisierten Middleware der Fall ist
Jonathan Fischoff
Ich denke nicht, dass benutzerdefinierter Code bei jedem verschwinden wird, aber das Fehlen funktionsfähiger Formate für den Datenaustausch hilft nicht bei der Entwicklung von Tools.
Jonathan Fischoff
Viel Zeit, zumindest in meinem Unternehmen, würden die Leute lieber Dinge im eigenen Haus neu aufbauen, nur weil die Anzahl der Mitarbeiter bereits budgetiert ist und der Kauf von kommerzieller Middleware nicht (und es einfacher ist, Programmierer zu bitten, 10-Stunden-Tage zu arbeiten, als es ist) Lassen Sie das Hauptquartier große Kapitalkosten genehmigen. Wären die Vorteile einer freieren Zusammenarbeit nicht ein größerer Segen als der Wettbewerbsvorteil proprietärer Tools?
Coderanger
Ich denke, es kann verbessert werden, aber es ist ein Problem, das über Spielefirmen hinausgeht. Es gibt viel weniger Code-Wiederverwendung als generell, nicht nur bei Spielen. Persönlich würde ich gerne helfen, einige Projekte in Gang zu bringen.
Jonathan Fischoff
1

Gibt es eine gute Möglichkeit, wie wir alle aufhören können, Dinge wie Protokollbetrachter, Netzwerkdiagnose und Patching-Systeme zu erstellen?

Nach meiner Erfahrung werden diese Dinge als einfache Extras behandelt, die neben Ihrer "echten" Programmierung angeschraubt werden können. Natürlich erweisen sie sich als alles andere als einfach und alles andere als "extra", da sie komplexe und wichtige Teile des Systems sind, aber bis dahin wird bereits zu viel in die maßgeschneiderte Version investiert.

Gibt es gute Open-Source- oder kommerzielle Bibliotheken, die diese Art von Funktionalität bieten? Ich bin mir nicht sicher, ob es solche gibt, und bis jemand auftaucht und einen bereitstellt, wird es so bleiben. Die Geschäftsentwickler sind oft nicht in der Lage, Bibliotheken zu erstellen, die für Spiele geeignet sind (" Was, Sie meinen, Sie können nicht alle Aufrufe in einem Release-Build vollständig entfernen?! "), Und Spieleentwickler sind oft nicht daran interessiert, diese Art von zu erstellen etwas als eigenständiges Paket, wenn sie ein Spiel haben, mit dem sie weitermachen können.

Kylotan
quelle