PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OS 3d Engine


Achill
2005-03-14, 21:05:49
Wir (ein paar Freunde und ich) wollen gern ein kleines Spiel in der Freizeit entwickeln. Wir sind eigentlich nicht genügend um alles selbst zu entwickeln und haben uns in der Open Source Welt umgeschaut (3D Engine, et cetera).

Folgende 3D Engins sehen ganz interessant aus:

Ogre3d - http://www.ogre3d.org/
OSG - http://www.openscenegraph.org/
CS - http://www.crystalspace3d.org/

Es stellt sich die Frage, für welche man sich entscheiden soll. Darum, hat jemand von Euch schon einmal mit der einen oder anderen Engine zu tun oder kann eine andere empfehlen?

Auch Tips bzgl. Sound-Engine sind sehr willkommen...

Dank schon mal für euch Hilfe, Achill.

Coda
2005-03-14, 21:12:33
Ogre3D ist das beste davon, erfordert aber gute Kenntnis von C++ und OOP.

MirEgal
2005-03-15, 07:02:43
Wobei Ogre allerdings auch nur Grafik ist und keine sonstigen Engine-Features bietet. Sound, Input, Physik muss man selbst implementieren.

Einfachkrank
2005-03-15, 22:17:02
Mal ne Frage an die Hobby-Spieleprogrammierer: Verwendet ihr andere Engines oder habt ihr alles selbst programmiert?
Bei mir ist zwar alles auf dem eigenen Mist gewachsen, aber ist immer en angepasstes System gewesen, nie wirklich eine Engine ...

Achill
2005-03-16, 16:40:00
Erst einmal Danke für eure Tips. Mich würde halt auch interessieren, ob jemand diese Engins eingesetzt hat und Aussagen bzgl. Einarbeitung, et cetera ... machen kann.

@Einfachkrank, ich habe selbst schon kleiner Spiele programmiert (Sneak-Klone, dieser liebevoll „Wurmi“ genannt und eine Art „Tetris“, nie fertig geworden). Bei diesen beiden war alles selbst gestrickt – ist jedoch eine Weile her.

Bei diesem größeren Projekt war aber nun der Gedanke, lieber eine freie Engine ein zu setzten als alles selbst zu entwickeln. Es ist so Ressourcen schonender und bringe dann lieber eigene Ideen in eine freie Engine ein... denke außerdem, dass man viel aus fremden Quellcode lernen kann ... :-)

Einfachkrank
2005-03-16, 18:17:43
@Achill
Bei mir ist es auch so, dass ich nur simple und kleine Spiele programmiert habe, aber mich schon sehr für Ego-Spiele interessiere und von daher auch ne gute Engine brauche... Deswegen spiele ich ebenso mit dem Gedanken mir eine freie anzulachen, anstatt selbst zu machen... Muss ja nicht überall der eigene Name drunter stehen ;)

Baalzamon
2005-03-17, 18:16:03
Hi,

