Foren Aktuelles Erstellen Mitglieder Anmelden

KT Klassenprogrammierung schuld an Mainstream-Games?

Benutzer, welche sich diesen Thread anschauen:

Klassenprogrammierung schuld an Mainstream-Games?


Viele werden jetzt einwenden, dass heutzutage vor allem deswegen Mainstream-Games erschafffen werden, um damit ordentlich Profit zu machen. Das mag sicher mit ein Grund sein, jedoch denke ich, dass die Spiele-Entwickler keineswegs auf die echten Hardcore-Gamer zur Gänze vergessen haben.
Ein Großteil des sogenannten Profits - vermute ich zumindest - wird wohl nach wie durch Hardcore-Gamer erwirtschaftet.
Um dem Definitions-Wirr-Warr zu entgegenzuwirken: Unter einem Hardcore-Gamer stelle ich mir jemanden vor, der es als sein Hobby bezeichnet, Computergames zu spielen und gerne tiefer ins Spiel reinschaut, Strategien entwickelt und auch höhere Schwierigkeitsgrade nicht scheut.

Ich glaube also nicht, dass Spiele-Entwickler zwanghaft versuchen, nur noch Mainstream-Games zu kreieren; aber trotzdem ist die Masse an Games heutzutage einfach nicht mehr so unvorhersehbar, kreativ, tiefgehend und spannend wie damals.
Doch woran liegt es, wenn man das Trachten nach Profit außer Acht lässt?

Meiner Ansicht nach ist daran das objektorientierte Programmieren schuld - zu einem nicht unwesentlichen Anteil.
Was in Anwendungssoftware möglicherweise erhebliche Zeitersparnis beim Programmieren ermöglicht, funktioniert bei Spielen nicht.
So neigt die Objektorientierung dazu, alles zu klassifizieren (kaum überraschend), berechenbar zu machen oder gar zu automatisieren.
Es wird demnach viel zu viel geclustert und zusammengefasst; alles wird auf vorhersehbare "Eigenschaften" des Objekts reduziert. Gewissermaßen muss der Spieler heutzutage eine Flut an Redundanz ertragen, die zum Vorschein kommt, sobald man sich tiefer in die Materie eines Computerspiel eingelebt hat. Objektorientierung, so vermute ich, verleitet zur Oberflächlichkeit, Schnelligkeit und Profittracht ohne dabei an den Hardcore-Spieler selbst zu denken, der schon nach wenigen Minuten Spielzeit zumindest unterbewusst wahrnimmt, dass das vor ihm liegende Spiel in höchstem Maße berechenbar ist und kaum Überraschungen birgt.
Zwar möge grafische Gewandheit am Anfang über die nicht vorhandene teils subtile Spieltiefe hinwegtäuschen aber im Grunde genommen ist es nur eine Frage der (viel zu kurzen?) Zeit, bis ein Spieler den fehlenden Tiefgang intensiver wahrnimmt.

Was ist nun unter "Berechenbarkeit eines Computerspiels" zu verstehen? Man nehme als Beispiel The Elder Scrolls IV : Oblivion. Ein zur damaligen Zeit grafisches Referenzprodukt in der Sparte der Rollenspiele. Es dauerte allerdings nicht lange, bis Fans erkannten, dass dem Grafik-Wahn (dieses Thema sei hier nur als Randbemerkung erwähnt) relativ wenig Tiefgang folgte.
Vielmehr war es so, dass etliche Quests und Dungeons zufallsgeneriert abliefen und sich einander sehr ähnlich waren. Was für Mainstream-Konsumenten durchaus zu verkraften wäre, ist für eingeschworrene Elder-Scrolls Fans, die etwa noch in Morrowind monatelang damit verbrachten, jeden spannenden Zentimeter der durchwegs einzigarten Spielwelt zu erkunden, auf Dauer gesehen nicht unbedingt von Vorteil.
Mit "Berechenbarkeit" ist also gemeint, dass ein zumindest erfahrener Spieler relativ schnell die Mechanik eines heutigen, "modernen" Computerspiels begriffen und erlernt hat und somit rasch erfährt, welche Missionen noch auf ihn zukommen mögen und inwiefern es noch zu völligen Überraschungen im Spiel kommen kann.
Leider ist es so, dass es zumindest mir (ich würde mich als erfahrenen Spieler betrachten - also als Hardcore-Gamer, wie oben definiert) immer wieder auffällt, dass, sobald ich ein Spiel auch nur eine Stunde lang spiele, das Spiel durchaus gut ist, Spaß macht und auch Spannung bietet - aber mit genauerem Nachdenken merke ich dann, dass an Überraschungen, völlig neuen Gameplay-Elementen und innovativeren Missionen nicht mehr viel kommen wird.

