C++11 Primer geeignet für Spielprogrammierung?


  • Mod

    volkard schrieb:

    Tu Dir einen Gefallen und lerne zuerst recht gut programmieren. Danach fällt die Spieleprogrammierung recht leicht und alles wird gut.

    naja, nur weil jemand schneiden lernt wird er nicht ganz 'leicht' ein koch. gibt leider auch zuviele die glauben ihr allumfassendes c++ wissen wuerde sie zum spieleprogrammieren befaehigen wuerde. Man sollte zwar grundlagen kennen, aber danach kommt erst der grosse batzen den man lernen muss um spiele zu machen.

    ich wuerde vorschlagen c++ und spieleprogrammierung parallel zu machen, nicht so sehr ambitioniert ein spiel zu erstellen, sondern das gerade gelernte c++ wissen in ein spiel umzuformen.
    -ein wuerfel
    -lottozahlen generator
    -guess the number
    -tetris
    -pac man
    -text adventure
    -...

    wir geben hier auch gerne tips und ideen im forum 🙂



  • rapso schrieb:

    naja, nur weil jemand schneiden lernt wird er nicht ganz 'leicht' ein koch.

    Wer nicht gut schneiden lernt, wird ganz sicher kein guter Koch. 🤡


  • Mod

    volkard schrieb:

    rapso schrieb:

    naja, nur weil jemand schneiden lernt wird er nicht ganz 'leicht' ein koch.

    Wer nicht gut schneiden lernt, wird ganz sicher kein guter Koch. 🤡

    wer andere schneidet, der schneidet nicht sich selbst 🤡



  • Ich empfehle in diesen Situationen immer, dir das Spiel nicht ausreden zu lassen. Aber überschätz dich bloß nicht. Es wird beim ersten Mal nichts, beim zweiten und dritten auch nichts. Ich habe für C++ nach den ersten Tutorials alles auf diese Weise gelernt. Ich habe geschätzt alles an Fehlern gemacht, aber dadurch dass ich ein Ziel hatte, habe ich intensiv daran gesessen und immer wieder mit anderen Methoden angefangen.



  • Schwieriges Thema.
    Einerseits sind die Grundlagen wichtig.
    Andrerseits sind auch die domänenspezifischen Dinge wichtig. Und man verliert schnell das Interesse wenn man nur Grundlagen lernt.

    Ich glaube eine gute Möglichkeit die Sache anzupacken ist dass man erstmal die grundlegendsten Grundlagen lernt, und dann anfängt kleine Projekte umzusetzen. Und mit klein meine ich *wirklich* klein. Siehe http://tinodidriksen.com/2003/05/06/but-can-you-make-pong/

    Und dann das nächste kleine Projekt, und das nächste. Und dabei der Versuchung widerstehen Dinge wiederverwenden zu wollen. Wiederverwenden kann man wenn man mal ein paar Jahre programmiert hat. Und auch dann nicht vom ersten Projekt in einer neuen Domäne. Denn so gut man auch programmieren kann, die Abstraktionen die man beim ersten Projekt in einer neuen Domäne wählt werden kaum gut sein.

    In der Arbeitswelt haben viele von uns nicht die Möglichkeit ein Projekt zwei oder dreimal zu entwickeln, und müssen daher mit Code "produktiv gehen" den sie so kein zweites mal schreiben würden. Oder noch schlimmer: vermurksten Code aus dem ersten Projekt in einer Domäne in weiteren Projekten wiederverwenden. "Das haben wir ja schon, das verwenden wir einfach wieder" sagt der Chef.
    Als Hobbyist kann man sich den Luxus Dinge die man beim ersten mal verbockt hat beim zweiten mal ordentlich zu machen aber gönnen. Und sollte man mMn. auch.

    Und nebenbei natürlich immer ein bisschen Grundlagen auffrischen/dazulernen. Bloss nicht glauben man kann oder weiss jetzt alles was es zum Thema C++/Software-Design/... zu wissen gibt, und aufhören über neue Dinge zu lesen bzw. diese zu probieren.



  • ++ an hustbaer.
    Eines möchte ich noch anmerken: Wenn die Projekte dann größer und modularer werden, sollte man sich auch nicht unbedingt daran aufhängen, an das "Sauberer Code"-Mantra dieses Forums zu denken. C++ lässt einen am an langen Arm verhungern, sobald man vernünftiges RTTI, Serialisierung und solchen Kram benötigt, was Bibliotheks- und Verarbeitungsprogramm-Entwickler mit Entwicklungen in einer "statischen" Domäne oftmals übersehen, und dann trotzdem ihre Meinung dazu abgeben. Natürlich sollte alles modular sein, übersichtlich, schöne Schnittstellen usw., aber manchmal muss man sich dann eben auch die Hände schmutzig machen. Da ist es echt kontraproduktiv, wenn man sich ständig unter Druck setzen lässt, dass dies und jenes "nicht sauber" ist. Die Welt ist eben kein Zuckerschlecken 😉

    Nicht dass das im Moment für den OT wichtig wäre, wenn er sich erstmal in die Materie einarbeiten muss...



  • Ich spreche mal aus meiner eigenen Erfahrung:

    Meine primäre Intention war es am Anfang meiner Programmierung mit C++ Grafiken zu sehen und ein Spiel zu entwickeln. Dies jedoch, ohne die Grundlagen von C++ verinnerlicht zu haben.
    Dies hat dazu geführt, dass ich unnötig ein halbes bis ein Jahr damit verschleudert habe, weil ich noch nicht in der Lage war, in C++ "zu denken".

    Ohne die Sprache wirklich zu kennen, würde man sicherlich nicht so schnell auf Dinge wie z.B. Pointer kommen, was jedoch zu erheblichen Einschränkungen führen kann.
    Ich ging ohne ernstzunehmende Programmierkentnisse die Probleme in Spielen einfach viel zu beschränkt an, da ich zum Einen mehr Freude an einer Grafik auf dem Bildschirm hatte und zum Anderen die faktische (Befehle), als auch gedankliche, logische Basis der Programmiersprache C++ (ließe sich sicherlich auf diverse Sprachen übertragen) fehlte.

    Allerdings kann ich auch nicht empfehlen, sich durch Projekte in Büchern (ist der Primer immer noch mit der Buchverwaltung mit ISBN und Co?) zu quälen, ohne an ihnen interessiert zu sein.
    Ich nutzte auch den Primer und konnte mich erst nur bis Seite 250 "quälen", weil mich das Beispielprojekt doch herzlich wenig interessierte.

    Es ist aber sicherlich ratsam, die ersten 100 oder 200 Seiten erstmal einfach nur zu lesen, um sich einen Überblick über die Sprache zu verschaffen (Systematik allg., Variablen, Funktionen, Klassen, usw.).
    Immer mal wieder darüber nachdenken, wie man bestimmte Probleme mit C++ lösen könnte (Taschenrechner z.B.), und die Projekte, an deren Lösung man interessiert ist, WIRKLICH realisieren.

    Nur so ist es meinem Erachten nach möglich, eine Programmiersprache wie C++ ordentlich zu erlernen, ohne -wie ich- einen Teil seiner Lebenszeit zu verschwenden.

    Wenn du dann die Grundlagen erlernt hast und größere Projekte planst (umfangreicher Taschenrechner, Spieldatenbank, Mini-TextRPG mit mehreren Klassen), bist du dann gut für die nächsten Seiten des Buches gewappnet, weil du neu erlernte Inhalte zur Erweiterung deiner vorherigen Projekte nutzen kannst und wieder motiviert sein wirst, neue Mittel von C++ zu erlernen.

    Dann wirst du z.B. sehen, dass du deinen Taschenrechner um eine Funktion zur Errechnung von Flächen erweitern kannst und wirst im Hinblick auf die zuvor gelesenen weiteren Buchseiten merken, dass eine Form bzw. ein geometrisches Objekt als abstrakte Klasse gelten kann und diese Implementierung doppelten Code vermeidet.

    Und wenn man dennoch ein wenig "Grafik" haben möchte, nutzt man Schriftzeichen in der Konsole.

    ... So viel zu meinen Tipps und Erfahrungen 😉



  • Benutzt einfach Unity3D wenn ihr Spiele machen wollt. Damit lassen sich auch 2D Spiele machen. Programmiert wie in C#. Make Games, Not Engines ist die Devise. Ein Spiel als In die Dev mit C++ hochzuziehen ist einfach nur Sinnfrei.



  • jejeme schrieb:

    Benutzt einfach Unity3D wenn ihr Spiele machen wollt. Damit lassen sich auch 2D Spiele machen. Programmiert wie in C#. Make Games, Not Engines ist die Devise. Ein Spiel als In die Dev mit C++ hochzuziehen ist einfach nur Sinnfrei.

    lol


  • Mod

    wer urban runner 13 in 2 monaten ueber die buehne bringen muss, der folgt dieser anweisung vermutlich, da macht es keinen sinn nachzudenken oder jegliche ambitionen zu zeigen. fertig schreiben, bugs fixen, raus in die free to play welt. und wenn man damit zufrieden ist und das noch 40jahren machen moechte ➡ do it.


Anmelden zum Antworten