Du bist nicht angemeldet.

Werbeanzeige

1

12.07.2019, 15:00

In-Game Editor vs. externer Editor & Versionierung von Spielwelten

Hey,

aktuell durchdenke ich mal wieder ein paar Games und bin beim Tool Programming hängen geblieben.
Kurz so zum Genre, mir geht es hauptsächlich um RPG Games, wobei ich hierbei meinen Fokus auf Multiplayer (inkl. MMO) legen, aber Singleplayer nicht vernachlässigen möchte.
Jeder von euch kennt sicherlich die zahlreichen Game Editoren wie Unity & Co. und hat auch schon von größeren Games wie WOW gehört.

Die Frage ist:
Wie setzen große Firmen wie z.B. Blizzard die Tools um?
Und was haltet ihr davon?
Findet ihr einen In-Game Editor besser, oder einen eigenen, externen Editor?

Und wie versionieren Firmen eig. ihre Spielwelten, falls sie diese In-Game bearbeiten?
Blizzard baut ja auch die Spielwelt um, wenn sie eine neue WOW Erweiterung herausbringen, aber die Änderungen schalten sie ja erst zum Release live. Vermutlich haben sie also (mindestens) 2 komplett abgetrennte Cluster, müssten aber jede einzelne Änderung tracken und dann beim Release übertragen.

Danke schon mal für eure Antworten! :)
Gerne auch Erfahrungsberichte von euren eigenen Games, z.B. wenn ihr schon welche bei Steam oder in Entwicklung habt.
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

Oiewjr

Frischling

Beiträge: 3

Beruf: Student

  • Private Nachricht senden

2

13.07.2019, 01:54

Große Firmen werden wohl viele ihrer Tools im eigenen Haus entwickeln. Für kleinere Entwickler ist es
oft sinnvoller auf externe, fertige Produkte zurückzugreifen, oder im Zweifelsfall auf Open Source Projekte
aufzubauen. Persönlich gefallen mir Editoren mit nahtloser Simulation, so dass Resultate direkt begutachtet
werden können. Externe Tools bieten halt den Vorteil der Wiederverwendbarkeit, was mit InGame Editoren
nicht so einfach möglich ist, da diese ja erstmal an das jeweilige Spiel gebunden sind.

Die Versionierung ist nicht besonders kompliziert, letztenendes wird der Aufbau auch nur in einem
Textdokument im XYZ Format persistiert und kann so ganz einfach regulär versioniert werden, ob extern
oder intern. Meistens erfolgt die Kompression dieser Dateien dann erst im produktiven Deployment.

Das Deployment (im Beispiel WoW) läuft vermutlich regulär über mehrere Zwischenebenen ab. Da wären
Buildserver, auf denen Versionen gebaut und getestet werden, Continuose Integration und Continuose Deployment
Farmen, wo Sandbox Umgebungen, Fuzzing usw. eine möglichst breite Palette an Tests und Systemen abdecken und
schlussendlich gelangen dann die Binaries und Ressourcen über irgendein Configuration Management System auf
die Produktiv Nodes.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

3

14.07.2019, 00:11

Blizzard baut ja auch die Spielwelt um, wenn sie eine neue WOW Erweiterung herausbringen, aber die Änderungen schalten sie ja erst zum Release live. Vermutlich haben sie also (mindestens) 2 komplett abgetrennte Cluster, müssten aber jede einzelne Änderung tracken und dann beim Release übertragen.

Als ich WoW gespielt hatte gab es immer pre-Expansion Patches, die schon sämtliche Änderungen am bestehenden Content enthalten haben. Der neue Content war dabei ebenfalls im Client und Server vorhanden, aber hinter einem Feature Flag versteckt. Das Flag lässt sich dann einfach zum Releasezeitpunkt umschalten oder auch wieder zurückschalten wenn es Probleme mit dem neuen Content gibt. Verschiedenen Cluster würden auch dafür sorgen das Spieler mit und ohne Expansion nicht mehr miteinander spielen können.

4

28.07.2019, 16:53

Danke euch beiden! :)
Und Sry für die verspätete Antwort!


Große Firmen werden wohl viele ihrer Tools im eigenen Haus entwickeln.


Das ist mir auch schon aufgefallen.
Ich habe mittlerweile auch etwas mehr Recherche dazu betrieben und möchte meine Erkenntnisse mal mit euch teilen, falls noch jemand anderes auf das selbe Thema trifft.


Game Engines