Ich meine jetzt nicht die nächste Rendersequenz oder die übernächste große Explosion, beispielsweise in einem Actionshooter. Diese Elemente sind durchaus in einer gewissen Form "überraschend" und "nicht vorhersehbar"; aber sie sind keineswegs tiefgehend, innovativ - einfach neu.
Am Beispiel Oblivion etwa wird einem klar, dass Dialoge immer auf dieselbe Weise ablaufen, Dungeons immer gleich aussehen und Städte immer gleich wirken werden. Mit "gleich" meine ich: nicht innovativ, überraschend.

Und ebendiese Vorhersagbarkeit ist meiner Ansicht nach auf die Objektorientierung zurückzuführen. Freilich: Auch Morrowind war zum Teil berechnend und ich weiß nicht, ob das Spiel objektorientiert programmiert wurde oder nicht. Wenn ja, dann gelang es den Programmieren wohl wie durch ein Wunder, es trotzdem unberechenbar zu machen - bis auf einige wenige Ausnahmen. Wenn nein, so lobe ich mir die "normale" Programmierung von Spielen, die es zwar umständlicher macht, Spiele zu programmieren, weiterzuentwickeln und zu warten aber andererseits den Programmiern völlige Freiheit erlaubt. Man kann einfach mal eben in einer Mission eine zusätzliche Ressource einbauen, einen zusätzlichen NPC, der jedoch ganz unüblich zum Rest der Welt agiert und möglicherweise eine völlige andere Art der Dialogführung pflegt. (Telepathie?)

Wer noch immer nicht recht weiß, was ich ausdrücken will, dem hilft womöglich folgende Metapher in Bezug auf die realen Welt: Nehmen wir einen Handwerkerberuf, sagen wir "Tischler". Früher wurde alles liebevoll im Detail gestaltet, mit extra-ordinären Mustern und Formen, elegant und prunkvoll. Und wenn man es denn bestellte, so sah ein jedes Tischlerprodukt immer sehr individuell und kundenspezifisch aus - es handelte sich quasi immer um ein Unikum, wenn ein Tischler ein Produkt erschuf.
Heutzutage ist demnach vieles (wenn auch nicht alles), was vom Tischler erzeugt wird, "monoton", geradlinig, ohne komplizierte Muster, schlicht und - berechenbar. Im Grunde genommen erlebte also der Tischler-Beruf - meiner Ansicht nach - eine Rationalisierung. Alles muss schneller, einfacher und effizienter gehen. Wahrer "Tiefgang" im Muster des erschaffenen Gutes in Form von völlig unterschiedlichem Design je Produkt wird vermisst - nicht unbedingt vom Großteil der Gesellschaft, aber möglicherweise von "Hardcore"-Tischlerfans.
So hat also auch im Tischlerberuf immer mehr die "Objektorientierung" in Form von Maschinen und verminderter Individualität Einzug gehalten.

Nun sollte klar sein, dass Objektorientierung zwar Effizienz ermöglicht und speziell in Bereichen der Anwendungssoftware, wo es möglichst zu keinen Überraschungen kommen soll, äußerst sinnvoll einzusetzen ist aber gerade im Bereich der Spiele-Entwicklung könnte die Objektorientierung meiner Meinung nach zu einem immer weiter andauernden "Abbau" von Hardcore-Spielern führen.

In diesem Sinne lautet meine Abschlussbotschaft an die Spiele-Entwickler: Macht wieder mehr selbst, greift wieder mehr in die Materie des Spiels ein, überrascht uns mit Unvorhersehbaren und verhindert möglichst sich wiederkehrende, wiederholende und leicht zu entlarvende Gameplay-"Schleifen"; sei es das zu ähnlich gehaltene Dungeon, die immer gleiche Farbabmischung am Bildschirm fortwährend durch das ganze Spiel oder die immer wieder selbe Art und Weise, wie man Missionen annimmt und anschließend die Belohnung kassiert.

Freilich, der Verzicht oder möglicherweise der "sparsamere" Einsatz von Objektorientierung (sofern dies überhaupt möglich ist) verursacht graviernd längere Programmierzeit und dezimiert vielleicht sogar den Profit.
Aber kann der Profit nicht hintan gestellt werden, wenn dies bewirken würde, anstatt 1000 Mainstream-Spieler 8 Stunden Spielzeit lang sehr gut zu unterhalten, 10 Hardcore-Spieler 350 Stunden lang sehr gut zu unterhalten?

