Panda3D vs (Py-)OGRE

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Mich wuerde mal interessieren, was von beiden besser ist, wenn man das so sagen kann. Im Plan steht ein (Single Player) RPG im großen Stil. So mit huebschen Shader-Zeugs und all dem.

Ich wuerde gern alles wichtige mit Python machen koennen, aber da werfen sich zwei Fragen auf:

Ist Python performant genug dafuer (die darunter befindliche C++-Engine sollte ja sogesehen die meiste Performance bringen)?

Ist es besser Panda3D zu verwenden, weil es ja mehr oder weniger nativ Python einsetzt, oder ist ein Pythonaufsatz auf OGRE besser... welches evtl die ausgereiftere Engine darstellt?

Ja, eure Meinungen sind mir wichtig ^^
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Hi!

Ich kenne Ogre jetzt nur von PureBasic und dort gehen die Meinungen klar in eine Richtung - OGRE bietet allein zu wenig. Ob das gut oder schlecht ist, sei dahin gestellt.
So wie es aussieht bietet OGRE halt nur die Optik, aber keine Physik.
O.G.R.E - Object-Oriented Graphics Rendering Engine --> und mehr scheinbar nicht. Auf Panda bin ich gestossen, weil ich darüber mal einen Bericht gelesen habe (ich mache damit aber nichts).
Was ist mit Soya?

Aber analysier das alles mal:
du möchtest allein ein RPG machen - also wäre es gut, wenn die Engine die Physik schon mitbringt; stelle ich jetzt mal in den Raum.
Denn wenn du dich um Kollisionen auch noch kümmern musst, bist du arm dran.

Für welche Plattform willst du schreiben? Ich frage dies deshalb, weil OGRE ein eigenes XML-Format für die Darstellung von Meshes verwendet. Du musst also jedes deiner 3D-Modelle mit dem Konverter in ein für OGRE lesbares Format konvertieren. Den Konverter gibts wiederum nur für Windows :evil: .
Unter Linux geht kannst du "nur" wieder mit Blender arbeiten - das ist nicht jedermanns Sache.

Panda verwendet scheinbar ein Format, dass EGG heißt. Das wird auch von Blender aus exportiert, soweit ich sehe.

Leider habe ich auf der Soya Homepage nicht herausfinden können, welches Format benutzt wird. Aber es sieht verdächtig nach etwas in Verbindung mit Blender aus.

So, das wars von mir. Es gibt aber sicher noch Leute, die davon mehr Ahnung haben, als ich.
Gruß!
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

hallo ...

Danke fuer deine Antwort. Das hilft mir schon sehr weiter.
Das Spiel soll weitestgehend unabhaengig sein. Ich bin zwar eher der LinuxMensch, aber unter Windoze wuerde ein Teil der Entwicklung auch laufen, da die meisten Mitentwickler Windoze verwenden.

Soya habe ich mir noch nicht angeschaut, werde ich aber gleich mal tun.

Danke nochmal...

Gruß
nkoehring
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Meines Wissens wurde OGRE bewusst nur als Grafik-Engine (Sound? kA) entwickelt, die Physik lässt sich über PyODE realisieren.

C4S3: Du meinst aber keine Python-Eggs, oder?
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Ich weiß nicht. Wie gesagt - ich habe mir die HP nur sehr kurz angesehen und habe keine für mich eindeutigen Informationen zu den verwendeten Modellen gefunden.
Kann durchaus sein, dass "ganz klar und einfach und deutlich" Python-Eggs gemeint sind.
Allerdings muss ich gestehen, dass ich davon noch nie was gehört habe. :oops:
Gruß!
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

nkoehring hat geschrieben:Mich wuerde mal interessieren, was von beiden besser ist, wenn man das so sagen kann.
Panda3D. Bessere Engine (Viele Cool Effekte mit drin, etc) und Physik (Kollisionserkennung, etc) gleich mit drin, angenehme Benutzung (Auf den ersten Blick) was ich zu Ogre (Auf den erste Blick) nicht sagen kann.

Und kann mit vielen Formaten umgehen:
Model Export hat geschrieben: 1. Converting from 3D Studio Max
2. Converting from Maya
3. Converting from Blender
4. Converting from SoftImage
5. Converting from Milkshape 3D
6. Converting from GMax
7. Converting from other Formats
8. Converting Egg to Bam
9. Parsing and Generating Egg Files
http://panda3d.org/wiki/index.php/Main_Page

Ogre,
1. ist IMHO schon seit langem obsolet.
2. An dem Python-Wrapper wurde auch schon seit langem nicht mehr gearbeitet.
...

BTW: Hab mit beiden aber nicht gearbeitet, sondern habe die Infos durch lesen einiger Seiten im Web.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Danke sape, du hilfst mir ziemlich weiter. Bisher habe ich OGRE naemlich als technisch viel besser angesehen, weil man einfach viel mehr (Bild-)Material auf der entsprechenden Website mit all diesen schicken Postfiltern (HDR, Gloom, blabla) und Beispielen zu Refraction-Shadern, etc bekommt.

Aber ich fand es sowieso interessanter zu lesen, dass Panda3D direkt mit dem Gedanken gebaut wurde, Python als Programmiersprache zu verwenden und nicht erst nen Wrapper braucht. Und wenn du jetzt noch sagst, dass Panda3D die Physik mit drin hat... sind eigentlich alle Fragen geklaert ;)

Danke dafuer :)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

C4S3 hat geschrieben: Unter Linux geht kannst du "nur" wieder mit Blender arbeiten - das ist nicht jedermanns Sache.
Ist K-3D vielleicht auch eine Möglichkeit?
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Oh! Das kenne ich gar nicht.
Sorry - vielleicht hat K-3D einen solchen Exportfilter. Keine Ahnung.
Gruß!
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

C4S3 hat geschrieben:Oh! Das kenne ich gar nicht.
Sorry - vielleicht hat K-3D einen solchen Exportfilter. Keine Ahnung.
Ich kenn es auch nicht ^^

Aber ich schaus mir gleich mal an ;)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
oliver1974
User
Beiträge: 97
Registriert: Donnerstag 26. Oktober 2006, 15:01

Hmm, Panda3D habe ich mir mal angesehen, aber noch nix ernsthaftes damit gemacht.. Nur Models geladen und so und die ersten Tutorials durchgespielt.

Erschien mir bisher aber recht brauchbar...

Das Problem ist, dass es viele tolle Engines gibt, die primär aus der C/C++ Ecke kommen und die für die Benutzung aus anderen Sprachen einen Wrapper brauchen (das ist unter Java ganz ähnlich... da habe ich nämlich neulich erst nach einer passenden Engine gesucht..). Während auf der Webseite oft noch groß geschrieben wird, dass auch Sprache XYZ unterstützt wird, findet man schon bald heraus, dass in der Praxis es doch düsterer aussieht.. Da werden oft die Wrapper gar nicht mehr weiter gepflegt, es fehlt an Doku, und, ganz wichtig, die Community ist oft fast gar nicht existent.

Das sind alles Faktoren, die würde ich unbedingt berücksichtigen.

Bei Panda3D ist auch nicht alles Gold, ich wollte eine Engine, die auch unter MacOSX läuft.. zumindest auf der offiziellen Seite steht nix über eine Lauffähigkeit unter MacOSX, aber im Forum fand man den einen oder anderen Eintrag, dass man es wohl zum laufen bekommen hätte.. na ja, solche Sachen (= das Gras wachsen hören in den Foren, weil die Doku nicht existent oder veraltet ist) scheinen in dem Bereich nach meinen Erfahrungen fast normal zu sein.

Da meine Mitstreiter hier aber mehr so die Java-Menschen sind, beiße ich die Zähne zusammen und programmiere die 3D-Geschichten dann eben in Java, wobei wir wohl die JMonkeyengine einsetzen werden, die scheint mir am entwicklungsmäßig am weitesten, außerdem am stabilsten (andere wechseln ihre API-Schnittstellen wie die Unterhosen, ehrlich!) und hat eine klasse Community...

Unter Python stehen die Alternativen nicht gerade Schlange (hah, Wortwitz!), mir würde noch Irrlicht einfallen.
http://irrlicht.sourceforge.net/

..tja, da gibt es als Binding zu Irrlicht "Venom" und wie ich gerade lese, hat der Venom Betreuer keine Zeit mehr für sein Projekt... wenn ich das richtig interpretiere.

http://www.stenhard.net/news.php

..das übliche Elend. Ich kann echt nur empfehlen, VOR der Auswahl einer Engine sich ausgiebig umzusehen. Aber wie gesagt, die Alternativen für Python sind da glaube ich nicht soo zahlreich.