ich bin gerade dabei mich in die Irrlicht (http://irrlicht.sourceforge.net) Engine einzuarbeiten.

Sehr gut dokumentiert, viele und gute Tutorials (unter anderem für die gängigen Physic-Engines ODE und Newton) und ist leicht zu bedienen, kann auch für kommerziele Produkte eingesetzt werden und hat bei mir unter Eclipse/CDT mit MinGW auch ohne Probleme (mit Anleitung natürlich) kompiliert.

Habe bisher noch nicht viel damit gemacht (Verfolgerkamera auf ein .md2 Model) scheint mir aber sehr leistungstark zu sein.

Vielleicht mag'st mal draufschauen.

EgonOlsen
2005-03-17, 19:22:35
Mal ne Frage an die Hobby-Spieleprogrammierer: Verwendet ihr andere Engines oder habt ihr alles selbst programmiert?Was eigenes (siehe Sig). Allerdings ist die Engine das eigentliche Projekt gewesen. Das Spiel kam erst, als ich mir die Frage stellte: "Was soll ich jetzt damit?".

mobius
2005-05-13, 17:08:37
Hi,

ich bin gerade dabei mich in die Irrlicht (http://irrlicht.sourceforge.net) Engine einzuarbeiten.

Sehr gut dokumentiert, viele und gute Tutorials (unter anderem für die gängigen Physic-Engines ODE und Newton) und ist leicht zu bedienen, kann auch für kommerziele Produkte eingesetzt werden und hat bei mir unter Eclipse/CDT mit MinGW auch ohne Probleme (mit Anleitung natürlich) kompiliert.

Habe bisher noch nicht viel damit gemacht (Verfolgerkamera auf ein .md2 Model) scheint mir aber sehr leistungstark zu sein.

Vielleicht mag'st mal draufschauen.

Hmm die Engine sieht wirklich sehr fein aus. Welche Programmiersprachen werden denn unterstützt? Das C und VisualBasic Support haben, steht auf der Seite, aber wie steht es mit Delphi? Ist leider die einzige Sprache, die sie mir an der Schule beigebracht haben. Könnte mir vielleicht jemand sagen, ob man irgendwelche Bereiche aus der Programmiersprache zwingen können muss, wie z.b. mit Threads arbeiten oder was weiss ich. Ich beherrsche, ich würds mal sagen, die Basics.

mobius
2006-12-11, 18:56:29
*threadrauskram*

Ist zwar schon ein weilchen her, aber das Interesse ist noch nicht verflogen und mittlerweile sind meine Kenntnisse in Sachen Programmierung etwas besser geworden ^^.

Kurz zur Planung. Ich hätte Interesse daran ein kleines Spielchen zu programmieren. Es soll in Richtung kleines Action Adventure gehen. Vom Grafischen Aspekt hatte ich mir so etwas in der Richtung vorgestellt:

http://img201.imageshack.us/img201/8880/vlcsnap9666gz2.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9666gz2.png)http://img201.imageshack.us/img201/7876/vlcsnap9867vg5.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9867vg5.png)

Schon 3D Engine, aber toll muss es nicht aussehen. Möglichkeit zur Verwendung von Cel-Shading wäre super (wobei ich mir nicht vorstellen kann, wie das realisiert werden könnte).
Kenntnisse beschränken sich auf Delphi, Java (lerne ich gerade) und etwas Maya. Cinema4D nur sporadisch (aber lässt sich ja recht intuitiv lernen).

Nun die Frage:
Welche freie Engine würdet ihr empfehlen? Inzwischen dürften sich ja schon einige Sachen verändert haben (letzter Post ist ja mehr als ein Jahr her).

Gruß,
mobius

TheGamer
2006-12-11, 19:12:37
*threadrauskram*

Ist zwar schon ein weilchen her, aber das Interesse ist noch nicht verflogen und mittlerweile sind meine Kenntnisse in Sachen Programmierung etwas besser geworden ^^.

Kurz zur Planung. Ich hätte Interesse daran ein kleines Spielchen zu programmieren. Es soll in Richtung kleines Action Adventure gehen. Vom Grafischen Aspekt hatte ich mir so etwas in der Richtung vorgestellt:

http://img201.imageshack.us/img201/8880/vlcsnap9666gz2.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9666gz2.png)http://img201.imageshack.us/img201/7876/vlcsnap9867vg5.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9867vg5.png)

Schon 3D Engine, aber toll muss es nicht aussehen. Möglichkeit zur Verwendung von Cel-Shading wäre super (wobei ich mir nicht vorstellen kann, wie das realisiert werden könnte).
Kenntnisse beschränken sich auf Delphi, Java (lerne ich gerade) und etwas Maya. Cinema4D nur sporadisch (aber lässt sich ja recht intuitiv lernen).

Nun die Frage:
Welche freie Engine würdet ihr empfehlen? Inzwischen dürften sich ja schon einige Sachen verändert haben (letzter Post ist ja mehr als ein Jahr her).

Gruß,
mobius

Eigentlich immer noch Ogre

RMC
2006-12-11, 19:21:10
*threadrauskram*

Ist zwar schon ein weilchen her, aber das Interesse ist noch nicht verflogen und mittlerweile sind meine Kenntnisse in Sachen Programmierung etwas besser geworden ^^.

Kurz zur Planung. Ich hätte Interesse daran ein kleines Spielchen zu programmieren. Es soll in Richtung kleines Action Adventure gehen. Vom Grafischen Aspekt hatte ich mir so etwas in der Richtung vorgestellt:

http://img201.imageshack.us/img201/8880/vlcsnap9666gz2.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9666gz2.png)http://img201.imageshack.us/img201/7876/vlcsnap9867vg5.th.png (http://img201.imageshack.us/my.php?image=vlcsnap9867vg5.png)

Schon 3D Engine, aber toll muss es nicht aussehen. Möglichkeit zur Verwendung von Cel-Shading wäre super (wobei ich mir nicht vorstellen kann, wie das realisiert werden könnte).
Kenntnisse beschränken sich auf Delphi, Java (lerne ich gerade) und etwas Maya. Cinema4D nur sporadisch (aber lässt sich ja recht intuitiv lernen).

Nun die Frage:
Welche freie Engine würdet ihr empfehlen? Inzwischen dürften sich ja schon einige Sachen verändert haben (letzter Post ist ja mehr als ein Jahr her).

Gruß,
mobius


Äh also:

Empfehlen kann ich ebenfalls Irrlicht, sie bietet eigentlich alles was man so brauchen kann und ist recht einfach zu verstehen. Wir haben damals Jirr (Irrlicht 4 Java) benutzt...wobei das mit den Wrappern ein wenig mühselig war, die reine C++ Variante ist doch gemütlicher. Vielleicht hat sich jetzt mit der neuesten Version (gar nicht so lang her) was in der Richtung getan.

D.h...wenn du Java kannst (und ich seh du hast nicht C++ erwähnt) würd ich mir mal Irrlicht for Java anschauen.

EDIT: ahja..

https://sourceforge.net/projects/jirr/

jirr 0.8 entspricht Irrlicht 1.1...ist schon etwas fortgeschrittener.


Ogre (C++) bietet immernoch am meisten, hat aber auch den größten Umfang und ist daher vielleicht nicht unbedingt die allererste Wahl..kommt drauf an. Ich würde mich damit nicht befassen wenn du nur "ein kleines Spiel" machen willst.


Allgemein würd ich die Grafik zuerste Außen vor lassen, besonders wenn du nur ein "bisschen Maya" kannst. Was die Engine alles in dem Fall kann ist egal, weil du eh nie dazu kommen wirst es zu verwenden ;) Sprich: Für deinen Fall reicht eine kleine Engine auch. Ich würd mich primär mal mit der Theorie einer 3D Engine beschäftigen. Wozu brauchst du Cel-Shading wenn du eh nicht weißt wie du damit umgehst? Ich würd mich über solche Sachen eher Gedanken machen. Das war keine Kritik, nur ein kleiner Tipp von mir.

ollix
2006-12-11, 19:45:22
Schon 3D Engine, aber toll muss es nicht aussehen. Möglichkeit zur Verwendung von Cel-Shading wäre super (wobei ich mir nicht vorstellen kann, wie das realisiert werden könnte). Die Engine muß das nicht unterstützen, aber Du kannst im Shader machen was Du willst. Für CelShading am Besten mal nach "Toon Shader" suchen. Ist relativ einfach zu implementieren und Beispielimplementationen sind in den ganzen Tools wie FX Composer, RenderMonkey & Co. IIRC auch dabei.

Nun die Frage:
Welche freie Engine würdet ihr empfehlen? Inzwischen dürften sich ja schon einige Sachen verändert haben (letzter Post ist ja mehr als ein Jahr her). Ich verwende eigentlich immer Ogre. In einem kleinen Team hatten wir auch auf Ogre gearbeitet, leider ist aber nichts draus geworden (lag aber nicht an der Engine). :)

