PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Virtualisierung für Spiele?


MD_Enigma
2007-07-28, 13:08:43
Für Serverbetreiber ist Virtualisierung heutzutage kaum mehr wegzudenken. Doch wäre Virtualisierung nicht auch etwas für Spieleentwickler?

Wenn Spiele in einer eigenen VM laufen würden, wären sie Betriebssystem unabhängig. Man müsste jedoch ein eigenes Betriebssystem speziell für Spiele entwickeln, welches eine Programmierschnittstelle zur Verfügung stellt.
Gerade bei den performanceeinbußen im Betrieb von Vista, wäre so eine VM sicher in der Lage eine Prozent mehr Performance durch schnellere Hardwarezugriffe zu ermöglichen.

Nachteil wäre jedoch, dass die Virtualiserungslösung sehr schnell sein muss. Xen (http://www.golem.de/0609/47867.html) hat einen interessanten Ansatz wordurch Hardware dediziert einer VM zur Nutzung gegeben werden kann, ohne dass diese emuliert werden muss.

Weitere geile Vorteile: Man könnte eine Virtual Machine pausieren und so ein Spiel nach 2 Wochen weiterspielen, als ob niemals etwas passiert wäre ;)

Was haltet ihr von dieser Idee? Zukunft oder Hirnfurz?

Coda
2007-07-28, 13:15:12
Solang die GPU nicht virtualisiert werden kann ist das keine Option.

Vista ist darauf ausgelegt schnelleren Zugriff auf die GPU zu ermöglichen und Berechnungen auf der CPU sind nicht langsamer. Kommt Zeit kommt Rat - wir brauchen ganz sicher keine solche "Lösung" für das "Performanceproblem" unter Vista.

MD_Enigma
2007-07-28, 13:16:51
Und wenn es 2 Grafikkarten im System gäbe? Eine onBoard und eine PCI-Express? Dann müsste man diese nicht virtualisieren.

Coda
2007-07-28, 13:17:39
Doch, müsste man.

dittohead
2007-07-28, 13:18:31
außerdem läuft im hintergrund immernoch das bestriebssystem das ressourcen frisst

Gast
2007-07-28, 15:24:41
ich fänds toll, dann könnte man auch problemlos unter Linux alles mögliche zocken

Gast
2007-07-28, 15:56:49
ich fänds toll, dann könnte man auch problemlos unter Linux alles mögliche zocken

Und was wäre daran anders? Du bräuchtest trotzdem ein MS OS.

Das was du beschreibst, kannst du jetzt schon haben: Multiboot.

Spasstiger
2007-07-28, 17:15:17
Und was wäre daran anders? Du bräuchtest trotzdem ein MS OS.
Wer sagt denn, dass die virtuelle Maschine dann ausschließlich für Windows entwickelt wird? Für die Spieleentwickler wäre es definitiv eine Erleichterung, wenn sie plattformunabhängig arbeiten könnten und eben nur für die virtuelle Maschine entwickeln müssten.
Die virtuelle Maschine selbst könnte dann vielleicht sogar als Open Source ausgelegt werden, so dass eventuelle Fehler schnell von der Community behoben werden.

Man könnte im Zuge dieser Virtualisierung sogar Hardware standardisieren und z.B. eine General-DX10-Grafikkarte einführen. Die Kompatabilität zu realer Hardware müsste dann nur noch von der virtuellen Maschine gewährleistet werden. Der Spieleentwickler erspart sich damit zeitintensive Kompatabilitätstests.

Nasenbaer
2007-07-28, 20:41:45
Alles schon vorhanden!
Denn eine virtuelle Maschine bringt eurer Meinung nach vorallem eines - Systemunabhängigkeit. Sowas gibt es aber alles schon. Wenn der Hersteller nicht DirectX nutzt, sondern OpenGL für Video und OpenAL für Audio (z.B. gut zu sehen bei Unreal Tournament 2004), dann hat man ein unabhängiges Produkt, dass sowohl unter Linux, Windows und MacOS X laufen kann.

Nagut man muss es für jedes System neu komplieren aber das war es dann auch.

