should i go for panda 3d or irrlicht

Well im fed up with torque’s out dated graphics and was wondering if some one could tell me if i should go for panda 3d or for irrlicht. The reason I ask is im used to world editors and irrlicht has one but panda 3d doesnt. One the other hand though you can use python with panda 3d which is easier to understand.

I don’t know if anyone here has used irrlicht. I’ve heard it’s a pretty decent engine. But I couldn’t give you any details.

Of course, most of the people who hang out on these forums are here because they use Panda3D. Which pretty much implies that they liked it best.

Well I didn’t mean which you like best I meant is it pretty easy to make levels in panda3d without a world editor? Sorry for the confusion.

If you are familiar with any 3D modeling software like Blender, Maya, 3DS Max, you can use it as level editor for Panda.

Thanks and one more thing can panda3d load heightmaps?

jup. and since version 1.5.1 which was just released panda also features a really nice terrain-algorithm based on geomipmapping(thx to pro-rsoft for writing it). unfortunately its still somewhat undocumented (see manual). but you can always ask on the forum. after all, the guy who wrote it is always around.

for now you can look at https://discourse.panda3d.org/viewtopic.php?t=3028

there also is the heighfield-tesselator. another working but not so advanced method.

and if neither of them suits you , you can write your own one :slight_smile: or create a terrain-mesh in any editor you like which supports export to one of panda’s file formats.

I find that panda is easier to use over all, no matter what the case may be, since I can do it in python. Irrlicht has python bindings, too, but I’m not sure how advanced they are. So does ogre (python-ogre), and tons of other “engines”. I just feel like it’s a lot less of hassle to use an engine that focuses around python, though.

Either way, all I’m going to say is, if you are efficient in C++ go with a C++ engine (the choice is based on how advanced you are, and how advanced you realistically want to be). Remember, there’s more than just the top ten, there are a bunch of engines and libraries out there.

If for whatever reason you choose Python over the other language choices (Java’s kind of like Python :unamused:) then I would go with Panda. Seriously.

EDIT: I totally forgot to mention. There are World Editors that can be used separately from the engine. If your primary concern is just good graphics and a world editor, then either find one that is compatible with the engine, or get acquainted with a 3d modeling software that has supported formats or can be supported through plug ins or whatever.

I think I saw something like 3D Worlds Studio or something like that. It costs money, but it can be used with different engines. Of course, that’s just one example to give you an idea.

I often use small scripts to have sort-of a level editor. (only placing stuff, not remove or change)

Some small example script:

from direct.showbase.DirectObject import DirectObject
PICKUP_POSITIONS = []
class objectDropper(DirectObject):
  def __init__( self ):
    self.loadDrop()
    self.accept( 'f', self.dropPickup )
  
  def dropPickup( self ):
    modelName = 'data/models/pickup/object.egg'
    pickup = loader.loadModel( modelName )
    pickup.reparentTo( render )
    objPos = camera.getPos( render ) + Vec3(0,0,-2.0)
    objHpr = Vec3( random.randint(0,360), random.randint(-10,10), random.randint(-10,10) )
    pickup.setPos( objPos )
    pickup.setHpr( objHpr )
    
    print ', [ "%s", %s, %s ]' % (modelName, str(objPos), str(objHpr))
  
  def loadDrop( self ):
    self.pickupNodePath = NodePath( 'vegetationNodePath' )
    self.pickupNodePath.reparentTo( render )
    
    for [modelName, position, rotation] in PICKUP_POSITIONS:
      modelPos = NodePath( 'pickupPosNode' )
      modelPos.reparentTo( self.pickupNodePath )
      modelPos.setPos( position )
      modelPos.setHpr( rotation )
    
   self.pickupNodePath.flattenStrong()

at the end i just copy the output i created into the PICKUP_POSITIONS list (remove the first ,).

It would require collision detection to extend this into a full editor, but for a quick editor thats at least a start.