Best Practices für die Kennzeichnung von Spielversionen?

21

Weiß jemand, ob es eine bewährte Methode zum Beschriften von Spielversionen gibt?

Ich bin nicht sicher, ob es einen anderen Standardnamen als Versionierung gibt, aber ich meine im Grunde:

  • 1,0
  • 1.1
  • 1.2
  • 1.3.1 Beta
clifford.duke
quelle

Antworten:

18

Es gibt keinen Standard, aber Sie sollten dies auf eine Weise tun, die für Sie sinnvoll ist und alle Informationen enthält, die Sie möglicherweise benötigen, um diesen Build zu verfolgen. Ich habe für eine Firma gearbeitet, die es im Wesentlichen so aufgeschlüsselt hat:

[Major Build Number]. [Minor Build Number]. [Revision]. [Package]

dh Version: 1.0.15.2

  • Major Build Number : Dies zeigt einen wichtigen Meilenstein im Spiel an. Erhöhen Sie diesen, wenn Sie von Beta zu Release, von Release zu Major Updates wechseln.

  • Kleine Versionsnummer : Wird für Feature-Updates, große Fehlerbehebungen usw. verwendet.

  • Überarbeitung : Kleinere Änderungen an vorhandenen Funktionen, kleine Fehlerbehebungen usw.

  • Paket : Ihr Code bleibt derselbe, Änderungen an der externen Bibliothek oder Aktualisierung der Asset-Datei.

Kombinierte Änderungen werden auf die bedeutendste Änderung übertragen. Wenn Sie beispielsweise die kleinere Build-Nummer erhöhen, werden sowohl die Revision als auch das Paket auf 0 zurückgesetzt.

Auch wenn die Kategorien definiert sind, gibt es immer noch Unklarheiten darüber, welche Art von Funktionen tatsächlich zwischen einer Revision und einer kleineren Build-Nummer wechseln. Es liegt an dir. Wenn Sie Listen der Features erstellen, die vor jedem Inkrement implementiert werden müssen, müssen Sie auch einen Plan befolgen, aber letztendlich ist es Ihre Entscheidung, was in jede Kategorie passt.

MichaelHouse
quelle
1
Das sind großartige Informationen, überall, wo ich nachgeschaut habe, handelte es sich nur um Major- und Minor-Build-Nummern, ohne eine wirkliche Erklärung dafür zu haben, was in die einzelnen Zahlen fällt.
clifford.duke
semver.org
Kzqai
10

Stack Overflow hat eine großartige Diskussion zu diesem Thema , die sich auf Versionsnummern bezieht und auf den Versions- Style-Guide verweist .

Zusammenfassung:

  • MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen
  • MINOR-Version, wenn Sie Funktionen abwärtskompatibel hinzufügen
  • PATCH-Version, wenn Sie abwärtskompatible Fehlerbehebungen vornehmen
  • Zusätzliche Labels für Vorabversionen und Build-Metadaten sind als Erweiterung des MAJOR.MINOR.PATCH-Formats verfügbar
Jovan
quelle
6

Soweit ich weiß, gibt es dafür keinen Standard. Die Vorgehensweise variiert je nach Unternehmen, Teams und Projekten: Es gibt keine bewährten Vorgehensweisen. Das Wichtigste ist nicht die tatsächliche Konvention, sondern die Tatsache, dass jeder daran festhält.

Das Schema, das Sie erwähnt haben, ist jedoch für veröffentlichte Spiele durchaus üblich. 1.0 ist in der Regel der Gold-Master, und Patches werden von dort aus gestartet: 1.1, 1.2 ... Es wird auch in Kundenversionen wie privaten oder offenen Betas vor der Veröffentlichung verwendet.

Für Spiele in der Entwicklung habe ich dieses System selten verwendet. Es ist weitaus üblicher, auf einen Build anhand seiner atomaren Änderungs-ID zu verweisen (z. B. Perforce-Änderungslistennummer). Dies ist besonders nützlich für ein mittelgroßes Projekt, bei dem alles (Code und Assets) im selben Repository gespeichert ist und eine kontinuierliche Integration vorhanden ist. In diesem Fall ist es redundant und fehleranfällig , sowohl eine atomare Änderungsnummer als auch eine Versionsnummer zu haben. Einige Builds werden nach der Qualitätssicherung zu einem Meilenstein befördert: Alpha, Beta, Release Candidate und als solche gekennzeichnet.

Für große Projekte gilt das einfache Konzept einer "Spielversion" nicht mehr. Sie haben mehrere Plattformen, SKUs, Sprachen, Einzelspielermodus, Mehrspielermodus usw. Das Verwalten von Versionen wird dann zu einem Vollzeitjob (manchmal als Datenmanager bezeichnet - dies ist die Terminologie von Ubisoft, wahrscheinlich anderswo). Das Beschriftungsschema ist dann viel komplexer und hängt stark vom tatsächlichen Spiel ab.

Laurent Couvidou
quelle
Wow, es wird ein Job für sich? Ich dachte immer, dass die Leads jeder Abteilung ihre eigene Versionierung verwalten würden.
clifford.duke
2
@ChaoticLoki Sie benötigen eine ordnungsgemäße Koordination zwischen den Abteilungen, um sicherzustellen, dass beispielsweise Level-Designer an der neuesten stabilen ausführbaren Datei arbeiten. Oder dass Programmierer herausfinden können, wer eine Variable im lokalisierten Text durcheinandergebracht hat (wie in: "Der italienische Übersetzer hat den Dialog X korrigiert, währenddessen hat er versehentlich den Tutorial-Text Y gebrochen, aber wir können nicht zur alten Version zurückkehren, weil die Exe-Datei nicht vorhanden ist nicht kompatibel. Arghhh! Hilfe? "). Und so weiter. In einem großen Team braucht man jemanden, der sich um alles kümmert. Es ist tatsächlich eine der herausforderndsten Aufgaben in der Branche.
Laurent Couvidou