Zu der "General DX10-Graka":
Gbt es auch schon und zwar DirectX. :D Das Problem, dass due Kompatilitätstests nötig sind, ist entweder der Umstand, dass nicht standardkonform programmiert wurde oder dass die Treiber oder die Hardware nicht 100%ig die DirectX Spezifiktion erfüllen

Demirug
2007-07-28, 20:55:22
Alles schon vorhanden!
Denn eine virtuelle Maschine bringt eurer Meinung nach vorallem eines - Systemunabhängigkeit. Sowas gibt es aber alles schon. Wenn der Hersteller nicht DirectX nutzt, sondern OpenGL für Video und OpenAL für Audio (z.B. gut zu sehen bei Unreal Tournament 2004), dann hat man ein unabhängiges Produkt, dass sowohl unter Linux, Windows und MacOS X laufen kann.


Das funktioniert aber nur weil UT 2004 keine großen technischen Anforderungen stellt.
Ansonsten ist das mit OpenGL und läuft überall eher ein Wunschtraum.

Ganon
2007-07-28, 20:59:45
Das funktioniert aber nur weil UT 2004 keine großen technischen Anforderungen stellt.

Nunja. Die Unreal Engine 3 läuft auch auf allen Plattformen. UT3 und GoW sind ja vor kurzem erst für OS X bestätigt worden und diese laufen ohne Cider.

Oder verstehe ich gerade "technische Anforderungen" jetzt gerade nicht?

Spasstiger
2007-07-28, 21:04:19
Virtualisierung würde es auch ermöglichen, ein Spiel jederzeit zu speichern und das ohne Savegamebugs befürchten zu müssen wie es bei einigen Major-Games doch zur Mode geworden ist. :rolleyes:
Auch müsste man das Hauptbetriebssystem nicht mit Unmengen von Registry-Einträgen und haufenweise Dateien außerhalb des Spieleordners zumüllen.
Und bei Patches könnte man die verschiedenen Spielversionen parallel verwenden, indem man z.B. für jede Version den Zustand der virtuellen Maschine sichert. Bei eventuellen Problemen mit einem Patch könnte man dann ohne großen Aufwand zur alten Version zurückwechseln.

Nasenbaer
2007-07-28, 21:05:42
Das funktioniert aber nur weil UT 2004 keine großen technischen Anforderungen stellt.
Ansonsten ist das mit OpenGL und läuft überall eher ein Wunschtraum.
Sehe das so wie Ganon und Doom3 und Quake4 liefen auch ohne weiteres. Und ansonsten wäre es dann dennoch nicht nötig eine VM für Spiele zu basteln, sondern das vorhandene, z.B. halt OpenGL, zu verbessern. Wobei uns bei OpenGL ja noch einige Neuerungen in nächster Zeit erwarten.

Demirug
2007-07-28, 21:07:49
Nunja. Die Unreal Engine 3 läuft auch auf allen Plattformen. UT3 und GoW sind ja vor kurzem erst für OS X bestätigt worden und diese laufen ohne Cider.

Oder verstehe ich gerade "technische Anforderungen" jetzt gerade nicht?

Bei deinen Beispielen ist aber nicht so das auf allen Plattformen der gleiche OpenGL Code zum Einsatz kommt. Da wird vielmehr für jede Plattform der Rendercode neu geschrieben.

PS: DOOM III ist technisch nicht anspruchsvoll.

Ganon
2007-07-28, 21:16:14
Da wird vielmehr für jede Plattform der Rendercode neu geschrieben.

Weißt du zufällig in wie weit? Wirklich der >komplette< Render-Code? Also jetzt mal unabhängig von der Initialisierung?

Demirug
2007-07-28, 21:25:18
Das muss natürlich jedes Team entsprechend seiner Anforderungen selbst entscheiden. Ich habe mir aber sagen lassen das zum Beispiel die Shader Unterstützung bei MacOS X der größte Mist überhaupt ist weil man bei Apple scheinbar keine Ahnung hat wie man ein vernünftiges OpenGL DDI aufbaut. Entsprechend umfangreich sind deswegen die Anpassungen die notwendig sind. Da die meisten Multiplattform Engines zudem auf dem WIN-PCs ja sowieso bevorzugt D3D einsetzten schreibt man die OpenGL rendere in der Regel sowieso eher für die non Win-PCs.