Keine Ahnung allerdings, wie die Exporter für C4D sind.

mobius
2006-12-11, 19:49:14
Allgemein würd ich die Grafik zuerste Außen vor lassen, besonders wenn du nur ein "bisschen Maya" kannst. Was die Engine alles in dem Fall kann ist egal, weil du eh nie dazu kommen wirst es zu verwenden ;) Sprich: Für deinen Fall reicht eine kleine Engine auch. Ich würd mich primär mal mit der Theorie einer 3D Engine beschäftigen. Wozu brauchst du Cel-Shading wenn du eh nicht weißt wie du damit umgehst? Ich würd mich über solche Sachen eher Gedanken machen. Das war keine Kritik, nur ein kleiner Tipp von mir.

C++ kann ich gar nicht, da hast du schon richtig vermutet ;) Jutt dann werde ich mir mal Irrlicht für Java anschauen.
Im Punkto Grafik hast du recht, dass wird zuerst außen vor gelassen, aber ich wollte mir für die Zukunft die Möglichkeit vorbehalten, dass sowas wie Cel-Shading möglich ist. Alles nochmal neuschreiben wenn es mal läuft wäre doch etwas frustrierend. Aber ok erstmal muss es ja laufen. Wäre dennoch freundlich wenn du mir sagen könntest, ob es prinzipiell möglich ist.

@ollix: Danke, damit hast du meine letzte Frage schon geklärt ^^. Dann kann ich ja bald beginnen.

RMC
2006-12-11, 19:53:10
C++ kann ich gar nicht, da hast du schon richtig vermutet ;) Jutt dann werde ich mir mal Irrlicht für Java anschauen.
Im Punkto Grafik hast du recht, dass wird zuerst außen vor gelassen, aber ich wollte mir für die Zukunft die Möglichkeit vorbehalten, dass sowas wie Cel-Shading möglich ist. Alles nochmal neuschreiben wenn es mal läuft wäre doch etwas frustrierend. Aber ok erstmal muss es ja laufen. Wäre dennoch freundlich wenn du mir sagen könntest, ob es prinzipiell möglich ist.

