Frage von HATGUAZIHTGA, 113

C++ als erste Sprache?

Hallu c:

Ich möchte nach meinem Fach Abitur "Game Development" studieren.

Daher folgende Frage:

Meines Wissens nach werden in der Gaming Branche in erster Linie JavaScript und C / C++ genutzt.

C / C++ haben jedoch den wahrscheinlich nicht ganz unbegründeten Ruf, gerade für Anfänger relativ schwer und frustrierend zu sein.

Sollte man also eher mit einer Sprache wie Python beginnen und sich an C++ vor kämpfen, oder direkt mit C++ beginnen?

Danke, HATGUAZIHTGA.

Antwort
von nurlinkehaende, 70

C ist was anderes als C++.

C ist eine Art "Universal-Makroassembler" und damit entsprechend hardwarenah. Es ist eine prozedurale Sprache.

C++ baut auf C auf, die Syntax ist sehr ähnlich. C++ nutzt den prozeduralen Teil von C und bietet obendrauf die Objektorientierung (wie weit das geht soll bitte an anderer Stelle ausdiskutiert werden).

Wer erst mal nur prozedurales Programmieren gelernt hat, fällt einem der notwenige Umstieg auf objektorientiertes Programmieren sehr schwer.

Ich würde also gleich mit C++ anfangen und auch wenn das hart ist, es lohnt sich.

Antwort
von sarahj, 40

Im Gegensatz zu den meisten hier würde ich empfehlen, mit einer komfortablen und dynamischen Sprache (Ruby, Python, Scheme oder Smalltalk) anzufangen.

-> Dann braucht man sich nicht um low-level Details kümmern, die einem zunächst das Leben schwermachen, und einen davon abhalten die Grundlagen vernünftig zu erfassen. Mit C/C++ kann es leicht passieren, daß man den Wald vor lauter Bäumen nicht mehr sieht. Oder anders gesagt: weil man sich ständig mit Speicherlöchern, Indexproblemen, schlechten IDEs, usw. herumschlagen muss, bleibt man auf der Ebene einfacher Trivialprogrämmchen hängen, und kommt erst spät an die interessanten Dinge. Nur mal so als Beispiel: wie andere Fragen hier im Forum zeigen macht allein schon das Einlesen von Zahlenreihen in C/C++ Probleme. Glaubt einer ernsthaft, dann wird es leichter, Strategiealgorithmen oder komplexe Zusammenhänge zu programmieren?

Außerdem sind sie statisch kompiliert, mit einem langen turn-around
cycle. Man muß das Programm jedesmal beenden neu übersetzen und neu
starten, wenn man einen kleinen Fehler beheben will. Das macht die
Arbeit zäh.

-> Es ist falsch, anzunehmen, in der Gambranche würde alles mit C/C++ gemacht. Typischerweise trifft das für die Engines zu, die sich um Graphic, SOund etc. kümmern. Sicher wird man im Studium viel über 3D lernen (haupts. Mathe!), sich mit GPUs beschäftigen usw. Und es gibt auch ein paar Gamingentwickler, die ihre Engine noch selbst machen (aber wie groß ist die Wahrscheinlichkeit, da hin zu kommen - die nehmen auch nur die Besten der Besten). Das eigentliche Spiel wird aber sehr oft gar nicht in C/C++ entwickelt, sondern in einer Scriptsprache die im System eingebettet ist. Lua z.B. ist durchaus weit verbreitet, um die KI in Strategiespielen zu implementieren.

-> C/C++ sind - gelinde ausgedrückt - sehr "dumme" Sprachen. Alles muß man selbst machen. Einige Konzepte moderner Sprachen sind nicht oder nur rudimentär vorhanden (Continuationes, Closures, Reflection, Dynamic Typing, usw.).

Ganz ehrlich: möglicherweise ist es sogar schädlich, mit C/C++ anzufangen. Man gewöhnt sich u.U. schlechte Eigenschaften, und einen schlechten Programmierstil an, den man später schwer wieder los wird. Man gewöhnt sich gerne an, sich im Detail zu verzetteln, und dabei eine vernünftige Architektur zu übersehen. 

Aus eigener Erfahrung: die meisten (reinen) C Programmierer sind schlechter als ihre Selbsteinschätzung, und haben den Tellerrand oft sehr nahe...

Im übrigen: gerade als Anfänger ist man in C/C++ gerne frustriert, weil man nur langsam Fortschritte macht. Bis man in C ein Fenster auf den Schirm kriegt, und das Programm auf Eingaben reagiert braucht man in C/C++ vielleicht 100 Zeilen fehleranfälligen Code - in obigen Scriptsprachen sind das 3 Zeiler...