Ganon
2007-07-28, 21:32:44
Bei der UE3 wird der Linux und OS X Port ja extern durch Ryan Gordon / Icculus gemacht.

Wie das bei OS X jetzt in diesen Bereichen mit der Shader-Unterstützung aussieht weiß ich jetzt nicht. Bei mir ging bisher alles, was ich so an GLSL-Shader-Zeug gefunden habe.

Cleric
2007-07-29, 05:05:17
Also per OpenGL kann man schon relativ Platformunabhängig arbeiten - wenn denn Anpassungen von Nöten sind muss man diese meist sogar für jeden VGA Hersteller einzeln einbinden -> OpenGL extensions.

Mit der aktuellen OpenGL Version in Verbindung mit den Nvidia ext. lässt sich zumindest DX9 komplett abbilden (siehe Wine -> winehq.org).

Das Wine dies noch nicht komplett gelungen ist, ist eine andere Sache.

Afaik gibt es schon einige VM's die an genau soetwas arbeiten d.h.:

3D Beschleunigung für ein Gastsystem.

Nasenbaer
2007-07-29, 11:00:02
Natürlich wäre es schon in ner VM 3D-Apps mit nahezu gleicher Performance laufen lassen zu können. Dual-Boot klappt zwar aber das wechseln zwischen den Systemen dauert halt unnötig lange. Mit ner VM könnte man sogar Apps verschiedener Systeme gleichzeitig laufen lassen - Dual-Boot kann halt genau das nicht erfüllen.

Aber die Idee der Vereinfachung der Programmierung (lt. Thread-Starter) wäre halt unsinnig da sowas halt bereits über APIs geht, dazu braucht man dann nicht virtualisieren. Das Einfrieren des gesamten Spiels per Snapshot wäre allerdings schon ne feine Sache.

BTW Kann Parallels VM nicht sogar schon Direct3D 8 im Gastsystem beschleunigt nutzen?

ethrandil
2007-07-29, 11:40:27
Aber generell wärs doch mal ne Frage wert:

Wieviel braucht ein Betriebssystem wenn es "nur" zum Spielen gut ist? Quasi ein OS das nicht mehr kann als ne Konsolenfirmware.

Der einzige nicht ganz kleine Unterschied ist allerdings, dass Computer alle andere Hardware haben.

Also: Wieviel von einem normalen Betriebssystem braucht man nicht für Spiele? ;o)

- eth

Gast
2007-07-30, 18:15:48
Wenn Spiele in einer eigenen VM laufen würden, wären sie Betriebssystem unabhängig.
Nein.
Man müsste jedoch ein eigenes Betriebssystem speziell für Spiele entwickeln, welches eine Programmierschnittstelle zur Verfügung stellt.
Ein spezielles spiele-OS hat nichts mit virtualisierung zu tun, das könnte man auch so machen, wenn jemand einen sinn darin sähe, die ressourcen dafür hätte, und die marktmacht um es den spieleentwicklern schmackhaft zu machen.

Kurz: virtualisierung ist nichts für spiele und macht in dieser hinsicht keinen sinn, es sei denn 24/7 spielen mit 99.99% uptime wäre plötzlich eine lukrative und produktive tätigkeit mit welcher sich geld verdienen liesse.

MD_Enigma
2007-08-09, 17:32:31
Was ich gerade gefunden hab: Die Jungs von Xen sind gerade dabei sich den Kopf darüber zu zerbrechen wie man Grafikkarten vernünftig Virtualisieren kann.

Achieving decent 3D graphics virtualization requires a substantially higherlevel
interface than that for 2D. With both the Xserver and Microsoft window
systems moving in the direction of using 3D rendering even for desktop
graphics, 3D graphics is becoming mainstream and not just the preserve of
games and CAD/CAM. We will need to investigate drivers that encapsulate
and transport OpenGL and/or Direct3D commands into backend domains
where they can be rendered by the 3D graphics hardware. There are already
a couple of projects that are investigating this is the context of OpenGL:
Jacob Gorm Hansen's work presented at the last Xen summit, and a new
project at CMU/Toronto based on Chromium.

