019
28.02.2006, 01:37 Uhr
Hans
Library Walker (Operator)
|
Zitat von Marco15: |
Ahh...Jetzt hab ich nen Einblick
Sag mal. Kann wer den Begriff Engine besser erklären. Ich mein, ich kann mir was drunter vorstellen und hab uch bei wikipedia.de nachgelesen, aber wie die letztendlich aufgebaut is hab ich keine Ahnung. Also in wie fern die gut is? Weil es gibt doch DirectX,mit dem kann man doch alles machen, oder?
|
Hi,
also der wikipedia-artikel dazu ist echt gut. Ich hab mir zwar nur den ersten Abschnitt über die Bestandteile einer Game-Engine angesehen, aber ich könnte es auch nicht besser beschreiben. Die Frage nach dem Aufbau der Engine ist dann wieder eine andere. Da geht es dann wirklich ums coden. Aber je nach dem, welchen Teil der Engine man bearbeitet, sind wieder unterschiedliche Fähigkeiten gefragt. Die Darstellung der Grafik erfordert andere Fähigkeiten, als z.B. die physikalischen Berechnungen. Aber ohne solide Mathekenntnisse kannst Du beides nicht richtig umsetzen. Denn auch bevor der beste Grafikchip mit dem rendern beginnt, braucht er Informationen darüber, was wie zu rendern, also zu berechnen ist. Also: Der Aufbau einer GameEngine ist eine Designfrage, wo man als Programmierer ein gewichtiges Wort mitzureden hat.
Zitat von Marco15: |
Also ich stell mir das so vor. Ich hab irgendwo gelesen, dass man in C++, um in den Grafikmodus zu kommen(also wahrscheinlich mit DirectX) ne halbe Seite Quelltext braucht.
|
Kann sein, muss aber nicht.
Zitat von Marco15: |
Und ich könnte mir vorstellen, dass die Programmierer dann hergehen und diese halbe Seite Quelltext in eine Funktion packen, und das wird mit mehreren solchen langen Codeblöcken gemacht, wenn man das öfter braucht, oder wenns einfach extrem viel Code ist. Tja. Und dann ruft man den Grafikmodus eben über ne Funktion auf, zB. Graphics3d 640, 480, 32,1
|
Das ist richtig. Das macht man aber nicht nur bei GameEngines so, sondern immer dann, wenn man Module für eine Anwendung entwickelt. Das können dann auch (Klassen-) Bibliotheken für den Umgang mit riesigen Zahlen sein, oder die Steuerung/Drehzahlregelung für Motoren oder Temperaturregelung für Heizungen. Oder Statikberechnungen in Bauwesen bzw. Architektur.
Zitat von Marco15: |
Sagt mal. Bild ich mir das ein, oder wurde BlitzBasic nicht eh in C++ geschrieben? Dann is doch BlitzBasic auch eine entfernte Form einer Engine, oder?
|
Nö. Eine Engine ist eher mit einer Bibliothek vergleichbar. Sie stellt Funktionen für einen bestimmten Zweck zur Verfügung, auf die man als Programmentwickler zurück greifen kann. Eine Programmiersprache, egal ob Skriptsprache oder was anderes, beruht dagegen auf einen Interpreter oder einen Compiler.
Zitat von Marco15: |
Weil bei der UnrealEngine wurde ja auch aus C++ eine Engine gebastelt und in der Engine hat man eine ganz neue ScriptSprache extra für die Engine erfunden(Unreal-Script oder so)
|
Mit dieser Skriptsprache kann man aber auch nur die Engine von dem Spiel ansteuern, aber sonst nichts. Ohne dem Spiel kannst Du damit nichts anfangen. Solche Skriptsprachen dienen den Leveldesignern als Hilfsmittel, um die Level zu gestalten, ohne tiefer ins Programmieren (beispielsweise der Grafikkarte) einsteigen zu müssen.
Zitat von Marco15: |
und BlitzBasic wäre doch eigentlich auch sowas. Alle Begriffe wurden extrem vereinfacht, vor allem das ganze mit DirectX und wurden eben zusammengepackt.
|
BlitzBasic ist aber dennoch eine Programmiersprache, weil es eben auch einen Interpreter oder einen Compiler gibt, der die einzelnen Anweisungen ausführt. Bei einer reinen GameEngine bestehen diese Anweisungen aus Aufrufen von C der C++ Funktionen, und es ist eben auch ein solcher Compiler erforderlich.
Zitat von Marco15: |
Wer is denn dann eigentlich für das Scripten von Szenen verantwortlich? Die Coder nicht oder?
|
Na die Leveldesigner, oder "SceneArtists"... Geh wirklich mal in eine Bibliothek, und besorg Dir dort das Buch, das ich in meinem vorigen Posting genannt habe, und mach Dich damit Schlau. Da gibt es auch einen Abschnitt, der sich mit dem grundsätzlichen Aufbau und der Programmierung einer Engine befasst. Wenn Du ganz genau wissen willst, wie man eine Engine baut, dann besorg Dir Bücher zur Spieleprogrammierung von David Scherfgen, Stefan Zerbst, Alexander Rudolph oder auch von Andre LaMoth, wenn Du in Englisch gut bist. (Die Bücher mit "Gems" im Titel solltest Du aber erst mal links liegen lassen, denn die setzten schon solide Programmiererfahrungen vorraus; das ist Futter für Profis, die noch besser werden wollen, aber nichts für Anfänger.)
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 28.02.2006 um 02:16 Uhr von Hans editiert. |