Was Irrlicht alles kann (und respektive eben auch die Jirr mit den Java Bindings) steht hier:

http://irrlicht.sourceforge.net/features.html

Gast
2007-01-26, 23:54:52
Ogre (C++) bietet immernoch am meisten, hat aber auch den größten Umfang und ist daher vielleicht nicht unbedingt die allererste Wahl..kommt drauf an.

Das ist unqualifizierter Unfug wenn wir von Game Engines reden.

Ogre ist nämlich NUR eine Render Engine,
wie MirEgal schon sagte, den Rest,
also Sound, Input, Physik muss man selbst implementieren.


Wenn man aber sowieso alles selber implementiert, dann
ist Open Scene Graph deutlich besser.
Ogre ist nämlich arsch langsam, zumindest gilt das,
wenn man ein OpenGL Spiel schreiben will.
(Ogre ist ok bei Verwendung von DirectX, aber nicht OpenGL)

Der Grund für die Langsamkeit ist die Tatsache, daß es die OpenGL Pipline falsch verwendet.

Ein OpenGL Programm muß so aufgebaut sein,
wenn es schnell sein soll:


while(run)
{
clean_back_buffer
draw_all_geometry
do_all_cpu_works
swap_buffer
}


Aber genau das tut Ogre NICHT.
Ogre blockiert das ganze Programm im Swap_buffer Bereich, das Resultat ist daß man CPU Zeit verplempert
und man das Programm ausbremst.

Bei Verwendung von DirectX gibt es dieses Problem bei Ogre nicht.
Ogre wurde für DirectX konzipiert und wurde darauf optimiert und später nach OpenGL portiert.
Da man aber bei einer Portierung nicht einfach das
ganze Konzept, was an DirectX angepaßt ist, umkrempeln kann, hat es bei OpenGL die oben erwähnte Schwäche. In DirectX kann man so etwas machen, aber nicht in OpenGL.


Deswegen würde ich von Ogre die Finger weglassen,
wenn die Grafik auch schnell sein soll und man hauptsächlich auf OpenGL z.B. Crossplattform Support setzen möchte.


Hier ist der Open Scene Graph, wenn man ihn um die fehlenden Funktionen selber erweitert, deutlich besser.
OSG is einer der besten Szene Graphen weltweit und auf seine Aufgabe hoch spezialisiert und das kann dieser verdammt schnell.
Natürlich muß man, wenn man den OSG verwendet, den Rest selber drumherum schreiben, aber das ist nunmal der Preis für eine spezialisierte Lösung.
Der OSG wird übrigens auch in professionellen kommerziellen Programmen und Spielen eingesetzt
und hat daher auch schon eine gewissen Robustheit erreicht, von Ogre würde ich das nur bedingt behaupten.
Eine mögen Anmerken daß die Dokumentation bei OSG besser sein könnte, gut, daß ist einer der wenigen Kritikpunkte von OSG, aber dafür kriegt man ein verdammt gutes Stück spezialisierte Software.


Nun kommen wir noch zu Crystal Space, das sollte auch nicht unerwähnt bleiben.
Crystal Space hat nicht nur eine Render Engine, sondern
bietet auch noch den ganzen Rest wie Netzwerkcode und Co drumherum dazu.
Crystal Space ist im Gegensatz zu Ogre oder OSG eine vollwertige Game Engine.

Wer also in erster Linie ein Spiel programmieren will und sich auf den Spieleinhalt konzentrieren will
und nicht Jahre damit zu verschwenden will,
den Rest um Ogre oder OSG herumzuprogrammieren,
der ist mit Crystal Space besser dran.

Erstens kommt man damit schneller zum Ziel
und zweitens müßte man ja auch, wenn man Ogre, Irrlicht oder OSG nennt in den Sachen die man selber implementieren will, gut sein.
Das kann aber gar nicht jeder.
Hier nimmt einem Crystal Space sehr viel Arbeit ab und
das Design ist professionell und gut gemacht (auch wenn aktuelle Screenshots das noch nicht zeigen können, hier liegt es wohl an den Grafikern das beste aus der Engine rauszuholen),
gerade auch in den anderen Bereichen die man bei den anderen Render Engines alle selber implementieren müßte.


Also zur Zusammenfassung:

Wenn man alles selber implementieren will,
dann ist der Open Scene Graph die beste Wahl.

Wenn man sich nur auf das eigentliche Spiel konzentrieren will, dann ist Crystal Space die erste Wahl.