redcore
2007-08-11, 12:42:31
Sollte man es vielleicht den Graphikkartenherstellern überlassen, wäre es vielleicht sogar der beste Weg (perfomante Lösung), ähnlich Virtualisierung in den neuen CPU's ?
Sowas wie Pacifica für AMD/ATI Karten.

Gast
2007-08-12, 10:56:32
warum sind alle zu scharf auf Virtualisierung?! Ausserhalb von Servern ist mir kein Anwendungsgebiet bekannt, in dem es wirklich Sinn macht und selbst hier ist es im Zweifelsfall doch eher problematisch, wenn gleich zig Services ausfallen, die in virtuellen Umgebungen laufen, statt auf dedizierten Maschinen. Bei eher sekundären Aufgaben natürlich kein Problem.

Für was soll die Virtualisierung der 3D-Schnittstelle nütze sein? Gibt es auch nur eine halbwegs sinnvolle Idee, was man damit treiben könnte?

Nur um den x-ten Abstarktionslayer einzubasteln, weil es eben geht, ist keine sinnvolle Idee..

Nasenbaer
2007-08-12, 11:11:16
warum sind alle zu scharf auf Virtualisierung?! Ausserhalb von Servern ist mir kein Anwendungsgebiet bekannt, in dem es wirklich Sinn macht und selbst hier ist es im Zweifelsfall doch eher problematisch, wenn gleich zig Services ausfallen, die in virtuellen Umgebungen laufen, statt auf dedizierten Maschinen. Bei eher sekundären Aufgaben natürlich kein Problem.

Für was soll die Virtualisierung der 3D-Schnittstelle nütze sein? Gibt es auch nur eine halbwegs sinnvolle Idee, was man damit treiben könnte?

Nur um den x-ten Abstarktionslayer einzubasteln, weil es eben geht, ist keine sinnvolle Idee..
Die Idee war halt die komplette Abstraktion von dem zugrundeliegenden System. Im schlimmsten Fall könnte man so Spiel für Konsolen und alle PC Plattformen gleichzeitig entwickeln.
Wie gesagt ist das mit den vorhandenen APIs bereits jetzt theoretisch möglich aber OpenGL soll z.b. derzeit so sein Problem auf unterschiedlichen System mit sich bringen und dadurch für jedes System Zusatzaufwand bedeuten. Auch existieren für manche Schnittstellen keine so ausgereiften APIs. Z.B. ForceFeeedback oder generell Eingabe geht zwar z.B. mit SDL aber ob es den meisten Entwicklern reicht kann ich nicht sagen.

nomadhunter
2007-08-12, 13:07:54
warum sind alle zu scharf auf Virtualisierung?! Ausserhalb von Servern ist mir kein Anwendungsgebiet bekannt, in dem es wirklich Sinn macht
Jedes Windows-Spiel mit beinahe-nativer Performance unter Linux und Mac OS X spielen? Und im weiteren Verlauf dann vielleicht Spiele, die direkt auf der virtuellen Maschine laufen und eine zusätzliche Windows-Lizenz hinfällig machen (in etwa so wie Java, nur etwas spielefreundlicher). Sicher ist das noch eine zusätzliche Abstraktionsschicht, aber das würde auch den Entwicklern viel Arbeit sparen und hätte das Potenzial, die festgefahrene (Monopol-)Situation am Betriebssystemmarkt zu lösen.

Gast
2007-08-12, 20:40:23
also da wird einiges durcheinandergewürfelt, was so nun gar nicht zusammenpasst, letztendlich sieht es so aus als würden sich einige einen besseren Emulator für Spiele wünschen und dafür möchte man die totale Virtualisierung vom Laufwerk über die CPU bis zur Grafikkarte...ein wahnwitziger Aufwand für .. nun .. nicht sehr viel

Die Virtualisierung ist kein Betriebssystem.

Auch in der virtualisierten Umgebung benötigt man wieder die entsprechenden Betriebssysteme, man kann dann u.U. ein Windowsspiel in einem Fenster unter MacOS laufen lassen, nur die Lizenz für das jeweilige Betriebssystem wird trotzdem benötigt .. es wird niemals das Betriebssystem der Betriebssysteme geben unterm dem in virtuellen Maschinen alles was an Software verfügbar ist, auch läuft.