Kommentar von wyoxx ,

Kommt drauf an was für ein Fenster. Wenn man Eingaben im Terminal braucht reichen auch 40 Zeilen Code. Das ist auch garnicht so viel Text wenn man ordentlich strukturiert.

Antwort
von geri3d, 35

Neben der Fähigkeiten als Programmierer ist auch SQL oft gefragt im Backend Bereich. Das braucht man für Datenbanken die auch in Spielen grosse Anwendung finden. Egal welche Programmiersprache, man muss ein gewisses handling für den Code entwickeln. Arrays, Rekursieve Funktionen und Klassenstruktur also OOP sollten einem geläufig sein. Diese Dinge lernt man im Studium zuhause an eigenen Projekten. Grundlagen erfährt man am besten aus Büchern.

Antwort
von J0T4T4, 52

Generell schadet es nicht, mehrere Sprachen zu kennen. Daher würde ich tatsächlich empfehlen, falls Du noch keine andere Sprache kennst, erstmal mit Python oder so anzufangen.

Weiterhin könntest Du auch mit Scratch was machen, da Du dort ohne ohne Vorkenntnisse viel über das Programmieren an sich (Kontrollstrukturen, Variablen), als auch über das Entwickeln von Spielen lernen kannst.

Mein empfohlener Weg:

Scratch -> Python -> C++

Es stimmt zwar, dass es auch Vorteile hat, mit C++ anzufangen, die unter anderem darin bestehen, dass man dann fast jede andere Sprache leichter lernen kann. C++ ist jedoch ein harter Brocken, und nur mit sehr sehr viel Motivation und Ehrgeiz aus dem Stand erfolgreich zu erlernen.

Ob Du das hast, musst Du selbst entscheiden.

Kommentar von mrhashpipeotto ,

wer kein ehrgeiz, disziplin, tägliche lernbereitschaft mitbringt der taug als programmierer eh nix und solls besser gleich sein lassen :D

Antwort
von Fitje, 16

Zuerst mit c und dann mit c++ denk ich. Die Gefahr besteht allerdings das man nicht gleich objektorientiert denkt. C ist für den Anfang einfacher. Dann später mit c++ weitermachen. Seltsam ist aber, das früher, als noch mit Pascal programmiert wurde, einige Sachen in der Literatur bessert erklärt wurden als in allen anderen Büchern für c und c++. Beispielsweise die Flieskomma-Datentypen.

Aber sarahj hat Recht. Für Anfänger ist c++ viel zu happig. Da ist c weniger abstrakt. Hat man die ersten Schritte in c gemacht, kann man ja zu c++ umsteigen. Spätestens dann, wenn man bei den Strukturvariablen angelangt ist.

Antwort
von HellasPlanitia, 53

Ich habe auch mit C++ angefangen und empfand das als nicht übermässig schwer oder frustrierend. Ich denke, das ist bei jedem etwas anders. Probier es einfach aus, du kannst immer noch auf eine andere Sprache ausweichen, wenn du merkst, dass du den Einstieg in C/C++ nicht so recht findest.

Antwort
von Sawascwoolf, 54

Hallo,

stecke dir immer kleine Ziele und überlege dir ein paar Testprogramme die du erstellen willst. Durch die Erfolgserlebnisse kannst du auch C++ lernen.

Im übrigen ist es nicht Javascript was in der Spieleentwicklung eingesetzt wird ;)

Kommentar von HATGUAZIHTGA ,

Mh?

Wenn man den Typen vom CGL glauben schenkt, was man glaub' ich tun kann.

Dann doch D:

Kommentar von Sawascwoolf ,

JavaScript != Java

Kommentar von J0T4T4 ,

Natürlich ist JavaScript nicht gleich Java. Deshalb wird es ja auch verstärkt zur Spieleentwicklung verwendet.

Antwort
von David3103, 35

Es ist völlig egal mit welcher Sprache du anfängst. Du wirst bei jeder Sprache die gleichen Grundlagen lernen müssen.

Ich habe selbst auch mit C++ angefangen. Das lernen der Sprache an sich habe ich nicht als schwer empfunden, allerdings fand ich UI Entwicklung sehr frustrierend.

Von Microsoft gibt es Visual C++, da hast du den von VB und C# bekannten Designer, mit dem Hardware basierten Code aus C++. Ich würde dir empfehlen, dir das erstmal an zu schauen.

Antwort
von ZweiGegengifts, 28

Keine passende Antwort gefunden?

Fragen Sie die Community