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



  • Was für einen C++ Compiler soll ich am besten verwenden?

    besorg dir am besten einen kostenlosen Compiler und eine kostenlose IDE, da du bei deinen Vorkentnissen wahrscheinlich eh sehr früh aufgeben wirst und das viele Geld wär umsonst ausgegeben

    Übersicht der kostenlosen Compiler + Linkliste



  • @KXII

    schön, wie du das konzept der objektorientierten programmierung verstanden hast!
    😛



  • @gibbets2000

    ích glaube meine überlegungen gehen noch etwas weiter. bei der objektorientierten programmierung bezieht sich das konzept nur auf die einzelobjekte. meine darstellung betrachtet aber das gesamtsystem, also eine gruppe von objekten. das hat eigentlich nichts direkt mit oo programmierung zu tun. schön wäre es wenn, es eine programmiersprche gäbe, die dieses konzept als grundlage nehemen würde und nicht nur die objekte... c++ ist meiner meinung nach eine sehr unvollkomene sprache und an vielen stellen verbesserungsfähig! alleine das bedingte includieren von headerdateien ist sowas von überflüssig...



  • Original erstellt von KXII:
    c++ ist meiner meinung nach eine sehr unvollkomene sprache und an vielen stellen verbesserungsfähig! alleine das bedingte includieren von headerdateien ist sowas von überflüssig...

    Jau, Java macht da schon einiges besser, ist nur leider saulahm, und leider auch net ganz "bugfrei".

    C# hab' ich mir noch net angesehen... aber... naja... 🙄



  • ich muss mir auch mal c# genau anschauen. vielleicht ist das ja eine "verbesserte" version von c++. wahrscheinlich ist es aber nur ein mischmasch aus visual c++ und visual basic, den man für schnelle spiele nicht gebrauchen kann.



  • Original erstellt von KXII:
    wahrscheinlich ist es aber nur ein mischmasch aus visual c++ und visual basic, den man für schnelle spiele nicht gebrauchen kann.

    Wohl eher Java-like C++, oder?!? Mit vernünftiger Klassen-Struktur / -Hierarchie (echt lobenswert).
    Aber leider wird der 2. Halbsatz trotzdem darauf zutreffen... 🙄



  • Mischmasch aus VB und C++ ist schon mal völlig falsch.
    C# ist eigentlich Java, bietet aber keine Verbesserungen. Für die Spieleentwicklung wäre es vielleicht interressant gewesen, wenn es nicht auch wie Java auf ner Art VM laufen würde.
    Von daher ist es eigentlich nichts groß anderes, allerdings hat sich Java schon mehr etabliert als C#.
    Für Spiele "muss" man leider nach wie vor C++ verwenden



  • Original erstellt von Optimizer:
    Für Spiele "muss" man leider nach wie vor C++ verwenden

    wieso leider? was gibt es an c++ auszusetzen?



  • mag ja sein, das c# eher mit java zu vergleichen ist, aber viele wissen nicht, das man auch mit visual-basic klassen erstellen kann, und im prinzip genauso wie in c++ programmieren kann. genaugenommen kann man mit visual basic sogar so ziemlich alles machen, was man auch mit visual c++ machen kann, nur viel schneller und einfacher als mit c++, nur das die programme etwas langsamer ablaufen (hat jemand von euch schon mal eine activex dll mit visual c++ und mit visual basic geschrieben? ...). ich bin kein visual basic fan, habe aber schon ein paar programme damit geschrieben und wenn es nicht auf die geschwindigkeit ankommt, dann ziehe ich visual basic allemal visual c++ vor! c++ ist eigentlich dreck, nur leider will das niemand einsehen, und deshalb gibt es bis heute keine verbesserte version!



  • Borloand's C++ Bulider hat mir sehr gut gefallen. Einfache Applikationserstellung wie in Visual Basic als Sprache C++. Ich verstehe auch nicht warum alle auf VisualC++ stehen.



  • Original erstellt von KXII:
    c++ ist eigentlich dreck, nur leider will das niemand einsehen, und deshalb gibt es bis heute keine verbesserte version!

    dann erklär doch mal genau, was daran dreck ist! 😡



  • im prinzip kann ich mich kingruedi nur anschließen:
    arbeite dich erstmal in c++ ein, das kommt dir echt nur zugute. und gib vor allem nicht voreilig viel geld aus...

    @KXII
    ähm, also was die geschwindigkeit beim programmieren mit vb angeht:
    da einer meiner lehrer ein absoluter vb-fan ist, müssen wir uns leider (die gründe für das "leider" folgen gleich) auch mit vb auseinandersetzen.
    wenn man mit klassen (und somit auch dlls) arbeitet, stößt man des öfteren auf das problem, dass vb einfach nicht checken will, dass ich die dlls schon dem projekt hinzugefügt habe, also muss ich fast jedes mal nach dem laden des projekts die ganzen verbindungen wieder hinzufügen (bzw erstmal entfernen, auf "ok" klicken, wieder auf projekte->verbindungen gehn und sie wieder einfügen). das ganze bei (im moment) 28 dlls..., da nervt das dann schonmal ungemein.
    den datenbankzugriff möchte ich garnicht erst erwähnen..., einfach schrecklich...
    dann solche umständlichen sachen, dass er bei einer OR-verknüpfung in einer if-clause grundsätzlich auch die zweite bedingung prüft, auch wenn die erste bereits "true" ergibt (was java und c++ nicht machen). das verkompliziert die ganze sache meist nur...
    solche beispiele könnte man sicher noch ein paar bringen...



  • @!

    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. ]


Anmelden zum Antworten