Wie seht ihr das? Seid ihr auch der Meinung, dass heutzutage alles irgendwie generisch und austauschbar und ohne Tiefgang wirkt - oder seht ihr das völlig anders?
Und wenn ihr der gleichen Meinugn seid wie ich: Könnt ihr einige Vertreter von Spielen nennen, die trotzdem "nicht objektorientiert programmier" wirken, so wie "damals"?
 
Nicht die objektorientierte Programmierung ist schuld, sondern dass vor allem (einmaliger) Content Zeit und Geld kostet. Auch schon früher gabs viele Sachen, die man nochmals vorgesetzt bekommen hat. Sei es die gleichen Standardgegner in anderer Farbe oder gar Zwischenbosse mit teils den gleichen Angriffen.
 
Danke für den ersten sehr kritischen Beitrag.

Eines sagst du aber selbst. Einmaliger Content benötigt Zeit. Da gebe ich dir Recht; nur WARUM benötigt er Zeit? Weil es lange dauert, Ideen zusammeln? Oder happert es nicht doch an der UMSETZUNG? Weil ewas Eimaliges mit Objektorientierung umzusetzen stelle ich mir relativ umständlich vor - und ich meine wirklich EIMALIG, innovativ, überraschend, nicht vorhersehbar.

Ah ja: Du hast auch das Geld angesprochen. Bitte dieses Thema hier außer Acht lassen; darauf habe ich schon im Beitrag hingewiesen und ich möchte jetzt hier nicht 20 Kommentare lesen müssen, die mit einem Satz der Art "Die wollen Geld sehen, deswegen!" enden. ;)

Du hast auch darauf hingewiesen, dass es auch früher schon Einheitsbrei gab. Auch da gebe ich dir Recht; aber zwischendrin wurde man doch immer wieder mal überrascht. (Ich denke da jetzt beispielsweise an Joschi auf dem Dach vom Schloss oder die unendliche Stiege in Super Mario 64)

Ergänzend ist vielleicht zu sagen: Klassenprogrammierung verhindet nicht grundsätzlich das Einprogrammieren von "Überraschungen" aber es verleitet meiner Ansicht nach Entwickler dazu, "Überraschungen" außer Acht zu lassen.
 
Du kannst hier aber den Faktor Geld nicht ausser Acht lassen, weil ZEIT ist GELD.

Irgendwann will man ja auch mal fertig werden mit dem Produkt. Ansonsten könnte man ja bis in die Unendlichkeit daran rumbasteln.

Die Klassenprogrammierung führt zu Systemen...Systeme durchschaut der Mensch recht schnell (Das ist ja das gute), vielleicht liegt es daran.

Summa summarum - Der Rotstift (also das Geld) und die Deadline (Zeit) ist das entscheidende Kriterium.

edit: Alternativen findest du bei diversen MMOs. Diese sind zwar genau so in OOP entstanden wie jedes andere Spiel heutzutage auch, bekommen aber idealerweise immer noch content nachgeschoben. Anders - ohne einheitliches Framework, das die Entwickler rauf und runterbeten können - sind Großprojekte wie moderne Spiele überhaupt nicht mehr zu stemmen. Ein Team mit 200 Mann und jeder kocht sein eigenes Süppchen mit prozedualer Programmierung - das geht gar nicht.
 
Ja, es wäre nur gut, würde nicht auch der Spieler das System der Klassenprogrammierung im Spiel erkennen. ;)

Bzgl. "Deadline" und "Rotstfit": Dessen bin ich mir bewusst und speziell in der Anwendungssoftware spielt das wohl eine gewichtige Rolle spielen.

Aber bei Computer-Games sollte man sich einfach Zeit lassen; ich weiß schon, dass das ein wenig idealistisches Wunschdenken ist aber wenn ein bischen was von meinen "Träumereien" realisiert würde, hätten Hardcore-Spieler wieder mehr Freude mit einem Spiel.
 
Noch einmal: Ich will hier eine Programmiermethode als Problem anführen. Darum geht es mir. Das ist die Thematik die in diesem Beitrag behandelt und diskutiert werden soll.
Wenn du der Ansicht bist, dass die Programmiermethode damit nichts zu tun, hat, dann sag es einfach - wünschenswert wäre eine Begründung, damit es wiederum was zu diskutieren gibt. :)