Tja und Irrlicht und Ogre sind nichts halbes und nichts ganzes.
In OpenGL ist Ogre zu langsam und den Rest muß man auch noch alles selber schreiben.
Wer natürlich nur ein DirectX Spiel schreiben will,
der kann auch Ogre nehmen, aber sonst eher nicht.
Auch sollte man sich nicht von den Screenshots auf der Ogre Webseite blenden lassen, zwar hat Ogre als Render Engine sehr viele Features, aber wie schon gesagt, das Problem der Flaschen Verwendung der OpenGL Pipline bleibt und wenn euer Spiel dann deswegen in OpenGL ruckelt, obwohl es gut aussieht und das Problem deswegen nicht behebbar ist, dann habt ihr die Arschkarte gezogen.
Sprich ihr seit in eine Sackgasse geraten.
Ich kann von Ogre jedenfalls nur abraten, auch wenn hier oben viele Leute anderes Behauptet haben,
aber das fürte an Ogres Einfachheit für den Einsteig und die Dokumentation liegen, nur sollte man halt auch
auf die Innereien der Render Engine achten und nicht nur auf das Äußere.

Gast
2007-01-27, 00:00:23
Ups, jetzt habe ich noch vergessen zu erwähnen was an Irrlicht schlecht ist.

Irrlicht mag äußerlich ganz nett sein und viel bieten.
Aber innendrin ist es voller Hacks, Quirks und sonstiger
unsauberen Codestellen und genau diese Dinge können
dann in der langfristrigen Entwicklung eures Spieles zum Verhängnis werden.
Kurz gesagt, auch wenn es hart kling:
Irrlicht ist innen drin zu schlampig, also besser die Finger weglassen.

Die Eleganz von Crystal Space oder OSG hat es jedenfalls nicht.

Monger
2007-01-27, 00:01:27
Ich hab es mir noch nicht näher angesehen, aber... hast du auch über XNA nachgedacht?

Ich kenne die Bibliotheken davon nicht, aber es richtet sich ja nunmal direkt an Hobby-Spieleentwickler. Da würde ich doch mal annehmen, dass da alles drinsteckt was man gebrauchen kann.

Gast
2007-01-27, 00:03:31
Ein guter Überblick oder Vergleich aller 4 Engines gibt es übrigens hier:

Crystal Space:
http://www.devmaster.net/engines/engine_details.php?id=33

Irrlicht:
http://www.devmaster.net/engines/engine_details.php?id=4

Ogre:
http://www.devmaster.net/engines/engine_details.php?id=2

Open Scene Graph:
http://www.devmaster.net/engines/engine_details.php?id=58


Noch ein Tipp:
Man sollte übrigens auch die Kommentar lesen, die erlauben einen sehr guten Überblick über die 4 Engines aus verschiedenen Betrachtungswinkeln. Sie sind also sehr hilfreich.

Gast
2007-01-27, 00:06:35
Ich hab es mir noch nicht näher angesehen, aber... hast du auch über XNA nachgedacht?

Ich kenne die Bibliotheken davon nicht, aber es richtet sich ja nunmal direkt an Hobby-Spieleentwickler. Da würde ich doch mal annehmen, dass da alles drinsteckt was man gebrauchen kann.

Du kriegst auch bei Crystal Space High Level Lösungen für Hobby-Spieleentwickler!

Schau dir einfach mal CEL und CELstart auf der Webseite des Crystal Space Projekts an.
Damit reicht schon xml und phyton um ein 3d Spiel mithilfe der Crystal Space Engine zu entwickeln.

Siehe hier:
http://www.crystalspace3d.org/main/Main_Page

CEL:
http://www.crystalspace3d.org/main/CEL

CELstart:
http://www.crystalspace3d.org/main/CELstart

RMC
2007-01-27, 00:09:07
Das ist unqualifizierter Unfug wenn wir von Game Engines reden.


und für deine genannten Engines gibts auch sicher Java Bindings? Sonst komplett an den Anforderungen für mobius vorbei!

Gast
2007-01-27, 00:14:55
und für deine genannten Engines gibts auch sicher Java Bindings? Sonst komplett an den Anforderungen für mobius vorbei!

Ok zugegeben, Java Bindings bietet Crystal Space 1.0 (stable) noch nicht, der OSG sowieso nicht.

Aber die CVS Entwickler Version hat schon eine Unterstützung dafür und dürfte auch irgendwann stable werden, ob es für die nächste stable CS Version, also 1.2 reicht, weiß ich aber jetzt auch nicht.
Wenn du also nicht die CVS Version von Crystal Space verwenden willst und unbedingt Java Support benötigst dann bleibt dir keine andere Wahl, dann muß du halt die anderen Engines verwenden.

Tja und der OSG ist, wie schon gesagt, sowieso nur für C++.

