was ist eine Engine?



  • Hi,

    Original erstellt von Headhunter:
    **DirectX / OpenGL : SDK == Single Development Kit.
    **

    Stimmt nicht ganz, ein SDK ist ein Software Development Kit. Und OpenGL würde ich eher als API (Application Programming Interface == Programmierschnittstelle) bezeichnen, obwohl das wohl am Ende aufs selbe rausläuft.

    @nightmare_frog:
    Und eine Engine ist ein Motor ;). Seh das einfach mal als Motor für dein Spiel. Die Engine kapselt noch mal die wichtigsten Funktionen deiner Grafik-, Sound- und Input-API zu einem einheitlichen Stück und erweitert das Ganze letztlich noch um viele Funktionen und Klassen, die du brauchst, um damit ganz spezielle (je nach Spiel und Spielart unterschiedliche) Sachen zu erledigen.

    Das ist meine Definition ;).



  • Am einfachsten versteht man es bestimmt mit einem leichten beispiel. Man nehme das allseites beliebte Half-Life oder Quake 2. Es gibt 2 bis 3 dlls und eine exe. Das ist die Engine. Der rest sind eifnach nur Texturen models usw. Die Engine ist dann zuständig um die Levels und Models zu laden und anzuzeigen den Sound abzuspielen usw. So kann man deswegena auch ohne die Engine zu ändern das Spiel um Level usw. erweitern.



  • Single ? Wie komme ich auf Single ?
    Das kommt davon wenn man privates mit dem Forum hier vermischt 😃

    sorry 🙄



  • Also, DirectX/OPenGL ist wie schon gesagt eine Api und eine Lib aber kein SDK !
    Ein SDK ist eine Ansammlung von allem was man braucht um mit einer lib oder Api zu programmieren.

    Ein einfaches Beispiel für den Unterschied zwischen OpenGL und einer Engine ...
    OpenGL liefert kapselt die Funktionen (daher lib) die zum Zeichnen nötig sind.
    Damit kann man dann Polygone zeichnen, Texturen drauf machen etc...
    Eine Engine Kapselt das laden der Models, das laden der Texturen, vielleicht das Verhalten des Players (PhysikEngine) etc...
    Eine Engine hat also ein höheres Abstraktionslevel ...
    So kann eine Engine zum Beispiel völlig verbergen mit welcher Api (Direct/OpenGL) letztendlich das Modell gerendert wird.



  • Also, DirectX/OPenGL ist wie schon gesagt eine Api und eine Lib aber kein SDK !

    Und warum heißt es dann DirectX SDK? 😮 😉



  • Nur das SDK von DirectX heißt auch SDK 😃
    Das ist aber auch um einiges größer...



  • erst mal danke für die vielen Antworten...

    also ist der UT-Leveleditor eine Engine? Ich denke schon...
    hmm, DirectX / OpenGL sind ja auch libs, also eigentlich etwas ähnliches wie allegro, nur dass allegro auch noch auf DirectX zugreift, anstatt selber auf die Grafikkarte zuzugreifen. Also verwenden Engine-Programmierer libraries, welche z.b. von DirectX zur verfügung gestellt werden.
    Aber wieso gibt es dann Programmierer, welche ihre Engine in Assembler programmieren? Wenn es doch die nötigen Funktionen in DirectX oder so schon vorhanden sind?

    Die anderen Dinge hab ich geschnallt (SDK - API)

    gruss

    nightmare_frog



  • @SDK
    Jo, es gibt ein DirectX SDK, dies ist so eine Art grosses Tutorial wie DirectX zu benutzen ist. Ausserdem sind die Header und libs zum entwickeln dabei. Diese Header und die libs sind die eigentliche Api !

    @UT-LevelEditor
    Nein, der UT-Leveleditor benutzt die UnrealEngine...
    Stell dir einfach vor die UnrealEngine wäre eine DLL, dann ist der Editor eine exe der die DLL benutzt. Eine Engine kann in den wenigsten fällen ausgeführt werden, da sie nur Funktionen bereitstellt.

    Aber wieso gibt es dann Programmierer, welche ihre Engine in Assembler programmieren?

    Lol, frag mich nicht 😃
    Nunja, die meisten davon werden SoftwareRenderer/Engines sein ...
    Also für Computer die kein DirectX oder OpenGL unterstützen. Für die meisten wird es aber auch einfach nur eine Herausforderung sein 😃

    [ Dieser Beitrag wurde am 03.02.2003 um 10:47 Uhr von ChaosAngel editiert. ]



  • What's a game engine?
    Following a discussion in the engines section on Illicitdev about what a game engine was I wrote this :

    Well. I've made my fair share of both 2D and 3D engines, so I thought I'd give my input on this one 🙂
    Engine (compared to it's real life meaning) is perhaps a bit misleading.
    Sure an engine is what makes a car or craft go round, but it's not
    responsible for reading input from the car driver, or relaying visual information back to him such as his speed, fuel left etc. You would rather
    say that a car was an engine hardcoded for driving cars only.
    Ironically this is not far from the truth. I've seen people who used Quake3
    technology saying that basically it was an engine for running
    Quake3, and that they had to add an entire new engine layer before it was usefull to their game.
    It's the same with Unreal. It's primarily for multiplayer and singleplayer FPS games only.
    However, the Unreal engine has a much better level editor and toolset as
    well as an advanced scripting system allowing total control.
    iD software technology is something you only buy for the name.
    You won't save any time doing so.
    Unreal, Lithtech and Intrinsic Alchemy (of which the last two have the best engine interface and tools)
    will save you a lot of time, as well as allowing easy porting to supported console platforms.
    My first engines where just libraries that wrapped something like DirectX,
    adding animation, tile maps etc. + other usefull game programming tools.
    (Some of you might know these. NukeDX 1 + 2).

    Nowadays, my engines are more like regular game OS's.
    Parts of the game are plugins that run under my engine environment.
    The benefits here are that there's less porting of actual game code.
    Also I tend to use OpenGL + SDL and OpenAL now, so it's even easier to port.
    It really depends on what you want to do. It's all to easy getting into engine work and then constantly changing and improving it.
    That won't get you a finished game for sure.
    If it's your first game, just do it.
    If it's your second game, start identifying stuff that can be reused and place it in a seperate library.
    Classes are great for this.
    Only start doing a huge can-do-everyhing
    engine if you have experience in doing so and knows your limitations.
    (An exception for this is ofcourse experimenting to learn, both most engine knowledge comes from implementing games and test apps.)

    Well. That was my two cents. Almost an entire article in it's own right.
    Hope it helped.
    As usual I'm always willing to help out if anyone got any questions.

    Ozak

    Quelle: http://www.illicitdev.net/~ozak/



  • Original erstellt von ChaosAngel:
    @SDK
    Jo, es gibt ein DirectX SDK, dies ist so eine Art grosses Tutorial wie DirectX zu benutzen ist. Ausserdem sind die Header und libs zum entwickeln dabei. Diese Header und die libs sind die eigentliche Api !

    Das SDK ist kein Tutorial, sondern wie der Name schon sagt, ein "Software Development Kit", also eine "Werkzeugsammlung" zur Entwicklung von DX-Software. Die libs sind nicht die "API", sie sind eher eine "physische Inkarnation" der API. Eine API könnte ja auf verschiedene Weise implementiert werden.


Anmelden zum Antworten