![]() |
Re: Sprache für Spiele?
[ot]
Zitat:
[/ot] Zitat:
Flare |
Re: Sprache für Spiele?
Zitat:
Außerdem solltest du Ausrufe wie "OMG" in Zukunft unterlassen, es sei denn du möchtest überheblich wirken. :) Edit: "geleert" :o |
Re: Sprache für Spiele?
Es ist einfach völlig egal, welche Sprache man nimmt. Performance Unterschiede die Sprachbedingt sind, die möchte ich gerne sehen.
Sagen wir mal du nimmst C++, gut, was genau sagt das über die Perfomance aus? Also mir wäre es neu, wenn der Code aus C++ direkt lauffähig wäre. Ich muss da immer einen Compiler und Linker bemühen und da habe ich bei C++ eine ganze Menge zur Auswahl (auch bei anderen Sprachen). Hinzu kommt, dass die auch noch ein paar Schalter haben, die gewisse Optimierungen an- bzw. abschalten. Wenn hier also über die Perfomance einer Sprache gesprochen wird, nun ja, es hat einfach mal keine Aussage. Natürlich haftet Java immer der Ruf an, nicht so richtig perfomant zu sein. Lustigerweise denkt das keiner von C# oder Delphi.Net, warum eigentlich? Die ganze .net Dinger laufen genau wie Java auf einer VM ab. Genau darin liegt die Idee dieser plattformunabhängigen Sprachen. Man übersetzt sie nur in einen Zwischencode, der auf einer VM läuft. Dank einer Menge Entwicklung, sowohl bei den heutigen Rechnern, aber vorallem auch bei den JITs ist auch hier der Perfomanceunterschied zu vernachlässigen. Die komplette 2D/3D arbeit übernehmen in modernen Spielen die darauf hochspezialisierten Grafikkarten (warum liest man wohl immer häufiger dass man mind. eine DirectX ... Karte mit xxx MByte Ram braucht?). Diese werden zudem über Schnittstellen angesprochen, einfach um von der konkreten HW so gut wie möglich abstrahieren zu können. Die HW kümmert sich schon um die ihr best mögliche Umsetzung von Aufrufen dieser Schnittstellen. Hier geht also auch keine Perfomance durch die Sprache die verwendet wird verloren. Was bleibt sind zwei Sachen, der ganze Rest des Spiels (es muss ja auch eine Logik geben, nicht nur Grafik) und natürlich der Teil, was man an Grafiken darstellen möchte. Für beide Fälle gilt, dass der Einfluss der Sprache auf die Perfomance irgendwo ganz weit unten liegt. Viel wichtiger (und hier sind dann wirklich die Unterschiede) ist das, was der Programmierer schreibt. Ist der Code einfach mal schlecht, wird keine Sprache die Perfomance retten können. Man sollte schon etwas verständnis für ein paar Routinen und Datenstrukturen haben, sonst klappt dass mit dem schnellen und flüssigem Spiel nicht. Hier kommt es dann auf Verständnis des Rechners und natürlich auch der Grafikkarte (im allgemeinen) an. Wer mit Vektorrechnung oder noch allgemeiner Mathematik nichts anfangen kann, der wird kaum ein großer Spieleprogrammierer (ohne geht hier einfach nichts). |
Re: Sprache für Spiele?
Zitat:
|
Re: Sprache für Spiele?
Ganz egal ist die Wahl der Sparche nicht.
Zb. könntest du dir vorstellen das dein Online Kartenspiel später mal auf Handys laufen sollte ? Dann wäre JAVA mein Favorit und Delphi die schlechtste Wahl und C ginge eventuell auch noch. Oder die Frage welche Sprache kannst du ? und wie gut kanst du sie ? mit welcher hast du die letzten 10 deiner Spiele programmiert ? Auf normalen Windows Rechnern ist delphi genauso performant wie C oder jede andere Sprache, denn egal was du benutzt du wirst immer auf fertige Blibliotheken zurückgreifen, einfach um Streß mit der unterschiedlichen Hardware zu sparen. Du wirst dich also eher fragen müssen welche Grafik Bibliothek benutzte ich, DirectX oder OpenGL. Wie mache ich den Sound ? DirectX oder native API oder was anderes ? All diese Schnittstellen kannst du in Delphi oder C benutzen und deren Performance wird sich nicht unterscheiden. Ergo: in diesem Szenario wäre es wichtiger mit der Sprache zu arbeiten die man am besten beherrscht. Gruß Hagen |
Re: Sprache für Spiele?
Es ist wirklich vollkommen egal, es ist im Notfall auch möglich sich einen Wrapper von einer Engine zu schreiben und mit dem Wrapper ein Spiel zu programmieren.
|
Re: Sprache für Spiele?
Das liegt daran dass .NET Code nicht in einer virtuellen Maschine läuft.
Bei Java läuft das ganze tatsächlich Just in Time - wenn eine Funktion aufgerufen wird wird erstmal geguckt ob sie schon übersetzt wurde und wenn nein -> Ab durch den Compiler und ausführen. Und das interessanterweise bei jeder neuen Ausführung des Programmes erneut. Deswegen ist Java auch so langsam. Bei .NET wird der IL-Code vor der ersten Ausführung vom 'JIT' direkt in für die jeweilige Plattform optimierten, nativen ASM-Code übersetzt und direkt gegen das .NET Framework (inkl. Garbagecollection etc.) gelinkt und dann ausgeführt. Das bedeutet hier läuft keine VM drumherum die auch noch bei jedem Call erst irgendwo nachgucken muss ob was übersetzt werden muss, sondern das ganze Management ist direkt in der nativen Anwendung integriert. Die Java-Nachteile fallen hier weg, deswegen ist .NET auch entsprechend performant. |
Re: Sprache für Spiele?
Zitat:
|
Re: Sprache für Spiele?
Ich hab mal eine 1:1 umsetzung vom C64 Spiel Frantic Freddie geschrieben.
Dabei hatte ich eine Soundausgabe, eigene 2D Engine und auf meinem Rechner (Laptop Centrino 1800) ca. 400 FPS. Das ganze klappte ganz gut quasi über Canvas und BitBlt Oliver |
Re: Sprache für Spiele?
Zitat:
Zitat:
Ich hab grad nochmal nachgeschaut, von 'the middleware company' gab es mal einen unabhängigen Performancevergleich von J2EE gegen .NET - und da hat - obwohl die J2EE - Anwendnung extra für diesen Test noch optimiert wurde - .NET haushoch gewonnen. Such mal nach ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz