Brauche ich die WinApi ?



  • hi,
    brauch ich die winapi um spiele zu programmieren?
    und wenn wie gut muß ich sein?

    bye

    Edit by Headhunter : Überschrift geändert.

    [ Dieser Beitrag wurde am 18.04.2003 um 18:28 Uhr von Headhunter editiert. ]



  • Jein!

    Kommt darauf an auf welchen System dein Game laufen soll, welche anforderungen du stellst und ob du D3D oder OpenGL verwendest.

    Wenn du D3D verwenden willst kommst du um die WINAPI wohl nicht rum.

    Wenn du OpenGL verwendest kannst du die GLUT( recht einfach, gibt es auf fast allen Platformen), die SDL ( etwas komplexer, aber umfangreicher, ebenfalls platformunabhängig) oder die WINAPI, bzw. die entsprechenden gegenstücke von Linux etc., benutzen.

    Am schnellsten ist wohl die WinAPI, allerdings auch am "schwersten".

    Gruß
    XRoads42



  • Zwischen ein Fenster erzeugen und WINAPI beherrschen ist aber schon ein Unterschied...



  • Mit den MFC + DirectX funktioniert es auch.



  • Original erstellt von TGGC:
    Zwischen ein Fenster erzeugen und WINAPI beherrschen ist aber schon ein Unterschied...

    Naja, das hab ich so auch gar nicht gesagt.
    Es wurde aber gefragt ob man die WinAPI braucht um spiele zu Programmieren. Klar, dazu braucht man auch Timer, Threads und Fkt´s zum Fenster erstellen. Das bietet die SDL aber auch...

    Oder kennst du sonst noch teile der WinAPI die man braucht um spiele zu Programmieren?

    Wie gesagt kommt ganz darauf an was man machen möchte...Und jemanden der die GESAMMTE WinAPI beherrscht...der soll sich mal melden.



  • Hmm das ist jetzt zwar ein wenig Off-Topic, aber macht ja nichts: Mich würde es mal interessieren, mit welchem Builder und Compiler die ganzen Spieleprogrammierer von Half-Life & co. arbeiten. Weiß da jemand was drüber?



  • Original erstellt von xroads42:
    [QB]
    Wenn du D3D verwenden willst kommst du um die WINAPI wohl nicht rum.

    ...Timer, Threads und Fkt´s zum Fenster erstellen...

    Nur letzteres brauch man, und dieses Code kann aus einem beliebigen Tutorial kopiert werden. Also brauvh man nun die WINAPI um Spiele zu machen? Ich sage nein.



  • Original erstellt von TGGC:
    Nur letzteres brauch man, und dieses Code kann aus einem beliebigen Tutorial kopiert werden. Also brauvh man nun die WINAPI um Spiele zu machen? Ich sage nein.

    Richtig, man braucht die WINAPI nicht, weil es noch andere API´s gibt.
    Es führen viel wege nach Rom...

    Meiner meinung nach braucht man aber doch Timer und Threads.
    Oder wie willst du sonst nen konstante FPS rate erzeugen und die bewegung deiner Objekte steueren?



  • > Spieleprogrammierer von Half-Life & co. arbeiten. Weiß da jemand was drüber?

    Die arbeiten alle mit MSVC

    Ich schließe mich der Meinung TGGC's an - es reichen sehr bescheidene Kenntnisse über die WinAPI um mit D3D oder ähnlichen Ergebnisse zu erzielen

    > MFC + DirectX

    pfui!!! images/smiles/icon_wink.gif

    > Timer

    Es gibt doch GetTickCount images/smiles/icon_wink.gif



  • Original erstellt von xroads42:
    Oder wie willst du sonst nen konstante FPS rate erzeugen

    wer will denn sowas tun?

    Und auch mit DX kann man problemlos anfangen, ohne was von WINAPI (kann man das essen?) gehört zu haben.



  • Hi!
    Ich würde dir empfehlen, dir die WinAPI ein bischen näher anzuschauen! Auch wenn du mit DircetX codest, brauchst du ein wenig davon z.B.: für Splash screen's,...
    cu
    LUk01 images/smiles/icon_cool.gif



  • lies dir die tutorials auf win-api.de durch.
    das müsste reichen.



  • Wo wir gerade dabei sind: Gibt es hier im Forum jemanden, der keinerlei Kenntnisse der WinAPI hat (außer natürlich Fenster erstellen images/smiles/icon_biggrin.gif ), aber trotzdem schon ein, na ja, "anspruchsvolles" Spiel ( = kein simpler Arcade-Shooter oder Tetrisklon) geproggt hat?
    Ich fange nämlich an mir sorgen zu machen, da ich von WinAPI prinzipiell null Ahnung hab... images/smiles/icon_rolleyes.gif

    ...Natürlich meine ich damit auch, dass derjenige kein MFC oder VCL oder ähnliches benutzt.

    [ 04.08.2001: Beitrag editiert von: D@nm@n ]



  • Schade ich wollt grade antworten ich, aber dann hab ich, kein MFC gelesen, sag mal bleibt denn hier noch ne Möglichkeit zum programmieren überhaupt noch übrig wenn du hier alles ausschließt, (außer flei dos) also irgendetwas solltest du schon lernen und so schwer is die Api ja auch nicht, wenn du schon ein Fenster anzeigen kannst dann weißt du doch schon alles, der Rest is doch nur noch Ergänzung von Nachrichten Timern, Grafik etc. mehr is es doch auch nicht.



  • wieviel winapi ist in quake3 und co denn schon drin?
    das ist doch auch nicht viel mehr als ein fenster erstellen oder?



  • Ähm, kleine Bemerkung am Rande:
    Kein Windowsprogramm kommt an der WinAPI vorbei!!
    MFC endet bei WinAPI (kapselt diese nur) und sogar ein Konsolenprogramm bekommt vom Compiler WinAPI-Code verpasst um überhaupt zu laufen, denn:

    Kein WinAPI, kein Windowsprogramm images/smiles/icon_wink.gif



  • Original erstellt von D@nm@n:
    Wo wir gerade dabei sind: Gibt es hier im Forum jemanden, der keinerlei Kenntnisse der WinAPI hat (außer natürlich Fenster erstellen images/smiles/icon_biggrin.gif ), aber trotzdem schon ein, na ja, "anspruchsvolles" Spiel ( = kein simpler Arcade-Shooter oder Tetrisklon) geproggt hat?
    [ 04.08.2001: Beitrag editiert von: D@nm@n ]

    Wieviel Leute im Forum _mit_ WinApi Kenntnissen haben ein anspruchsvolles Spiel programmiert?
    Ich habe überhaupt noch nie _anspruchsvolle_ Spiele gemacht. Trotzdem würde ich sagen, das ich relativ viel gemacht habe (und dementsprechend auch einige Dinge weiss), weil ich mich schon seit 8 Jahren (5 davon PC) mit Spieleprogrammierung als Hobby beschäftige.
    BTW: WinApi kann ich nicht



  • Original erstellt von D@nm@n:
    Wo wir gerade dabei sind: Gibt es hier im Forum jemanden, der keinerlei Kenntnisse der WinAPI hat (außer natürlich Fenster erstellen images/smiles/icon_biggrin.gif )

    Das Erstellen eines Fensters kannst du dir sogar auch noch sparen, wenn du DInput benutzt!
    Im Prinzip kannst du komplett ohne WinAPI auskommen, was aber
    einige Dinge verkomplizieren würde.

    Fischi



  • Original erstellt von Fischi:
    **Das Erstellen eines Fensters kannst du dir sogar auch noch sparen, wenn du DInput benutzt!
    **

    Häh? Erklär mal wie du mit DI an ein Fenster-Handel für SetCooperativeLevel kommst ?



  • Original erstellt von TGGC:
    Häh? Erklär mal wie du mit DI an ein Fenster-Handel für SetCooperativeLevel kommst ?

    Hi

    Auszug aus der DirectX7 Dokumentation
    SetCooperativeLevel->Parameter hWnd
    Window handle used for the application. Set to the calling application's top-level window handle (not a handle for any child windows created by the top-level window). This parameter can be NULL when the DDSCL_NORMAL flag is specified in the dwFlags parameter

    Du kannst dann dein Prog. halt nur im Normalmodus laufen lassen
    und musst alle Tastatureingaben sowie Mausbewegungen über DirectInput
    abfangen.

    Fischi

    [ 06.08.2001: Beitrag editiert von: Fischi ]


Anmelden zum Antworten