keine Ziet
Jadawin
User
Beiträge: 12
Registriert: Samstag 17. Februar 2007, 18:34

Dann gebe ich auch mal noch meinen Senf dazu:

Ich bin überhaupt erst durch Panda3D zu Python gekommen. Allerdings habe ich aus Zeitgründen noch nichts ernsthaftes damit gemacht. Nur mal ein paar Models mit Blender erstellt und geladen (mit ner FPS-Kamera und ein bissel Collision Detection).
Ich bin von Panda3D einigermassen begeistert. Übrigens sind auch alle zeitkritischen Routinen von Panda3D in C/C++ geschrieben, aber richtig dokumentiert ist nur das Python Interface.

Ein grosser Pluspunkt in meinen Augen ist, dass die Engine ursprünglich von Disney für deren Online-Spiel Toontown entworfen und daher immer noch weiter entwickelt wird und im Forum bekommst Du eigentlich immer Hilfe (allerdings in Englisch). Ausserdem ist die Benutzung im Vergleich zu anderen Engines recht einfach.

Ein Minuspunkt ist, dass sich Panda3D nicht so einfach als site-package zu einer bestehenden Python-Installation hinzufügen lässt, sondern sein eigenes komplettes Python mitbringt (im Moment glaub ich 2.4). Es benötigt etwas Aufmerksamkeit beide Installationen ungestört nebeneinander laufen zu lassen, ist aber lösbar (such einfach mal im Panda3D-Forum).

Ich weiss (noch) nicht, was Python-Eggs sind. Die Panda3D-Eggs sind Textdateien in denen in einer XML-ähnlichen Struktur die 3D-Modelle beschrieben sind.

Zu OGRE kann ich nix sagen.
Coding rule 1: A Computer will only do what you told him to do, not what you want him to do.
Therefore: Very often the problem sits right in front of the keyboard.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Python-Eggs sind Zip-Dateien mit Metainformationen, vergleichbar mit .jar-Files in Java. Sie enthalten dann die Binaries (Bytecode, aber auch kompilierte Erweiterungen in C) für eine bestimmte Python-Version. PJEs setuptools läd aus dem Cheeseshop automatisch ein Egg (samt Abhängigkeiten) für die eigene Python-Version herunter, so dass nichts kompiliert werden muss. Also noch nützlicher als .jars.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Y0Gi hat geschrieben:Also noch nützlicher als .jars.
Mir fehlt den Eggs etwas was die Jars haben. Man kann mit java -jar dateiname.jar Jars direkt starten - Eggs leider (noch?) nicht. Ich würde mir etwas bessere Integration der Eggs wünschen. Vielleicht sind die Möglichkeiten aus Python-Seite erschöpft, aber wenn die Python-Devs sich mit PJE etwas überlegen, wie man die besten Ideen aus den Setuptools angenehm in den Python-Interpreter einbinden könnte - das würde die Eggs meiner Meinung nach massiv aufwerten.

Ebenso finde ich es schade, dass es keine Möglichkeit gibt, Eggs mit einem Tool auch komplett zu löschen, nach der Deinstallation. Zuletzt finde ich, dass sys.path sehr unübersichtlich wird, wenn viele Eggs installiert sind. Vielleicht kann man das ja auch noch irgendwie schöner lösen (Eggs entpacken und Symlinks in site-packages anlegen oder zipimport erweitern - das wären so spontane Ideen)?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Schau Dir mal Squisher an. Ist noch recht neu und kommt soweit ich weiss nur mit reinen Python-Packages klar.

Das Programm wandelt ein komplettes Package in ein "egg" und packt einen *.pyc-"Header" davor, der Code enthält um das Package zu importieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Schau Dir mal Squisher an.
Wow, das klingt richtig interessant 8und auch vergleichsweise hackisch, aber cool).

Gibs zu BlackJack - entweder du bist der Cheeseshop oder lernst du vor dem Schlafengehen die neuen Einsendungen auswendig ;)

Danke jedenfalls, das geht sicherlich in die Richtung in die ich Python Eggs gerne gehen sehen würde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Der Autor hat das irgendwann letzte Woche in `comp.lang.python` vorgestellt. Ich lerne die Posts dort vor dem schlafengehen immer auswendig. Der Cheeseshop ist mir zu langweilig ─ einfach nicht genug Lernstoff. ;-)
Antworten