Einsteigerhilfe



  • Wie wäre es am Anfang mit der Library "Allergo" ?
    Kann man bestimmt auch ohne Probleme in C++ "includen" 😉

    Grüße
    agi 🙂



  • aXYZn schrieb:

    Wie wäre es am Anfang mit der Library "Allergo" ?

    Und nicht zu vergessen: Heuschnupfen++ 🤡



  • Allegro ist alt und SDL wäre eine guter Einstieg wenn man mit Carbeiten würde.
    Aber SDL kann man gut zum lenren benutzen da es ziemlich viele Tutorials gibt.
    Und SDL+OpenGL ist schon fast Unschlagbar.
    Bei C++ welchen Objektorentiet ist da gibt es noch anderes Librarys die Objectorentiert sind.
    http://www.sfml-dev.org/
    http://fantasy2c.fa.ohost.de/ (zurzeit offline da ohost eine Probleme hat)

    Hier is noch ein List mit nütlichen Librarys:
    http://gpwiki.org/index.php/Libraries



  • Wenn man C++ lernen will, bin ich der Meinung dass man ziemlich früh mit der Grafik anfangen soll. Was bringt es, wenn sich in code irgendetwas tut, ohne dass es auf der Grafikoberfläche kommt? Console behindert das Lernen mehr als dass es fördert. Berechnet man eine einfache Perspektive, wie will man das auf die Console tun?
    4-gewinnt auf Console kann man ersparen - lieber gleich was mit Grafikschnittstelle anfangen. Sind ja auch nur ein paar Initialisierungsbefehle und lernt dabei gleichzeitig was.
    Es reicht aus wenn man die Funktionen drawPoint (pixeldraw), drawLines, drawPolygons beherrschen kann. Qt käme vlt in Frage, ist aber kompliziert weil man die Bibliothek einrichten muss, Klassen erben muss usw. SDL wäre einfacher, Problem ist wiederrum, dass man dort keine GUI Elemente erstellen kann, was Input schwierig macht. Nur Tastatur und Mouseevents hat man nicht soviel Freiheit und zögert das Lernen hinaus. Es gibt GUI-Bibliotheken für SDL aber dann kann man ja gleich Qt nehmen. Wer trotzdem schafft Qt ohne wirklich viel C++ Hintergrundwissen, laufen zu bringen, der kann auf maximum C++ lernen, weil Freiheit maximum ist. Äh ich willn ich gutheissen dass Qt die beste Wahl ist aber wem wxWidgets oder MFC gefällt soll halt das nehmen. 😃



  • Nein, da kann ich überhaupt nicht zustimmen.
    Wenn man C++ lernen will und mit SDL anfängt, lernt man C mit Klassen, einfach, weil die Lib C ist.
    Qt ist auch kein wirklich gutes C++ (Stichwort moc), da schaut man sich auch nur Unfug ab.
    Auf der Konsole zu programmieren ist für den Anfang ausreichend. Da kann man sich darauf konzentrieren, die Sprache C++ zu lernen und wird nicht von komischen Umsetzungen in einer externen Library abgelenkt. Das führt meiner Meinung nach zu nix.

    Aber wenn man unbedingt diesen Weg gehen will, dann sollte man mit SFML starten. Das ist immerhin recht ordentliches C++.

    Didaktisch ist es meiner Meinung nach trotzdem Unfug. Allerdings muss das jeder selbst entscheiden...



  • Wenn man C++ lernen will, bin ich der Meinung dass man ziemlich früh mit der Grafik anfangen soll. Was bringt es, wenn sich in code irgendetwas tut, ohne dass es auf der Grafikoberfläche kommt? Console behindert das Lernen mehr als dass es fördert. Berechnet man eine einfache Perspektive, wie will man das auf die Console tun?

    Du hast das Konzept nicht verstanden. Grafikprogrammierung besteht unter Anderem aus Formeln bzw. Mathematik (z. B. Perspektivische Berechnungen) und dem eigentlichen Code.



  • xBlackKnightx schrieb:

    Was bringt es, wenn sich in code irgendetwas tut, ohne dass es auf der Grafikoberfläche kommt? Console behindert das Lernen mehr als dass es fördert

    Das kann doch nicht dein Ernst sein? Die Programmiersprache C++ lernt man nicht durch lustige Grafikausgaben. Wie soll man so wichtige Konzepte wie Zeiger, Objektorientierung, Templates erlernen? Als ob man sich als Anfänger grafische Anwendungen solcher Konzepte nur im Entferntesten vorstellen könnte...

    mad_martin hat völlig Recht. Mit Grafik zu beginnen ist mehr als leichtsinnig. Auf diese Weise fehlen einem die ganze Zeit grundlegende Sprachkenntnisse, die einen wiederum bei der Grafikprogrammierung behindern. Es gibt so viele Leute, die zwar etwas grafisch zustande bringen (teilweise sogar 3D), aber einen bedenklichen Codestil an den Tag legen und teilweise nicht einmal wissen, was die Standardbibliothek ist.

    Sowas bringt niemandem was, da lohnt sich die investierte Zeit für C++ allemal. Auch würde ich am Anfang auf keinen Fall mit einem Framework lernen. Gerade bei GUI-Frameworks ist hässliches C++ weit verbreitet. Klar muss es jeder selber wissen, aber ich rate davon stark ab.



  • Meine Idee war eher gemeint, dass man von diesem Boden aus (Grafik) dann richtig C++ lernt. Klar gibt es da Ablenkungen, aber man greift trotzdem ein gutes C++ Buch und arbeitet damit durch. Anfang sollte schon Console sein, aber sobald man mit Vererbung, Containern, new & delete, threads und multiarrays lernt, so finde ich, braucht man etwas mehr Sichtbarkeiten und Freiheiten. Mit new in Console ein Objekt erzeugen macht wenig Sinn, außer bei Datenbanken. Ich selbst habe was mit SDL angefangen und später Qt simple Programme geschrieben ohne noch C++ wirklich auszukennen. Weil ich eben von diesen Plattformen aus weiterhin auf die eigentliche C++ Sprache konzentrieren will. So beschäftige ich mich immer noch mit Containern und müsste die Zusammenhänge zwischen Zeiger und Array plus Objekte gründlich durchlernen. Eine Consolenausgabe hat man zusammen mit Grafikausgaben immer noch. Aber wenn die Ablenkung wirklich so stark sein soll, wie ihr meint, so sind die Leute doch sehr verschieden ^^

    Du hast das Konzept nicht verstanden. Grafikprogrammierung besteht unter Anderem aus Formeln bzw. Mathematik (z. B. Perspektivische Berechnungen) und dem eigentlichen Code.

    Wie will man den Schülern Pythagoras ohne Grafik erklären? Eine Logik kann man zwar immer verfolgen, aber man wird dadurch nicht richtig bewußt. Ich zeige nur eine Möglichkeit mit der Gleichzeitigkeit: Mit Formeln arbeiten und gleichzeitig in Console und Grafikausgabe ausgeben.

    Und um ein richtiges 3D RPG Spiel zu programmieren, muss er irgendwie den Weg abkürzen, denn die wenigsten können so ein Spiel noch annähernd herbeizaubern.

    Naja, jeder seinen Weg... Vlt können wir so zusammenfassen: wer richtig viel Geduld hat, fängt lange mit console an und eine Langeweile käme nicht in Frage. Wer wenig Geduld hat sollte sofort etwas herbeigezaubert sehen, sonst gibt er schnell auf.



  • xBlackKnightx schrieb:

    Naja, jeder seinen Weg... Vlt können wir so zusammenfassen: wer richtig viel Geduld hat, fängt lange mit console an und eine Langeweile käme nicht in Frage. Wer wenig Geduld hat sollte sofort etwas herbeigezaubert sehen, sonst gibt er schnell auf.

    Das würde ich so nicht Unterschreiben, entweder man hat Gedult oder man hat keine, wenn man keine hat sollte man das ganze am besten direkt lassen. Direkt auf Grafik zu gehen bringt nichts, setz dich mal mit fast 0 Kenntnissen hin und mach mal mit der WINAPI ein paar Buttons, klar du bekommst sie irgendwann dahin wo du sie hinhaben willst, aber was bringen sie dir? Da ist es doch viel einfacher zumindest die Grundlagen ind er Console zu machen und erstmal etwas herum zu Probieren, der Zusätzliche Aufwand für etwas Grafik ist ja stellenweise nicht ohne, und mit der Console kann man auch einiges Anstellen.



  • Wer wenig Geduld hat sollte sofort etwas herbeigezaubert sehen, sonst gibt er schnell auf.

    Das ist definitiv der falsche Weg. Wie ich bereits sagte, du hast das Konzept nicht verstanden.



  • Ja klar kann man mit der Console was anstellen. Als ich mit C++ angefangen habe, war mein allererstes Programm mit drawlines auf console die sich rotieren
    http://www.youtube.com/watch?v=cLZLo4RxBTk
    eben ganz ohne Bibliotheken, nur reines Cc++ und iostream.
    Warum nicht gleich Pixel zeichnen?

    Ich hatte damals sonst keine Idee was ich mit C++ anfangen soll, außer ein paar langweilige Text- und Zahlausgaben. Lernt man Referenzen und Zeiger, erkennt den Sinn nicht so richtig, lernt man weiter mit Vererbung so vergiss man das vorige wieder. Wieder wertvolle Zeit verschwendet. Was soll den das Konzept sein? Gerade in der Grafikausgabe mit Widgets, Buttons etc werden Zeiger, new, delete, Vererbung, am häufigsten eingesetzt. Da erkennt man den Sinn und bleibt im Kopf! Wissenschaftler haben herausgefunden, dass alles nicht in Sinn erkennbares schneller wieder aus dem Kopf fällt. Deswegen wissen die meisten Menschen nicht mehr was sie in der Schule zu 80% gelernt haben. Dort ist der Lernstoff eben Unfug ohne Ende.



  • Bei Grafikausgabe oder GUI-Programmierung werden aber auch Konzepte benutzt, die man erstmal verstehen muss. Ein Gameloop oder ein Eventsystem kann Anfänger schnell verwirren, weil das Programm scheinbar nicht mehr hinternander ausgeführt wird, sondern an vielen Stellen hin und her springt. Dann stellen sich Fragen, wie man denn im Eventhandler an die Daten außerhalb kommt, oder umgekehrt.

    Und nur weil man sich auf die Console beschränkt muss es nicht langweilig sein. Gerade weil RPG erwähnt wurde, wäre doch ein Text-RPG eine tolle Sache. Schreib z.B. eine Character- oder Inventarsystem. Textausgabe reicht da erstmal locker wie:

    Character: Stärke: 3, Ausdauer 5 ...
    Inventar: 3x Heiltrank, 5x Manatrank, 1x Schwert des Todes ...
    

    Das tolle dabei ist, wenn du es gut geschrieben hast, kannst du es später immer noch grafisch darstellen.



  • Ich hatte damals sonst keine Idee was ich mit C++ anfangen soll, außer ein paar langweilige Text- und Zahlausgaben.

    Damals, ok. Und wie siehts heute aus? Hast du Referenzen?

    Lernt man Referenzen und Zeiger, erkennt den Sinn nicht so richtig, lernt man weiter mit Vererbung so vergiss man das vorige wieder.

    Man lernt Code auch nicht, sondern versteht ihn und versucht ihn an passenden Stellen einzubauen.

    Was soll den das Konzept sein?

    Das (/Mein) Konzept besteht daraus, sich stufenweise vorzuarbeiten. Komplexe Zusammenhänge zu verstehen und komplexen Code effizient einzusetzen. Wenn man diese Grundkondition erfüllen kann, dürfte man bereit für die effektive Grafikprogrammierung sein. Ich habe nach diesem Schema gearbeitet und bin stolz auf meine Leistungen. Ich habe gelernt, mit Prinzipien zu arbeiten.

    Gerade in der Grafikausgabe mit Widgets, Buttons etc werden Zeiger, new, delete, Vererbung, am häufigsten eingesetzt.

    Wenn du da den WIN-API bereich ansprichst, haben Vererbungen herzlich wenig mit der Thematik zu tun.

    Da erkennt man den Sinn und bleibt im Kopf!

    Das verstehe ich nicht, was haben Zeiger, Allokierungsoperationen oder Vererbungen mit der WIN-API zu tun? (Siehe letzte Antwort)

    Wissenschaftler haben herausgefunden, dass alles nicht in Sinn erkennbares schneller wieder aus dem Kopf fällt.

    Da ist etwas wahres dran, wenigstens etwas wertvolles in deinem post. Allerdings gibt es gute Resourcen, die es einem verständlich erklären. (Ich denke da an Literatur) Btw: Hilfe zur Selbsthilfe zeugt meiner Ansicht nach von Unselbstständigkeit.

    Deswegen wissen die meisten Menschen nicht mehr was sie in der Schule zu 80% gelernt haben. Dort ist der Lernstoff eben Unfug ohne Ende.

    Ahja und woher kannst du 1+1 rechnen? Kannst du das etwa nicht? Woher kannst du lesen, schreiben?



  • xBlackKnightx schrieb:

    Lernt man Referenzen und Zeiger, erkennt den Sinn nicht so richtig, lernt man weiter mit Vererbung so vergiss man das vorige wieder. Wieder wertvolle Zeit verschwendet.

    Wieso Zeit verschwendet, ich kann auch nicht die ganze Vererbung auswendig, abe rich hab sie mal irgendwann durchgearbeitet und weiß was es alels gibt und schaue bei Bedarf rein wie es nochmal ganz genau ging, und genau darum geht es, man sollte sich wenigstens im Klaren sein was es alles gibt auch wenn man es sich nicht bis ins Detail gemerkt hat, denn wie wilst du wissen das du an Stelle X Vererbung nutzen könntest wenn du nichtmal weist das es sie gibt? Und Zeiger und Referenzen sind schlechte Beispiele, die kommen auch in einfachen Programmen öfters mal zum Einsatz, und zur Not benutzt man sie einfach absichtlich um sich einzuüben.


Anmelden zum Antworten