Monger
2007-01-27, 00:25:17
Ich bin ein ganz, GANZ großer Java Fan, aber beim Stichwort Grafik zieht es mir immer den Magen zusammen.

Java ist von der ganzen Philosophie darauf angelegt, möglichst überhaupt keinen Kontakt zu real existierender Hardware aufzubauen. Das würde nur die elegante Perfektion der Plattformunabhängigkeit trüben...

Ich würde mich nicht unbedingt darauf versteifen, das ausgerechnet in Java durchziehen zu wollen. C# und Python sind auch schöne Sprachen. Sobald man nicht wenigstens in einer Sprache wirklich fit ist, würde ich mir besser nicht sowas riesiges wie ein Spieleprojekt vornehmen.
Und nein, es gibt keine kleinen Spiele.

RMC
2007-01-27, 00:32:53
Ich bin ein ganz, GANZ großer Java Fan, aber beim Stichwort Grafik zieht es mir immer den Magen zusammen.

Java ist von der ganzen Philosophie darauf angelegt, möglichst überhaupt keinen Kontakt zu real existierender Hardware aufzubauen. Das würde nur die elegante Perfektion der Plattformunabhängigkeit trüben...

Ich würde mich nicht unbedingt darauf versteifen, das ausgerechnet in Java durchziehen zu wollen. C# und Python sind auch schöne Sprachen. Sobald man nicht wenigstens in einer Sprache wirklich fit ist, würde ich mir besser nicht sowas riesiges wie ein Spieleprojekt vornehmen.
Und nein, es gibt keine kleinen Spiele.


Das erste Spielprojekt is nie wirklich was besonderes und dient eigentlich nur zum Probieren/Erfahrung sammeln. Fertig wird man eh nicht und wirklich berauschend wird es auch nicht. Dies in der bereits (einzigen) gelernten Programmiersprache zu tun ist daher kein Fehler, weil man sich schon auskennt und so sich das Wissen etwas schneller aneignen kann. Außerdem kriegt man so schneller Ergebnisse, was vorallem am Anfang nur Vorteile bringt anstatt sich in einer fremden Sprache durchzuquälen.

Dass es in Java nicht wirklich optimal ist (von wegen Hardware und so) tut hier aber echt niemandem weh und is eigentlich auch nur an den Anforderunge vorbei. Bis es zu dem Punkt kommt wo das was ausmachen würde, vergehen mindestens noch 2 andere Projekte.

Und ja, es gibt auch kleine "Spiele" (die dann aber nicht so genannt werden können, sondern eher in die Abteilung "Versuche" fallen).

Aquaschaf
2007-01-27, 00:33:15
In OpenGL ist Ogre zu langsam und den Rest muß man auch noch alles selber schreiben.

Es gibt für fast alle anderen Aspekte einer game engine auf Ogre3D zugeschnittene Lösungen, sodass man schon mit ein paar libraries sich das meiste zusammenstecken kann. Unter OpenGL langsamer als unter DirectX, ja. Aber von zu langsam habe ich noch überhaupt nichts bemerkt. Wir reden in den meisten Fällen wahrscheinlich auch nicht von dem uber game, bei dem es auf die bestmögliche Performance überhaupt ankommen würde. Aufgrund der guten Dokumentation, Community, Support und sehr aktiven Weiterentwicklung finde ich Ogre3D durchaus empfehlenswert. Und interessiert man sich stärker für das Thema kommt man früher oder später sowieso nicht um C++ herum.

Gast
2007-01-27, 00:54:09
Es gibt für fast alle anderen Aspekte einer game engine auf Ogre3D zugeschnittene Lösungen, sodass man schon mit ein paar libraries sich das meiste zusammenstecken kann.
Ja, es gibt zugeschnittene Lösungen und libraries, aber auch die kann man an ein OSG basiertes Spiel anpassen.
Daher ist OGRE nicht wirklich notwendig.
Zumal man hier beachten muß, daß es viele dieser zugeschnittenen Lösungen nur für Windows gibt.
Eines der weiteren Probleme von OGRE.
Natürlich findet man für Linux und Co immer etwas, aber der größte Teil der Lösungen ist halt bei OGRE doch nur für Windows, das will ich damit sagen.


Unter OpenGL langsamer als unter DirectX, ja. Aber von zu langsam habe ich noch überhaupt nichts bemerkt.

Das zu langsam bezog sich auf zu langsam im Vergleich zu den anderen Alternativen wie Crystal Space und OSG oder eben auch dem DirectX Modus von Ogre.



Wir reden in den meisten Fällen wahrscheinlich auch nicht von dem uber game, bei dem es auf die bestmögliche Performance überhaupt ankommen würde.