Nachsatz: Demnach ist für mich Geld eben NICHT der einzige Grund, warum Spiele nicht so sind, wie sie ich und viele andere gerne hätten.
 
popcorn.gif


Ganz großes Kino hier
 
okst666 schrieb:
edit: Alternativen findest du bei diversen MMOs. Diese sind zwar genau so in OOP entstanden wie jedes andere Spiel heutzutage auch, bekommen aber idealerweise immer noch content nachgeschoben. Anders - ohne einheitliches Framework, das die Entwickler rauf und runterbeten können - sind Großprojekte wie moderne Spiele überhaupt nicht mehr zu stemmen. Ein Team mit 200 Mann und jeder kocht sein eigenes Süppchen mit prozedualer Programmierung - das geht gar nicht.

Ein Ein-Mann-Spiel von mir aus, mit unterirdischer Grafik aber genialem Gameplay und innovativen Ideen. Immer her damit. ;)
 
tomixxx schrieb:
Noch einmal: Ich will hier eine Programmiermethode als Problem anführen. Darum geht es mir. Das ist die Thematik die in diesem Beitrag behandelt und diskutiert werden soll.
Wenn du der Ansicht bist, dass die Programmiermethode damit nichts zu tun, hat, dann sag es einfach - wünschenswert wäre eine Begründung, damit es wiederum was zu diskutieren gibt. :)

Die Begründung hab ich dir eigentlich schon gegeben.
Mit prozedualer Programmierung wird kein Spiel das den Umfang eines Pacman übersteigt jemals mehr fertig.

Und wenn in einem Team das das Spiel ja nunmal designen und irgendwann auch mal coden muss, jeder sein eigenes Süppchen kocht wird das ein Kraut und Rüben verhau der im besten Fall beim Starten sofort abstürzt, im schlechtesten Fall sich nicht mal kompilieren lässt.

Um den Leuten also die Möglichkeit zu geben eine "gemeinsame" Sache zu machen muss man entweder vorher eine gemeinsame API schreiben oder ein etwas komplexeres Framework heranziehen bzw. erschaffen.

Dadurch, das alles die gleichen Rahmenbedingungen nutzen können bzw. müssen führt das natürlich zu vereinheitlichten Systemen.

Aber nur noch dadurch ist es noch möglich überhaupt ein komplexes Spiel zu veröffentlichen.

tomixxx schrieb:
okst666 schrieb:
edit: Alternativen findest du bei diversen MMOs. Diese sind zwar genau so in OOP entstanden wie jedes andere Spiel heutzutage auch, bekommen aber idealerweise immer noch content nachgeschoben. Anders - ohne einheitliches Framework, das die Entwickler rauf und runterbeten können - sind Großprojekte wie moderne Spiele überhaupt nicht mehr zu stemmen. Ein Team mit 200 Mann und jeder kocht sein eigenes Süppchen mit prozedualer Programmierung - das geht gar nicht.

Ein Ein-Mann-Spiel von mir aus, mit unterirdischer Grafik aber genialem Gameplay und innovativen Ideen. Immer her damit. ;)

Wie sieht denn geniales Gameplay für dich aus und wieviele Leben muss dieser eine Mann denn haben?
Und warum sollte er genau das selbe nicht auch mit OOP realisiert kriegen?
OOP verhindert garantiert kein geniales Gameplay.
 
Ich nehme jetzt nur Bezug auf deinen zweiten Beitrag. Meine gegenteilige Meinung zum ersten habe ich bereits oben weiter erläutert.

Wie sieht denn geniales Gameplay für dich aus und wieviele Leben muss dieser eine Mann denn haben?

Ehrlich gesagt: Ich weiß es nicht. Wüsste ich es, wäre es keine Überraschung mehr. Es sind halt so Dinge, teilweise auch wirklich Kleinigkeiten, wie ich sie in den Beispielen zuvor erwähnt habe. Oder aber auch ganz neue interessante Gameplay-Elemente.

Und wenn es wirklich nur eine Person sein sollte, die SO ein Spiel programmiert, dann würde ich Abstriche in technischer Hinsicht gerne in Kauf nehmen, wenn das Spiel dafür die beschriebenen gewünschten Eigenschaften erfüllen würde.

OOP verhindert garantiert kein geniales Gameplay.

Das habe ich ja gesagt. Verhindern tut OOP es möglicherweise nicht, aber es VERLEITET meiner Meinung nach den Programmierer, "geniales Gameplay" zu umschiffen.
 
