Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

11

16.12.2008, 21:38

Ok lassen wir das mir der Oberfläche mal bei seite. Da hab ich wohl was falsch interpretiiter interpretiert. Dachte immer eine Engine wäre eine Art Editor.

Ok also was ist den jetzt der unterschied z.b zwischen SDL und einer Engine. Oder ist die SDL auch eine Engine?

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

12

16.12.2008, 21:42

Zitat von »"Toa"«

€: btw ...made my day :D

#2

sorry aber dieser thread ist zu geil

@topic

weiß nich ob's dir hilft, aber der unterschied winapi/sdl <-> engine ist, was die jeweiligen biblitohtken an funktionen bereitstellen. wenn du eine funktion der winapi aufrufst, muss du dich nich darum kümmern, wie die funktion eigentlich implementiert ist / *wie* sie funktioniert. das is so in etwa auch der sinn einer engine. eine engine ist quasi eine abstraktionsebene zwischen zb directx/opengl/tcp und dem eigentlichen spiel/programm, das die engine verwendet.
<< an dieser Stelle ist eine Signatur verstorben >>

13

16.12.2008, 21:46

Engine ist ein Wort für Programmieranfänger, um sich toll zu fühlen, denn all die großen Spiele haben ja auch wer weiß wie teure Engines. ;-)
Fast alles, das als Engine bezeichnet wird ist meiner Meinung nach nicht mehr als ein paar Wrapperklassen, irgendwodrum.
Was ich als Engine ansehen würde, tja, sowas wie Irrlicht oder Ogre oder so. Natürlich sind die Übergänge fließend, und Irrlicht stellt auch nur 3D Objekte dar, ist also vielleicht ein etwas besserer Wrapper von DX/OpenGL aber ja tortzdem schon relativ komplex.

Man könnte natürlich auch sagen "Das komplette Programm (also die ausfürhbare Datei) abzüglich der Dinge der Spiellogik die hardcodet sind ist die Engine des Spiels". Letztendlich bleib es aber wohl jedem selbst überlassen, was er wie nennt. Nur meiner Meinung nach, wird "Engine" viel zu oft, für viel zu simples benutzt.
Lieber dumm fragen, als dumm bleiben!

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

14

16.12.2008, 21:51

Errschaffer: Wenn du es so willst, dann ist SDL auch ne Engine. Im Prinzip ein Framework, was dir einiges an Arbeit abnimmt. Bei SDL musst du ja z.b. auch nicht die Bilddateien selber laden, sondern einfach ne Ladefunktion aufrufen. Bei einer 3D Engine genau das selbe. Du kannst Modelle laden und sie in deine Scene einsetzen. Mal ganz grob gesagt. Solche zusammenklickprogramme werden dir nicht weiterhelfen. Aber, bevor du mit Engines anfängst, solltest du folgendes drauf haben:

1) Die Programmiersprache deiner Wahl beherschen (ich glaube du hast C++ gewählt)
2) Du solltest wenigstens ein bisschen Erfahrung mit 3D Grafik haben, Davids Buch kann ich nur empfehlen, da wird auch die ganze Mathematik erklärt.
3) Jetzt kannst du mit ner Engine ohne Probleme coden.

Welche Punkte schon erfüllt sind musst du für dich alleine wissen. Ich kann dir nur so viel sagen: Moderne 3D Engines arbeiten mit vielen OOP Konzepten. Du musst also Klassen, Vererbung etc etc in und auswendig drauf haben. Irrlicht kann man fast noch ohne "bedienen", da wird aber nciht viel bei rauskommen. Bei Ogre wirst du ohne OOP direkt am Anfang scheitern, ich bezweifle, dass du ein Bild rausgequetscht bekommst. Wenn du interesse an nem kleinen Beispiel zu Irrlicht hast, schreib mir ne PN.

Socke

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

15

16.12.2008, 22:19

Zitat von »"Jonathan_Klein"«

Engine ist ein Wort für Programmieranfänger, um sich toll zu fühlen, denn all die großen Spiele haben ja auch wer weiß wie teure Engines.

Was soll diese negative Weltsicht? Wer so denkt, oder besser, wer sowas von sich gibt, der hat ja nur Angst, selber als Anfänger bezeichnet zu werden. Das ist etwa so wie wenn der Schwule alle in seinem Umfeld als Schwulen bezeichnet, um nicht erkannt zu werden. Selbes Motiv. Sorry, solche negativen Vibes fucken mich total ab. Und wie du schon sagtest, Engine ist ein fließender Begriff.

Abgesehen davon würde ich die Meinung nicht teilen, dass Engine nur ein Wort für Programmieranfänger ist. IMHO, ist eine Grafik-Engine, wie ich schon sagte, schlicht eine Abstraktionsschicht zwischen Grafik-Bibliotheken wie Direct3D oder OpenGL und der Spielelogik. Ebenso kann man meiner Meinung nach von einer Netzwerk-Engine sprechen. So integrieren die meisten "Engines" Grafik-, Sound- und Netzwerk-Engines. Man könnte auch noch ein wenig weiter gehen, und sagen, dass eine Engine im Gesamtspiel die aktiven Rolle spielt: Dass Die Engine Anfragen an die Spielelogik stellt, die Ergebnisse wiederum verarbeitet, und Ausgaben generiert (Grafik, Sound, was auch immer).
<< an dieser Stelle ist eine Signatur verstorben >>

16

16.12.2008, 23:08

Zitat von »"the[V«