Ja, aber gerade dann wird ein Performanter Unterbau noch wichtiger, denn bei einem Hobby Projekt muß man auch damit rechnen, daß man hobby Grafiker hat, die nicht wissen, wie man möglichst spärlich mit Texturen und Polygonen umgeht, um trotzdem ein gutes Ergebnis zu erzielen.
Wenn diese Hobbygrafiker dir dann das Spiel mit Texturen und Polygonen zupflastern, dann bist du froh, wenn deine Engine doch noch ein paar Prozent aus der Grafikkarte rausholt.




Aufgrund der guten Dokumentation, Community, Support und sehr aktiven Weiterentwicklung finde ich Ogre3D durchaus empfehlenswert. Und interessiert man sich stärker für das Thema kommt man früher oder später sowieso nicht um C++ herum.
Also dann würde ich aber trotzdem eher Crystal Space verwenden.
Der Community Support ist dort erstklassig. Im Forum oder IRC findet man immer jemanden der einem helfen kann.
Man sollte sich auch nicht von CS erschlagen fühlen.
Klar bietet CS sehr viel und hat eine hohe Lernkurve wenn man alles lernen will, aber man muß auch wissen,
daß man das oft gar nicht braucht, da CS sehr modular aufgebaut ist und man einige Dinge auch weglassen oder durch andere Lösungen, die einem besser passen ersetzen kann.
Ein großer Vorteil ist halt bei CS auch, daß es eine vollwertige Game Engine ist, wenn man etwas braucht, dann ist es auch da und muß nicht erst durch externe Libs implementiert werden.
Und ohne CEL und CELstart setzt man bei CS auch direkt auf C++ auf.

Aquaschaf
2007-01-27, 02:51:18
Über CS kann ich keine Aussagen aus eigener Erfahrung machen. Aber ein Blick auf die Seiten und Foren der Projekte zeigt schon einen gewaltigen Unterschied in der Größe von Community und vorhandenen Lernresourcen. OSG sieht für mich mehr auf wissenschaftliche Anwendungen zugeschnitten aus als auf Spiele. Nachdem ich nach FPS-Zahlen bei verschiedenen Demos gesucht habe ist die OpenGL-Performance abhängig von Karte und Treiber gleich schnell, oder schlechter. Sehr groß ist der Unterschied aber selten.

Darüber was "besser" ist muss wohl jeder für sich entscheiden. Ich mag jedenfalls die Struktur von Ogre und finde es ist ein sehr sauberes, konsistentes Design.

Das eine schnelle Engine wegen schlechtem Content besonders wichtig sei ist keine hilfreiche Einstellung.

Coda
2007-01-27, 03:44:38
Überhaupt gilt diese "Optimierung" die du da ansprichst (CPU-Zeit vor dem Buffer-Swap) genauso für Direct3D. Insofern ist das eh Käse.

tokugawa
2007-01-27, 03:49:33
Ein großer Vorteil ist halt bei CS auch, daß es eine vollwertige Game Engine ist,


Das kann ehrlich gesagt aber auch ein Nachteil sein...

Gast
2007-01-27, 05:20:22
Das kann ehrlich gesagt aber auch ein Nachteil sein...

Er hat doch gesagt, daß CS sehr Modular aufgebaut ist und so habe ich es gerade auch in der Doku gelesen.

ollix
2007-01-27, 09:29:23
Meine Lieblingsbeweisführung: Beweis durch Beispiel :) Wir haben Ogre3D mal für eine verteilte Rendering App (auf 6 Rechner) mit vielen Animationen eingesetzt und eben auf OpenGL. Jede Menge war u.a. auf der CPU los und es lief sehr performant und nicht schlechter als über Direct3D (als sich das bei uns noch vergleichen lies).

EgonOlsen
2007-01-27, 20:13:20
Ich bin ein ganz, GANZ großer Java Fan, aber beim Stichwort Grafik zieht es mir immer den Magen zusammen.

Java ist von der ganzen Philosophie darauf angelegt, möglichst überhaupt keinen Kontakt zu real existierender Hardware aufzubauen. Das würde nur die elegante Perfektion der Plattformunabhängigkeit trüben...Aber LWJGL läuft z.B. unter Windows, x86-Linux und Mac OSX (Intel und PPC)...das ist sicher nicht komplett plattformunabhängig, aber es deckt doch einen ausreichend großen Bereich ab IMHO.

