Spiele mit C++ & DirectX programmieren.. wie fange ich an?



  • @!

    wer das nicht erkennt hat sich wohl nie darüber gedanken gemacht, was er beim programmieren eigentlich macht, und vorallem keine gedanken darüber, wie er das, was er beim programmieren erreichen möchte am einfachsten erreichen kann. ich sage nur: man kann sich die hose auch mit der beißzange anziegen 🙂



  • @meian

    dein problem mit den dlls kenne ich nicht. bei mir funktioniert das ohne probleme. einmal angeklickt sind sie immer aktiv. allerdings frage ich mich wieso ihr 28 dll's benutzt. entweder ihr seid supergurus oder ihr habt da einfach schwachsinn programmiert, und jede zeile eures programms in eine extra dll gepackt 🙂

    was die geschwindigkeit angeht:

    man sollte natürlich geübt sein im umgang mit vb. wenn man nicht weis wo was ist oder wie was geht, dann braucht man für alles länger. aber das ist überall so, in jedem bereich des lebens, und nicht nur beim programmieren!

    ich bin kein fan von vb, deshalb möchte ich nicht weite speziell auf vb eingehen. ich wollte nur sagen, das c++ nicht so gut ist, wie viele denken und das man den komfort, den man z.b. in vb hat, durchaus auch in c++ haben könnte, wenn man nur wollte, und das ohne programmausführungsgeschwindigkeitsverlust.

    ich bin bei der planung einer solchen programmiersprache, wie ich sie oben beschrieben habe (-> verbesserte version von c++). allerdings wird es noch ewig dauern, bis ich mal erste ansätze vorzeigen kann. momentan habe ich zuviel mit anderen dingen zu tun.



  • @KXII
    mhh, wundert mich jetzt echt, dass du das problem nicht kennst 🙄
    vielleicht liegts an der version? wir verwenden 5.0, also leicht angestaubt.

    die 28 dlls kommen daher, dass unsere klasse 28 leute umfasst, und dass jeder, (fast) unabhängig von den anderen, einen teil des programms erstellt, wobei diese teile trotz allem nicht gerade klein sind.
    (wir erstellen ein programm zur verwaltung eines krankenhauses)

    aber noch ne frage:
    was ist bei der programmierung mit visual c++ und der mfc so viel unkomfortabler als mit vb?
    sofern man weiss was man macht und nicht jede kleinigkeit nachlsesn muss, sehe ich da nicht sooo nen großen unterschied.



  • Original erstellt von KXII:
    **@!

    wer das nicht erkennt hat sich wohl nie darüber gedanken gemacht, was er beim programmieren eigentlich macht, und vorallem keine gedanken darüber, wie er das, was er beim programmieren erreichen möchte am einfachsten erreichen kann. ich sage nur: man kann sich die hose auch mit der beißzange anziegen :)**

    du willst dich doch nur darum drücken, deine Kritikpunkte zu nennen. hast wohl Angst, dass wir einen Fehler darin finden.



  • ... aber sicher doch 🕶

    ich habe ehrlich gesagt keine lust hier im forum detailliert darüber zu sprechen. es reicht doch wenn ich das hervorhebe, was ein guter c++ programmierer sehen müsste. wer glaubt c/c++ sei das nonplusultra der programmiersprachen, naja, der soll dann halt weiter damit programmieren, vielleicht erkennt er irgendwann, das man sich auch noch bessere sachen vorstellen kann. ausserdem brauche ich niemand der mir irgendetwas beweist oder bestätigt. es gibt dinge, die sind einfach 100%tig klar, und da gibt es kein "wenn und aber". als beispiel bringe ich gerne immer wieder das bedingte includieren der headerdateien. das kann absolut ohne performanceverlust vom compiler übernommen werden. die bezieheungen unter klassen sind alle eindeutig und berechenbar, man muss nur in den klassen angeben, wie die beziehungen sind das richtige einbinden kann der compiler übernehmen. ich weiss, das ist noch nicht genug um eine neue sprache zu rechtfertigen, aber es gibt noch mehrere solcher 100%iger dinge. kannst dich ja mal selbst auf die suche machen.



  • du wirst dir durch das explizite Aufführen von #includes doch keinen Zacken aus der Krone brechen! Und bei einer großen Anzahl von Klassen _gibt_ es da einen Performanceunterschied! Was willst du außerdem machen, wenn es 2 Klassen mit gleichem Namen, aber in 2 verschiedenen Namespaces gibt? Oder bei Templates?

    Führe ruhig noch mehr Punkte an!



  • eins ist ja mal klar, da muss ich mich den Profis hier anschließen. Wenn du größtenteils nur c gemacht hast, ist es unmöglich ein Spiel Richtung c++ zu Programmieren.
    Deswegen musst du erst mal mind noch 1 Jahr C++ lernen und 4 Bücher über objektorientiertes Programmieren lesen, ansonsten kommst du keinen Meter weit.

    Ansonsten kämme es einer Katastrophe gleich, wenn du bei einem C++ Compiler wie MS VC++ oder dem BC++B aus Versehen noch etwas C- Code einbaust. Auch wenn es scheint, dass C und C++ verwandt sind, sind dass doch zwei komplett andere Sprachen, die miteinander nichts zu tun haben, auch wenn die Syntax oft gleich aussieht. Sie in irgendeinerweise zu vermischen kann nicht drinnen sein. Besonders, wenn man nur als Hoppy so zum Spaß nen Spiel schreiben will. Deswegen darfst du auf keinen Fall den Fehler machen, mit c c++ anzufangen.



  • sorry "!" aber du erkennst die problematik nicht.

    es gibt natürlich dinge die ein compiler nicht wissen kann, weil sie nur der mensch weis, der programmiert. oder wie soll ein compiler z.b. die hintergrundfarbe einer anwendung selbst bestimmen/errechnen? das kannst nur du wissen! es wird nie einen compiler geben der das kann.

    und wenn man z.b. verscheidene namespaces hat, dann musst du schon selber angeben, wo was begraucht wird, das kann der kompiler auch nicht wissen, aber den rest, den kann der compiler übernehmen. du kannst nicht erwarten, das der compiler gedanken liest, und alles selbstämdig programmiert. darum geht es mir aber auch gar nicht. ich meine so dinge wie:

    früher (teilweise auch heute noch) hat man programme compilert, indem man alle compilereinstellungen als parameter "von hand" der compiler.exe übergeben hat. heute (dem fortschritt sei dank), kann man diese compiler-einstellungen über komfortable steuerlemente (-> radiobuttons, comboboxes) angeben, und der compiler gegneriert automatisch die passende compiler.exe-parameterliste.

    und eben genau das selbe hat man z.b. auch bei den header dateien. und es ist egal wieviele klassen man hat und wieviel querabhängigkeiten man hat, sie sind alle BERECHENBAR. deshalb kann sie ein compiler selber berechnen und sich darum kümmern, ohne geschwindigkeitsverlust. ausser du meinst mit verlust, die tatsache, das eine CPU mehr zeit braucht um diese abhängigkeiten zu berechnen, als wenn sie dies nicht tun würde. aber das ist trivial. du kannst nicht erwarten, das ein computer was für dich macht und keine rechenzeit dafür braucht. wofür sonst haben wir denn so schnelle cpu's, als sie genau für sowas zu benutzen???

    [ Dieser Beitrag wurde am 24.05.2003 um 15:26 Uhr von KXII editiert. ]



  • das ist dann aber nicht die Sprache und auch nicht der Compiler, sondern die IDE!



  • comilereinstellugne JA!

    headerdateien NEIN!



  • aber wie gesagt, es gibt noch mehere spezielle auf die sprache bezogenen sachen. belassen wir es jetzt dabei. freuen wir uns des programmierens.



  • kleiner nachtrag

    ich sollte erwähnen, das mir nicht darum geht c++ als ganzes vollkommen zu erneuern.

    die syntax in c und auch c++ ist an machen stellen vorbildhaft und nicht verbesserungsfähig. z.b. das bilden von blöcken mit {} kann man kaum effektiver darstellen. deshalb wird es selbst in einer perfekten sprache viele dinge geben, die genauso aussehen wie in c/c++.



  • Original erstellt von KXII:
    oder wie soll ein compiler z.b. die hintergrundfarbe einer anwendung selbst bestimmen/errechnen?

    Hä? 😕

    Original erstellt von KXII:
    früher (teilweise auch heute noch) hat man programme compilert, indem man alle compilereinstellungen als parameter "von hand" der compiler.exe übergeben hat. heute (dem fortschritt sei dank), kann man diese compiler-einstellungen über komfortable steuerlemente (-> radiobuttons, comboboxes) angeben, und der compiler gegneriert automatisch die passende compiler.exe-parameterliste.

    Hast Du noch nie was von Makefiles gehört? Die gibts schon deutlich länger als DOS-.EXEs.

    Original erstellt von KXII:
    und eben genau das selbe hat man z.b. auch bei den header dateien. und es ist egal wieviele klassen man hat und wieviel querabhängigkeiten man hat, sie sind alle BERECHENBAR. deshalb kann sie ein compiler selber berechnen und sich darum kümmern, ohne geschwindigkeitsverlust.

    Was soll der Compiler Deiner Meinung nach denn nun konkret machen?
    Alle Header automatisch #includen? 😕



  • Original erstellt von nman:
    **Original erstellt von KXII:
    oder wie soll ein compiler z.b. die hintergrundfarbe einer anwendung selbst bestimmen/errechnen?

    Hä? 😕

    **

    das sollte nur ein beispiel sein. ich gebe zu nicht garade sinnvoll. vielleicht gefällt dir folgendes beispiel besser: ... oder wie soll ein compiler, die farbe einer lichtquelle in einer directx anwendung selbst bestimmen/errechnen?

    Original erstellt von KXII:
    **früher (teilweise auch heute noch) hat man programme compilert, indem man alle compilereinstellungen als parameter "von hand" der compiler.exe übergeben hat. heute (dem fortschritt sei dank), kann man diese compiler-einstellungen über komfortable steuerlemente (-> radiobuttons, comboboxes) angeben, und der compiler gegneriert automatisch die passende compiler.exe-parameterliste.

    Hast Du noch nie was von Makefiles gehört? Die gibts schon deutlich länger als DOS-.EXEs.

    **

    ich kenne sehr wohl makefiles, aber das ist das selbe in grün. man muss die einstellungen auch da "von hand" angeben. wer heute noch mit makefiles programmiert, der tut mir echt leid !!!

    Original erstellt von KXII:
    und eben genau das selbe hat man z.b. auch bei den header dateien. und es ist egal wieviele klassen man hat und wieviel querabhängigkeiten man hat, sie sind alle BERECHENBAR. deshalb kann sie ein compiler selber berechnen und sich darum kümmern, ohne geschwindigkeitsverlust.
    Was soll der Compiler Deiner Meinung nach denn nun konkret machen?
    Alle Header automatisch #includen? 😕

    JA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    du hast es erkannt. wow! nicht schlecht.

    [ Dieser Beitrag wurde am 24.05.2003 um 23:04 Uhr von KXII editiert. ]



  • Original erstellt von KXII:
    man muss die einstellungen auch da "per hand" angeben. wer heute noch mit makefiles programmiert, der tut mir echt leid !!!

    Du musst Deine Einstellungen immer von Hand angeben, und ob Du das jetzt per Maus oder per Tastatur machst ist doch wohl völlig egal.
    Wenn Dir Benutzer von Makefiles leidtun dann hast Du selbst noch nie welche verwendet.

    Original erstellt von KXII:
    JA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Deine Rufzeichentaste klemmt. (Vielleicht tust Du Dir deswegen mit Mauseingaben leichter?)
    Wozu? Damit mir noch mehr Kontrolle über das was ich tue abgenommen wird?
    Ein Compiler der sowas macht ist so ziemlich das Gleiche wie einer der "Anwendungshintergrundfarben" oä automatisch "berechnet".

    [ Dieser Beitrag wurde am 24.05.2003 um 23:09 Uhr von nman editiert. ]



  • KXII: Übrigens: Es gibt nicht DIE perfekte Programmiersprache, es wird sie auch nie geben, alles was es geben kann ist eine gute Programmiersprache für einen bestimmten Zweck. (Vgl.: "When all you have is a hammer, everything looks like a nail.")



  • lol!

    man merkt das du dich mit der materie noch nicht auseinandergesetzt hast.

    es kommt bei der angabe der compilereinstellungen nicht auf das eingabemedium an, sondern auf die komplexität mit der diese eingaben überhaupt erst gemacht werden können. es ist viel einfach mit der maus ODER AUCH DER TASTATUR aus einer dropdownlistbox mehrere auswahlen zu treffen, als diese einstellungen umständlich per hand einzutippen und durch copy und paste immer wieder an die richtige stelle der makefile zu platzieren. an der uni musste ich lange genug mit makefiles arbeiten, also bitte erzähl mir nichts über makefiles! wenn du es dir beim programmieren gerne umständlich machst; bitteschön, ich möchte ich nicht davon abhalten.

    erstellt von nman:

    "
    Wozu? Damit mir noch mehr Kontrolle über das was ich tue abgenommen wird?
    Ein Compiler der sowas macht ist so ziemlich das Gleiche wie einer der "Anwendungshintergrundfarben" oä automatisch "berechnet".
    "

    man gibt überhaupt keine kontrolle an den compiler ab, und zwar überhaupt keine, denn das richtige einbinden der headerdateien musst du sowieso machen, sonst lässt sich dein programm nicht kompilieren.

    und es ist absolut nicht das selbe, ob ein programm eine farbe oder änliches erraten kann, oder ob er automatisierbare dinge automatisiert.

    tut mir leid, aber deine aussagen sind falsch.

    vielleicht gibt es keine ultraperfektemegaprogrammiersprache mit der man alles mit nur einem mausklick programmieren kann, aber ich sehe noch einiges an verbesserungspotential heutiger programmiersprachen.



  • Original erstellt von KXII:
    lol!
    man merkt das du dich mit der materie noch nicht auseinandergesetzt hast.

    Durch solche Einwürfe werden Deine Aussagen weder interessanter noch informativer aber wenn Du Spaß daran hast...

    Original erstellt von KXII:
    es ist viel einfach mit der maus ODER AUCH DER TASTATUR aus einer dropdownlistbox mehrere auswahlen zu treffen, als diese einstellungen umständlich per hand einzutippen

    Warum? Warum soll ich mich wenn ich weiß dass ich mein Projekt gerne mit "-march=athlon -O3 -fomit-frame-pointer -w -pipe" kompilieren möchte durch diverse Tabs für unterschiedliche Einstellungsarten quälen?
    Wenn ich eine Pizza telefonisch bestelle dann läuft das doch auch nicht so ab dass mich eine freundliche Stimme am Telefon fragt "Möchten Sie eine .) Pizza Insalata .) Pizza Quattro Formaggi .) Pizza Spinaci..." und ich am Ende sage "Ich hätte gerne die Spinaci" nachdem ich mir alle Alternativen angehört habe; ich rufe einfach bei der Pizzeria meines Vertrauens an, sage denen meinen Namen und meine Telefonnummer und dass ich eine Margharita mit doppelt Käse, Mais und Zwiebel haben möchte.

    Original erstellt von KXII:
    und durch copy und paste immer wieder an die richtige stelle der makefile zu platzieren.

    Immer dann wenn in der Beschreibung eines Arbeitsablaufes "Copy & Paste" und "immer wieder" auftauchen sollte man sich überlegen ob man alles richtig gemacht hat, wenn man Makefiles richtig verwendet besteht keine Notwendigkeit für Copy&Paste-Orgien.

    Original erstellt von KXII:
    an der uni musste ich lange genug mit makefiles arbeiten, also bitte erzähl mir nichts über makefiles!

    Wenn Du so lange damit gearbeitet hast wäre es wahrscheinlich sinnvoll gewesen wenn Du Dich über die Verwendungsmöglichkeiten genauer informiert hättest.

    Original erstellt von KXII:
    man gibt überhaupt keine kontrolle an den compiler ab, und zwar überhaupt keine, denn das richtige einbinden der headerdateien musst du sowieso machen, sonst lässt sich dein programm nicht kompilieren.

    Eben.

    Original erstellt von KXII:
    und es ist absolut nicht das selbe, ob ein programm eine farbe oder änliches erraten kann, oder ob er automatisierbare dinge automatisiert.

    Wie ließe sich was automatisieren? Du drischt hier leider nur Phrasen ohne konkrete Beispiele zu bringen.

    Original erstellt von KXII:
    tut mir leid, aber deine aussagen sind falsch.

    Wenn Du das so genau weißt warum postest Du dann überhaupt in einem Forum?
    Was hat Meinungsaustausch für einen Sinn wenn die anderen sowieso nur falsche Aussagen bringen?

    Original erstellt von KXII:
    vielleicht gibt es keine ultraperfektemegaprogrammiersprache mit der man alles mit nur einem mausklick programmieren kann, aber ich sehe noch einiges an verbesserungspotential heutiger programmiersprachen.

    Ich auch, aber es gibt in sehr vielen Fällen schon sehr gute Lösungen und wenn man nicht versucht alles mit einer Sprache zu lösen die einfach nicht für alle möglichen Aufgabenstellungen konzipiert ist erleichtert das die Sache maßgeblich.



  • ok, jetzt ist endgültig schluss. hier im forum gibt echt mehr noobs als alles andere. tggc hat mich vor ein paar tagen auch schon genervt und jetzt du.

    es ist ein leichtes dinge falsch zu machen oder kaputt zu reden oder anders gesagt, das gegenteil von etwas konkretem zu tun. typisches politikerhandeln... alles kaputtreden. hauptsache dummgelabert!

    ich muss niemanden zu seinem glück zwingen und das werde ich auch garantiert nicht tun!

    cu



  • @KXII
    ich halte mich jetzt einfach mal neutral und geb dir nen hinweis 😉
    du hast, so wie ich das sehe, bis jetzt nur das bsp mit den header-files gebracht, das kann aber ja nicht das einzige sein, was du verbessern willst, oder!?
    glaub mir: mehr argumente und beispiele machen dich wesentlich "glaubhafter" (ich weiß, das ist das falsche wort, mir fällt nur nix besseres ein -.-)

    die compilereinstellungen zähln übrigens nicht -> ide


Anmelden zum Antworten