Wieso werden heutzutage keine Spiele mehr mit C programmiert?

... komplette Frage anzeigen

4 Antworten

Welche Vorteile hast du denn durch C, bzw. was hält dich davon ab, eine modernere Programmiersprache zu lernen? Wenn du dir mal als Beispielaufgabe nimmst, dass du einen String mit beliebiger Länge an den Kommas in ein Array von Strings zerlegen willst, dann ist das in vielen Programmiersprachen ein Einzeiler. Irgendwas wie

var stringArray = myString.split(",");

In C (wenn man es richtig macht. Speicher anlegen, prüfen ob der Speicher gültig ist, String teilen, Speicher wieder freigeben - also so, dass valgrind mit dem Code auch glücklich ist) muss man viel mehr schreiben. Dadurch, dass man viel mehr schreiben muss, hat man weniger Zeit, um sich auf das wichtige beim Programmieren - Algorithmen und Datenstrukturen zu konzentrieren. Was durch fehlende Abstrahierungen wie OOP auch nochmal in C erschwert wird. Deswegen tut sich heute keiner mehr C an - einfach, weil man damit langsamer zum Ziel kommt.

Antwort bewerten Vielen Dank für Deine Bewertung

Die anderen haben  ja schon eine Menge  Gründe aufgeführt warum C  nur noch  für sehr Maschinennahe Projekte  verwendet wird.
Der wichtigste  Grund dürfte sein,  das C nicht Objektorientiert ist.
Bei der Komplexität  von  modernen Anwendungen und  besonders Spielen  wäre  eine prozedurale Sprache wie  pures C der  Supergau.

Ich  möchte  hier auch  nicht weiter Ausführen  warum  OOP vieles einfacher  macht. Dazu  gibt es  reichlich  Stoff  im Netz und Google ist dein Freund.

Antwort bewerten Vielen Dank für Deine Bewertung

C ist eine eher hardware-orientierte Programmiersprache, soviel ich weiß und wird z.B. im Innenleben von Autos, Waschmaschinen, Mixern oder was weiß ich eingesetzt. Wenn du schon einmal C programmiert hättest, dann wüsstest du, wie speicherbezogen das ist; du kannst wirklich direkt auf den Speicher zugreifen und ihn nach deinen Vorlieben manipulieren, was für gerätebezogene Programme praktisch ist.

Wenn du richtige Software entwickeln willst (Computerspiele fallen auch darunter) dann bietet es sich einfach viel mehr an, Programmiersprachen zu benutzen, die den Umgang mit dem Speicher selber verwalten, sodass du relativ wenig vom Innenleben mitbekommst und dich möglichst auf das konzentrieren kannst, worauf du willst, und zwar auf dein Programm, deine Software! Wenn du ein Computerspiel programmieren willst, dann willst du dir eigentlich nicht wirklich Gedanken darüber machen, wie genau du jetzt Daten im Speicher ablegst, oder sonst was, du willst einfach nur ein "funktionales" Programm schreiben. (Also nicht funktional im Sinne von Gegenstück zu objektorientiert, du weißt schon, was ich meine)

PS:     Ich bin erst im zweiten Semester des Studiums und kann gerade mal so die Grundlagen, also wenn ich was falsches gesagt habe, bitte zerlegt mich nicht ;_;

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ceevee
19.06.2017, 21:34

du willst einfach nur ein "funktionales" Programm schreiben.

Du willst sicherlich eher ein funktionierendes Programm schreiben. ;) Bzw. ein prozedurales, funktionierendes Programm. Und den Ausdruck "richtige Software" würde ich eher durch "Anwendersoftware" ersetzen.

Mehr hab ich an deinem Beitrag eigentlich nicht zu meckern, ansonsten ist alles richtig.

1
Kommentar von timlg07
20.06.2017, 22:31

Wusste gar nicht dass Mixer mit C programmiert sind und dass man dafür Speicherverwaltung braucht  ;D

0

C++ ist nicht weniger effektiv als C, aber man kann effektiver in C++ als in C programmieren. Einige Spiele für Unix werden noch in C geschrieben, da darin C Programmers Teil nehmen, und sie schrieben auch Spiele für ihr Betriebssystem.


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von StrangeMale
21.06.2017, 17:29

Krass, hätte echt keiner gedacht

0

Was möchtest Du wissen?