D4ve
2007-03-09, 13:24:26
Ogre3D lohnt sich spätestens bei der Erstellung von Content mit 3DsMax, denn dafür gibts oFusion (http://www.ofusiontechnologies.com), was echt ne Arbeitserleichterung ist. Sowas bieten sonst eher die kommerziellen Engines, z.B. für Nebula kann man ein ähnliches Programm für teuer Geld bei RadonLabs kaufen.
Aber man muss halt dran denken: Ogre3D ist ne Grafik-Engine, keine Game-Engine. Zwar ist mit Ogre3D 1.4 jetzt mit OIS ein brauchbares Input-System drin (und das Ogre3D-interne flog raus), das sogar wii-mote-Support liefert :D
Aber was eben noch fehlt ist Sound, Physik, GUI,...
Man sollte da auch immer die Verhältnismäßigkeit sehen, ein zu ambitioniertes Projekt ist in der Freizeit kaum schaffbar, da sowas ganz schnell ein Vollzeitjob wird. Allein für die Einarbeitung in die Materie gehen TAGE weg, ohne dass man irgendwas produziert hat.

tokugawa
2007-03-09, 14:17:15
Ogre3D lohnt sich spätestens bei der Erstellung von Content mit 3DsMax, denn dafür gibts http://www.ofusiontechnologies.com/ (oFusion), was echt ne Arbeitserleichterung ist. Sowas bieten sonst eher die kommerziellen Engines, z.B. für Nebula kann man ein ähnliches Programm für teuer Geld bei RadonLabs kaufen.
Aber man muss halt dran denken: Ogre3D ist ne Grafik-Engine, keine Game-Engine. Zwar ist mit Ogre3D 1.4 jetzt mit OIS ein brauchbares Input-System drin (und das Ogre3D-interne flog raus), das sogar wii-mote-Support liefert :D
Aber was eben noch fehlt ist Sound, Physik, GUI,...
Man sollte da auch immer die Verhältnismäßigkeit sehen, ein zu ambitioniertes Projekt ist in der Freizeit kaum schaffbar, da sowas ganz schnell ein Vollzeitjob wird. Allein für die Einarbeitung in die Materie gehen TAGE weg, ohne dass man irgendwas produziert hat.

Sicher dass der Link stimmt? :)

Aber ja, Ogre hat Exporter für 3DSMax (und auch Maya und andere Packages).

Wobei der Ogre Exporter für 3DSMax ziemlich beschränkt ist und gern abstürzt, da es kein binäres Exporter-Plugin, sondern ein MaxScript-Plugin ist.

Du sprichst auf jeden Fall einen guten Punkt an: Die Content-Pipeline an sich ist fast noch viel wichtiger als Details wie "welche API verwende ich" oder "ist Ogre eh effizient", denn die macht erst möglich dass ein guter Workflow für die Spieleentwicklung entsteht.

ollix
2007-03-09, 14:20:47
Der MaxScript Exporter ist doch schon alt und wirklich begrenzt. Das oFusion Plugin ist recht gut, auch wenn es in der CE Version kein Morph/Vertex Animation unterstützt. Dazu ist jetzt noch der LEXIExporter hinzugekommen, der auch einen recht guten Eindruck macht.

Der Link ist richtig: http://www.ofusiontechnologies.com/
LEXIExporter (http://ogre3d.org/index.php?option=com_remository&Itemid=74&func=fileinfo&filecatid=62&parent=category)

D4ve
2007-03-09, 23:52:54
Der LEXIExporter ist auch nicht schlecht, aber das wird bei großen Szenen schon recht viel gelicke bis man eine Auswahl zusammen hat. Aber ich werde die Weiterentwicklung mal verfolgen, dass Tool sieht doch ganz gut aus. Die MaxScript-Methode war eine echte Katastrophe, da musste man ja trotzdem mit den Command-Tools nochmal umwandeln.

Dass bei der CE von oFusion Funktionen fehlen ist ok, letztlich wollen die für das Produkt auch Geld verdienen. Ich finde es schon gut, das es überhaupt eine CE gibt, denn mit dem Tool arbeitet es sich schon wesentlich bequemer als über den Weg Exportieren -> ins Spiel Laden -> Ergebnis prüfen.
Und morph-Animation ist ja schon eher für solche Sachen wie Cloth-Animation gedacht, das macht nun auch nicht jeder...

rotalever
2007-07-19, 16:39:20
Habe grad zufällig diesen Thread gelesen und wollte doch noch mal was richtig stellen was IMO falsch ist.

D

while(run)
{
clean_back_buffer
draw_all_geometry
do_all_cpu_works
swap_buffer
}


Aber genau das tut Ogre NICHT.
Ogre blockiert das ganze Programm im Swap_buffer Bereich, das Resultat ist daß man CPU Zeit verplempert
und man das Programm ausbremst.

Das kann man afaik durch ein paar simple Zeilen auch so in ogre haben. Man muss halt nur statt des renderoneframe() oder wie das Ding heißt drei-vier Statements schreiben. So stehts zumindest im Ogre3D Forum...