BlueByte / Ubisoft scheint wohl für Anno / Die Siedler eine eigene Game Engine mit externen Tools entwickelt zu haben.
Der Executive Producer von Anno 1800 (Burkhard Ratheiser) hat dazu wohl einen Blog Post verfasst:
The evolution of the Anno engine

Einige Zitate sind mir dabei besonders aufgefallen:

Zitat

"For Anno 1404, the 3D engine was developed completely from scratch."


Scheinbar entwickeln große Firmen ihre Game Engines wirklich komplett von Scratch selbst, statt auf fertige Game Engines wie Unity / Unreal Engine usw. zu bauen.
Das erklärt wohl auch die sehr gute Qualität der (AAA) Spiele. Die Performance von Anno 1800 würde man mit einer Game Engine wie Unity / Unreal Engine, die für alle Spiele zugeschnitten sind, statt auf eins speziell, wohl nie erreichen.
Bei Anno 2070 haben sie die Game Engine zwar wiederverwendet, aber umgeschrieben.
Bei Anno 2205 haben sie dann wieder eine komplett neue Game Engine geschrieben:

Zitat

Starting from scratch again – but properly this time: For Anno 2205, a completely new engine architecture was designed from scratch, which incorporated all the experience gained from the previous games.


Bei Anno 1800 hat man wohl wieder eine komplett neue Game Engine von Scratch geschrieben.

Ehrlich gesagt hat mich das Vorgehen erst etwas verwundert.
Ich bin bis dahin davon ausgegangen, dass auch große Game Studios ihre internen Game Engines & Tools einmal entwickeln und immer wieder verwenden, aber das Gegenteil scheint der Fall zu sein.
Sie schreiben fast immer wieder eine neue, eigene Game Engine, die scheinbar perfekt auf das Spiel zugeschnitten ist.


Tools

Zum Thema Tools ist mir auch etwas aufgefallen:
Es gab nie eine Art "Super Tool" (Editor), welches alles konnte.
Also nicht so wie z.B. in Unity / Unreal.

Zitat

It should be mentioned as well that an engine is basically just half of the story. The tools and workflows which are used to create and implement the content are just as important. There are two very different philosophies behind all that: On the one hand the one big »uber tool« which incorporates everything. On the other hand, there may be a certain number of highly specialized individual tools. For Anno, we always opted for the latter one, and so far it has worked out nicely for us


@Oiewjr Du hattest also vollkommen recht.
Die großen Firmen scheinen ihre Tools alle selbst zu bauen.


Versionierung

Die Versionierung ist nicht besonders kompliziert, letztenendes wird der Aufbau auch nur in einem
Textdokument im XYZ Format persistiert und kann so ganz einfach regulär versioniert werden, ob extern
oder intern. Meistens erfolgt die Kompression dieser Dateien dann erst im produktiven Deployment.


Ja, das hatte ich auch schon gedacht.
Allerdings war mir nicht klar, ob das im großen Stil noch funktioniert.
z.B. wenn du Spielwelten generierst und die Daten nur noch in eine Datenbank schreibst o.ä.
Ich kann mir noch nicht so richtig vorstellen, dass Blizzard für WOW die Spielwelt komplett mit einem externen Tool entwickelt und nie "live" noch Eingriffe wagt.
Das würde ja bedeuten, dass sie erst die Spielwelt im externen Tool generieren und dann jedes mal das Spiel neu starten müssten, ehe sie das ganze im Game sehen - hört sich nach einem komplizierten Workflow an.

Das mit den Zwischenebenen war mir natürlich schon klar, aber das hatte ich so eig. gar nicht gemeint. :D


Als ich WoW gespielt hatte gab es immer pre-Expansion Patches, die schon sämtliche Änderungen am bestehenden Content enthalten haben. Der neue Content war dabei ebenfalls im Client und Server vorhanden, aber hinter einem Feature Flag versteckt. Das Flag lässt sich dann einfach zum Releasezeitpunkt umschalten oder auch wieder zurückschalten wenn es Probleme mit dem neuen Content gibt. Verschiedenen Cluster würden auch dafür sorgen das Spieler mit und ohne Expansion nicht mehr miteinander spielen können.


Ah, interessant! :D
Dann wird das also mit Feature Flags gelöst.
Auch dein Argument zu den verschiedenen Clustern scheint einleuchtend - vermutlich haben sie da wirklich nur ein Cluster. :)
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

Werbeanzeige