Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sprache für Spiele? (https://www.delphipraxis.net/72341-sprache-fuer-spiele.html)

Flare 29. Jun 2006 20:24

Re: Sprache für Spiele?
 
[ot]
Zitat:

Zitat von Phoenix
Hier mal ein kleiner Auszug: Counterstrike (auch CS:S), Quake (alle Teile), X (alle Teile), Airline Tycoon, Desperados 1+2, World of Warcraft, Guildwars, MS Flight Simulator, GTA.... und ich könnte hier noch viele auflisten.

Und meinen Favoriten lässt du weg! Alle Teile von Unreal Tournament sind zu großen Teil OpenSource. (Also alles außer die Exe und die DLLs) Ich finde das sehr gut.
[/ot]
Zitat:

Zitat von Der_Unwissende
das Delphi eher Objekt Orientiert ist, aber egal. Was ist C++ gleich?

Und am Beispiel von UT kann man auch sehen, dass C++ genau so objektorientiert ist.


Flare

TheAn00bis 29. Jun 2006 20:25

Re: Sprache für Spiele?
 
Zitat:

Zitat von Phoenix
OMG...

Also Java kannst Du aus performancegründen in die Tonne kicken. Ich meine, das ganze Zeug von muss von einer Virtual Mashine interpretiert werden jedesmal. Das ist nix für Spiele.

Das ist falsch, uns wurde hier gelehrt über HotSpot sei die Ausführung genauso schnell wie kompilierte ASM Programme.
Außerdem solltest du Ausrufe wie "OMG" in Zukunft unterlassen, es sei denn du möchtest überheblich wirken. :)

Edit: "geleert" :o

Der_Unwissende 29. Jun 2006 20:48

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).

mkinzler 29. Jun 2006 20:52

Re: Sprache für Spiele?
 
Zitat:

aber vorallem auch bei den JITs ist auch hier der Perfomanceunterschied zu vernachlässigen.
Interessanterweise laüfen manche Demoanwendungen auf Axiom (c#-Konversion von OGRE) schneller als auf OGRE.

negaH 29. Jun 2006 20:59

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

Nils_13 29. Jun 2006 21:03

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.

Phoenix 29. Jun 2006 21:05

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.

TheAn00bis 29. Jun 2006 21:07

Re: Sprache für Spiele?
 
Zitat:

Zitat von Phoenix
Deswegen ist Java auch so langsam.

Hier wurde bereits mehrfach geschrieben, dass dem nicht so ist. Kannst du deine Aussage denn belegen? Zahlen würden mich interessieren.

backdraft 29. Jun 2006 21:12

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

Phoenix 29. Jun 2006 21:33

Re: Sprache für Spiele?
 
Zitat:

Zitat von TheAn00bis
Hier wurde bereits mehrfach geschrieben, dass dem nicht so ist. Kannst du deine Aussage denn belegen? Zahlen würden mich interessieren.

Ich habe es nachgemessen - und das musst Du wohl leider auch selber tun wenn es Dich interessiert:

Zitat:

Zitat von Lizenz zum .NET-Framework SDK
"4.8 Vergleichstests. Sie sind nicht berechtigt, ohne vorherige schriftliche Zustimmung von Microsoft die Ergebnisse von Vergleichstests mit der Server- oder Clientsoftware gegenüber Dritten offenzulegen."

Edit Nachtrag:
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 Bei Google suchenJ2EEdotnetbench.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.
Seite 4 von 5   « Erste     234 5      

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