Auch dem Entwickler wird die Portierung durch HW-Virtualisierung nicht schmackhafter gemacht. Den Spiele-Entwicklern mangelt es üblicherweise schlicht an den Fähigkeiten unter alternativen Betriebssystemen zu programmieren, zudem stehen unter Windows seit Jahren geschliffene Entwicklungsumgebungen/Usergrps/Dokumentation usw. zu Verfügung, die es unter MacOS oder gar Linux, FreeBSD so gar nicht gibt. Die Virtualisierung kann eine Portierung sogar schwieriger machen, da man zusätzlich noch mit möglichen Fehlern der virtuellen Maschine belästigt wird und ein feintuning aufgrund möglicher Performanceunterschiede einzelner Befehle zwischen reeler und virtueller Implementation nicht wirklich sinnvoll ist.

Der eigentliche Zweck der Virtualisierung in consumer-PC ist doch eher einen 'sicheren' Pfad(eine sichere virtuelle Maschine) für zukünftige Hollywoodspinnereien zu haben, damit ein Abgriff der wertlosen Mediendaten der xten-schlechten BlueRay/HD-DVD/UltraScene/schlagmichtot-Produktion erschwert bzw. unmöglich gemacht wird.

Nasenbaer
2007-08-13, 11:46:32
also da wird einiges durcheinandergewürfelt, was so nun gar nicht zusammenpasst, letztendlich sieht es so aus als würden sich einige einen besseren Emulator für Spiele wünschen und dafür möchte man die totale Virtualisierung vom Laufwerk über die CPU bis zur Grafikkarte...ein wahnwitziger Aufwand für .. nun .. nicht sehr viel

Die Virtualisierung ist kein Betriebssystem.

Auch in der virtualisierten Umgebung benötigt man wieder die entsprechenden Betriebssysteme, man kann dann u.U. ein Windowsspiel in einem Fenster unter MacOS laufen lassen, nur die Lizenz für das jeweilige Betriebssystem wird trotzdem benötigt .. es wird niemals das Betriebssystem der Betriebssysteme geben unterm dem in virtuellen Maschinen alles was an Software verfügbar ist, auch läuft.

Auch dem Entwickler wird die Portierung durch HW-Virtualisierung nicht schmackhafter gemacht. Den Spiele-Entwicklern mangelt es üblicherweise schlicht an den Fähigkeiten unter alternativen Betriebssystemen zu programmieren, zudem stehen unter Windows seit Jahren geschliffene Entwicklungsumgebungen/Usergrps/Dokumentation usw. zu Verfügung, die es unter MacOS oder gar Linux, FreeBSD so gar nicht gibt. Die Virtualisierung kann eine Portierung sogar schwieriger machen, da man zusätzlich noch mit möglichen Fehlern der virtuellen Maschine belästigt wird und ein feintuning aufgrund möglicher Performanceunterschiede einzelner Befehle zwischen reeler und virtueller Implementation nicht wirklich sinnvoll ist.

Der eigentliche Zweck der Virtualisierung in consumer-PC ist doch eher einen 'sicheren' Pfad(eine sichere virtuelle Maschine) für zukünftige Hollywoodspinnereien zu haben, damit ein Abgriff der wertlosen Mediendaten der xten-schlechten BlueRay/HD-DVD/UltraScene/schlagmichtot-Produktion erschwert bzw. unmöglich gemacht wird.

Ich denke der Hauptvorteil von Desktop-Virtualisierung liegt derweil noch in der Entwicklung "normaler" Apps. Solange 3D oder generell spezielles Multimedia-Dingsbums nicht gebraucht wird lassen sich so Apps auf unterschiedlichtsten Plattformen komfortabel testen und entwickeln.

Und es wäre nur ein logischer Schritt, dass VMs um die Defizite im Multimedia-Bereich erweitert werden. Denn HD Filme, ja noch nicht mal Filme mit Standardauflösung, kann man in einer VM ruckelfrei abspielen. Ob sich das mit Pacifica und Konsorten geändert kann ich nicht sagen da meine CPU das noch nicht hat. :)