Aber du musst doch irgendeine Vorstellung davon haben, wo du sagen würdest - wow das ist aber mal genial.

Dein Mario-Beispiel kann ich mangelns Mario-Kentnissen leider nicht nachvollziehen - hast du vielleicht noch ein anderes aus der Vergangenheit?
 
Von mir aus sei genannt Zelda : Ocarina of Time. DAS war Überraschung, DAS war innovativ, DAS war unberechenbar.
Konkret denke ich da an die Stelle, wo man sich ins Schloss schleichen musste - an den Wachen vorbei. Dann betrat man den Vorhof der Prinzessin da und alles funkelte und glitzerte. :D
Vor allem aber: Diese "plötzliche" Schleicheinlage brauchte ich zuvor im ganzen Spiel nicht. Und die Kamera, die zeigte den Spieler auch mal aus einer völlig anderen Perspektive. Und so gefunkelt und "geglitzert" hat es zuvor im Spiel auch nicht - es war einfach überraschend, erfrischend.

Das wäre sicher auch mit OOP realisierbar, aber es tut nur keiner mehr, habe ich das Gefühl - umgemünzt auf heutige Spiele. Mit anderen Worten: Es fehlt auch die Liebe zum Detail, das "Kleingedruckte" und gerade das sind die Dinge, die ein Spiel, das mit Überraschungen bestückt sein sollte, ausmachen - für mich zumindest.
 
Leider immer Nintendo-Spiele. Da kenn ich mich nicht mit aus, aber ich bin ziemlich sicher das auch ein Zelda ziemlich Objektorientiert programmiert ist. Das tat man schon auf dem Amiga - ich kann mich noch genau erinnern wie man Sid Meyer ausgelacht hat, als er erzählte er habe Civilization in blankem C geschrieben weil er das objektorientierte nicht verstehen würde.
 
Es wird halt heutzutage einfach zu viel geclustert und objektorientiert gearbeitet. Möglicherweise wurde OOP tatsächlich schon "früher" bei großartigen Titeln wie Zelda eingesetzt - aber dann halt offenbar "richtig" und nicht zu sehr generalisierend.

Ein weiteres Spiel mit (meiner Ansicht nach) "genialem Gameplay" (diesmal kein Nintendo-Spiel) plus konkretem Beispiel:

GTA Vice City, als man die Villa da auf der Insel bekam. Dass hätte man einfach nicht erwartet, weil zuvor nirgends ein Icon herumschwebte mit einem Preisschild und der Aufforderung "A" zu drücken, wenn man diese Immobilie kaufen wolle.

Ein weiterer (zeitgenössischerer) Vertreter ist wohl auch Ninja Gaiden; da war einfach gesagt jede Location total unterschiedlich zu jeder anderen - bei den meisten anderen Action-Adventure-Vertretern nicht unbedingt der Fall.

Wohl beides Beispiele, bei denen OOP "richtig" eingesetzt wurde und bei denen sich die Programmierer nicht verleiten ließen, auf relativ umständliche Überraschungen zu verzichten.
 
Bin ich der Einzige der Kreativität und Struktur der Firma mal trennen würde da du dann dein Lieblingswort "Objektorientierteprogrammierung" auch endlich mal ausm Spiel lassen könntest.


Deine Beispiele bei GTA und Ninja gaiden sind schlicht Ergebnisse von kreativen Entwicklern. Welche Struktur da im Hintergrund ist, ist doch dann erstmal zweitrangig.


Eigentlich kann man deine ganze Textwulst auf einen Satz runter brechen:

"Entwickler werdet wieder kreativer"
 
Nicht die objektorientierte Programmierung ist das Problem. Das Schubladendenken im Spieldesign ist das Problem. Zwischen den beiden Aspekten sehe ich ehrlich gesagt überhaupt keinen Zusammenhang.

Edit: Objektorientiertes Spieldesign gab es im übrigen schon vor objektorientierten Programmiersprachen. Genauso wie es diverse kreative, nicht generische Spiele gibt, die in objektorientierten Sprachen geschrieben wurden.
 
Der_Geächtete schrieb:
"Entwickler werdet wieder kreativer"

Ja, stimmt. Mit dem Zusatz, dass an der Unkreativität die Objektorientierung - zumindest - mitschuld ist. Soweit meine Meinung. Weil eben Objektorientierung meiner ganz persönlichen Ansicht nach dazu verleitet, unkreativ zu sein.
 
Zurück
Oben