Was ist die Aufgabe der Engine?



  • Hallo!
    Ich möchte irgendwann einmal in die Spieleprogrammierung einsteigen. Ich weiß, dass ich noch sehr viel C++ lernen muss, doch ich würde gerne ein paar grundlegende Fragen beantwortet haben.

    Ich habe schon viel von Grafikengines gehört, doch ich weiß nicht genau, was das gesamte Aufgabenfeld von dieser ist und aus welchen Programmstrukturen sie besteht. Ist das einfach eine Sammlung von Klassen und Funktionen oder was muss ich darunter verstehen?

    Ich würde gerne mit DirectX programmieren. Doch was genau ist DirectX? Ich würde gerne verstehen, was genau es ist und wie es ungefähr arbeitet.

    Auf welche speziellen Gebiete von C++ muss ich mein Hauptaugenmerk setzen? Also auf irgendwelche mathematischen bzw. physikalischen Funktionen? (die Spieleprogrammierung soll ja auch sehr viel Mathematik und Physik enthalten)

    (Ich habe übrigens schon ein bisschen in der FAQ gestöbert und habe auch schon ein paar Antworten bekommen)

    Ich bin für jede Antwort dankbar!
    Gruß



  • Mathematik wohl immer. Physik nicht immer.

    Kennen so wenige Wiki? 🙄
    http://de.wikipedia.org/wiki/Grafik-Engine

    MfG



  • Ich habe schon viel von Grafikengines gehört, doch ich weiß nicht genau, was das gesamte Aufgabenfeld von dieser ist und aus welchen Programmstrukturen sie besteht. Ist das einfach eine Sammlung von Klassen und Funktionen oder was muss ich darunter verstehen?

    Die Engine entbindet Dich von Low Level Aufgaben, d.h. vor allem die Schnittstelle zu 2D/3D ist für Dich voll abgefedert. Nimm z.B. die Irrlicht Engine (siehe: z.B. http://www.henkessoft.de/Spieleprogrammierung/SpieleprogrammierungIrrlicht.html). Dort findest keinen OpenGL- oder Direct3D-Code in der eigentlichen Anwendung, alles brav unter der Haube, wo es auch hin gehört. Du musst Dich auch nicht um die Version von DX kümmern. Das erledigt die Engine für Dich. Du kümmerst Dich von Anfang an gezielt um Deine eigentliche Anwendung.

    Ob OpenGL oder DX, das hält sich die Waage, alleine das ist schon ein Grund, sich das am Anfang zu schenken. Außerdem lernt man dabei m.E. nichts Wichtiges.

    Ich würde gerne mit DirectX programmieren. Doch was genau ist DirectX? Ich würde gerne verstehen, was genau es ist und wie es ungefähr arbeitet.

    Nicht einfach! http://www.zfx.info/Tutorials.php?ID=1

    Auf welche speziellen Gebiete von C++ muss ich mein Hauptaugenmerk setzen? Also auf irgendwelche mathematischen bzw. physikalischen Funktionen? (die Spieleprogrammierung soll ja auch sehr viel Mathematik und Physik enthalten)

    Klassen, Funktionen, Kontrollstrukturen, Arrays und Zeiger.

    Wenn Du von Grund auf die Windowsanwendung erstellen willst, musst Du Dich auch mit diesen GUI-Modellen beschäftigen, z.B. WinAPI.
    http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api1.htm

    Aber wie gesagt, steig einfach in die Irrlicht Engine ein, ist wie Auto fahren, und dann öffnest Du irgendwann einfach die Motorhaube und schaust, wie da alles arbeitet. Wichtig ist, dass Du fährst! Ansonsten wirst Du Motorenspezialist, fährst aber nicht.

    Schau Dir die Engines an: Irrlicht, Ogre, Nebula, ...



  • Kleine Anmerkung: Grafik-Engine != Game-Engine.



  • Muss nochmal schnell wa klarstellen:

    Auf welche speziellen Gebiete von C++ muss ich mein Hauptaugenmerk setzen? Also auf irgendwelche mathematischen bzw. physikalischen Funktionen? (die Spieleprogrammierung soll ja auch sehr viel Mathematik und Physik enthalten)

    C++ selber hat eigentlich nichts mit Physik zu tun, eigentlich auch nicht mit Mathe, ob du Mathe einbaus oder nicht, ist ja immernoch dir überlassen, wenn du C++ lernst lernst du ja auch kein Mathe sondern die Sprache!

    Aber ich würde dir auch empfeehlen eine Engine zu verwenden, lern in wenig C++, du musst es nicht perfekt beherschen, den rst lernst du alles auf dem weg der Spieleprogrammierung! Irrlicht ist, wie ich finde, die am einfachsten zu verstehende Engine, ich würd dir also diese empfehlen!



  • hustbaer schrieb:

    Kleine Anmerkung: Grafik-Engine != Game-Engine.

    Da hat er wohl Recht -> Solche Fehler nerven 😡

    @Topic-Urheber
    Verwechsle niemals eine Grafik-Engine mit einer Game-Engine. Eine Grafik-Engine stellt nur Funktionen zum Rendern(Zeichnen), Resourcenverwaltung und SceneManagement bereit. Eventuell noch Shader, usw. Manche Grafikengines versuchen auch noch ein paar Physik-Elemente einzubauen(s. Irrlicht). Das ist aber nichts gescheides und deswegen solltest du am besten eine Grafik-Engine mit einer Physik-Engine kombinieren, oder du benützt eine Game-Engine. Gute Game-Engines die Freeware sind gibt es NICHT. Sie haben alle ihre Macken. Deswegen kombiniere, oder schau dir mal meine Engine an: Die ist aber noch in Entwicklung: http://peakengine.sf.net
    P.S.: Was heist "meine", besser: "unsere"
    **
    MfG,
    C-Chris(->spy86)**


Anmelden zum Antworten