Would panda be suitable for an multi-player fps?
Also how would I go about culling or LODing in panda, to allow me to have large opens areas or when inside, cut out anything which can’t be seen by the player. Portals?
And lastly, does panda come with its own networking stuff? Could I use something like twisted? Could someone briefly explain how in python/panda, networking works?
I’m certainly no expert, just getting started myself, but I suggest you read through the documentation starting with the online manual. Most of your general questions can be answered there.
It’s suitable for pretty much any 3d game (and non game 3d apps) including FPS.
I can’t really answer the culling/LOD stuff as I haven’t looked into that yet, but I do know it supports GeoMipMap Terrains which have built in LOD for the terrain itself.
Panda3d has built in networking, but you can always use whatever networking you want.
Best bet, as mentioned, is read the manual, especally the parts youa re interested in. You can also use Twisted library, python’s own networking system, or any other network system you choose.
to answer 2 more questions. yes panda has a LOD system which you can use on all nodes, but it’s semi-manual. means you have to create the LOD-models yourself. but panda is able to switch between them automatically.
and portals also exist but they are barely used. you can do that to do rooms etc. quite cool feature but a bit tricky to set up correctly.
Well I guess in any 3d/game engine forums the answer will be yes, because you can use a networking engine or sounds engine or 2d graphics engine with it. But I think most people by this question mean can the engine do that ‘out of the box’ (at least I did). Panda was used by Disney for 2 mmo games.
I think if you use geomipterrain (heightmaps) then there will be automatic LOD for the terrain. For the buildings and trees, etc. you’ll have to make a low poly version(s) of the models. The details and textures can be baked on the lowpoly model in your modelling app. Panda’s .egg format supports LOD, so you can just export detail levels from Blender for example, setting the distance at which they get replaced in the Logic Panel, so you don’t need additional code to do that.
Heres an example blend and egg file: chicken-export.svn.sourceforge.n … -lod.blend
Open it with Pview, press L to enable lights and move the camera closer and farther from the model and you will see them replacing each other.
Also you might want to replace the models ‘smoothly’. Don’t remember how to do that one.
For making fps game, these links might be useful:
Also, about having huge areas in game, you should have a look at shader instancing: discourse.panda3d.org/viewtopic.php?t=8680
I know this is complex and I don’t know Cg programming myself, but it seems the fastest way to render hundreds of the same objects like trees or rocks.
You can do non- hardware accelerated instancing in Blender and export it to egg, but I think (correct me if I’m wrong) that is not really performance optimization.