oid"]
Was soll diese negative Weltsicht? Wer so denkt, oder besser, wer sowas von sich gibt, der hat ja nur Angst, selber als Anfänger bezeichnet zu werden. Das ist etwa so wie wenn der Schwule alle in seinem Umfeld als Schwulen bezeichnet, um nicht erkannt zu werden. Selbes Motiv. Sorry, solche negativen Vibes fucken mich total ab. Und wie du schon sagtest, Engine ist ein fließender Begriff.

Gut, das kam jetzt wohl doofer rüber, als ich beabsichtigt hatte, ich hab mal schnell n kleinen Smiley reineditiert.
Prinzipiell wollte ich nur ausdrücken, dass meiner Meinung nach heutzutage viel zu viel schon als Engine bezeichnet wird.
Lieber dumm fragen, als dumm bleiben!

17

16.12.2008, 23:34

@Erschaffer: Was du meinst ist ein SDK (Software development Kit). Die ganzen teuren Game-Engines sind ebendfalls nur ein SDK. Ein SDK besteht aus vielen Tools, beispielsweise ein Terrain-Editor, Shader und Sound usw..., und dann besteht es noch aus der eigentlichen Engine.

Ich bin eigentlich nicht der meinung das eine Engine die von Hobbyentwicklern entwickelt wurde meist nur ein Wrapper ist! Ich versuche mich gerade an einem Strategiespiel, und dafür schreibe ich gerade eine Engine, diese Engine ist angepasst an das Spiel, und sie hat keinen DX Wrapper, aber was ist es dann, wenn es kein Wrapper ist? Für mich ist meine Engine eine kleine Engine, die für meine bedürfnisse reicht. Warum soll man nur etwas was alles kann und noch so perfekt ist als engine bezeichnen? Ogre kann nicht das was meine Engine kann, genauso wenig Irrlicht und warscheinlich auch keine der komerziellen Engines. Und ich glaube kaum das es irgent jemand gibt der alle Funktionen von Ogre braucht. Jemand der sich eie Engine selber schreibt, ist sich bewusst wie überflüssig es währe Ogre oder Irlicht zu verwenden, weil es einfach niemals so schnell sein ird als wenn man sich eine eigene schreibt die geau nur das tut was man auch wirklich nur braucht! Für mich ist auch nur eine "kleine engine" eine engine!

18

16.12.2008, 23:44

Dann sollte man, finde ich, aber auch sagen, dass eine allgemeine Lösung durchaus schneller sein kann, als eine angepasste, wenn diese nämlich von sachkundigeren Leuten geschrieben wurde. Ich will jetzt nicht über den Wissensstand von irgendjemanden hier urteilen, aber ich denke, gerade als Anfänger kann man mit einer bewährten Lösung weniger Performaceprobleme haben.
Lieber dumm fragen, als dumm bleiben!

19

17.12.2008, 00:50

Ich sehe mich zwar immer noch als Anfänger, aber ich habe mal den vergleich gemacht. Ich habe mit meiner Engine ein Terrain von der selben größe zeichnen lassen, und eines mit der Irrlicht engine. Außerdem habe ich mit der Irrlicht Engine einfach nur eine Textur über das Terrain gelegt. Mit meiner habe ich mittels HLSL textur splatting angewendet, mit 5 texturen die zur laufzeit vermischt werden.

Irrlicht: Durschnittlich 43 FPS
Meine (Devia): Volle 60 FPS

Es liegt einfach daran, das die eweiligen Engines einfach meist zuviel frinne haben, womit man überhaupt nix anfangen kann und das reduziert wieder die rechenzeit.

Mit Ogre habe ich noch nicht den vergleich gemacht, werde ich aber definitiv noch, aber ich glaube das Ogre gleich schnell sein sollte. Es ist halt so das das Terrain optimal an meine Bedürfnisse angepasst ist, und dadurch fallen wieder soclhe if abfragen wie welche LOD Stufe aktiv ist etc weg. Außerdem brauche ich nichtmehr für jede LOD stufe einen eigenen IndexBuffer und die Patches haben bei mir eine kleinere größe, so das sie auf 64kb kommen. In einem Strategiespiel kann man große Patches einfach nicht gebrauchen, hier sind kleinere Sinnvoller.

Eine eigene Engine zu schreiben finde ich ist das schönste für jeden der gerne optimiert, weil man an allen ecken und kannten optimieren kann. und am schönsten ist es, wenn man schnell codet, und dann die FPS misst, und dann alles auf einen schlag optimiert, und dann nochmal die FPS mist, und dann sieht wie viel man tatsächlich aus den kleinsten sachen holen kann, anstatt float werte zum beispiel int werte zu nehmen oder sonst was. Das ganze zumiert sich, und dasist ein enormer Geschwindigkeitsschub. Die fertigen Engines sind nicht so weit optimirt, geht ja auch nicht, denn die entwickler wollen ja schließlich das die benutzer der Engine auch möglichst große freieheiten haben.

Ich lehne aber grunsätzlich andere Engines ab. Das liegt aber auch daran, das ich selber was auf die beine stellen will, und mich auch in ferner zukunft mal mit einem kleinen 3D Spiel irgentwo bewerben will, und wenn man dafür eine fertige Engine benutzt, kommt das nicht so gut an als wenn man alles selbst nur mit hilfe der WinAPI und DX geschrieben hat.

Aber das ist ieder so eine Sache über die man sich noch sehr lange streiten kann!

20

17.12.2008, 20:04

Zitat von »"Faule Socke"«

Im Prinzip ein Framework

Wobei ich persönlich die Grenze zwischen Engine und Framework
nicht sehen kann^^

Werbeanzeige