Wie entwickelt man Spiele Zukunfstsicher?



  • Hallo,

    Mir ist letztens wieder das Phänomen begegnet, dass es sehr sehr alte
    Spiele gibt, die unter Windows 7 super funktionieren, neuere Spiele nicht.

    Beispiel:

    Ich hab letztens mal wieder Diablo II installiert auf Windows 7 und es
    funktioniert super.

    Spiele hingegen wieder Splinter cell Double Agent, oder Metalgear 2 nicht,
    die aber weitaus neuer sind.

    (edit: ok Metal Gear 2 kamm im selben jahr raus wie Diablo 2)

    Was sollte man Beachten beim entwickeln von Spielen ,oder vielleicht sogar
    generell bei Software, damit sie auch noch in der Zukunft Funktionieren?



  • Tja diese Probleme gabs immer schon, von Dos zu Win95, von Win98 zu XP, Vista an sich war ein Problem und Win7 ist entweder ganz toll oder ganz grausig, je nachdem was man gerade versucht. Wenn man sich an die Standards hält, sollte man ne ganze Weile durchhalten - Aber Spiele haben ja eh keine hohe Lebensdauer. Am Ende trifft es meisst die Nostalgiker, die sich denken "Heute spiel ich mal Commander Keen" - Oh läuft ja gar nicht mehr 😞



  • also bei windows 2000 lief commander keen bei mir noch... bei W7 hab ichs noch nicht getestet... Kultspiel! ^^



  • Aber was kann nun Ausschlaggebend sein. Kann es Schon bei der Wahl der
    Programmiersprache losgehen?

    Sollte man seine Datentypen immer fest definieren z.B.
    int16/int32 statt nur int?

    Mangelt es bei vielen Spielen vielleicht an exception handling?

    Oft, hab ich gemerkt videos sind ein echtes problem. Sollte man
    Storysquenzen generell lieber scripten anstatt ein Video zu machen?
    Sounds in Formaten einbinden die sich ewig halten wie Wav?

    usw...



  • Die Programmiersprache ist Nebensächlich. Egal ob C, C++, Pascal o.ä. Wichtig: Nicht an der offiziellen API/Dokumentation vorbei programmieren! Manche Programme nutzen gerne nicht öffentliche APIs oder umgehen sie ganz, in dem sie die Hardware direkt ansprechen. Dann gibt es natürlich keine Garantie, das die Programme später noch laufen.

    Genau diese Vorgehensweise hat übrigens damals den Homecomputern (Amiga, Atari ST/Falcon und Archimedes) das Genick gebrochen: von einer Generation auf die andere, liefen viele alte Spiele nicht mehr. Wer vom Amiga 500 auf den Amiga 1200 umgestiegen ist, hat viele Top-Games nicht weiter auf dem A1200 spielen können. Und wir reden hier von einem Zeitraum von nur ca. 5 Jahren (A500 erschien 1987 und A1200 erschien 1992).

    Selbst der Wechsel vom A500 auf den A500+ (wirklich nur minimale Leistungssteigerungen) machten ein paar Spiele Schwierigkeiten.

    Damals war das meiste noch in Assembler mit Hacks (Illegale Opcodes) und minimaler API-Nutzung programmiert.

    Bei den IBM-PCs hatte man das Problem nicht, da viel gegen Treiber-APIs programmiert wurde und wird.



  • Wozu zukunftssicher? Sicher will der Spieler vielleicht nach 10 Jahren nochmal Diablo II spielen, aber du fragst ja aus der Perspektive des Entwicklers. Was hat der davon? Wenn es das irgendwo noch gibt, dann auf irgendwelchen Grabbeltischen, die Gewinne streicht hauptsächlich der Handel und der Publisher ein, der Entwickler hat davon nicht so viel. In der Entwicklungsphase kommt es aber schon darauf an, dass das Spiel möglichst schnell fertig wird und gegenüber Konkurrenten Alleinstellungsmerkmale besitzt, da muss man manchmal eventuelle zukünftige Inkompatibilitäten mit einkalkulieren.
    Eine spätere Freigabe als Open Source kann das Problem lösen, dann können die Hardcore-Anhänger das Spiel selbst auf aktuelle Plattformen portieren, siehe z.B. die ganzen Doom-Ports.



  • adonis schrieb:

    Oft, hab ich gemerkt videos sind ein echtes problem. Sollte man
    Storysquenzen generell lieber scripten anstatt ein Video zu machen?

    🙄 Geht Video scripten...



  • Immer an Standards halten, für deren Portabilität sorgen in der Regel die Betriebssystemhersteller.
    Beispiel: Viele ältere Spiele schrieben ihre Einstellungen ins Programmverzeichnis. Unter Vista und Win7 fielen die dann ohne Adminrechte auf die Nase. Dabei gab es schon lange vorher die Empfehlung, dafür die Einstellungsdaten zu nehmen. Aber wer hätte denn ahnen können, dass irgendwann mal der Nutzer nicht standardmäßig Admin ist?



  • Bashar schrieb:

    Wozu zukunftssicher? Sicher will der Spieler vielleicht nach 10 Jahren nochmal Diablo II spielen, aber du fragst ja aus der Perspektive des Entwicklers. Was hat der davon? Wenn es das irgendwo noch gibt, dann auf irgendwelchen Grabbeltischen, die Gewinne streicht hauptsächlich der Handel und der Publisher ein, der Entwickler hat davon nicht so viel. In der Entwicklungsphase kommt es aber schon darauf an, dass das Spiel möglichst schnell fertig wird und gegenüber Konkurrenten Alleinstellungsmerkmale besitzt, da muss man manchmal eventuelle zukünftige Inkompatibilitäten mit einkalkulieren.
    Eine spätere Freigabe als Open Source kann das Problem lösen, dann können die Hardcore-Anhänger das Spiel selbst auf aktuelle Plattformen portieren, siehe z.B. die ganzen Doom-Ports.

    Diese Einstellung finde ich schlimm.

    Man sollte natürlich auch als Entwickler ein Interesse haben, daß das eigene Spiel (ist ja das eigene Kind) noch in Zig Jahren läuft, denn vielleicht war es das letzte Spiel, daß man programmiert hat.

    Es gab mehr als genug Entwicklerstudios die später pleite gingen und die Programmierer von damals programmieren entweder was völlig anderes oder arbeiten an ganz anderen Projekten, weil dem neuen Arbeitgeber die Lizenz zum alten Spiel fehlt.
    Und dann ist es doch doof, wenn man so viel Herzblut in sein Spiel gesteckt hat und man es dann irgendwann nichtmal mehr selber spielen kann.

    Auch ist es nicht so, daß ein anderes Entwicklerstudio schon irgendwann Ersatz liefern wird. Das Fallout und DSA wieder neu aufgelegt wurden war z.B. nur großen Glück, denn es war lange Zeit unklar, wer da überhaupt der eigentliche Rechteinhaber ist.

    Und den Source Code einfach mal so als Open Source freigeben geht oft auch nicht, denn man ist nur ein Entwickler, ein kleines Rädchen im Getriebe.
    Die Verwertungsrechte hat das Entwicklerstudio oder vielleicht der große Publisher und da braucht man dann nicht darauf aufbauen, daß irgendein BWLer dann entscheidet, einfach mal so den ganzen Quellcode für lau freizugeben.
    ID Software ist hier ganz klar ein Sonderfall in der Branche, denn ID Software gehört ja John Carmack persönlich und der kann dann natürlich über den Quellcode von Quake frei entscheiden.
    Bei typischen Publisherspielen geht das aber nicht und oftmals ist irgendeine fremde Engine oder Technologie (Speedtree etc) in das Spiel integriert.

    Dann das nächste Problem.
    Böse Hacks zu nutzen und auf unfertige Specs zuzugreifen kann auch ganz böse Enden, denn es kann auch zu instabilem Code führen.

    Auch braucht man sich nicht darauf verlassen, daß man als Entwickler nach Release in 3 Monaten nachpatchen darf um alten Code nun an eine finalisierte Spec anzupassen, denn oft kriegt man gar nicht mehr die Gelegenheit zum nachpatchen. Der Publisher stellt die Patcherei ein und sagt dann, daß man nun am nächsten Projekt arbeiten darf.

    Ich finde, Code den man schreibt ist wie ein Kind das man auf die Welt gebrachthat und das fertige Programme sollte daher möglichst lange noch die Veränderungen in der Branche überleben.



  • Wenn ich ein Spiel nach 10 Jahren unbedingt noch einmal spielen will dann läuft das bis dahin schon in einer passenden VM 🙂

    MfG SideWinder



  • SideWinder schrieb:

    Wenn ich ein Spiel nach 10 Jahren unbedingt noch einmal spielen will dann läuft das bis dahin schon in einer passenden VM 🙂

    MfG SideWinder

    Das galt vielleicht früher zu DOS Zeiten einmal, aber heutige Windows Spiele haben seit Jahren oftmals einen Kopierschutz der direkt auf die Hardware des CD-Laufwerks zugreifen muss und manche von ihnen nutzen Direct3d, womit sie auch direkten Zugriff auf die GPU oder zumindest spezielle Treiber haben müssen.

    Beide Fälle kann man in einer VM nur schlecht oder nur mit großem Aufwand simulieren.
    Auch hat nicht jeder Rechner I/O virtualization um einen direkten Zugriff auf die Hardware zu ermöglichen, es sind also Wrapper fällig, die die Daten auf einer virtuellen GPU wieder auf OpenGL/Direct3d wrappen, so daß es auf dem Hostsystem noch 3d beschleunigt abläuft.

    All diese Probleme existieren schon jetzt, aber durch eine entsprechende Programmierung nah an den Standards und Specs kann man wenigstens die Chancen steigern, daß so ein Generic GPU Wrapper ausreicht bzw. funktioniert.
    Jede exotische Nutzung an den APIs und den Standards vorbei kann dazu führen, daß das Spiel nichtmal in einer VM läuft.



  • Kritik schrieb:

    Das galt vielleicht früher zu DOS Zeiten einmal, aber heutige Windows Spiele haben seit Jahren oftmals einen Kopierschutz der direkt auf die Hardware des CD-Laufwerks zugreifen muss und manche von ihnen nutzen Direct3d, womit sie auch direkten Zugriff auf die GPU oder zumindest spezielle Treiber haben müssen.

    CD-Kopierschutz gab es vor 5 Jahren, die neueren Spiele haben andere Kopierschutzmechanismen (weil es den Spielern zu aufwendig war, jedesmal eine CD einzulegen, die eigentlich gar nicht gebraucht wird).
    DirectX könnte ein Problem sein, aber ich meine das funktioniert auch in einer VM.



  • Vermutlich werden Spiele in Zukunft Browserbasierend sein oder in Terminal Apps laufen. Da wird noch viel passieren in sachen 3 D Grafik im Browser. Die Gebühren werden nicht über den Verkauf sonder wie z.B. bei WOW über die Realm Nutzung generiert.

    Locale Installationen auf einem Smartphone oder PAD, was ein Großteil der künftigen Nutzer haben wird, wird es dann kaum noch in der Größe von D2 geben.


  • Mod

    Dean schrieb:

    Vermutlich werden Spiele in Zukunft Browserbasierend sein oder in Terminal Apps laufen. Da wird noch viel passieren in sachen 3 D Grafik im Browser. Die Gebühren werden nicht über den Verkauf sonder wie z.B. bei WOW über die Realm Nutzung generiert.

    die zukunft ist eher free2play, damit man mit apps konkurieren kann, selbst blizzard arbeitet scheinbar an einem free2play mmo und auch WoW kann man nun bis zu einem gewissen level kostenlos spielen soviel man will (jedenfalls stand das in den news).

    Locale Installationen auf einem Smartphone oder PAD, was ein Großteil der künftigen Nutzer haben wird, wird es dann kaum noch in der Größe von D2 geben.

    das auch eher nicht, daten werden gecached werden, aber die leute werden immer weniger bereit sein zu warten bis sie spielen koennen.


  • Mod

    adonis schrieb:

    Hallo,

    Mir ist letztens wieder das Phänomen begegnet, dass es sehr sehr alte
    Spiele gibt, die unter Windows 7 super funktionieren, neuere Spiele nicht.

    Beispiel:

    Ich hab letztens mal wieder Diablo II installiert auf Windows 7 und es
    funktioniert super.

    das orginal? oder mit all den patches die es in der zwischenzeit gab damit es weiterhin laeuft?

    Spiele hingegen wieder Splinter cell Double Agent, oder Metalgear 2 nicht,
    die aber weitaus neuer sind.

    weshalb laufen die nicht? ohne das zu wissen, kann man doch garnicht sagen, was an den spielen nicht zukunftssicher war und ob man das vorhersehen koennte.

    ich hatte mir UT2003 gekauft und es war sofort nicht spielbar, auf vista 64bit, weil der kopiertschutz das nicht unterstuetzte (stand nirgens). sowas ist kein problem der zukunftssicherheit, imo.

    Was sollte man Beachten beim entwickeln von Spielen ,oder vielleicht sogar
    generell bei Software, damit sie auch noch in der Zukunft Funktionieren?

    so einfach machen, dass es nicht schiefgehen kann, also den kleinsten gemeinsamen nenner nutzen.
    z.b. fopen statt createfile nutzen, dann ist man eventuell langsam, aber kompatibel. 2d graphik nutzen, am besten etwas, was in einer virtual machine laeuft. dann koennen sich die leute eine neue VM ziehen und weiter das spiel spielen, wie z.B. http://www.scummvm.org

    bei highend kann man schlecht vorhersehen, ob es zukunftssicher ist. wer haette vor ein paar jahren noch gedacht, dass alle hersteller von PC auf konsolen schwenken, dass die groessten publisher browser/online/free2play games produzieren. Das kann man genausowenig mit technik, wer weiss, ob in 5jahren noch irgendjemand d3d unterstuetzt, ob es dann noch tesselation hardware gibt?...



  • ipsec schrieb:

    Kritik schrieb:

    Das galt vielleicht früher zu DOS Zeiten einmal, aber heutige Windows Spiele haben seit Jahren oftmals einen Kopierschutz der direkt auf die Hardware des CD-Laufwerks zugreifen muss und manche von ihnen nutzen Direct3d, womit sie auch direkten Zugriff auf die GPU oder zumindest spezielle Treiber haben müssen.

    CD-Kopierschutz gab es vor 5 Jahren, die neueren Spiele haben andere Kopierschutzmechanismen (weil es den Spielern zu aufwendig war, jedesmal eine CD einzulegen, die eigentlich gar nicht gebraucht wird).

    CD-Kopierschutz wird auch heute noch verwendet.
    Und selbst wenn nicht, ändert das nichts daran, daß es diese etwas älteren, aber für DOS Verhältnisse immer noch neuen Spiele gibt.

    DirectX könnte ein Problem sein, aber ich meine das funktioniert auch in einer VM.

    Der Spezialfall OpenGL Spiel müßte ebenfalls von der VM abgedeckt werden.



  • Dean schrieb:

    Vermutlich werden Spiele in Zukunft Browserbasierend sein oder in Terminal Apps laufen. Da wird noch viel passieren in sachen 3 D Grafik im Browser. Die Gebühren werden nicht über den Verkauf sonder wie z.B. bei WOW über die Realm Nutzung generiert.

    Locale Installationen auf einem Smartphone oder PAD, was ein Großteil der künftigen Nutzer haben wird, wird es dann kaum noch in der Größe von D2 geben.

    Spiele via Internetstreamingvideo sind schon vorne herein eine Todgeburt.
    Denn bei Latenzabhängigen Spielen funktioniert das nicht.



  • Oder: schreib deine Spiele um als App (leider kann man das in c++ nicht machen)
    dann kanst du zugleich geld verdienen und Apps sind erstmal ne zeitlang "IN"
    😉



  • Kritik schrieb:

    Spiele via Internetstreamingvideo sind schon vorne herein eine Todgeburt.
    Denn bei Latenzabhängigen Spielen funktioniert das nicht.

    Naja die Übertragungsgeschwindigkeiten steigen immer mehr, und gibt viele
    entwicklerbuden die auf unitiy3d umschwenken.

    Aber jetzt mal allgemein für Software, wie sieht es da eigendlich aus,
    muss ein Softwarehersteller für eine gewisse Laufzeit garantieren,
    oder muss der Betriebssystemhersteller das gewährleitsten?
    Wird die Laufzeit nur für ein Betriebssystem gewährleistet?

    Oder ist es allen scheißegal?

    Ich meine immerhin bezahlen wir ja auch für die Software, was kann man
    erwarten. Ich rede jetzt auch mal von Software in anderen Größenordnungen
    als 50€. Maya in der Unlimted kostet ca 9000€. Da ist sowas schon ärgerlich:)

    Kommen einige Probleme vielleicht auch von den sehr großen Entwicklungssprüngen
    zwischen den Betriebssystemem. ME zu XP kompletter Bruch war
    ein absolutes Chaos, XP zu Vista genauso. Jetzt will man kleinere Sprünge
    machen und eine kürzere Laufzeit. Man wird demnächst sein Betriebssystem wohl
    abonnieren müssen.

    Aber wird es die Probleme der Inkompatibilität lösen denke nicht oder?

    Sorry wenn ich das ganze jetzt ein wenig zu sehr aus den Spielebereich drücke.



  • adonis schrieb:

    Kritik schrieb:

    Spiele via Internetstreamingvideo sind schon vorne herein eine Todgeburt.
    Denn bei Latenzabhängigen Spielen funktioniert das nicht.

    Naja die Übertragungsgeschwindigkeiten steigen immer mehr, und gibt viele
    entwicklerbuden die auf unitiy3d umschwenken.

    Die Latenzen sinken aber nicht, denn das ist eine physikalische Grenze.

    Wenn der Abstand von A nach B X beträgt, dann geht das Signal halt nicht schneller als mit Lichtgeschwindigkeit.

    Aber jetzt mal allgemein für Software, wie sieht es da eigendlich aus,
    muss ein Softwarehersteller für eine gewisse Laufzeit garantieren,
    oder muss der Betriebssystemhersteller das gewährleitsten?
    Wird die Laufzeit nur für ein Betriebssystem gewährleistet?

    Nutzprogramme haben allein schon aus Datenschutzgründen keine Chance als Internetstreamingapplikation.

    Keine Firma bei Verstand würde eine Textverarbeitung nutzen, die irgendwo im Browser auf dem Rechner einer dritten Firma läuft um ihre Geschäftsgeheimnisse damit schriftlich zu fixieren.
    Privatpersonen können da etwas großzügiger/dümmer/ahnungsloser sein, aber in der Masse dürfte sich so etwas nicht durchsetzen.

    Kommen einige Probleme vielleicht auch von den sehr großen Entwicklungssprüngen
    zwischen den Betriebssystemem. ME zu XP kompletter Bruch war
    ein absolutes Chaos, XP zu Vista genauso. Jetzt will man kleinere Sprünge
    machen und eine kürzere Laufzeit. Man wird demnächst sein Betriebssystem wohl
    abonnieren müssen.

    Letzten bekam ich nen Schrecken als ich erfuhr, daß die Supportzeit von Windows 7 schon bald wieder rum ist.

    Insofern ja, die Supportzeiten bei Windows sind inzwischen gefühlt zu kurz.
    Man ist von WinXP und MS DOS einfach viel längere Zeiten gewohnt.
    Und bei MS DOS viel es nicht ins Gewicht, da DOS kaum am Netzwerk hing und Sicherheitslücken ein ernsthaftes Problem werden hätten können.


Log in to reply