C vs C++ vs Rust vs Zig?

5 Antworten

Du könntest auch eine Kombination daraus nutzen.

Bestehende Game Engines werden wahrscheinlich ein C++ oder auch C Interface anbieten. In den meisten Fällen wird man dieses Interface mit C++ Code benutzen.

Rust und C++ können sich gegenseitig aufrufen. So könntest du deine Code in Rust schreiben und die Game Engine mit C++ Interface benutzen.

Laut dieser Webseite soll das gegenseitige Aufrufen auch keine/kaum Performance Verluste mit sich bringen.

Wenn du Rust benutzt, hättest du z.B. das sicherere Speichermanagement oder die anderen Vorteile von Rust. Bei Daten, die zwischen Rust und C++ ausgetauscht werden, wirst trotzdem noch aufpassen müssen.

So könntest du beispielsweise Unreal Engine mit C++ Interface über Rust benutzen.

Es ist jetzt nicht eine Empfehlung es so umzusetzen, aber es wäre eine Möglichkeit.


Pixie633 
Beitragsersteller
 01.09.2023, 21:26

Okay danke aber das ist mir zu kompliziert :)

Danke trotzdem!!!

Sprachen an sich sind nicht schnell oder langsam. Alle genannten Sprachen können direkt auf die Zielhardware AOT-kompiliert werden und kommen ohne ein großes Laufzeitsystem aus, was der Performance für solche Anwendungen meistens förderlich ist.

Man sucht sich für so einen Zweck sinnvollerweise eine Sprache, die in der Spieleentwicklung bereits etabliert ist, weil es dafür entsprechende Bibliotheken/Engines und Dokumentation gibt.

Von den genannten ist das am ehesten C++.

Rust ist ein (moderat wachsendes) Nischenprodukt und in der Spieleentwicklung kaum etabliert. Zig fällt sowieso unter experimentell und ist eine winzige Nische. Natürlich kann man auch mit nacktem C arbeiten, aber für große Projekte ist C++ doch um einiges bequemer und üblicher.


Pixie633 
Beitragsersteller
 01.09.2023, 19:17

Ich habe nämlich schon ne Menge C++ gelernt und bin jetzt skeptisch ob das eine gute Idee war, weil es irgendwie von allen Seiten heißt Rust würde C und C++ ersetzen.

jo135  01.09.2023, 19:22
@Pixie633

Wenn das stimmen sollte (und das ist keineswegs klar!): Es gibt eine gewaltige Menge an bestehendem Code in C und C++. Der wird nicht über Nacht ersetzt - das beste Beispiel ist der Firefox-Browser, der sozusagen das Pionierprojekt für Rust ist.

Es wird also maximal zu einer langsamen, gletscherartigen Verschiebung über die nächsten Jahrzehnte kommen. Rust ist keine Sprache, die sehr leicht zu lernen ist, und bringt auch nicht irgendwelche grandiosen unmittelbaren Produktivitätsvorteile. Die Verbesserungen sind (zu C++) eher inkrementell.

BorisG2011  01.09.2023, 19:22
@Pixie633

C ist die Implementierungssprache vieler Betriebssysteme und C++ ist die Implementierungssprache vieler GUI-Frameworks. Diese Tatsache gibt beiden Sprachen eine Bestands- und Verwendungsgarantie für sehr lange Zeit.

Hallo! Die Wahl der Programmiersprache hängt von verschiedenen Faktoren ab, nicht nur von der Performance. Aber wenn es rein um Geschwindigkeit geht:

- **C**: Sehr schnell, aber du musst viele Dinge manuell handhaben (Speicherverwaltung etc.).

- **C++**: Ebenfalls schnell und bietet mehr Features wie Klassen und Templates. Häufig in der Spieleentwicklung genutzt.

- **Rust**: Fast so schnell wie C und C++, aber mit besserer Speichersicherheit. Noch nicht so weit verbreitet in der Spieleentwicklung.

- **Zig**: Relativ neu und zielt darauf ab, C-ähnliche Performance mit moderneren Features zu bieten. Noch weniger verbreitet als Rust.

Für Spieleentwicklung ist C++ meistens die beste Wahl, da es eine gute Mischung aus Performance und Features bietet.

Woher ich das weiß:eigene Erfahrung

Zig kenne ich jetzt nicht, aber C, C++ und Rust werden sich da nicht wesentlich unterscheiden.

Ich würde C++ empfehlen - das dürfte der Industriestandard (nicht nur) für Spieleentwicklung sein, mit entsprechend breiten Unterstützung hinsichtlich Frameworks und Community.

C ist zu unsicher - zu leicht schleichen sich schwer auffindbare Fehler ein. C ist imo nur für Embedded Entwicklung interessant (Hardwarenähe).

Rust ist deutlich sicherer als C oder auch C++, aber vermutlich ist die Unterstützung im Bereich Spieleentwicklung nur rudimentär.


Pixie633 
Beitragsersteller
 01.09.2023, 19:15

Iwie höre ich von allen Seiten Rust würde C++ ersetzen. Ist das also Quatsch?

VanLorry  01.09.2023, 19:18
@Pixie633

Nein, Rust hat vermutlich durchaus das Zeug dazu. Aber Rust ist 8 Jahre alt, C++ fast 40. Das Ökosystem für Rust und die Entwicklerbasis/Community ist halt (noch) nicht so weit.

Frag das nochmal in 10 Jahren, und vielleicht wird meine Antwort dann anders ausfallen. :)

Pixie633 
Beitragsersteller
 01.09.2023, 21:25
@VanLorry

Und selbst wenn kann ich ja dann mein Projekt in Rust programmieren so in 5 Jahren wenn ich es bis dahin noch nicht gelöscht habe ;)

C++ ist z.Z. noch die gängige P.Sprache für Spiele... denke aber C# wird sie ablösen.

Performance... tja...

Wenn ich 10 Schleifen brauche um 10 Sprites auf dem Bildschirm zu animieren, es aber auch mit einer Schleife gehen würde... ist es fast egal... welche Sprache du benutzt... Es ist einfach nur Scheisse programmiert.

Performance ist so vielschichtig und PCs werden so schnell... das die Sprache eher sekundärer Natur ist. Auf einem Windows PC z.B. läuft zusätzlich noch ein unheimlich hungriges Betriebssystem im Hintergrund, das zieht schon so viel Performance. Das selbe Programm würde aber auf ner PlayStation viel besser "rennen".